From 051793b287d76d42fced3f8358c301f4da4ccb06 Mon Sep 17 00:00:00 2001 From: Gary Guangyu Li Date: Fri, 4 Sep 2026 19:46:28 +0800 Subject: [PATCH] feat: add multilingual help center and pricing changelog --- ar/api-doc/error-code.mdx | 58 + ar/api-doc/get-id.mdx | 88 + ar/api-doc/oauth.mdx | 527 ++ ar/api-doc/overview.mdx | 63 + ar/api-doc/record/create.mdx | 243 + ar/api-doc/record/delete.mdx | 80 + ar/api-doc/record/get.mdx | 85 + ar/api-doc/record/interface.mdx | 449 ++ ar/api-doc/record/update.mdx | 210 + ar/api-doc/record/upload-attachment.mdx | 213 + ar/api-doc/sql-query.mdx | 145 + ar/api-doc/token.mdx | 31 + ar/basic/admin-panel/ai-generation-queue.mdx | 44 + ar/basic/admin-panel/ai-setting.mdx | 111 + ar/basic/admin-panel/announcements.mdx | 62 + ar/basic/admin-panel/audit-log.mdx | 44 + .../admin-panel/automation-management.mdx | 63 + ar/basic/admin-panel/computed-outbox.mdx | 106 + ar/basic/admin-panel/database-tenant.mdx | 31 + ar/basic/admin-panel/multitenancy.mdx | 145 + ar/basic/admin-panel/overview.mdx | 59 + ar/basic/admin-panel/sandbox-agent.mdx | 33 + ar/basic/admin-panel/settings.mdx | 103 + ar/basic/admin-panel/skills.mdx | 37 + ar/basic/admin-panel/spaces.mdx | 38 + ar/basic/admin-panel/table-query-ops.mdx | 81 + ar/basic/admin-panel/template-admin.mdx | 37 + ar/basic/admin-panel/users.mdx | 39 + ar/basic/ai/ai-chat.mdx | 288 ++ ar/basic/ai/app-builder-practical-guide.mdx | 274 ++ ar/basic/ai/app-builder.mdx | 329 ++ ar/basic/ai/connect-everything.mdx | 50 + .../connect-everything/migrate-airtable.mdx | 26 + .../ai/connect-everything/migrate-baserow.mdx | 26 + .../ai/connect-everything/migrate-clickup.mdx | 29 + .../ai/connect-everything/migrate-jira.mdx | 29 + .../ai/connect-everything/migrate-monday.mdx | 29 + .../ai/connect-everything/migrate-nocodb.mdx | 26 + .../migrate-project-management-tools.mdx | 42 + .../connect-everything/migrate-smartsheet.mdx | 29 + .../connect-everything/migrate-smartsuite.mdx | 26 + .../ai/connect-everything/more-sources.mdx | 24 + ar/basic/ai/custom-model.mdx | 109 + ar/basic/ai/overview.mdx | 50 + ar/basic/ai/teable-skill.mdx | 42 + ar/basic/authority-matrix.mdx | 120 + .../authority-matrix-practical-guide.mdx | 218 + ar/basic/automation.mdx | 87 + .../automation/actions/ai/ai-generate.mdx | 191 + ar/basic/automation/actions/ai/ai-script.mdx | 53 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 83 + .../automation/actions/logic/http-request.mdx | 134 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 78 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 40 + .../automation/examples/ai-email-digest.mdx | 40 + .../automation/examples/api-automation.mdx | 80 + ar/basic/automation/examples/batch-loop.mdx | 33 + .../examples/conditional-actions.mdx | 37 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 70 + .../automation/examples/recurring-records.mdx | 38 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 114 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 98 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 75 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 75 + .../trigger/records/record-updated.mdx | 96 + ar/basic/base.mdx | 167 + ar/basic/field.mdx | 74 + ar/basic/field/ai/ai-field.mdx | 154 + ar/basic/field/attachment.mdx | 75 + ar/basic/field/auto-number.mdx | 39 + ar/basic/field/button-practical-guide.mdx | 109 + ar/basic/field/button.mdx | 54 + ar/basic/field/checkbox.mdx | 56 + ar/basic/field/common/formatter.mdx | 66 + ar/basic/field/common/is-multiple-value.mdx | 62 + ar/basic/field/common/show-as.mdx | 37 + ar/basic/field/conditional-lookup.mdx | 118 + ar/basic/field/conditional-rollup.mdx | 95 + ar/basic/field/created-by.mdx | 41 + ar/basic/field/created-time.mdx | 48 + ar/basic/field/date.mdx | 57 + ar/basic/field/formula.mdx | 93 + ar/basic/field/formula/cheat-sheet.mdx | 113 + ar/basic/field/formula/grammar.mdx | 39 + ar/basic/field/last-modified-by.mdx | 41 + ar/basic/field/last-modified-time.mdx | 59 + ar/basic/field/link.mdx | 63 + ar/basic/field/long-text.mdx | 50 + ar/basic/field/lookup.mdx | 51 + ar/basic/field/multiple-select.mdx | 61 + ar/basic/field/number.mdx | 67 + ar/basic/field/rating.mdx | 52 + ar/basic/field/rollup.mdx | 72 + ar/basic/field/single-line-text.mdx | 57 + ar/basic/field/single-select.mdx | 60 + ar/basic/field/user.mdx | 51 + ar/basic/organization-panel/settings.mdx | 110 + ar/basic/record.mdx | 79 + ar/basic/record/archive-trash.mdx | 64 + ar/basic/record/comment.mdx | 68 + ar/basic/record/record-history.mdx | 62 + ar/basic/security.mdx | 184 + ar/basic/space.mdx | 110 + ar/basic/space/ai-setting.mdx | 12 + ar/basic/space/base-invite.mdx | 56 + ar/basic/space/billing.mdx | 273 ++ ar/basic/space/space-invite.mdx | 75 + ar/basic/space/space-permission.mdx | 63 + ar/basic/sso/auth0.mdx | 139 + ar/basic/sso/authentik.mdx | 196 + ar/basic/sso/azure-entra-id.mdx | 179 + ar/basic/sso/google-workspace.mdx | 119 + ar/basic/sso/okta.mdx | 97 + ar/basic/sso/onelogin.mdx | 156 + ar/basic/sso/overview.mdx | 62 + ar/basic/table.mdx | 170 + ar/basic/table/export.mdx | 41 + ar/basic/table/import.mdx | 138 + ar/basic/view/calendar.mdx | 67 + ar/basic/view/form.mdx | 73 + ar/basic/view/gallery.mdx | 63 + ar/basic/view/grid.mdx | 123 + ar/basic/view/kanban.mdx | 76 + ar/basic/view/toolbar.mdx | 244 + ar/changelog-2024.mdx | 362 ++ ar/changelog-2025.mdx | 330 ++ ar/changelog.mdx | 4268 +++++++++++++++++ ar/compare/teable-vs-excel.mdx | 91 + ar/deploy/activate.mdx | 224 + ar/deploy/architecture.mdx | 166 + ar/deploy/choose.mdx | 47 + ar/deploy/dashboard.mdx | 41 + ar/deploy/docker.mdx | 467 ++ ar/deploy/email.mdx | 144 + ar/deploy/env.mdx | 168 + ar/deploy/nginx.mdx | 132 + ar/deploy/oidc.mdx | 85 + ar/deploy/one-key.mdx | 62 + ar/deploy/telemetry.mdx | 40 + ar/deploy/upgrade.mdx | 130 + de/api-doc/error-code.mdx | 59 + de/api-doc/get-id.mdx | 89 + de/api-doc/oauth.mdx | 527 ++ de/api-doc/overview.mdx | 62 + de/api-doc/record/create.mdx | 243 + de/api-doc/record/delete.mdx | 82 + de/api-doc/record/get.mdx | 85 + de/api-doc/record/interface.mdx | 449 ++ de/api-doc/record/update.mdx | 210 + de/api-doc/record/upload-attachment.mdx | 212 + de/api-doc/sql-query.mdx | 146 + de/api-doc/token.mdx | 31 + de/basic/admin-panel/ai-generation-queue.mdx | 45 + de/basic/admin-panel/ai-setting.mdx | 112 + de/basic/admin-panel/announcements.mdx | 62 + de/basic/admin-panel/audit-log.mdx | 45 + .../admin-panel/automation-management.mdx | 64 + de/basic/admin-panel/computed-outbox.mdx | 107 + de/basic/admin-panel/database-tenant.mdx | 32 + de/basic/admin-panel/multitenancy.mdx | 146 + de/basic/admin-panel/overview.mdx | 60 + de/basic/admin-panel/sandbox-agent.mdx | 34 + de/basic/admin-panel/settings.mdx | 104 + de/basic/admin-panel/skills.mdx | 38 + de/basic/admin-panel/spaces.mdx | 38 + de/basic/admin-panel/table-query-ops.mdx | 82 + de/basic/admin-panel/template-admin.mdx | 38 + de/basic/admin-panel/users.mdx | 40 + de/basic/ai/ai-chat.mdx | 289 ++ de/basic/ai/app-builder-practical-guide.mdx | 275 ++ de/basic/ai/app-builder.mdx | 330 ++ de/basic/ai/connect-everything.mdx | 51 + .../connect-everything/migrate-airtable.mdx | 27 + .../ai/connect-everything/migrate-baserow.mdx | 27 + .../ai/connect-everything/migrate-clickup.mdx | 30 + .../ai/connect-everything/migrate-jira.mdx | 30 + .../ai/connect-everything/migrate-monday.mdx | 30 + .../ai/connect-everything/migrate-nocodb.mdx | 27 + .../migrate-project-management-tools.mdx | 43 + .../connect-everything/migrate-smartsheet.mdx | 30 + .../connect-everything/migrate-smartsuite.mdx | 27 + .../ai/connect-everything/more-sources.mdx | 25 + de/basic/ai/custom-model.mdx | 110 + de/basic/ai/overview.mdx | 51 + de/basic/ai/teable-skill.mdx | 43 + de/basic/authority-matrix.mdx | 96 + .../authority-matrix-practical-guide.mdx | 200 + de/basic/automation.mdx | 88 + .../automation/actions/ai/ai-generate.mdx | 191 + de/basic/automation/actions/ai/ai-script.mdx | 53 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 83 + .../automation/actions/logic/http-request.mdx | 134 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 78 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 40 + .../automation/examples/ai-email-digest.mdx | 40 + .../automation/examples/api-automation.mdx | 80 + de/basic/automation/examples/batch-loop.mdx | 33 + .../examples/conditional-actions.mdx | 37 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 70 + .../automation/examples/recurring-records.mdx | 38 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 114 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 98 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 75 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 75 + .../trigger/records/record-updated.mdx | 96 + de/basic/base.mdx | 167 + de/basic/field.mdx | 74 + de/basic/field/ai/ai-field.mdx | 154 + de/basic/field/attachment.mdx | 75 + de/basic/field/auto-number.mdx | 39 + de/basic/field/button-practical-guide.mdx | 109 + de/basic/field/button.mdx | 54 + de/basic/field/checkbox.mdx | 56 + de/basic/field/common/formatter.mdx | 66 + de/basic/field/common/is-multiple-value.mdx | 62 + de/basic/field/common/show-as.mdx | 37 + de/basic/field/conditional-lookup.mdx | 118 + de/basic/field/conditional-rollup.mdx | 95 + de/basic/field/created-by.mdx | 41 + de/basic/field/created-time.mdx | 48 + de/basic/field/date.mdx | 57 + de/basic/field/formula.mdx | 93 + de/basic/field/formula/cheat-sheet.mdx | 113 + de/basic/field/formula/grammar.mdx | 39 + de/basic/field/last-modified-by.mdx | 41 + de/basic/field/last-modified-time.mdx | 59 + de/basic/field/link.mdx | 63 + de/basic/field/long-text.mdx | 50 + de/basic/field/lookup.mdx | 51 + de/basic/field/multiple-select.mdx | 61 + de/basic/field/number.mdx | 67 + de/basic/field/rating.mdx | 52 + de/basic/field/rollup.mdx | 72 + de/basic/field/single-line-text.mdx | 57 + de/basic/field/single-select.mdx | 60 + de/basic/field/user.mdx | 51 + de/basic/organization-panel/settings.mdx | 111 + de/basic/record.mdx | 79 + de/basic/record/archive-trash.mdx | 64 + de/basic/record/comment.mdx | 68 + de/basic/record/record-history.mdx | 62 + de/basic/security.mdx | 184 + de/basic/space.mdx | 111 + de/basic/space/ai-setting.mdx | 13 + de/basic/space/base-invite.mdx | 57 + de/basic/space/billing.mdx | 274 ++ de/basic/space/space-invite.mdx | 76 + de/basic/space/space-permission.mdx | 64 + de/basic/sso/auth0.mdx | 139 + de/basic/sso/authentik.mdx | 197 + de/basic/sso/azure-entra-id.mdx | 180 + de/basic/sso/google-workspace.mdx | 119 + de/basic/sso/okta.mdx | 97 + de/basic/sso/onelogin.mdx | 156 + de/basic/sso/overview.mdx | 63 + de/basic/table.mdx | 170 + de/basic/table/export.mdx | 41 + de/basic/table/import.mdx | 138 + de/basic/view/calendar.mdx | 67 + de/basic/view/form.mdx | 73 + de/basic/view/gallery.mdx | 63 + de/basic/view/grid.mdx | 123 + de/basic/view/kanban.mdx | 76 + de/basic/view/toolbar.mdx | 244 + de/changelog-2024.mdx | 362 ++ de/changelog-2025.mdx | 329 ++ de/changelog.mdx | 4262 ++++++++++++++++ de/compare/teable-vs-excel.mdx | 91 + de/deploy/activate.mdx | 225 + de/deploy/architecture.mdx | 166 + de/deploy/choose.mdx | 49 + de/deploy/dashboard.mdx | 41 + de/deploy/docker.mdx | 467 ++ de/deploy/email.mdx | 144 + de/deploy/env.mdx | 171 + de/deploy/nginx.mdx | 132 + de/deploy/oidc.mdx | 85 + de/deploy/one-key.mdx | 63 + de/deploy/telemetry.mdx | 40 + de/deploy/upgrade.mdx | 133 + docs.json | 3753 +++++++++++++++ en/api-doc/get-id.mdx | 8 +- en/api-doc/oauth.mdx | 2 +- en/basic/ai/ai-chat.mdx | 2 +- en/basic/base.mdx | 4 +- en/basic/organization-panel/settings.mdx | 4 +- en/basic/record/comment.mdx | 2 +- en/changelog.mdx | 53 + en/deploy/email.mdx | 4 +- en/deploy/env.mdx | 2 +- en/deploy/oidc.mdx | 2 +- es/api-doc/error-code.mdx | 58 + es/api-doc/get-id.mdx | 88 + es/api-doc/oauth.mdx | 527 ++ es/api-doc/overview.mdx | 62 + es/api-doc/record/create.mdx | 243 + es/api-doc/record/delete.mdx | 80 + es/api-doc/record/get.mdx | 85 + es/api-doc/record/interface.mdx | 449 ++ es/api-doc/record/update.mdx | 210 + es/api-doc/record/upload-attachment.mdx | 212 + es/api-doc/sql-query.mdx | 145 + es/api-doc/token.mdx | 31 + es/basic/admin-panel/ai-generation-queue.mdx | 44 + es/basic/admin-panel/ai-setting.mdx | 111 + es/basic/admin-panel/announcements.mdx | 62 + es/basic/admin-panel/audit-log.mdx | 44 + .../admin-panel/automation-management.mdx | 63 + es/basic/admin-panel/computed-outbox.mdx | 106 + es/basic/admin-panel/database-tenant.mdx | 31 + es/basic/admin-panel/multitenancy.mdx | 145 + es/basic/admin-panel/overview.mdx | 59 + es/basic/admin-panel/sandbox-agent.mdx | 33 + es/basic/admin-panel/settings.mdx | 103 + es/basic/admin-panel/skills.mdx | 37 + es/basic/admin-panel/spaces.mdx | 38 + es/basic/admin-panel/table-query-ops.mdx | 81 + es/basic/admin-panel/template-admin.mdx | 37 + es/basic/admin-panel/users.mdx | 39 + es/basic/ai/ai-chat.mdx | 288 ++ es/basic/ai/app-builder-practical-guide.mdx | 274 ++ es/basic/ai/app-builder.mdx | 329 ++ es/basic/ai/connect-everything.mdx | 50 + .../connect-everything/migrate-airtable.mdx | 26 + .../ai/connect-everything/migrate-baserow.mdx | 26 + .../ai/connect-everything/migrate-clickup.mdx | 29 + .../ai/connect-everything/migrate-jira.mdx | 29 + .../ai/connect-everything/migrate-monday.mdx | 29 + .../ai/connect-everything/migrate-nocodb.mdx | 26 + .../migrate-project-management-tools.mdx | 42 + .../connect-everything/migrate-smartsheet.mdx | 29 + .../connect-everything/migrate-smartsuite.mdx | 26 + .../ai/connect-everything/more-sources.mdx | 24 + es/basic/ai/custom-model.mdx | 109 + es/basic/ai/overview.mdx | 50 + es/basic/ai/teable-skill.mdx | 42 + es/basic/authority-matrix.mdx | 120 + .../authority-matrix-practical-guide.mdx | 218 + es/basic/automation.mdx | 87 + .../automation/actions/ai/ai-generate.mdx | 191 + es/basic/automation/actions/ai/ai-script.mdx | 53 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 83 + .../automation/actions/logic/http-request.mdx | 134 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 78 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 40 + .../automation/examples/ai-email-digest.mdx | 40 + .../automation/examples/api-automation.mdx | 80 + es/basic/automation/examples/batch-loop.mdx | 33 + .../examples/conditional-actions.mdx | 37 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 70 + .../automation/examples/recurring-records.mdx | 38 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 114 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 98 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 75 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 75 + .../trigger/records/record-updated.mdx | 96 + es/basic/base.mdx | 167 + es/basic/field.mdx | 74 + es/basic/field/ai/ai-field.mdx | 154 + es/basic/field/attachment.mdx | 75 + es/basic/field/auto-number.mdx | 39 + es/basic/field/button-practical-guide.mdx | 109 + es/basic/field/button.mdx | 54 + es/basic/field/checkbox.mdx | 56 + es/basic/field/common/formatter.mdx | 66 + es/basic/field/common/is-multiple-value.mdx | 62 + es/basic/field/common/show-as.mdx | 37 + es/basic/field/conditional-lookup.mdx | 118 + es/basic/field/conditional-rollup.mdx | 95 + es/basic/field/created-by.mdx | 41 + es/basic/field/created-time.mdx | 48 + es/basic/field/date.mdx | 57 + es/basic/field/formula.mdx | 93 + es/basic/field/formula/cheat-sheet.mdx | 113 + es/basic/field/formula/grammar.mdx | 39 + es/basic/field/last-modified-by.mdx | 41 + es/basic/field/last-modified-time.mdx | 59 + es/basic/field/link.mdx | 63 + es/basic/field/long-text.mdx | 50 + es/basic/field/lookup.mdx | 51 + es/basic/field/multiple-select.mdx | 61 + es/basic/field/number.mdx | 67 + es/basic/field/rating.mdx | 52 + es/basic/field/rollup.mdx | 72 + es/basic/field/single-line-text.mdx | 57 + es/basic/field/single-select.mdx | 60 + es/basic/field/user.mdx | 51 + es/basic/organization-panel/settings.mdx | 110 + es/basic/record.mdx | 79 + es/basic/record/archive-trash.mdx | 64 + es/basic/record/comment.mdx | 68 + es/basic/record/record-history.mdx | 62 + es/basic/security.mdx | 183 + es/basic/space.mdx | 110 + es/basic/space/ai-setting.mdx | 12 + es/basic/space/base-invite.mdx | 56 + es/basic/space/billing.mdx | 273 ++ es/basic/space/space-invite.mdx | 75 + es/basic/space/space-permission.mdx | 63 + es/basic/sso/auth0.mdx | 139 + es/basic/sso/authentik.mdx | 196 + es/basic/sso/azure-entra-id.mdx | 180 + es/basic/sso/google-workspace.mdx | 119 + es/basic/sso/okta.mdx | 96 + es/basic/sso/onelogin.mdx | 156 + es/basic/sso/overview.mdx | 62 + es/basic/table.mdx | 170 + es/basic/table/export.mdx | 41 + es/basic/table/import.mdx | 138 + es/basic/view/calendar.mdx | 67 + es/basic/view/form.mdx | 73 + es/basic/view/gallery.mdx | 63 + es/basic/view/grid.mdx | 123 + es/basic/view/kanban.mdx | 76 + es/basic/view/toolbar.mdx | 244 + es/changelog-2024.mdx | 362 ++ es/changelog-2025.mdx | 329 ++ es/changelog.mdx | 4263 ++++++++++++++++ es/compare/teable-vs-excel.mdx | 91 + es/deploy/activate.mdx | 224 + es/deploy/architecture.mdx | 166 + es/deploy/choose.mdx | 48 + es/deploy/dashboard.mdx | 41 + es/deploy/docker.mdx | 467 ++ es/deploy/email.mdx | 144 + es/deploy/env.mdx | 168 + es/deploy/nginx.mdx | 132 + es/deploy/oidc.mdx | 85 + es/deploy/one-key.mdx | 62 + es/deploy/telemetry.mdx | 40 + es/deploy/upgrade.mdx | 132 + fr/api-doc/error-code.mdx | 59 + fr/api-doc/get-id.mdx | 89 + fr/api-doc/oauth.mdx | 527 ++ fr/api-doc/overview.mdx | 62 + fr/api-doc/record/create.mdx | 244 + fr/api-doc/record/delete.mdx | 82 + fr/api-doc/record/get.mdx | 86 + fr/api-doc/record/interface.mdx | 449 ++ fr/api-doc/record/update.mdx | 211 + fr/api-doc/record/upload-attachment.mdx | 212 + fr/api-doc/sql-query.mdx | 146 + fr/api-doc/token.mdx | 31 + fr/basic/admin-panel/ai-generation-queue.mdx | 45 + fr/basic/admin-panel/ai-setting.mdx | 112 + fr/basic/admin-panel/announcements.mdx | 63 + fr/basic/admin-panel/audit-log.mdx | 45 + .../admin-panel/automation-management.mdx | 64 + fr/basic/admin-panel/computed-outbox.mdx | 107 + fr/basic/admin-panel/database-tenant.mdx | 32 + fr/basic/admin-panel/multitenancy.mdx | 146 + fr/basic/admin-panel/overview.mdx | 60 + fr/basic/admin-panel/sandbox-agent.mdx | 34 + fr/basic/admin-panel/settings.mdx | 104 + fr/basic/admin-panel/skills.mdx | 38 + fr/basic/admin-panel/spaces.mdx | 38 + fr/basic/admin-panel/table-query-ops.mdx | 82 + fr/basic/admin-panel/template-admin.mdx | 38 + fr/basic/admin-panel/users.mdx | 40 + fr/basic/ai/ai-chat.mdx | 289 ++ fr/basic/ai/app-builder-practical-guide.mdx | 275 ++ fr/basic/ai/app-builder.mdx | 330 ++ fr/basic/ai/connect-everything.mdx | 51 + .../connect-everything/migrate-airtable.mdx | 27 + .../ai/connect-everything/migrate-baserow.mdx | 27 + .../ai/connect-everything/migrate-clickup.mdx | 30 + .../ai/connect-everything/migrate-jira.mdx | 30 + .../ai/connect-everything/migrate-monday.mdx | 30 + .../ai/connect-everything/migrate-nocodb.mdx | 27 + .../migrate-project-management-tools.mdx | 43 + .../connect-everything/migrate-smartsheet.mdx | 30 + .../connect-everything/migrate-smartsuite.mdx | 27 + .../ai/connect-everything/more-sources.mdx | 25 + fr/basic/ai/custom-model.mdx | 110 + fr/basic/ai/overview.mdx | 51 + fr/basic/ai/teable-skill.mdx | 43 + fr/basic/authority-matrix.mdx | 119 + .../authority-matrix-practical-guide.mdx | 219 + fr/basic/automation.mdx | 88 + .../automation/actions/ai/ai-generate.mdx | 191 + fr/basic/automation/actions/ai/ai-script.mdx | 53 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 83 + .../automation/actions/logic/http-request.mdx | 134 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 78 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 40 + .../automation/examples/ai-email-digest.mdx | 40 + .../automation/examples/api-automation.mdx | 80 + fr/basic/automation/examples/batch-loop.mdx | 33 + .../examples/conditional-actions.mdx | 37 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 70 + .../automation/examples/recurring-records.mdx | 38 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 114 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 98 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 75 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 75 + .../trigger/records/record-updated.mdx | 96 + fr/basic/base.mdx | 168 + fr/basic/field.mdx | 75 + fr/basic/field/ai/ai-field.mdx | 154 + fr/basic/field/attachment.mdx | 75 + fr/basic/field/auto-number.mdx | 39 + fr/basic/field/button-practical-guide.mdx | 109 + fr/basic/field/button.mdx | 54 + fr/basic/field/checkbox.mdx | 56 + fr/basic/field/common/formatter.mdx | 66 + fr/basic/field/common/is-multiple-value.mdx | 62 + fr/basic/field/common/show-as.mdx | 37 + fr/basic/field/conditional-lookup.mdx | 118 + fr/basic/field/conditional-rollup.mdx | 95 + fr/basic/field/created-by.mdx | 41 + fr/basic/field/created-time.mdx | 48 + fr/basic/field/date.mdx | 57 + fr/basic/field/formula.mdx | 93 + fr/basic/field/formula/cheat-sheet.mdx | 113 + fr/basic/field/formula/grammar.mdx | 39 + fr/basic/field/last-modified-by.mdx | 41 + fr/basic/field/last-modified-time.mdx | 59 + fr/basic/field/link.mdx | 63 + fr/basic/field/long-text.mdx | 50 + fr/basic/field/lookup.mdx | 51 + fr/basic/field/multiple-select.mdx | 61 + fr/basic/field/number.mdx | 67 + fr/basic/field/rating.mdx | 52 + fr/basic/field/rollup.mdx | 72 + fr/basic/field/single-line-text.mdx | 57 + fr/basic/field/single-select.mdx | 60 + fr/basic/field/user.mdx | 51 + fr/basic/organization-panel/settings.mdx | 111 + fr/basic/record.mdx | 80 + fr/basic/record/archive-trash.mdx | 64 + fr/basic/record/comment.mdx | 68 + fr/basic/record/record-history.mdx | 62 + fr/basic/security.mdx | 184 + fr/basic/space.mdx | 111 + fr/basic/space/ai-setting.mdx | 13 + fr/basic/space/base-invite.mdx | 57 + fr/basic/space/billing.mdx | 274 ++ fr/basic/space/space-invite.mdx | 76 + fr/basic/space/space-permission.mdx | 64 + fr/basic/sso/auth0.mdx | 140 + fr/basic/sso/authentik.mdx | 197 + fr/basic/sso/azure-entra-id.mdx | 180 + fr/basic/sso/google-workspace.mdx | 119 + fr/basic/sso/okta.mdx | 97 + fr/basic/sso/onelogin.mdx | 157 + fr/basic/sso/overview.mdx | 63 + fr/basic/table.mdx | 171 + fr/basic/table/export.mdx | 42 + fr/basic/table/import.mdx | 138 + fr/basic/view/calendar.mdx | 67 + fr/basic/view/form.mdx | 73 + fr/basic/view/gallery.mdx | 63 + fr/basic/view/grid.mdx | 123 + fr/basic/view/kanban.mdx | 76 + fr/basic/view/toolbar.mdx | 244 + fr/changelog-2024.mdx | 361 ++ fr/changelog-2025.mdx | 325 ++ fr/changelog.mdx | 4263 ++++++++++++++++ fr/compare/teable-vs-excel.mdx | 91 + fr/deploy/activate.mdx | 224 + fr/deploy/architecture.mdx | 123 + fr/deploy/choose.mdx | 49 + fr/deploy/dashboard.mdx | 41 + fr/deploy/docker.mdx | 467 ++ fr/deploy/email.mdx | 144 + fr/deploy/env.mdx | 169 + fr/deploy/nginx.mdx | 132 + fr/deploy/oidc.mdx | 85 + fr/deploy/one-key.mdx | 63 + fr/deploy/telemetry.mdx | 40 + fr/deploy/upgrade.mdx | 133 + ...2026-09-04-new-pricing-more-ai-credits.png | Bin 0 -> 229896 bytes it/api-doc/error-code.mdx | 59 + it/api-doc/get-id.mdx | 88 + it/api-doc/oauth.mdx | 527 ++ it/api-doc/overview.mdx | 63 + it/api-doc/record/create.mdx | 243 + it/api-doc/record/delete.mdx | 80 + it/api-doc/record/get.mdx | 85 + it/api-doc/record/interface.mdx | 449 ++ it/api-doc/record/update.mdx | 210 + it/api-doc/record/upload-attachment.mdx | 213 + it/api-doc/sql-query.mdx | 145 + it/api-doc/token.mdx | 31 + it/basic/admin-panel/ai-generation-queue.mdx | 44 + it/basic/admin-panel/ai-setting.mdx | 111 + it/basic/admin-panel/announcements.mdx | 62 + it/basic/admin-panel/audit-log.mdx | 44 + .../admin-panel/automation-management.mdx | 63 + it/basic/admin-panel/computed-outbox.mdx | 106 + it/basic/admin-panel/database-tenant.mdx | 31 + it/basic/admin-panel/multitenancy.mdx | 145 + it/basic/admin-panel/overview.mdx | 59 + it/basic/admin-panel/sandbox-agent.mdx | 33 + it/basic/admin-panel/settings.mdx | 103 + it/basic/admin-panel/skills.mdx | 37 + it/basic/admin-panel/spaces.mdx | 38 + it/basic/admin-panel/table-query-ops.mdx | 81 + it/basic/admin-panel/template-admin.mdx | 37 + it/basic/admin-panel/users.mdx | 39 + it/basic/ai/ai-chat.mdx | 288 ++ it/basic/ai/app-builder-practical-guide.mdx | 274 ++ it/basic/ai/app-builder.mdx | 329 ++ it/basic/ai/connect-everything.mdx | 50 + .../connect-everything/migrate-airtable.mdx | 26 + .../ai/connect-everything/migrate-baserow.mdx | 26 + .../ai/connect-everything/migrate-clickup.mdx | 29 + .../ai/connect-everything/migrate-jira.mdx | 29 + .../ai/connect-everything/migrate-monday.mdx | 29 + .../ai/connect-everything/migrate-nocodb.mdx | 26 + .../migrate-project-management-tools.mdx | 42 + .../connect-everything/migrate-smartsheet.mdx | 29 + .../connect-everything/migrate-smartsuite.mdx | 26 + .../ai/connect-everything/more-sources.mdx | 24 + it/basic/ai/custom-model.mdx | 109 + it/basic/ai/overview.mdx | 50 + it/basic/ai/teable-skill.mdx | 42 + it/basic/authority-matrix.mdx | 120 + .../authority-matrix-practical-guide.mdx | 218 + it/basic/automation.mdx | 87 + .../automation/actions/ai/ai-generate.mdx | 191 + it/basic/automation/actions/ai/ai-script.mdx | 53 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 83 + .../automation/actions/logic/http-request.mdx | 134 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 78 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 40 + .../automation/examples/ai-email-digest.mdx | 40 + .../automation/examples/api-automation.mdx | 80 + it/basic/automation/examples/batch-loop.mdx | 33 + .../examples/conditional-actions.mdx | 37 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 70 + .../automation/examples/recurring-records.mdx | 38 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 114 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 98 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 75 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 75 + .../trigger/records/record-updated.mdx | 96 + it/basic/base.mdx | 167 + it/basic/field.mdx | 74 + it/basic/field/ai/ai-field.mdx | 154 + it/basic/field/attachment.mdx | 75 + it/basic/field/auto-number.mdx | 39 + it/basic/field/button-practical-guide.mdx | 109 + it/basic/field/button.mdx | 54 + it/basic/field/checkbox.mdx | 56 + it/basic/field/common/formatter.mdx | 66 + it/basic/field/common/is-multiple-value.mdx | 62 + it/basic/field/common/show-as.mdx | 37 + it/basic/field/conditional-lookup.mdx | 118 + it/basic/field/conditional-rollup.mdx | 95 + it/basic/field/created-by.mdx | 41 + it/basic/field/created-time.mdx | 48 + it/basic/field/date.mdx | 57 + it/basic/field/formula.mdx | 93 + it/basic/field/formula/cheat-sheet.mdx | 113 + it/basic/field/formula/grammar.mdx | 39 + it/basic/field/last-modified-by.mdx | 41 + it/basic/field/last-modified-time.mdx | 59 + it/basic/field/link.mdx | 63 + it/basic/field/long-text.mdx | 50 + it/basic/field/lookup.mdx | 51 + it/basic/field/multiple-select.mdx | 61 + it/basic/field/number.mdx | 67 + it/basic/field/rating.mdx | 52 + it/basic/field/rollup.mdx | 72 + it/basic/field/single-line-text.mdx | 57 + it/basic/field/single-select.mdx | 60 + it/basic/field/user.mdx | 51 + it/basic/organization-panel/settings.mdx | 110 + it/basic/record.mdx | 79 + it/basic/record/archive-trash.mdx | 64 + it/basic/record/comment.mdx | 68 + it/basic/record/record-history.mdx | 62 + it/basic/security.mdx | 184 + it/basic/space.mdx | 110 + it/basic/space/ai-setting.mdx | 12 + it/basic/space/base-invite.mdx | 56 + it/basic/space/billing.mdx | 273 ++ it/basic/space/space-invite.mdx | 75 + it/basic/space/space-permission.mdx | 63 + it/basic/sso/auth0.mdx | 139 + it/basic/sso/authentik.mdx | 196 + it/basic/sso/azure-entra-id.mdx | 179 + it/basic/sso/google-workspace.mdx | 119 + it/basic/sso/okta.mdx | 97 + it/basic/sso/onelogin.mdx | 156 + it/basic/sso/overview.mdx | 63 + it/basic/table.mdx | 170 + it/basic/table/export.mdx | 41 + it/basic/table/import.mdx | 138 + it/basic/view/calendar.mdx | 67 + it/basic/view/form.mdx | 73 + it/basic/view/gallery.mdx | 63 + it/basic/view/grid.mdx | 123 + it/basic/view/kanban.mdx | 76 + it/basic/view/toolbar.mdx | 244 + it/changelog-2024.mdx | 362 ++ it/changelog-2025.mdx | 329 ++ it/changelog.mdx | 4266 ++++++++++++++++ it/compare/teable-vs-excel.mdx | 91 + it/deploy/activate.mdx | 224 + it/deploy/architecture.mdx | 167 + it/deploy/choose.mdx | 48 + it/deploy/dashboard.mdx | 41 + it/deploy/docker.mdx | 467 ++ it/deploy/email.mdx | 144 + it/deploy/env.mdx | 170 + it/deploy/nginx.mdx | 132 + it/deploy/oidc.mdx | 85 + it/deploy/one-key.mdx | 62 + it/deploy/telemetry.mdx | 40 + it/deploy/upgrade.mdx | 132 + ja/api-doc/error-code.mdx | 59 + ja/api-doc/get-id.mdx | 88 + ja/api-doc/oauth.mdx | 527 ++ ja/api-doc/overview.mdx | 63 + ja/api-doc/record/create.mdx | 243 + ja/api-doc/record/delete.mdx | 81 + ja/api-doc/record/get.mdx | 85 + ja/api-doc/record/interface.mdx | 449 ++ ja/api-doc/record/update.mdx | 210 + ja/api-doc/record/upload-attachment.mdx | 212 + ja/api-doc/sql-query.mdx | 145 + ja/api-doc/token.mdx | 31 + ja/basic/admin-panel/ai-generation-queue.mdx | 44 + ja/basic/admin-panel/ai-setting.mdx | 111 + ja/basic/admin-panel/announcements.mdx | 62 + ja/basic/admin-panel/audit-log.mdx | 44 + .../admin-panel/automation-management.mdx | 63 + ja/basic/admin-panel/computed-outbox.mdx | 106 + ja/basic/admin-panel/database-tenant.mdx | 31 + ja/basic/admin-panel/multitenancy.mdx | 145 + ja/basic/admin-panel/overview.mdx | 59 + ja/basic/admin-panel/sandbox-agent.mdx | 33 + ja/basic/admin-panel/settings.mdx | 103 + ja/basic/admin-panel/skills.mdx | 37 + ja/basic/admin-panel/spaces.mdx | 38 + ja/basic/admin-panel/table-query-ops.mdx | 81 + ja/basic/admin-panel/template-admin.mdx | 37 + ja/basic/admin-panel/users.mdx | 39 + ja/basic/ai/ai-chat.mdx | 288 ++ ja/basic/ai/app-builder-practical-guide.mdx | 274 ++ ja/basic/ai/app-builder.mdx | 329 ++ ja/basic/ai/connect-everything.mdx | 50 + .../connect-everything/migrate-airtable.mdx | 26 + .../ai/connect-everything/migrate-baserow.mdx | 26 + .../ai/connect-everything/migrate-clickup.mdx | 29 + .../ai/connect-everything/migrate-jira.mdx | 29 + .../ai/connect-everything/migrate-monday.mdx | 29 + .../ai/connect-everything/migrate-nocodb.mdx | 26 + .../migrate-project-management-tools.mdx | 42 + .../connect-everything/migrate-smartsheet.mdx | 29 + .../connect-everything/migrate-smartsuite.mdx | 26 + .../ai/connect-everything/more-sources.mdx | 24 + ja/basic/ai/custom-model.mdx | 109 + ja/basic/ai/overview.mdx | 50 + ja/basic/ai/teable-skill.mdx | 42 + ja/basic/authority-matrix.mdx | 95 + .../authority-matrix-practical-guide.mdx | 200 + ja/basic/automation.mdx | 87 + .../automation/actions/ai/ai-generate.mdx | 192 + ja/basic/automation/actions/ai/ai-script.mdx | 54 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 84 + .../automation/actions/logic/http-request.mdx | 135 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 79 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 41 + .../automation/examples/ai-email-digest.mdx | 41 + .../automation/examples/api-automation.mdx | 81 + ja/basic/automation/examples/batch-loop.mdx | 34 + .../examples/conditional-actions.mdx | 38 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 71 + .../automation/examples/recurring-records.mdx | 39 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 115 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 99 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 76 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 76 + .../trigger/records/record-updated.mdx | 96 + ja/basic/base.mdx | 167 + ja/basic/field.mdx | 74 + ja/basic/field/ai/ai-field.mdx | 154 + ja/basic/field/attachment.mdx | 75 + ja/basic/field/auto-number.mdx | 39 + ja/basic/field/button-practical-guide.mdx | 109 + ja/basic/field/button.mdx | 54 + ja/basic/field/checkbox.mdx | 56 + ja/basic/field/common/formatter.mdx | 66 + ja/basic/field/common/is-multiple-value.mdx | 62 + ja/basic/field/common/show-as.mdx | 37 + ja/basic/field/conditional-lookup.mdx | 118 + ja/basic/field/conditional-rollup.mdx | 95 + ja/basic/field/created-by.mdx | 41 + ja/basic/field/created-time.mdx | 48 + ja/basic/field/date.mdx | 57 + ja/basic/field/formula.mdx | 93 + ja/basic/field/formula/cheat-sheet.mdx | 113 + ja/basic/field/formula/grammar.mdx | 39 + ja/basic/field/last-modified-by.mdx | 41 + ja/basic/field/last-modified-time.mdx | 59 + ja/basic/field/link.mdx | 63 + ja/basic/field/long-text.mdx | 50 + ja/basic/field/lookup.mdx | 51 + ja/basic/field/multiple-select.mdx | 61 + ja/basic/field/number.mdx | 67 + ja/basic/field/rating.mdx | 52 + ja/basic/field/rollup.mdx | 72 + ja/basic/field/single-line-text.mdx | 57 + ja/basic/field/single-select.mdx | 60 + ja/basic/field/user.mdx | 51 + ja/basic/organization-panel/settings.mdx | 110 + ja/basic/record.mdx | 79 + ja/basic/record/archive-trash.mdx | 64 + ja/basic/record/comment.mdx | 68 + ja/basic/record/record-history.mdx | 62 + ja/basic/security.mdx | 184 + ja/basic/space.mdx | 110 + ja/basic/space/ai-setting.mdx | 12 + ja/basic/space/base-invite.mdx | 56 + ja/basic/space/billing.mdx | 273 ++ ja/basic/space/space-invite.mdx | 75 + ja/basic/space/space-permission.mdx | 63 + ja/basic/sso/auth0.mdx | 139 + ja/basic/sso/authentik.mdx | 196 + ja/basic/sso/azure-entra-id.mdx | 179 + ja/basic/sso/google-workspace.mdx | 119 + ja/basic/sso/okta.mdx | 96 + ja/basic/sso/onelogin.mdx | 156 + ja/basic/sso/overview.mdx | 62 + ja/basic/table.mdx | 170 + ja/basic/table/export.mdx | 41 + ja/basic/table/import.mdx | 138 + ja/basic/view/calendar.mdx | 67 + ja/basic/view/form.mdx | 73 + ja/basic/view/gallery.mdx | 63 + ja/basic/view/grid.mdx | 123 + ja/basic/view/kanban.mdx | 76 + ja/basic/view/toolbar.mdx | 244 + ja/changelog-2024.mdx | 362 ++ ja/changelog-2025.mdx | 329 ++ ja/changelog.mdx | 4253 ++++++++++++++++ ja/compare/teable-vs-excel.mdx | 91 + ja/deploy/activate.mdx | 224 + ja/deploy/architecture.mdx | 123 + ja/deploy/choose.mdx | 37 + ja/deploy/dashboard.mdx | 41 + ja/deploy/docker.mdx | 467 ++ ja/deploy/email.mdx | 144 + ja/deploy/env.mdx | 156 + ja/deploy/nginx.mdx | 132 + ja/deploy/oidc.mdx | 86 + ja/deploy/one-key.mdx | 48 + ja/deploy/telemetry.mdx | 41 + ja/deploy/upgrade.mdx | 100 + ru/api-doc/error-code.mdx | 59 + ru/api-doc/get-id.mdx | 89 + ru/api-doc/oauth.mdx | 527 ++ ru/api-doc/overview.mdx | 62 + ru/api-doc/record/create.mdx | 243 + ru/api-doc/record/delete.mdx | 81 + ru/api-doc/record/get.mdx | 85 + ru/api-doc/record/interface.mdx | 449 ++ ru/api-doc/record/update.mdx | 210 + ru/api-doc/record/upload-attachment.mdx | 212 + ru/api-doc/sql-query.mdx | 146 + ru/api-doc/token.mdx | 31 + ru/basic/admin-panel/ai-generation-queue.mdx | 45 + ru/basic/admin-panel/ai-setting.mdx | 112 + ru/basic/admin-panel/announcements.mdx | 63 + ru/basic/admin-panel/audit-log.mdx | 45 + .../admin-panel/automation-management.mdx | 64 + ru/basic/admin-panel/computed-outbox.mdx | 107 + ru/basic/admin-panel/database-tenant.mdx | 32 + ru/basic/admin-panel/multitenancy.mdx | 146 + ru/basic/admin-panel/overview.mdx | 60 + ru/basic/admin-panel/sandbox-agent.mdx | 34 + ru/basic/admin-panel/settings.mdx | 104 + ru/basic/admin-panel/skills.mdx | 38 + ru/basic/admin-panel/spaces.mdx | 38 + ru/basic/admin-panel/table-query-ops.mdx | 82 + ru/basic/admin-panel/template-admin.mdx | 38 + ru/basic/admin-panel/users.mdx | 40 + ru/basic/ai/ai-chat.mdx | 289 ++ ru/basic/ai/app-builder-practical-guide.mdx | 275 ++ ru/basic/ai/app-builder.mdx | 346 ++ ru/basic/ai/connect-everything.mdx | 51 + .../connect-everything/migrate-airtable.mdx | 27 + .../ai/connect-everything/migrate-baserow.mdx | 27 + .../ai/connect-everything/migrate-clickup.mdx | 30 + .../ai/connect-everything/migrate-jira.mdx | 30 + .../ai/connect-everything/migrate-monday.mdx | 30 + .../ai/connect-everything/migrate-nocodb.mdx | 27 + .../migrate-project-management-tools.mdx | 43 + .../connect-everything/migrate-smartsheet.mdx | 30 + .../connect-everything/migrate-smartsuite.mdx | 27 + .../ai/connect-everything/more-sources.mdx | 25 + ru/basic/ai/custom-model.mdx | 110 + ru/basic/ai/overview.mdx | 51 + ru/basic/ai/teable-skill.mdx | 43 + ru/basic/authority-matrix.mdx | 121 + .../authority-matrix-practical-guide.mdx | 219 + ru/basic/automation.mdx | 88 + .../automation/actions/ai/ai-generate.mdx | 191 + ru/basic/automation/actions/ai/ai-script.mdx | 53 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 83 + .../automation/actions/logic/http-request.mdx | 134 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 78 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 40 + .../automation/examples/ai-email-digest.mdx | 40 + .../automation/examples/api-automation.mdx | 80 + ru/basic/automation/examples/batch-loop.mdx | 33 + .../examples/conditional-actions.mdx | 37 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 70 + .../automation/examples/recurring-records.mdx | 38 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 114 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 98 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 75 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 75 + .../trigger/records/record-updated.mdx | 96 + ru/basic/base.mdx | 168 + ru/basic/field.mdx | 75 + ru/basic/field/ai/ai-field.mdx | 154 + ru/basic/field/attachment.mdx | 75 + ru/basic/field/auto-number.mdx | 39 + ru/basic/field/button-practical-guide.mdx | 109 + ru/basic/field/button.mdx | 54 + ru/basic/field/checkbox.mdx | 56 + ru/basic/field/common/formatter.mdx | 66 + ru/basic/field/common/is-multiple-value.mdx | 62 + ru/basic/field/common/show-as.mdx | 37 + ru/basic/field/conditional-lookup.mdx | 118 + ru/basic/field/conditional-rollup.mdx | 95 + ru/basic/field/created-by.mdx | 41 + ru/basic/field/created-time.mdx | 48 + ru/basic/field/date.mdx | 57 + ru/basic/field/formula.mdx | 93 + ru/basic/field/formula/cheat-sheet.mdx | 113 + ru/basic/field/formula/grammar.mdx | 39 + ru/basic/field/last-modified-by.mdx | 41 + ru/basic/field/last-modified-time.mdx | 59 + ru/basic/field/link.mdx | 63 + ru/basic/field/long-text.mdx | 50 + ru/basic/field/lookup.mdx | 51 + ru/basic/field/multiple-select.mdx | 61 + ru/basic/field/number.mdx | 67 + ru/basic/field/rating.mdx | 52 + ru/basic/field/rollup.mdx | 72 + ru/basic/field/single-line-text.mdx | 57 + ru/basic/field/single-select.mdx | 60 + ru/basic/field/user.mdx | 51 + ru/basic/organization-panel/settings.mdx | 111 + ru/basic/record.mdx | 80 + ru/basic/record/archive-trash.mdx | 64 + ru/basic/record/comment.mdx | 68 + ru/basic/record/record-history.mdx | 62 + ru/basic/security.mdx | 184 + ru/basic/space.mdx | 111 + ru/basic/space/ai-setting.mdx | 13 + ru/basic/space/base-invite.mdx | 57 + ru/basic/space/billing.mdx | 274 ++ ru/basic/space/space-invite.mdx | 76 + ru/basic/space/space-permission.mdx | 64 + ru/basic/sso/auth0.mdx | 139 + ru/basic/sso/authentik.mdx | 197 + ru/basic/sso/azure-entra-id.mdx | 180 + ru/basic/sso/google-workspace.mdx | 119 + ru/basic/sso/okta.mdx | 97 + ru/basic/sso/onelogin.mdx | 156 + ru/basic/sso/overview.mdx | 63 + ru/basic/table.mdx | 171 + ru/basic/table/export.mdx | 42 + ru/basic/table/import.mdx | 138 + ru/basic/view/calendar.mdx | 67 + ru/basic/view/form.mdx | 73 + ru/basic/view/gallery.mdx | 63 + ru/basic/view/grid.mdx | 123 + ru/basic/view/kanban.mdx | 76 + ru/basic/view/toolbar.mdx | 244 + ru/changelog-2024.mdx | 362 ++ ru/changelog-2025.mdx | 329 ++ ru/changelog.mdx | 4263 ++++++++++++++++ ru/compare/teable-vs-excel.mdx | 91 + ru/deploy/activate.mdx | 224 + ru/deploy/architecture.mdx | 164 + ru/deploy/choose.mdx | 48 + ru/deploy/dashboard.mdx | 41 + ru/deploy/docker.mdx | 467 ++ ru/deploy/email.mdx | 144 + ru/deploy/env.mdx | 169 + ru/deploy/nginx.mdx | 132 + ru/deploy/oidc.mdx | 85 + ru/deploy/one-key.mdx | 63 + ru/deploy/telemetry.mdx | 40 + ru/deploy/upgrade.mdx | 133 + tr/api-doc/error-code.mdx | 59 + tr/api-doc/get-id.mdx | 88 + tr/api-doc/oauth.mdx | 527 ++ tr/api-doc/overview.mdx | 63 + tr/api-doc/record/create.mdx | 243 + tr/api-doc/record/delete.mdx | 80 + tr/api-doc/record/get.mdx | 85 + tr/api-doc/record/interface.mdx | 449 ++ tr/api-doc/record/update.mdx | 210 + tr/api-doc/record/upload-attachment.mdx | 213 + tr/api-doc/sql-query.mdx | 145 + tr/api-doc/token.mdx | 31 + tr/basic/admin-panel/ai-generation-queue.mdx | 44 + tr/basic/admin-panel/ai-setting.mdx | 111 + tr/basic/admin-panel/announcements.mdx | 62 + tr/basic/admin-panel/audit-log.mdx | 44 + .../admin-panel/automation-management.mdx | 63 + tr/basic/admin-panel/computed-outbox.mdx | 106 + tr/basic/admin-panel/database-tenant.mdx | 31 + tr/basic/admin-panel/multitenancy.mdx | 145 + tr/basic/admin-panel/overview.mdx | 59 + tr/basic/admin-panel/sandbox-agent.mdx | 33 + tr/basic/admin-panel/settings.mdx | 103 + tr/basic/admin-panel/skills.mdx | 37 + tr/basic/admin-panel/spaces.mdx | 38 + tr/basic/admin-panel/table-query-ops.mdx | 81 + tr/basic/admin-panel/template-admin.mdx | 37 + tr/basic/admin-panel/users.mdx | 39 + tr/basic/ai/ai-chat.mdx | 288 ++ tr/basic/ai/app-builder-practical-guide.mdx | 274 ++ tr/basic/ai/app-builder.mdx | 329 ++ tr/basic/ai/connect-everything.mdx | 50 + .../connect-everything/migrate-airtable.mdx | 26 + .../ai/connect-everything/migrate-baserow.mdx | 26 + .../ai/connect-everything/migrate-clickup.mdx | 29 + .../ai/connect-everything/migrate-jira.mdx | 29 + .../ai/connect-everything/migrate-monday.mdx | 29 + .../ai/connect-everything/migrate-nocodb.mdx | 26 + .../migrate-project-management-tools.mdx | 42 + .../connect-everything/migrate-smartsheet.mdx | 29 + .../connect-everything/migrate-smartsuite.mdx | 26 + .../ai/connect-everything/more-sources.mdx | 24 + tr/basic/ai/custom-model.mdx | 109 + tr/basic/ai/overview.mdx | 50 + tr/basic/ai/teable-skill.mdx | 42 + tr/basic/authority-matrix.mdx | 95 + .../authority-matrix-practical-guide.mdx | 199 + tr/basic/automation.mdx | 87 + .../automation/actions/ai/ai-generate.mdx | 191 + tr/basic/automation/actions/ai/ai-script.mdx | 53 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 83 + .../automation/actions/logic/http-request.mdx | 134 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 78 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 40 + .../automation/examples/ai-email-digest.mdx | 40 + .../automation/examples/api-automation.mdx | 80 + tr/basic/automation/examples/batch-loop.mdx | 33 + .../examples/conditional-actions.mdx | 37 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 70 + .../automation/examples/recurring-records.mdx | 38 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 114 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 98 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 75 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 75 + .../trigger/records/record-updated.mdx | 96 + tr/basic/base.mdx | 167 + tr/basic/field.mdx | 74 + tr/basic/field/ai/ai-field.mdx | 154 + tr/basic/field/attachment.mdx | 75 + tr/basic/field/auto-number.mdx | 39 + tr/basic/field/button-practical-guide.mdx | 109 + tr/basic/field/button.mdx | 54 + tr/basic/field/checkbox.mdx | 56 + tr/basic/field/common/formatter.mdx | 66 + tr/basic/field/common/is-multiple-value.mdx | 62 + tr/basic/field/common/show-as.mdx | 37 + tr/basic/field/conditional-lookup.mdx | 118 + tr/basic/field/conditional-rollup.mdx | 95 + tr/basic/field/created-by.mdx | 41 + tr/basic/field/created-time.mdx | 48 + tr/basic/field/date.mdx | 57 + tr/basic/field/formula.mdx | 93 + tr/basic/field/formula/cheat-sheet.mdx | 113 + tr/basic/field/formula/grammar.mdx | 39 + tr/basic/field/last-modified-by.mdx | 41 + tr/basic/field/last-modified-time.mdx | 59 + tr/basic/field/link.mdx | 63 + tr/basic/field/long-text.mdx | 50 + tr/basic/field/lookup.mdx | 51 + tr/basic/field/multiple-select.mdx | 61 + tr/basic/field/number.mdx | 67 + tr/basic/field/rating.mdx | 52 + tr/basic/field/rollup.mdx | 72 + tr/basic/field/single-line-text.mdx | 57 + tr/basic/field/single-select.mdx | 60 + tr/basic/field/user.mdx | 51 + tr/basic/organization-panel/settings.mdx | 110 + tr/basic/record.mdx | 79 + tr/basic/record/archive-trash.mdx | 64 + tr/basic/record/comment.mdx | 68 + tr/basic/record/record-history.mdx | 62 + tr/basic/security.mdx | 184 + tr/basic/space.mdx | 110 + tr/basic/space/ai-setting.mdx | 12 + tr/basic/space/base-invite.mdx | 56 + tr/basic/space/billing.mdx | 273 ++ tr/basic/space/space-invite.mdx | 75 + tr/basic/space/space-permission.mdx | 63 + tr/basic/sso/auth0.mdx | 139 + tr/basic/sso/authentik.mdx | 196 + tr/basic/sso/azure-entra-id.mdx | 179 + tr/basic/sso/google-workspace.mdx | 119 + tr/basic/sso/okta.mdx | 97 + tr/basic/sso/onelogin.mdx | 156 + tr/basic/sso/overview.mdx | 62 + tr/basic/table.mdx | 170 + tr/basic/table/export.mdx | 41 + tr/basic/table/import.mdx | 138 + tr/basic/view/calendar.mdx | 67 + tr/basic/view/form.mdx | 73 + tr/basic/view/gallery.mdx | 63 + tr/basic/view/grid.mdx | 123 + tr/basic/view/kanban.mdx | 76 + tr/basic/view/toolbar.mdx | 244 + tr/changelog-2024.mdx | 362 ++ tr/changelog-2025.mdx | 330 ++ tr/changelog.mdx | 4267 ++++++++++++++++ tr/compare/teable-vs-excel.mdx | 91 + tr/deploy/activate.mdx | 224 + tr/deploy/architecture.mdx | 164 + tr/deploy/choose.mdx | 48 + tr/deploy/dashboard.mdx | 41 + tr/deploy/docker.mdx | 467 ++ tr/deploy/email.mdx | 144 + tr/deploy/env.mdx | 171 + tr/deploy/nginx.mdx | 132 + tr/deploy/oidc.mdx | 85 + tr/deploy/one-key.mdx | 62 + tr/deploy/telemetry.mdx | 40 + tr/deploy/upgrade.mdx | 133 + uk/api-doc/error-code.mdx | 58 + uk/api-doc/get-id.mdx | 88 + uk/api-doc/oauth.mdx | 527 ++ uk/api-doc/overview.mdx | 62 + uk/api-doc/record/create.mdx | 243 + uk/api-doc/record/delete.mdx | 80 + uk/api-doc/record/get.mdx | 85 + uk/api-doc/record/interface.mdx | 449 ++ uk/api-doc/record/update.mdx | 210 + uk/api-doc/record/upload-attachment.mdx | 213 + uk/api-doc/sql-query.mdx | 145 + uk/api-doc/token.mdx | 31 + uk/basic/admin-panel/ai-generation-queue.mdx | 44 + uk/basic/admin-panel/ai-setting.mdx | 111 + uk/basic/admin-panel/announcements.mdx | 62 + uk/basic/admin-panel/audit-log.mdx | 44 + .../admin-panel/automation-management.mdx | 63 + uk/basic/admin-panel/computed-outbox.mdx | 106 + uk/basic/admin-panel/database-tenant.mdx | 31 + uk/basic/admin-panel/multitenancy.mdx | 145 + uk/basic/admin-panel/overview.mdx | 59 + uk/basic/admin-panel/sandbox-agent.mdx | 33 + uk/basic/admin-panel/settings.mdx | 103 + uk/basic/admin-panel/skills.mdx | 37 + uk/basic/admin-panel/spaces.mdx | 38 + uk/basic/admin-panel/table-query-ops.mdx | 81 + uk/basic/admin-panel/template-admin.mdx | 37 + uk/basic/admin-panel/users.mdx | 39 + uk/basic/ai/ai-chat.mdx | 288 ++ uk/basic/ai/app-builder-practical-guide.mdx | 274 ++ uk/basic/ai/app-builder.mdx | 329 ++ uk/basic/ai/connect-everything.mdx | 51 + .../connect-everything/migrate-airtable.mdx | 27 + .../ai/connect-everything/migrate-baserow.mdx | 27 + .../ai/connect-everything/migrate-clickup.mdx | 30 + .../ai/connect-everything/migrate-jira.mdx | 30 + .../ai/connect-everything/migrate-monday.mdx | 30 + .../ai/connect-everything/migrate-nocodb.mdx | 27 + .../migrate-project-management-tools.mdx | 42 + .../connect-everything/migrate-smartsheet.mdx | 29 + .../connect-everything/migrate-smartsuite.mdx | 26 + .../ai/connect-everything/more-sources.mdx | 24 + uk/basic/ai/custom-model.mdx | 109 + uk/basic/ai/overview.mdx | 50 + uk/basic/ai/teable-skill.mdx | 42 + uk/basic/authority-matrix.mdx | 122 + .../authority-matrix-practical-guide.mdx | 218 + uk/basic/automation.mdx | 87 + .../automation/actions/ai/ai-generate.mdx | 191 + uk/basic/automation/actions/ai/ai-script.mdx | 53 + .../communication/send-email-overview.mdx | 103 + .../actions/communication/smtp-sender.mdx | 83 + .../automation/actions/logic/http-request.mdx | 134 + .../automation/actions/logic/loop-run.mdx | 104 + .../actions/manual/conditional-logic.mdx | 78 + .../actions/records/create-record.mdx | 78 + .../automation/actions/records/cross-base.mdx | 83 + .../actions/records/get-records.mdx | 90 + .../actions/records/update-record.mdx | 103 + .../automation/ai/scripting/runscript.mdx | 290 ++ .../automation/examples/ai-classify-forms.mdx | 40 + .../automation/examples/ai-email-digest.mdx | 40 + .../automation/examples/api-automation.mdx | 80 + uk/basic/automation/examples/batch-loop.mdx | 33 + .../examples/conditional-actions.mdx | 37 + .../automation/examples/cross-base-sync.mdx | 36 + .../examples/deadline-reminders.mdx | 34 + .../examples/prevent-unwanted-triggers.mdx | 45 + .../examples/push-notifications.mdx | 70 + .../automation/examples/recurring-records.mdx | 38 + .../automation/examples/timestamp-status.mdx | 36 + .../trigger/email/email-received-overview.mdx | 114 + .../automation/trigger/email/gmail-imap.mdx | 50 + .../trigger/external/scheduled-time.mdx | 98 + .../trigger/external/webhook-received.mdx | 155 + .../automation/trigger/forms/button-click.mdx | 78 + .../trigger/forms/form-submitted.mdx | 75 + .../trigger/records/record-created.mdx | 77 + .../records/record-matches-conditions.mdx | 75 + .../trigger/records/record-updated.mdx | 96 + uk/basic/base.mdx | 167 + uk/basic/field.mdx | 74 + uk/basic/field/ai/ai-field.mdx | 154 + uk/basic/field/attachment.mdx | 75 + uk/basic/field/auto-number.mdx | 39 + uk/basic/field/button-practical-guide.mdx | 109 + uk/basic/field/button.mdx | 54 + uk/basic/field/checkbox.mdx | 56 + uk/basic/field/common/formatter.mdx | 66 + uk/basic/field/common/is-multiple-value.mdx | 62 + uk/basic/field/common/show-as.mdx | 37 + uk/basic/field/conditional-lookup.mdx | 118 + uk/basic/field/conditional-rollup.mdx | 95 + uk/basic/field/created-by.mdx | 41 + uk/basic/field/created-time.mdx | 48 + uk/basic/field/date.mdx | 57 + uk/basic/field/formula.mdx | 93 + uk/basic/field/formula/cheat-sheet.mdx | 113 + uk/basic/field/formula/grammar.mdx | 39 + uk/basic/field/last-modified-by.mdx | 41 + uk/basic/field/last-modified-time.mdx | 59 + uk/basic/field/link.mdx | 63 + uk/basic/field/long-text.mdx | 50 + uk/basic/field/lookup.mdx | 51 + uk/basic/field/multiple-select.mdx | 61 + uk/basic/field/number.mdx | 67 + uk/basic/field/rating.mdx | 52 + uk/basic/field/rollup.mdx | 72 + uk/basic/field/single-line-text.mdx | 57 + uk/basic/field/single-select.mdx | 60 + uk/basic/field/user.mdx | 51 + uk/basic/organization-panel/settings.mdx | 110 + uk/basic/record.mdx | 79 + uk/basic/record/archive-trash.mdx | 64 + uk/basic/record/comment.mdx | 68 + uk/basic/record/record-history.mdx | 62 + uk/basic/security.mdx | 184 + uk/basic/space.mdx | 110 + uk/basic/space/ai-setting.mdx | 12 + uk/basic/space/base-invite.mdx | 56 + uk/basic/space/billing.mdx | 273 ++ uk/basic/space/space-invite.mdx | 75 + uk/basic/space/space-permission.mdx | 63 + uk/basic/sso/auth0.mdx | 139 + uk/basic/sso/authentik.mdx | 196 + uk/basic/sso/azure-entra-id.mdx | 179 + uk/basic/sso/google-workspace.mdx | 119 + uk/basic/sso/okta.mdx | 97 + uk/basic/sso/onelogin.mdx | 156 + uk/basic/sso/overview.mdx | 62 + uk/basic/table.mdx | 170 + uk/basic/table/export.mdx | 41 + uk/basic/table/import.mdx | 138 + uk/basic/view/calendar.mdx | 67 + uk/basic/view/form.mdx | 73 + uk/basic/view/gallery.mdx | 63 + uk/basic/view/grid.mdx | 123 + uk/basic/view/kanban.mdx | 76 + uk/basic/view/toolbar.mdx | 244 + uk/changelog-2024.mdx | 362 ++ uk/changelog-2025.mdx | 329 ++ uk/changelog.mdx | 4268 +++++++++++++++++ uk/compare/teable-vs-excel.mdx | 91 + uk/deploy/activate.mdx | 224 + uk/deploy/architecture.mdx | 166 + uk/deploy/choose.mdx | 48 + uk/deploy/dashboard.mdx | 41 + uk/deploy/docker.mdx | 467 ++ uk/deploy/email.mdx | 144 + uk/deploy/env.mdx | 168 + uk/deploy/nginx.mdx | 132 + uk/deploy/oidc.mdx | 85 + uk/deploy/one-key.mdx | 62 + uk/deploy/telemetry.mdx | 40 + uk/deploy/upgrade.mdx | 132 + zh/basic/organization-panel/settings.mdx | 4 +- zh/changelog.mdx | 53 + 1409 files changed, 182085 insertions(+), 17 deletions(-) create mode 100644 ar/api-doc/error-code.mdx create mode 100644 ar/api-doc/get-id.mdx create mode 100644 ar/api-doc/oauth.mdx create mode 100644 ar/api-doc/overview.mdx create mode 100644 ar/api-doc/record/create.mdx create mode 100644 ar/api-doc/record/delete.mdx create mode 100644 ar/api-doc/record/get.mdx create mode 100644 ar/api-doc/record/interface.mdx create mode 100644 ar/api-doc/record/update.mdx create mode 100644 ar/api-doc/record/upload-attachment.mdx create mode 100644 ar/api-doc/sql-query.mdx create mode 100644 ar/api-doc/token.mdx create mode 100644 ar/basic/admin-panel/ai-generation-queue.mdx create mode 100644 ar/basic/admin-panel/ai-setting.mdx create mode 100644 ar/basic/admin-panel/announcements.mdx create mode 100644 ar/basic/admin-panel/audit-log.mdx create mode 100644 ar/basic/admin-panel/automation-management.mdx create mode 100644 ar/basic/admin-panel/computed-outbox.mdx create mode 100644 ar/basic/admin-panel/database-tenant.mdx create mode 100644 ar/basic/admin-panel/multitenancy.mdx create mode 100644 ar/basic/admin-panel/overview.mdx create mode 100644 ar/basic/admin-panel/sandbox-agent.mdx create mode 100644 ar/basic/admin-panel/settings.mdx create mode 100644 ar/basic/admin-panel/skills.mdx create mode 100644 ar/basic/admin-panel/spaces.mdx create mode 100644 ar/basic/admin-panel/table-query-ops.mdx create mode 100644 ar/basic/admin-panel/template-admin.mdx create mode 100644 ar/basic/admin-panel/users.mdx create mode 100644 ar/basic/ai/ai-chat.mdx create mode 100644 ar/basic/ai/app-builder-practical-guide.mdx create mode 100644 ar/basic/ai/app-builder.mdx create mode 100644 ar/basic/ai/connect-everything.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 ar/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 ar/basic/ai/connect-everything/more-sources.mdx create mode 100644 ar/basic/ai/custom-model.mdx create mode 100644 ar/basic/ai/overview.mdx create mode 100644 ar/basic/ai/teable-skill.mdx create mode 100644 ar/basic/authority-matrix.mdx create mode 100644 ar/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 ar/basic/automation.mdx create mode 100644 ar/basic/automation/actions/ai/ai-generate.mdx create mode 100644 ar/basic/automation/actions/ai/ai-script.mdx create mode 100644 ar/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 ar/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 ar/basic/automation/actions/logic/http-request.mdx create mode 100644 ar/basic/automation/actions/logic/loop-run.mdx create mode 100644 ar/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 ar/basic/automation/actions/records/create-record.mdx create mode 100644 ar/basic/automation/actions/records/cross-base.mdx create mode 100644 ar/basic/automation/actions/records/get-records.mdx create mode 100644 ar/basic/automation/actions/records/update-record.mdx create mode 100644 ar/basic/automation/ai/scripting/runscript.mdx create mode 100644 ar/basic/automation/examples/ai-classify-forms.mdx create mode 100644 ar/basic/automation/examples/ai-email-digest.mdx create mode 100644 ar/basic/automation/examples/api-automation.mdx create mode 100644 ar/basic/automation/examples/batch-loop.mdx create mode 100644 ar/basic/automation/examples/conditional-actions.mdx create mode 100644 ar/basic/automation/examples/cross-base-sync.mdx create mode 100644 ar/basic/automation/examples/deadline-reminders.mdx create mode 100644 ar/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 ar/basic/automation/examples/push-notifications.mdx create mode 100644 ar/basic/automation/examples/recurring-records.mdx create mode 100644 ar/basic/automation/examples/timestamp-status.mdx create mode 100644 ar/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 ar/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 ar/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 ar/basic/automation/trigger/external/webhook-received.mdx create mode 100644 ar/basic/automation/trigger/forms/button-click.mdx create mode 100644 ar/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 ar/basic/automation/trigger/records/record-created.mdx create mode 100644 ar/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 ar/basic/automation/trigger/records/record-updated.mdx create mode 100644 ar/basic/base.mdx create mode 100644 ar/basic/field.mdx create mode 100644 ar/basic/field/ai/ai-field.mdx create mode 100644 ar/basic/field/attachment.mdx create mode 100644 ar/basic/field/auto-number.mdx create mode 100644 ar/basic/field/button-practical-guide.mdx create mode 100644 ar/basic/field/button.mdx create mode 100644 ar/basic/field/checkbox.mdx create mode 100644 ar/basic/field/common/formatter.mdx create mode 100644 ar/basic/field/common/is-multiple-value.mdx create mode 100644 ar/basic/field/common/show-as.mdx create mode 100644 ar/basic/field/conditional-lookup.mdx create mode 100644 ar/basic/field/conditional-rollup.mdx create mode 100644 ar/basic/field/created-by.mdx create mode 100644 ar/basic/field/created-time.mdx create mode 100644 ar/basic/field/date.mdx create mode 100644 ar/basic/field/formula.mdx create mode 100644 ar/basic/field/formula/cheat-sheet.mdx create mode 100644 ar/basic/field/formula/grammar.mdx create mode 100644 ar/basic/field/last-modified-by.mdx create mode 100644 ar/basic/field/last-modified-time.mdx create mode 100644 ar/basic/field/link.mdx create mode 100644 ar/basic/field/long-text.mdx create mode 100644 ar/basic/field/lookup.mdx create mode 100644 ar/basic/field/multiple-select.mdx create mode 100644 ar/basic/field/number.mdx create mode 100644 ar/basic/field/rating.mdx create mode 100644 ar/basic/field/rollup.mdx create mode 100644 ar/basic/field/single-line-text.mdx create mode 100644 ar/basic/field/single-select.mdx create mode 100644 ar/basic/field/user.mdx create mode 100644 ar/basic/organization-panel/settings.mdx create mode 100644 ar/basic/record.mdx create mode 100644 ar/basic/record/archive-trash.mdx create mode 100644 ar/basic/record/comment.mdx create mode 100644 ar/basic/record/record-history.mdx create mode 100644 ar/basic/security.mdx create mode 100644 ar/basic/space.mdx create mode 100644 ar/basic/space/ai-setting.mdx create mode 100644 ar/basic/space/base-invite.mdx create mode 100644 ar/basic/space/billing.mdx create mode 100644 ar/basic/space/space-invite.mdx create mode 100644 ar/basic/space/space-permission.mdx create mode 100644 ar/basic/sso/auth0.mdx create mode 100644 ar/basic/sso/authentik.mdx create mode 100644 ar/basic/sso/azure-entra-id.mdx create mode 100644 ar/basic/sso/google-workspace.mdx create mode 100644 ar/basic/sso/okta.mdx create mode 100644 ar/basic/sso/onelogin.mdx create mode 100644 ar/basic/sso/overview.mdx create mode 100644 ar/basic/table.mdx create mode 100644 ar/basic/table/export.mdx create mode 100644 ar/basic/table/import.mdx create mode 100644 ar/basic/view/calendar.mdx create mode 100644 ar/basic/view/form.mdx create mode 100644 ar/basic/view/gallery.mdx create mode 100644 ar/basic/view/grid.mdx create mode 100644 ar/basic/view/kanban.mdx create mode 100644 ar/basic/view/toolbar.mdx create mode 100644 ar/changelog-2024.mdx create mode 100644 ar/changelog-2025.mdx create mode 100644 ar/changelog.mdx create mode 100644 ar/compare/teable-vs-excel.mdx create mode 100644 ar/deploy/activate.mdx create mode 100644 ar/deploy/architecture.mdx create mode 100644 ar/deploy/choose.mdx create mode 100644 ar/deploy/dashboard.mdx create mode 100644 ar/deploy/docker.mdx create mode 100644 ar/deploy/email.mdx create mode 100644 ar/deploy/env.mdx create mode 100644 ar/deploy/nginx.mdx create mode 100644 ar/deploy/oidc.mdx create mode 100644 ar/deploy/one-key.mdx create mode 100644 ar/deploy/telemetry.mdx create mode 100644 ar/deploy/upgrade.mdx create mode 100644 de/api-doc/error-code.mdx create mode 100644 de/api-doc/get-id.mdx create mode 100644 de/api-doc/oauth.mdx create mode 100644 de/api-doc/overview.mdx create mode 100644 de/api-doc/record/create.mdx create mode 100644 de/api-doc/record/delete.mdx create mode 100644 de/api-doc/record/get.mdx create mode 100644 de/api-doc/record/interface.mdx create mode 100644 de/api-doc/record/update.mdx create mode 100644 de/api-doc/record/upload-attachment.mdx create mode 100644 de/api-doc/sql-query.mdx create mode 100644 de/api-doc/token.mdx create mode 100644 de/basic/admin-panel/ai-generation-queue.mdx create mode 100644 de/basic/admin-panel/ai-setting.mdx create mode 100644 de/basic/admin-panel/announcements.mdx create mode 100644 de/basic/admin-panel/audit-log.mdx create mode 100644 de/basic/admin-panel/automation-management.mdx create mode 100644 de/basic/admin-panel/computed-outbox.mdx create mode 100644 de/basic/admin-panel/database-tenant.mdx create mode 100644 de/basic/admin-panel/multitenancy.mdx create mode 100644 de/basic/admin-panel/overview.mdx create mode 100644 de/basic/admin-panel/sandbox-agent.mdx create mode 100644 de/basic/admin-panel/settings.mdx create mode 100644 de/basic/admin-panel/skills.mdx create mode 100644 de/basic/admin-panel/spaces.mdx create mode 100644 de/basic/admin-panel/table-query-ops.mdx create mode 100644 de/basic/admin-panel/template-admin.mdx create mode 100644 de/basic/admin-panel/users.mdx create mode 100644 de/basic/ai/ai-chat.mdx create mode 100644 de/basic/ai/app-builder-practical-guide.mdx create mode 100644 de/basic/ai/app-builder.mdx create mode 100644 de/basic/ai/connect-everything.mdx create mode 100644 de/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 de/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 de/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 de/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 de/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 de/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 de/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 de/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 de/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 de/basic/ai/connect-everything/more-sources.mdx create mode 100644 de/basic/ai/custom-model.mdx create mode 100644 de/basic/ai/overview.mdx create mode 100644 de/basic/ai/teable-skill.mdx create mode 100644 de/basic/authority-matrix.mdx create mode 100644 de/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 de/basic/automation.mdx create mode 100644 de/basic/automation/actions/ai/ai-generate.mdx create mode 100644 de/basic/automation/actions/ai/ai-script.mdx create mode 100644 de/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 de/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 de/basic/automation/actions/logic/http-request.mdx create mode 100644 de/basic/automation/actions/logic/loop-run.mdx create mode 100644 de/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 de/basic/automation/actions/records/create-record.mdx create mode 100644 de/basic/automation/actions/records/cross-base.mdx create mode 100644 de/basic/automation/actions/records/get-records.mdx create mode 100644 de/basic/automation/actions/records/update-record.mdx create mode 100644 de/basic/automation/ai/scripting/runscript.mdx create mode 100644 de/basic/automation/examples/ai-classify-forms.mdx create mode 100644 de/basic/automation/examples/ai-email-digest.mdx create mode 100644 de/basic/automation/examples/api-automation.mdx create mode 100644 de/basic/automation/examples/batch-loop.mdx create mode 100644 de/basic/automation/examples/conditional-actions.mdx create mode 100644 de/basic/automation/examples/cross-base-sync.mdx create mode 100644 de/basic/automation/examples/deadline-reminders.mdx create mode 100644 de/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 de/basic/automation/examples/push-notifications.mdx create mode 100644 de/basic/automation/examples/recurring-records.mdx create mode 100644 de/basic/automation/examples/timestamp-status.mdx create mode 100644 de/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 de/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 de/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 de/basic/automation/trigger/external/webhook-received.mdx create mode 100644 de/basic/automation/trigger/forms/button-click.mdx create mode 100644 de/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 de/basic/automation/trigger/records/record-created.mdx create mode 100644 de/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 de/basic/automation/trigger/records/record-updated.mdx create mode 100644 de/basic/base.mdx create mode 100644 de/basic/field.mdx create mode 100644 de/basic/field/ai/ai-field.mdx create mode 100644 de/basic/field/attachment.mdx create mode 100644 de/basic/field/auto-number.mdx create mode 100644 de/basic/field/button-practical-guide.mdx create mode 100644 de/basic/field/button.mdx create mode 100644 de/basic/field/checkbox.mdx create mode 100644 de/basic/field/common/formatter.mdx create mode 100644 de/basic/field/common/is-multiple-value.mdx create mode 100644 de/basic/field/common/show-as.mdx create mode 100644 de/basic/field/conditional-lookup.mdx create mode 100644 de/basic/field/conditional-rollup.mdx create mode 100644 de/basic/field/created-by.mdx create mode 100644 de/basic/field/created-time.mdx create mode 100644 de/basic/field/date.mdx create mode 100644 de/basic/field/formula.mdx create mode 100644 de/basic/field/formula/cheat-sheet.mdx create mode 100644 de/basic/field/formula/grammar.mdx create mode 100644 de/basic/field/last-modified-by.mdx create mode 100644 de/basic/field/last-modified-time.mdx create mode 100644 de/basic/field/link.mdx create mode 100644 de/basic/field/long-text.mdx create mode 100644 de/basic/field/lookup.mdx create mode 100644 de/basic/field/multiple-select.mdx create mode 100644 de/basic/field/number.mdx create mode 100644 de/basic/field/rating.mdx create mode 100644 de/basic/field/rollup.mdx create mode 100644 de/basic/field/single-line-text.mdx create mode 100644 de/basic/field/single-select.mdx create mode 100644 de/basic/field/user.mdx create mode 100644 de/basic/organization-panel/settings.mdx create mode 100644 de/basic/record.mdx create mode 100644 de/basic/record/archive-trash.mdx create mode 100644 de/basic/record/comment.mdx create mode 100644 de/basic/record/record-history.mdx create mode 100644 de/basic/security.mdx create mode 100644 de/basic/space.mdx create mode 100644 de/basic/space/ai-setting.mdx create mode 100644 de/basic/space/base-invite.mdx create mode 100644 de/basic/space/billing.mdx create mode 100644 de/basic/space/space-invite.mdx create mode 100644 de/basic/space/space-permission.mdx create mode 100644 de/basic/sso/auth0.mdx create mode 100644 de/basic/sso/authentik.mdx create mode 100644 de/basic/sso/azure-entra-id.mdx create mode 100644 de/basic/sso/google-workspace.mdx create mode 100644 de/basic/sso/okta.mdx create mode 100644 de/basic/sso/onelogin.mdx create mode 100644 de/basic/sso/overview.mdx create mode 100644 de/basic/table.mdx create mode 100644 de/basic/table/export.mdx create mode 100644 de/basic/table/import.mdx create mode 100644 de/basic/view/calendar.mdx create mode 100644 de/basic/view/form.mdx create mode 100644 de/basic/view/gallery.mdx create mode 100644 de/basic/view/grid.mdx create mode 100644 de/basic/view/kanban.mdx create mode 100644 de/basic/view/toolbar.mdx create mode 100644 de/changelog-2024.mdx create mode 100644 de/changelog-2025.mdx create mode 100644 de/changelog.mdx create mode 100644 de/compare/teable-vs-excel.mdx create mode 100644 de/deploy/activate.mdx create mode 100644 de/deploy/architecture.mdx create mode 100644 de/deploy/choose.mdx create mode 100644 de/deploy/dashboard.mdx create mode 100644 de/deploy/docker.mdx create mode 100644 de/deploy/email.mdx create mode 100644 de/deploy/env.mdx create mode 100644 de/deploy/nginx.mdx create mode 100644 de/deploy/oidc.mdx create mode 100644 de/deploy/one-key.mdx create mode 100644 de/deploy/telemetry.mdx create mode 100644 de/deploy/upgrade.mdx create mode 100644 es/api-doc/error-code.mdx create mode 100644 es/api-doc/get-id.mdx create mode 100644 es/api-doc/oauth.mdx create mode 100644 es/api-doc/overview.mdx create mode 100644 es/api-doc/record/create.mdx create mode 100644 es/api-doc/record/delete.mdx create mode 100644 es/api-doc/record/get.mdx create mode 100644 es/api-doc/record/interface.mdx create mode 100644 es/api-doc/record/update.mdx create mode 100644 es/api-doc/record/upload-attachment.mdx create mode 100644 es/api-doc/sql-query.mdx create mode 100644 es/api-doc/token.mdx create mode 100644 es/basic/admin-panel/ai-generation-queue.mdx create mode 100644 es/basic/admin-panel/ai-setting.mdx create mode 100644 es/basic/admin-panel/announcements.mdx create mode 100644 es/basic/admin-panel/audit-log.mdx create mode 100644 es/basic/admin-panel/automation-management.mdx create mode 100644 es/basic/admin-panel/computed-outbox.mdx create mode 100644 es/basic/admin-panel/database-tenant.mdx create mode 100644 es/basic/admin-panel/multitenancy.mdx create mode 100644 es/basic/admin-panel/overview.mdx create mode 100644 es/basic/admin-panel/sandbox-agent.mdx create mode 100644 es/basic/admin-panel/settings.mdx create mode 100644 es/basic/admin-panel/skills.mdx create mode 100644 es/basic/admin-panel/spaces.mdx create mode 100644 es/basic/admin-panel/table-query-ops.mdx create mode 100644 es/basic/admin-panel/template-admin.mdx create mode 100644 es/basic/admin-panel/users.mdx create mode 100644 es/basic/ai/ai-chat.mdx create mode 100644 es/basic/ai/app-builder-practical-guide.mdx create mode 100644 es/basic/ai/app-builder.mdx create mode 100644 es/basic/ai/connect-everything.mdx create mode 100644 es/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 es/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 es/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 es/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 es/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 es/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 es/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 es/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 es/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 es/basic/ai/connect-everything/more-sources.mdx create mode 100644 es/basic/ai/custom-model.mdx create mode 100644 es/basic/ai/overview.mdx create mode 100644 es/basic/ai/teable-skill.mdx create mode 100644 es/basic/authority-matrix.mdx create mode 100644 es/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 es/basic/automation.mdx create mode 100644 es/basic/automation/actions/ai/ai-generate.mdx create mode 100644 es/basic/automation/actions/ai/ai-script.mdx create mode 100644 es/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 es/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 es/basic/automation/actions/logic/http-request.mdx create mode 100644 es/basic/automation/actions/logic/loop-run.mdx create mode 100644 es/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 es/basic/automation/actions/records/create-record.mdx create mode 100644 es/basic/automation/actions/records/cross-base.mdx create mode 100644 es/basic/automation/actions/records/get-records.mdx create mode 100644 es/basic/automation/actions/records/update-record.mdx create mode 100644 es/basic/automation/ai/scripting/runscript.mdx create mode 100644 es/basic/automation/examples/ai-classify-forms.mdx create mode 100644 es/basic/automation/examples/ai-email-digest.mdx create mode 100644 es/basic/automation/examples/api-automation.mdx create mode 100644 es/basic/automation/examples/batch-loop.mdx create mode 100644 es/basic/automation/examples/conditional-actions.mdx create mode 100644 es/basic/automation/examples/cross-base-sync.mdx create mode 100644 es/basic/automation/examples/deadline-reminders.mdx create mode 100644 es/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 es/basic/automation/examples/push-notifications.mdx create mode 100644 es/basic/automation/examples/recurring-records.mdx create mode 100644 es/basic/automation/examples/timestamp-status.mdx create mode 100644 es/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 es/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 es/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 es/basic/automation/trigger/external/webhook-received.mdx create mode 100644 es/basic/automation/trigger/forms/button-click.mdx create mode 100644 es/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 es/basic/automation/trigger/records/record-created.mdx create mode 100644 es/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 es/basic/automation/trigger/records/record-updated.mdx create mode 100644 es/basic/base.mdx create mode 100644 es/basic/field.mdx create mode 100644 es/basic/field/ai/ai-field.mdx create mode 100644 es/basic/field/attachment.mdx create mode 100644 es/basic/field/auto-number.mdx create mode 100644 es/basic/field/button-practical-guide.mdx create mode 100644 es/basic/field/button.mdx create mode 100644 es/basic/field/checkbox.mdx create mode 100644 es/basic/field/common/formatter.mdx create mode 100644 es/basic/field/common/is-multiple-value.mdx create mode 100644 es/basic/field/common/show-as.mdx create mode 100644 es/basic/field/conditional-lookup.mdx create mode 100644 es/basic/field/conditional-rollup.mdx create mode 100644 es/basic/field/created-by.mdx create mode 100644 es/basic/field/created-time.mdx create mode 100644 es/basic/field/date.mdx create mode 100644 es/basic/field/formula.mdx create mode 100644 es/basic/field/formula/cheat-sheet.mdx create mode 100644 es/basic/field/formula/grammar.mdx create mode 100644 es/basic/field/last-modified-by.mdx create mode 100644 es/basic/field/last-modified-time.mdx create mode 100644 es/basic/field/link.mdx create mode 100644 es/basic/field/long-text.mdx create mode 100644 es/basic/field/lookup.mdx create mode 100644 es/basic/field/multiple-select.mdx create mode 100644 es/basic/field/number.mdx create mode 100644 es/basic/field/rating.mdx create mode 100644 es/basic/field/rollup.mdx create mode 100644 es/basic/field/single-line-text.mdx create mode 100644 es/basic/field/single-select.mdx create mode 100644 es/basic/field/user.mdx create mode 100644 es/basic/organization-panel/settings.mdx create mode 100644 es/basic/record.mdx create mode 100644 es/basic/record/archive-trash.mdx create mode 100644 es/basic/record/comment.mdx create mode 100644 es/basic/record/record-history.mdx create mode 100644 es/basic/security.mdx create mode 100644 es/basic/space.mdx create mode 100644 es/basic/space/ai-setting.mdx create mode 100644 es/basic/space/base-invite.mdx create mode 100644 es/basic/space/billing.mdx create mode 100644 es/basic/space/space-invite.mdx create mode 100644 es/basic/space/space-permission.mdx create mode 100644 es/basic/sso/auth0.mdx create mode 100644 es/basic/sso/authentik.mdx create mode 100644 es/basic/sso/azure-entra-id.mdx create mode 100644 es/basic/sso/google-workspace.mdx create mode 100644 es/basic/sso/okta.mdx create mode 100644 es/basic/sso/onelogin.mdx create mode 100644 es/basic/sso/overview.mdx create mode 100644 es/basic/table.mdx create mode 100644 es/basic/table/export.mdx create mode 100644 es/basic/table/import.mdx create mode 100644 es/basic/view/calendar.mdx create mode 100644 es/basic/view/form.mdx create mode 100644 es/basic/view/gallery.mdx create mode 100644 es/basic/view/grid.mdx create mode 100644 es/basic/view/kanban.mdx create mode 100644 es/basic/view/toolbar.mdx create mode 100644 es/changelog-2024.mdx create mode 100644 es/changelog-2025.mdx create mode 100644 es/changelog.mdx create mode 100644 es/compare/teable-vs-excel.mdx create mode 100644 es/deploy/activate.mdx create mode 100644 es/deploy/architecture.mdx create mode 100644 es/deploy/choose.mdx create mode 100644 es/deploy/dashboard.mdx create mode 100644 es/deploy/docker.mdx create mode 100644 es/deploy/email.mdx create mode 100644 es/deploy/env.mdx create mode 100644 es/deploy/nginx.mdx create mode 100644 es/deploy/oidc.mdx create mode 100644 es/deploy/one-key.mdx create mode 100644 es/deploy/telemetry.mdx create mode 100644 es/deploy/upgrade.mdx create mode 100644 fr/api-doc/error-code.mdx create mode 100644 fr/api-doc/get-id.mdx create mode 100644 fr/api-doc/oauth.mdx create mode 100644 fr/api-doc/overview.mdx create mode 100644 fr/api-doc/record/create.mdx create mode 100644 fr/api-doc/record/delete.mdx create mode 100644 fr/api-doc/record/get.mdx create mode 100644 fr/api-doc/record/interface.mdx create mode 100644 fr/api-doc/record/update.mdx create mode 100644 fr/api-doc/record/upload-attachment.mdx create mode 100644 fr/api-doc/sql-query.mdx create mode 100644 fr/api-doc/token.mdx create mode 100644 fr/basic/admin-panel/ai-generation-queue.mdx create mode 100644 fr/basic/admin-panel/ai-setting.mdx create mode 100644 fr/basic/admin-panel/announcements.mdx create mode 100644 fr/basic/admin-panel/audit-log.mdx create mode 100644 fr/basic/admin-panel/automation-management.mdx create mode 100644 fr/basic/admin-panel/computed-outbox.mdx create mode 100644 fr/basic/admin-panel/database-tenant.mdx create mode 100644 fr/basic/admin-panel/multitenancy.mdx create mode 100644 fr/basic/admin-panel/overview.mdx create mode 100644 fr/basic/admin-panel/sandbox-agent.mdx create mode 100644 fr/basic/admin-panel/settings.mdx create mode 100644 fr/basic/admin-panel/skills.mdx create mode 100644 fr/basic/admin-panel/spaces.mdx create mode 100644 fr/basic/admin-panel/table-query-ops.mdx create mode 100644 fr/basic/admin-panel/template-admin.mdx create mode 100644 fr/basic/admin-panel/users.mdx create mode 100644 fr/basic/ai/ai-chat.mdx create mode 100644 fr/basic/ai/app-builder-practical-guide.mdx create mode 100644 fr/basic/ai/app-builder.mdx create mode 100644 fr/basic/ai/connect-everything.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 fr/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 fr/basic/ai/connect-everything/more-sources.mdx create mode 100644 fr/basic/ai/custom-model.mdx create mode 100644 fr/basic/ai/overview.mdx create mode 100644 fr/basic/ai/teable-skill.mdx create mode 100644 fr/basic/authority-matrix.mdx create mode 100644 fr/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 fr/basic/automation.mdx create mode 100644 fr/basic/automation/actions/ai/ai-generate.mdx create mode 100644 fr/basic/automation/actions/ai/ai-script.mdx create mode 100644 fr/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 fr/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 fr/basic/automation/actions/logic/http-request.mdx create mode 100644 fr/basic/automation/actions/logic/loop-run.mdx create mode 100644 fr/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 fr/basic/automation/actions/records/create-record.mdx create mode 100644 fr/basic/automation/actions/records/cross-base.mdx create mode 100644 fr/basic/automation/actions/records/get-records.mdx create mode 100644 fr/basic/automation/actions/records/update-record.mdx create mode 100644 fr/basic/automation/ai/scripting/runscript.mdx create mode 100644 fr/basic/automation/examples/ai-classify-forms.mdx create mode 100644 fr/basic/automation/examples/ai-email-digest.mdx create mode 100644 fr/basic/automation/examples/api-automation.mdx create mode 100644 fr/basic/automation/examples/batch-loop.mdx create mode 100644 fr/basic/automation/examples/conditional-actions.mdx create mode 100644 fr/basic/automation/examples/cross-base-sync.mdx create mode 100644 fr/basic/automation/examples/deadline-reminders.mdx create mode 100644 fr/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 fr/basic/automation/examples/push-notifications.mdx create mode 100644 fr/basic/automation/examples/recurring-records.mdx create mode 100644 fr/basic/automation/examples/timestamp-status.mdx create mode 100644 fr/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 fr/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 fr/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 fr/basic/automation/trigger/external/webhook-received.mdx create mode 100644 fr/basic/automation/trigger/forms/button-click.mdx create mode 100644 fr/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 fr/basic/automation/trigger/records/record-created.mdx create mode 100644 fr/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 fr/basic/automation/trigger/records/record-updated.mdx create mode 100644 fr/basic/base.mdx create mode 100644 fr/basic/field.mdx create mode 100644 fr/basic/field/ai/ai-field.mdx create mode 100644 fr/basic/field/attachment.mdx create mode 100644 fr/basic/field/auto-number.mdx create mode 100644 fr/basic/field/button-practical-guide.mdx create mode 100644 fr/basic/field/button.mdx create mode 100644 fr/basic/field/checkbox.mdx create mode 100644 fr/basic/field/common/formatter.mdx create mode 100644 fr/basic/field/common/is-multiple-value.mdx create mode 100644 fr/basic/field/common/show-as.mdx create mode 100644 fr/basic/field/conditional-lookup.mdx create mode 100644 fr/basic/field/conditional-rollup.mdx create mode 100644 fr/basic/field/created-by.mdx create mode 100644 fr/basic/field/created-time.mdx create mode 100644 fr/basic/field/date.mdx create mode 100644 fr/basic/field/formula.mdx create mode 100644 fr/basic/field/formula/cheat-sheet.mdx create mode 100644 fr/basic/field/formula/grammar.mdx create mode 100644 fr/basic/field/last-modified-by.mdx create mode 100644 fr/basic/field/last-modified-time.mdx create mode 100644 fr/basic/field/link.mdx create mode 100644 fr/basic/field/long-text.mdx create mode 100644 fr/basic/field/lookup.mdx create mode 100644 fr/basic/field/multiple-select.mdx create mode 100644 fr/basic/field/number.mdx create mode 100644 fr/basic/field/rating.mdx create mode 100644 fr/basic/field/rollup.mdx create mode 100644 fr/basic/field/single-line-text.mdx create mode 100644 fr/basic/field/single-select.mdx create mode 100644 fr/basic/field/user.mdx create mode 100644 fr/basic/organization-panel/settings.mdx create mode 100644 fr/basic/record.mdx create mode 100644 fr/basic/record/archive-trash.mdx create mode 100644 fr/basic/record/comment.mdx create mode 100644 fr/basic/record/record-history.mdx create mode 100644 fr/basic/security.mdx create mode 100644 fr/basic/space.mdx create mode 100644 fr/basic/space/ai-setting.mdx create mode 100644 fr/basic/space/base-invite.mdx create mode 100644 fr/basic/space/billing.mdx create mode 100644 fr/basic/space/space-invite.mdx create mode 100644 fr/basic/space/space-permission.mdx create mode 100644 fr/basic/sso/auth0.mdx create mode 100644 fr/basic/sso/authentik.mdx create mode 100644 fr/basic/sso/azure-entra-id.mdx create mode 100644 fr/basic/sso/google-workspace.mdx create mode 100644 fr/basic/sso/okta.mdx create mode 100644 fr/basic/sso/onelogin.mdx create mode 100644 fr/basic/sso/overview.mdx create mode 100644 fr/basic/table.mdx create mode 100644 fr/basic/table/export.mdx create mode 100644 fr/basic/table/import.mdx create mode 100644 fr/basic/view/calendar.mdx create mode 100644 fr/basic/view/form.mdx create mode 100644 fr/basic/view/gallery.mdx create mode 100644 fr/basic/view/grid.mdx create mode 100644 fr/basic/view/kanban.mdx create mode 100644 fr/basic/view/toolbar.mdx create mode 100644 fr/changelog-2024.mdx create mode 100644 fr/changelog-2025.mdx create mode 100644 fr/changelog.mdx create mode 100644 fr/compare/teable-vs-excel.mdx create mode 100644 fr/deploy/activate.mdx create mode 100644 fr/deploy/architecture.mdx create mode 100644 fr/deploy/choose.mdx create mode 100644 fr/deploy/dashboard.mdx create mode 100644 fr/deploy/docker.mdx create mode 100644 fr/deploy/email.mdx create mode 100644 fr/deploy/env.mdx create mode 100644 fr/deploy/nginx.mdx create mode 100644 fr/deploy/oidc.mdx create mode 100644 fr/deploy/one-key.mdx create mode 100644 fr/deploy/telemetry.mdx create mode 100644 fr/deploy/upgrade.mdx create mode 100644 images/changelog/2026-09-04-new-pricing-more-ai-credits.png create mode 100644 it/api-doc/error-code.mdx create mode 100644 it/api-doc/get-id.mdx create mode 100644 it/api-doc/oauth.mdx create mode 100644 it/api-doc/overview.mdx create mode 100644 it/api-doc/record/create.mdx create mode 100644 it/api-doc/record/delete.mdx create mode 100644 it/api-doc/record/get.mdx create mode 100644 it/api-doc/record/interface.mdx create mode 100644 it/api-doc/record/update.mdx create mode 100644 it/api-doc/record/upload-attachment.mdx create mode 100644 it/api-doc/sql-query.mdx create mode 100644 it/api-doc/token.mdx create mode 100644 it/basic/admin-panel/ai-generation-queue.mdx create mode 100644 it/basic/admin-panel/ai-setting.mdx create mode 100644 it/basic/admin-panel/announcements.mdx create mode 100644 it/basic/admin-panel/audit-log.mdx create mode 100644 it/basic/admin-panel/automation-management.mdx create mode 100644 it/basic/admin-panel/computed-outbox.mdx create mode 100644 it/basic/admin-panel/database-tenant.mdx create mode 100644 it/basic/admin-panel/multitenancy.mdx create mode 100644 it/basic/admin-panel/overview.mdx create mode 100644 it/basic/admin-panel/sandbox-agent.mdx create mode 100644 it/basic/admin-panel/settings.mdx create mode 100644 it/basic/admin-panel/skills.mdx create mode 100644 it/basic/admin-panel/spaces.mdx create mode 100644 it/basic/admin-panel/table-query-ops.mdx create mode 100644 it/basic/admin-panel/template-admin.mdx create mode 100644 it/basic/admin-panel/users.mdx create mode 100644 it/basic/ai/ai-chat.mdx create mode 100644 it/basic/ai/app-builder-practical-guide.mdx create mode 100644 it/basic/ai/app-builder.mdx create mode 100644 it/basic/ai/connect-everything.mdx create mode 100644 it/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 it/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 it/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 it/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 it/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 it/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 it/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 it/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 it/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 it/basic/ai/connect-everything/more-sources.mdx create mode 100644 it/basic/ai/custom-model.mdx create mode 100644 it/basic/ai/overview.mdx create mode 100644 it/basic/ai/teable-skill.mdx create mode 100644 it/basic/authority-matrix.mdx create mode 100644 it/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 it/basic/automation.mdx create mode 100644 it/basic/automation/actions/ai/ai-generate.mdx create mode 100644 it/basic/automation/actions/ai/ai-script.mdx create mode 100644 it/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 it/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 it/basic/automation/actions/logic/http-request.mdx create mode 100644 it/basic/automation/actions/logic/loop-run.mdx create mode 100644 it/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 it/basic/automation/actions/records/create-record.mdx create mode 100644 it/basic/automation/actions/records/cross-base.mdx create mode 100644 it/basic/automation/actions/records/get-records.mdx create mode 100644 it/basic/automation/actions/records/update-record.mdx create mode 100644 it/basic/automation/ai/scripting/runscript.mdx create mode 100644 it/basic/automation/examples/ai-classify-forms.mdx create mode 100644 it/basic/automation/examples/ai-email-digest.mdx create mode 100644 it/basic/automation/examples/api-automation.mdx create mode 100644 it/basic/automation/examples/batch-loop.mdx create mode 100644 it/basic/automation/examples/conditional-actions.mdx create mode 100644 it/basic/automation/examples/cross-base-sync.mdx create mode 100644 it/basic/automation/examples/deadline-reminders.mdx create mode 100644 it/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 it/basic/automation/examples/push-notifications.mdx create mode 100644 it/basic/automation/examples/recurring-records.mdx create mode 100644 it/basic/automation/examples/timestamp-status.mdx create mode 100644 it/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 it/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 it/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 it/basic/automation/trigger/external/webhook-received.mdx create mode 100644 it/basic/automation/trigger/forms/button-click.mdx create mode 100644 it/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 it/basic/automation/trigger/records/record-created.mdx create mode 100644 it/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 it/basic/automation/trigger/records/record-updated.mdx create mode 100644 it/basic/base.mdx create mode 100644 it/basic/field.mdx create mode 100644 it/basic/field/ai/ai-field.mdx create mode 100644 it/basic/field/attachment.mdx create mode 100644 it/basic/field/auto-number.mdx create mode 100644 it/basic/field/button-practical-guide.mdx create mode 100644 it/basic/field/button.mdx create mode 100644 it/basic/field/checkbox.mdx create mode 100644 it/basic/field/common/formatter.mdx create mode 100644 it/basic/field/common/is-multiple-value.mdx create mode 100644 it/basic/field/common/show-as.mdx create mode 100644 it/basic/field/conditional-lookup.mdx create mode 100644 it/basic/field/conditional-rollup.mdx create mode 100644 it/basic/field/created-by.mdx create mode 100644 it/basic/field/created-time.mdx create mode 100644 it/basic/field/date.mdx create mode 100644 it/basic/field/formula.mdx create mode 100644 it/basic/field/formula/cheat-sheet.mdx create mode 100644 it/basic/field/formula/grammar.mdx create mode 100644 it/basic/field/last-modified-by.mdx create mode 100644 it/basic/field/last-modified-time.mdx create mode 100644 it/basic/field/link.mdx create mode 100644 it/basic/field/long-text.mdx create mode 100644 it/basic/field/lookup.mdx create mode 100644 it/basic/field/multiple-select.mdx create mode 100644 it/basic/field/number.mdx create mode 100644 it/basic/field/rating.mdx create mode 100644 it/basic/field/rollup.mdx create mode 100644 it/basic/field/single-line-text.mdx create mode 100644 it/basic/field/single-select.mdx create mode 100644 it/basic/field/user.mdx create mode 100644 it/basic/organization-panel/settings.mdx create mode 100644 it/basic/record.mdx create mode 100644 it/basic/record/archive-trash.mdx create mode 100644 it/basic/record/comment.mdx create mode 100644 it/basic/record/record-history.mdx create mode 100644 it/basic/security.mdx create mode 100644 it/basic/space.mdx create mode 100644 it/basic/space/ai-setting.mdx create mode 100644 it/basic/space/base-invite.mdx create mode 100644 it/basic/space/billing.mdx create mode 100644 it/basic/space/space-invite.mdx create mode 100644 it/basic/space/space-permission.mdx create mode 100644 it/basic/sso/auth0.mdx create mode 100644 it/basic/sso/authentik.mdx create mode 100644 it/basic/sso/azure-entra-id.mdx create mode 100644 it/basic/sso/google-workspace.mdx create mode 100644 it/basic/sso/okta.mdx create mode 100644 it/basic/sso/onelogin.mdx create mode 100644 it/basic/sso/overview.mdx create mode 100644 it/basic/table.mdx create mode 100644 it/basic/table/export.mdx create mode 100644 it/basic/table/import.mdx create mode 100644 it/basic/view/calendar.mdx create mode 100644 it/basic/view/form.mdx create mode 100644 it/basic/view/gallery.mdx create mode 100644 it/basic/view/grid.mdx create mode 100644 it/basic/view/kanban.mdx create mode 100644 it/basic/view/toolbar.mdx create mode 100644 it/changelog-2024.mdx create mode 100644 it/changelog-2025.mdx create mode 100644 it/changelog.mdx create mode 100644 it/compare/teable-vs-excel.mdx create mode 100644 it/deploy/activate.mdx create mode 100644 it/deploy/architecture.mdx create mode 100644 it/deploy/choose.mdx create mode 100644 it/deploy/dashboard.mdx create mode 100644 it/deploy/docker.mdx create mode 100644 it/deploy/email.mdx create mode 100644 it/deploy/env.mdx create mode 100644 it/deploy/nginx.mdx create mode 100644 it/deploy/oidc.mdx create mode 100644 it/deploy/one-key.mdx create mode 100644 it/deploy/telemetry.mdx create mode 100644 it/deploy/upgrade.mdx create mode 100644 ja/api-doc/error-code.mdx create mode 100644 ja/api-doc/get-id.mdx create mode 100644 ja/api-doc/oauth.mdx create mode 100644 ja/api-doc/overview.mdx create mode 100644 ja/api-doc/record/create.mdx create mode 100644 ja/api-doc/record/delete.mdx create mode 100644 ja/api-doc/record/get.mdx create mode 100644 ja/api-doc/record/interface.mdx create mode 100644 ja/api-doc/record/update.mdx create mode 100644 ja/api-doc/record/upload-attachment.mdx create mode 100644 ja/api-doc/sql-query.mdx create mode 100644 ja/api-doc/token.mdx create mode 100644 ja/basic/admin-panel/ai-generation-queue.mdx create mode 100644 ja/basic/admin-panel/ai-setting.mdx create mode 100644 ja/basic/admin-panel/announcements.mdx create mode 100644 ja/basic/admin-panel/audit-log.mdx create mode 100644 ja/basic/admin-panel/automation-management.mdx create mode 100644 ja/basic/admin-panel/computed-outbox.mdx create mode 100644 ja/basic/admin-panel/database-tenant.mdx create mode 100644 ja/basic/admin-panel/multitenancy.mdx create mode 100644 ja/basic/admin-panel/overview.mdx create mode 100644 ja/basic/admin-panel/sandbox-agent.mdx create mode 100644 ja/basic/admin-panel/settings.mdx create mode 100644 ja/basic/admin-panel/skills.mdx create mode 100644 ja/basic/admin-panel/spaces.mdx create mode 100644 ja/basic/admin-panel/table-query-ops.mdx create mode 100644 ja/basic/admin-panel/template-admin.mdx create mode 100644 ja/basic/admin-panel/users.mdx create mode 100644 ja/basic/ai/ai-chat.mdx create mode 100644 ja/basic/ai/app-builder-practical-guide.mdx create mode 100644 ja/basic/ai/app-builder.mdx create mode 100644 ja/basic/ai/connect-everything.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 ja/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 ja/basic/ai/connect-everything/more-sources.mdx create mode 100644 ja/basic/ai/custom-model.mdx create mode 100644 ja/basic/ai/overview.mdx create mode 100644 ja/basic/ai/teable-skill.mdx create mode 100644 ja/basic/authority-matrix.mdx create mode 100644 ja/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 ja/basic/automation.mdx create mode 100644 ja/basic/automation/actions/ai/ai-generate.mdx create mode 100644 ja/basic/automation/actions/ai/ai-script.mdx create mode 100644 ja/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 ja/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 ja/basic/automation/actions/logic/http-request.mdx create mode 100644 ja/basic/automation/actions/logic/loop-run.mdx create mode 100644 ja/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 ja/basic/automation/actions/records/create-record.mdx create mode 100644 ja/basic/automation/actions/records/cross-base.mdx create mode 100644 ja/basic/automation/actions/records/get-records.mdx create mode 100644 ja/basic/automation/actions/records/update-record.mdx create mode 100644 ja/basic/automation/ai/scripting/runscript.mdx create mode 100644 ja/basic/automation/examples/ai-classify-forms.mdx create mode 100644 ja/basic/automation/examples/ai-email-digest.mdx create mode 100644 ja/basic/automation/examples/api-automation.mdx create mode 100644 ja/basic/automation/examples/batch-loop.mdx create mode 100644 ja/basic/automation/examples/conditional-actions.mdx create mode 100644 ja/basic/automation/examples/cross-base-sync.mdx create mode 100644 ja/basic/automation/examples/deadline-reminders.mdx create mode 100644 ja/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 ja/basic/automation/examples/push-notifications.mdx create mode 100644 ja/basic/automation/examples/recurring-records.mdx create mode 100644 ja/basic/automation/examples/timestamp-status.mdx create mode 100644 ja/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 ja/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 ja/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 ja/basic/automation/trigger/external/webhook-received.mdx create mode 100644 ja/basic/automation/trigger/forms/button-click.mdx create mode 100644 ja/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 ja/basic/automation/trigger/records/record-created.mdx create mode 100644 ja/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 ja/basic/automation/trigger/records/record-updated.mdx create mode 100644 ja/basic/base.mdx create mode 100644 ja/basic/field.mdx create mode 100644 ja/basic/field/ai/ai-field.mdx create mode 100644 ja/basic/field/attachment.mdx create mode 100644 ja/basic/field/auto-number.mdx create mode 100644 ja/basic/field/button-practical-guide.mdx create mode 100644 ja/basic/field/button.mdx create mode 100644 ja/basic/field/checkbox.mdx create mode 100644 ja/basic/field/common/formatter.mdx create mode 100644 ja/basic/field/common/is-multiple-value.mdx create mode 100644 ja/basic/field/common/show-as.mdx create mode 100644 ja/basic/field/conditional-lookup.mdx create mode 100644 ja/basic/field/conditional-rollup.mdx create mode 100644 ja/basic/field/created-by.mdx create mode 100644 ja/basic/field/created-time.mdx create mode 100644 ja/basic/field/date.mdx create mode 100644 ja/basic/field/formula.mdx create mode 100644 ja/basic/field/formula/cheat-sheet.mdx create mode 100644 ja/basic/field/formula/grammar.mdx create mode 100644 ja/basic/field/last-modified-by.mdx create mode 100644 ja/basic/field/last-modified-time.mdx create mode 100644 ja/basic/field/link.mdx create mode 100644 ja/basic/field/long-text.mdx create mode 100644 ja/basic/field/lookup.mdx create mode 100644 ja/basic/field/multiple-select.mdx create mode 100644 ja/basic/field/number.mdx create mode 100644 ja/basic/field/rating.mdx create mode 100644 ja/basic/field/rollup.mdx create mode 100644 ja/basic/field/single-line-text.mdx create mode 100644 ja/basic/field/single-select.mdx create mode 100644 ja/basic/field/user.mdx create mode 100644 ja/basic/organization-panel/settings.mdx create mode 100644 ja/basic/record.mdx create mode 100644 ja/basic/record/archive-trash.mdx create mode 100644 ja/basic/record/comment.mdx create mode 100644 ja/basic/record/record-history.mdx create mode 100644 ja/basic/security.mdx create mode 100644 ja/basic/space.mdx create mode 100644 ja/basic/space/ai-setting.mdx create mode 100644 ja/basic/space/base-invite.mdx create mode 100644 ja/basic/space/billing.mdx create mode 100644 ja/basic/space/space-invite.mdx create mode 100644 ja/basic/space/space-permission.mdx create mode 100644 ja/basic/sso/auth0.mdx create mode 100644 ja/basic/sso/authentik.mdx create mode 100644 ja/basic/sso/azure-entra-id.mdx create mode 100644 ja/basic/sso/google-workspace.mdx create mode 100644 ja/basic/sso/okta.mdx create mode 100644 ja/basic/sso/onelogin.mdx create mode 100644 ja/basic/sso/overview.mdx create mode 100644 ja/basic/table.mdx create mode 100644 ja/basic/table/export.mdx create mode 100644 ja/basic/table/import.mdx create mode 100644 ja/basic/view/calendar.mdx create mode 100644 ja/basic/view/form.mdx create mode 100644 ja/basic/view/gallery.mdx create mode 100644 ja/basic/view/grid.mdx create mode 100644 ja/basic/view/kanban.mdx create mode 100644 ja/basic/view/toolbar.mdx create mode 100644 ja/changelog-2024.mdx create mode 100644 ja/changelog-2025.mdx create mode 100644 ja/changelog.mdx create mode 100644 ja/compare/teable-vs-excel.mdx create mode 100644 ja/deploy/activate.mdx create mode 100644 ja/deploy/architecture.mdx create mode 100644 ja/deploy/choose.mdx create mode 100644 ja/deploy/dashboard.mdx create mode 100644 ja/deploy/docker.mdx create mode 100644 ja/deploy/email.mdx create mode 100644 ja/deploy/env.mdx create mode 100644 ja/deploy/nginx.mdx create mode 100644 ja/deploy/oidc.mdx create mode 100644 ja/deploy/one-key.mdx create mode 100644 ja/deploy/telemetry.mdx create mode 100644 ja/deploy/upgrade.mdx create mode 100644 ru/api-doc/error-code.mdx create mode 100644 ru/api-doc/get-id.mdx create mode 100644 ru/api-doc/oauth.mdx create mode 100644 ru/api-doc/overview.mdx create mode 100644 ru/api-doc/record/create.mdx create mode 100644 ru/api-doc/record/delete.mdx create mode 100644 ru/api-doc/record/get.mdx create mode 100644 ru/api-doc/record/interface.mdx create mode 100644 ru/api-doc/record/update.mdx create mode 100644 ru/api-doc/record/upload-attachment.mdx create mode 100644 ru/api-doc/sql-query.mdx create mode 100644 ru/api-doc/token.mdx create mode 100644 ru/basic/admin-panel/ai-generation-queue.mdx create mode 100644 ru/basic/admin-panel/ai-setting.mdx create mode 100644 ru/basic/admin-panel/announcements.mdx create mode 100644 ru/basic/admin-panel/audit-log.mdx create mode 100644 ru/basic/admin-panel/automation-management.mdx create mode 100644 ru/basic/admin-panel/computed-outbox.mdx create mode 100644 ru/basic/admin-panel/database-tenant.mdx create mode 100644 ru/basic/admin-panel/multitenancy.mdx create mode 100644 ru/basic/admin-panel/overview.mdx create mode 100644 ru/basic/admin-panel/sandbox-agent.mdx create mode 100644 ru/basic/admin-panel/settings.mdx create mode 100644 ru/basic/admin-panel/skills.mdx create mode 100644 ru/basic/admin-panel/spaces.mdx create mode 100644 ru/basic/admin-panel/table-query-ops.mdx create mode 100644 ru/basic/admin-panel/template-admin.mdx create mode 100644 ru/basic/admin-panel/users.mdx create mode 100644 ru/basic/ai/ai-chat.mdx create mode 100644 ru/basic/ai/app-builder-practical-guide.mdx create mode 100644 ru/basic/ai/app-builder.mdx create mode 100644 ru/basic/ai/connect-everything.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 ru/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 ru/basic/ai/connect-everything/more-sources.mdx create mode 100644 ru/basic/ai/custom-model.mdx create mode 100644 ru/basic/ai/overview.mdx create mode 100644 ru/basic/ai/teable-skill.mdx create mode 100644 ru/basic/authority-matrix.mdx create mode 100644 ru/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 ru/basic/automation.mdx create mode 100644 ru/basic/automation/actions/ai/ai-generate.mdx create mode 100644 ru/basic/automation/actions/ai/ai-script.mdx create mode 100644 ru/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 ru/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 ru/basic/automation/actions/logic/http-request.mdx create mode 100644 ru/basic/automation/actions/logic/loop-run.mdx create mode 100644 ru/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 ru/basic/automation/actions/records/create-record.mdx create mode 100644 ru/basic/automation/actions/records/cross-base.mdx create mode 100644 ru/basic/automation/actions/records/get-records.mdx create mode 100644 ru/basic/automation/actions/records/update-record.mdx create mode 100644 ru/basic/automation/ai/scripting/runscript.mdx create mode 100644 ru/basic/automation/examples/ai-classify-forms.mdx create mode 100644 ru/basic/automation/examples/ai-email-digest.mdx create mode 100644 ru/basic/automation/examples/api-automation.mdx create mode 100644 ru/basic/automation/examples/batch-loop.mdx create mode 100644 ru/basic/automation/examples/conditional-actions.mdx create mode 100644 ru/basic/automation/examples/cross-base-sync.mdx create mode 100644 ru/basic/automation/examples/deadline-reminders.mdx create mode 100644 ru/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 ru/basic/automation/examples/push-notifications.mdx create mode 100644 ru/basic/automation/examples/recurring-records.mdx create mode 100644 ru/basic/automation/examples/timestamp-status.mdx create mode 100644 ru/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 ru/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 ru/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 ru/basic/automation/trigger/external/webhook-received.mdx create mode 100644 ru/basic/automation/trigger/forms/button-click.mdx create mode 100644 ru/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 ru/basic/automation/trigger/records/record-created.mdx create mode 100644 ru/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 ru/basic/automation/trigger/records/record-updated.mdx create mode 100644 ru/basic/base.mdx create mode 100644 ru/basic/field.mdx create mode 100644 ru/basic/field/ai/ai-field.mdx create mode 100644 ru/basic/field/attachment.mdx create mode 100644 ru/basic/field/auto-number.mdx create mode 100644 ru/basic/field/button-practical-guide.mdx create mode 100644 ru/basic/field/button.mdx create mode 100644 ru/basic/field/checkbox.mdx create mode 100644 ru/basic/field/common/formatter.mdx create mode 100644 ru/basic/field/common/is-multiple-value.mdx create mode 100644 ru/basic/field/common/show-as.mdx create mode 100644 ru/basic/field/conditional-lookup.mdx create mode 100644 ru/basic/field/conditional-rollup.mdx create mode 100644 ru/basic/field/created-by.mdx create mode 100644 ru/basic/field/created-time.mdx create mode 100644 ru/basic/field/date.mdx create mode 100644 ru/basic/field/formula.mdx create mode 100644 ru/basic/field/formula/cheat-sheet.mdx create mode 100644 ru/basic/field/formula/grammar.mdx create mode 100644 ru/basic/field/last-modified-by.mdx create mode 100644 ru/basic/field/last-modified-time.mdx create mode 100644 ru/basic/field/link.mdx create mode 100644 ru/basic/field/long-text.mdx create mode 100644 ru/basic/field/lookup.mdx create mode 100644 ru/basic/field/multiple-select.mdx create mode 100644 ru/basic/field/number.mdx create mode 100644 ru/basic/field/rating.mdx create mode 100644 ru/basic/field/rollup.mdx create mode 100644 ru/basic/field/single-line-text.mdx create mode 100644 ru/basic/field/single-select.mdx create mode 100644 ru/basic/field/user.mdx create mode 100644 ru/basic/organization-panel/settings.mdx create mode 100644 ru/basic/record.mdx create mode 100644 ru/basic/record/archive-trash.mdx create mode 100644 ru/basic/record/comment.mdx create mode 100644 ru/basic/record/record-history.mdx create mode 100644 ru/basic/security.mdx create mode 100644 ru/basic/space.mdx create mode 100644 ru/basic/space/ai-setting.mdx create mode 100644 ru/basic/space/base-invite.mdx create mode 100644 ru/basic/space/billing.mdx create mode 100644 ru/basic/space/space-invite.mdx create mode 100644 ru/basic/space/space-permission.mdx create mode 100644 ru/basic/sso/auth0.mdx create mode 100644 ru/basic/sso/authentik.mdx create mode 100644 ru/basic/sso/azure-entra-id.mdx create mode 100644 ru/basic/sso/google-workspace.mdx create mode 100644 ru/basic/sso/okta.mdx create mode 100644 ru/basic/sso/onelogin.mdx create mode 100644 ru/basic/sso/overview.mdx create mode 100644 ru/basic/table.mdx create mode 100644 ru/basic/table/export.mdx create mode 100644 ru/basic/table/import.mdx create mode 100644 ru/basic/view/calendar.mdx create mode 100644 ru/basic/view/form.mdx create mode 100644 ru/basic/view/gallery.mdx create mode 100644 ru/basic/view/grid.mdx create mode 100644 ru/basic/view/kanban.mdx create mode 100644 ru/basic/view/toolbar.mdx create mode 100644 ru/changelog-2024.mdx create mode 100644 ru/changelog-2025.mdx create mode 100644 ru/changelog.mdx create mode 100644 ru/compare/teable-vs-excel.mdx create mode 100644 ru/deploy/activate.mdx create mode 100644 ru/deploy/architecture.mdx create mode 100644 ru/deploy/choose.mdx create mode 100644 ru/deploy/dashboard.mdx create mode 100644 ru/deploy/docker.mdx create mode 100644 ru/deploy/email.mdx create mode 100644 ru/deploy/env.mdx create mode 100644 ru/deploy/nginx.mdx create mode 100644 ru/deploy/oidc.mdx create mode 100644 ru/deploy/one-key.mdx create mode 100644 ru/deploy/telemetry.mdx create mode 100644 ru/deploy/upgrade.mdx create mode 100644 tr/api-doc/error-code.mdx create mode 100644 tr/api-doc/get-id.mdx create mode 100644 tr/api-doc/oauth.mdx create mode 100644 tr/api-doc/overview.mdx create mode 100644 tr/api-doc/record/create.mdx create mode 100644 tr/api-doc/record/delete.mdx create mode 100644 tr/api-doc/record/get.mdx create mode 100644 tr/api-doc/record/interface.mdx create mode 100644 tr/api-doc/record/update.mdx create mode 100644 tr/api-doc/record/upload-attachment.mdx create mode 100644 tr/api-doc/sql-query.mdx create mode 100644 tr/api-doc/token.mdx create mode 100644 tr/basic/admin-panel/ai-generation-queue.mdx create mode 100644 tr/basic/admin-panel/ai-setting.mdx create mode 100644 tr/basic/admin-panel/announcements.mdx create mode 100644 tr/basic/admin-panel/audit-log.mdx create mode 100644 tr/basic/admin-panel/automation-management.mdx create mode 100644 tr/basic/admin-panel/computed-outbox.mdx create mode 100644 tr/basic/admin-panel/database-tenant.mdx create mode 100644 tr/basic/admin-panel/multitenancy.mdx create mode 100644 tr/basic/admin-panel/overview.mdx create mode 100644 tr/basic/admin-panel/sandbox-agent.mdx create mode 100644 tr/basic/admin-panel/settings.mdx create mode 100644 tr/basic/admin-panel/skills.mdx create mode 100644 tr/basic/admin-panel/spaces.mdx create mode 100644 tr/basic/admin-panel/table-query-ops.mdx create mode 100644 tr/basic/admin-panel/template-admin.mdx create mode 100644 tr/basic/admin-panel/users.mdx create mode 100644 tr/basic/ai/ai-chat.mdx create mode 100644 tr/basic/ai/app-builder-practical-guide.mdx create mode 100644 tr/basic/ai/app-builder.mdx create mode 100644 tr/basic/ai/connect-everything.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 tr/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 tr/basic/ai/connect-everything/more-sources.mdx create mode 100644 tr/basic/ai/custom-model.mdx create mode 100644 tr/basic/ai/overview.mdx create mode 100644 tr/basic/ai/teable-skill.mdx create mode 100644 tr/basic/authority-matrix.mdx create mode 100644 tr/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 tr/basic/automation.mdx create mode 100644 tr/basic/automation/actions/ai/ai-generate.mdx create mode 100644 tr/basic/automation/actions/ai/ai-script.mdx create mode 100644 tr/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 tr/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 tr/basic/automation/actions/logic/http-request.mdx create mode 100644 tr/basic/automation/actions/logic/loop-run.mdx create mode 100644 tr/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 tr/basic/automation/actions/records/create-record.mdx create mode 100644 tr/basic/automation/actions/records/cross-base.mdx create mode 100644 tr/basic/automation/actions/records/get-records.mdx create mode 100644 tr/basic/automation/actions/records/update-record.mdx create mode 100644 tr/basic/automation/ai/scripting/runscript.mdx create mode 100644 tr/basic/automation/examples/ai-classify-forms.mdx create mode 100644 tr/basic/automation/examples/ai-email-digest.mdx create mode 100644 tr/basic/automation/examples/api-automation.mdx create mode 100644 tr/basic/automation/examples/batch-loop.mdx create mode 100644 tr/basic/automation/examples/conditional-actions.mdx create mode 100644 tr/basic/automation/examples/cross-base-sync.mdx create mode 100644 tr/basic/automation/examples/deadline-reminders.mdx create mode 100644 tr/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 tr/basic/automation/examples/push-notifications.mdx create mode 100644 tr/basic/automation/examples/recurring-records.mdx create mode 100644 tr/basic/automation/examples/timestamp-status.mdx create mode 100644 tr/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 tr/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 tr/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 tr/basic/automation/trigger/external/webhook-received.mdx create mode 100644 tr/basic/automation/trigger/forms/button-click.mdx create mode 100644 tr/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 tr/basic/automation/trigger/records/record-created.mdx create mode 100644 tr/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 tr/basic/automation/trigger/records/record-updated.mdx create mode 100644 tr/basic/base.mdx create mode 100644 tr/basic/field.mdx create mode 100644 tr/basic/field/ai/ai-field.mdx create mode 100644 tr/basic/field/attachment.mdx create mode 100644 tr/basic/field/auto-number.mdx create mode 100644 tr/basic/field/button-practical-guide.mdx create mode 100644 tr/basic/field/button.mdx create mode 100644 tr/basic/field/checkbox.mdx create mode 100644 tr/basic/field/common/formatter.mdx create mode 100644 tr/basic/field/common/is-multiple-value.mdx create mode 100644 tr/basic/field/common/show-as.mdx create mode 100644 tr/basic/field/conditional-lookup.mdx create mode 100644 tr/basic/field/conditional-rollup.mdx create mode 100644 tr/basic/field/created-by.mdx create mode 100644 tr/basic/field/created-time.mdx create mode 100644 tr/basic/field/date.mdx create mode 100644 tr/basic/field/formula.mdx create mode 100644 tr/basic/field/formula/cheat-sheet.mdx create mode 100644 tr/basic/field/formula/grammar.mdx create mode 100644 tr/basic/field/last-modified-by.mdx create mode 100644 tr/basic/field/last-modified-time.mdx create mode 100644 tr/basic/field/link.mdx create mode 100644 tr/basic/field/long-text.mdx create mode 100644 tr/basic/field/lookup.mdx create mode 100644 tr/basic/field/multiple-select.mdx create mode 100644 tr/basic/field/number.mdx create mode 100644 tr/basic/field/rating.mdx create mode 100644 tr/basic/field/rollup.mdx create mode 100644 tr/basic/field/single-line-text.mdx create mode 100644 tr/basic/field/single-select.mdx create mode 100644 tr/basic/field/user.mdx create mode 100644 tr/basic/organization-panel/settings.mdx create mode 100644 tr/basic/record.mdx create mode 100644 tr/basic/record/archive-trash.mdx create mode 100644 tr/basic/record/comment.mdx create mode 100644 tr/basic/record/record-history.mdx create mode 100644 tr/basic/security.mdx create mode 100644 tr/basic/space.mdx create mode 100644 tr/basic/space/ai-setting.mdx create mode 100644 tr/basic/space/base-invite.mdx create mode 100644 tr/basic/space/billing.mdx create mode 100644 tr/basic/space/space-invite.mdx create mode 100644 tr/basic/space/space-permission.mdx create mode 100644 tr/basic/sso/auth0.mdx create mode 100644 tr/basic/sso/authentik.mdx create mode 100644 tr/basic/sso/azure-entra-id.mdx create mode 100644 tr/basic/sso/google-workspace.mdx create mode 100644 tr/basic/sso/okta.mdx create mode 100644 tr/basic/sso/onelogin.mdx create mode 100644 tr/basic/sso/overview.mdx create mode 100644 tr/basic/table.mdx create mode 100644 tr/basic/table/export.mdx create mode 100644 tr/basic/table/import.mdx create mode 100644 tr/basic/view/calendar.mdx create mode 100644 tr/basic/view/form.mdx create mode 100644 tr/basic/view/gallery.mdx create mode 100644 tr/basic/view/grid.mdx create mode 100644 tr/basic/view/kanban.mdx create mode 100644 tr/basic/view/toolbar.mdx create mode 100644 tr/changelog-2024.mdx create mode 100644 tr/changelog-2025.mdx create mode 100644 tr/changelog.mdx create mode 100644 tr/compare/teable-vs-excel.mdx create mode 100644 tr/deploy/activate.mdx create mode 100644 tr/deploy/architecture.mdx create mode 100644 tr/deploy/choose.mdx create mode 100644 tr/deploy/dashboard.mdx create mode 100644 tr/deploy/docker.mdx create mode 100644 tr/deploy/email.mdx create mode 100644 tr/deploy/env.mdx create mode 100644 tr/deploy/nginx.mdx create mode 100644 tr/deploy/oidc.mdx create mode 100644 tr/deploy/one-key.mdx create mode 100644 tr/deploy/telemetry.mdx create mode 100644 tr/deploy/upgrade.mdx create mode 100644 uk/api-doc/error-code.mdx create mode 100644 uk/api-doc/get-id.mdx create mode 100644 uk/api-doc/oauth.mdx create mode 100644 uk/api-doc/overview.mdx create mode 100644 uk/api-doc/record/create.mdx create mode 100644 uk/api-doc/record/delete.mdx create mode 100644 uk/api-doc/record/get.mdx create mode 100644 uk/api-doc/record/interface.mdx create mode 100644 uk/api-doc/record/update.mdx create mode 100644 uk/api-doc/record/upload-attachment.mdx create mode 100644 uk/api-doc/sql-query.mdx create mode 100644 uk/api-doc/token.mdx create mode 100644 uk/basic/admin-panel/ai-generation-queue.mdx create mode 100644 uk/basic/admin-panel/ai-setting.mdx create mode 100644 uk/basic/admin-panel/announcements.mdx create mode 100644 uk/basic/admin-panel/audit-log.mdx create mode 100644 uk/basic/admin-panel/automation-management.mdx create mode 100644 uk/basic/admin-panel/computed-outbox.mdx create mode 100644 uk/basic/admin-panel/database-tenant.mdx create mode 100644 uk/basic/admin-panel/multitenancy.mdx create mode 100644 uk/basic/admin-panel/overview.mdx create mode 100644 uk/basic/admin-panel/sandbox-agent.mdx create mode 100644 uk/basic/admin-panel/settings.mdx create mode 100644 uk/basic/admin-panel/skills.mdx create mode 100644 uk/basic/admin-panel/spaces.mdx create mode 100644 uk/basic/admin-panel/table-query-ops.mdx create mode 100644 uk/basic/admin-panel/template-admin.mdx create mode 100644 uk/basic/admin-panel/users.mdx create mode 100644 uk/basic/ai/ai-chat.mdx create mode 100644 uk/basic/ai/app-builder-practical-guide.mdx create mode 100644 uk/basic/ai/app-builder.mdx create mode 100644 uk/basic/ai/connect-everything.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-airtable.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-baserow.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-clickup.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-jira.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-monday.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-nocodb.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-project-management-tools.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-smartsheet.mdx create mode 100644 uk/basic/ai/connect-everything/migrate-smartsuite.mdx create mode 100644 uk/basic/ai/connect-everything/more-sources.mdx create mode 100644 uk/basic/ai/custom-model.mdx create mode 100644 uk/basic/ai/overview.mdx create mode 100644 uk/basic/ai/teable-skill.mdx create mode 100644 uk/basic/authority-matrix.mdx create mode 100644 uk/basic/authority-matrix/authority-matrix-practical-guide.mdx create mode 100644 uk/basic/automation.mdx create mode 100644 uk/basic/automation/actions/ai/ai-generate.mdx create mode 100644 uk/basic/automation/actions/ai/ai-script.mdx create mode 100644 uk/basic/automation/actions/communication/send-email-overview.mdx create mode 100644 uk/basic/automation/actions/communication/smtp-sender.mdx create mode 100644 uk/basic/automation/actions/logic/http-request.mdx create mode 100644 uk/basic/automation/actions/logic/loop-run.mdx create mode 100644 uk/basic/automation/actions/manual/conditional-logic.mdx create mode 100644 uk/basic/automation/actions/records/create-record.mdx create mode 100644 uk/basic/automation/actions/records/cross-base.mdx create mode 100644 uk/basic/automation/actions/records/get-records.mdx create mode 100644 uk/basic/automation/actions/records/update-record.mdx create mode 100644 uk/basic/automation/ai/scripting/runscript.mdx create mode 100644 uk/basic/automation/examples/ai-classify-forms.mdx create mode 100644 uk/basic/automation/examples/ai-email-digest.mdx create mode 100644 uk/basic/automation/examples/api-automation.mdx create mode 100644 uk/basic/automation/examples/batch-loop.mdx create mode 100644 uk/basic/automation/examples/conditional-actions.mdx create mode 100644 uk/basic/automation/examples/cross-base-sync.mdx create mode 100644 uk/basic/automation/examples/deadline-reminders.mdx create mode 100644 uk/basic/automation/examples/prevent-unwanted-triggers.mdx create mode 100644 uk/basic/automation/examples/push-notifications.mdx create mode 100644 uk/basic/automation/examples/recurring-records.mdx create mode 100644 uk/basic/automation/examples/timestamp-status.mdx create mode 100644 uk/basic/automation/trigger/email/email-received-overview.mdx create mode 100644 uk/basic/automation/trigger/email/gmail-imap.mdx create mode 100644 uk/basic/automation/trigger/external/scheduled-time.mdx create mode 100644 uk/basic/automation/trigger/external/webhook-received.mdx create mode 100644 uk/basic/automation/trigger/forms/button-click.mdx create mode 100644 uk/basic/automation/trigger/forms/form-submitted.mdx create mode 100644 uk/basic/automation/trigger/records/record-created.mdx create mode 100644 uk/basic/automation/trigger/records/record-matches-conditions.mdx create mode 100644 uk/basic/automation/trigger/records/record-updated.mdx create mode 100644 uk/basic/base.mdx create mode 100644 uk/basic/field.mdx create mode 100644 uk/basic/field/ai/ai-field.mdx create mode 100644 uk/basic/field/attachment.mdx create mode 100644 uk/basic/field/auto-number.mdx create mode 100644 uk/basic/field/button-practical-guide.mdx create mode 100644 uk/basic/field/button.mdx create mode 100644 uk/basic/field/checkbox.mdx create mode 100644 uk/basic/field/common/formatter.mdx create mode 100644 uk/basic/field/common/is-multiple-value.mdx create mode 100644 uk/basic/field/common/show-as.mdx create mode 100644 uk/basic/field/conditional-lookup.mdx create mode 100644 uk/basic/field/conditional-rollup.mdx create mode 100644 uk/basic/field/created-by.mdx create mode 100644 uk/basic/field/created-time.mdx create mode 100644 uk/basic/field/date.mdx create mode 100644 uk/basic/field/formula.mdx create mode 100644 uk/basic/field/formula/cheat-sheet.mdx create mode 100644 uk/basic/field/formula/grammar.mdx create mode 100644 uk/basic/field/last-modified-by.mdx create mode 100644 uk/basic/field/last-modified-time.mdx create mode 100644 uk/basic/field/link.mdx create mode 100644 uk/basic/field/long-text.mdx create mode 100644 uk/basic/field/lookup.mdx create mode 100644 uk/basic/field/multiple-select.mdx create mode 100644 uk/basic/field/number.mdx create mode 100644 uk/basic/field/rating.mdx create mode 100644 uk/basic/field/rollup.mdx create mode 100644 uk/basic/field/single-line-text.mdx create mode 100644 uk/basic/field/single-select.mdx create mode 100644 uk/basic/field/user.mdx create mode 100644 uk/basic/organization-panel/settings.mdx create mode 100644 uk/basic/record.mdx create mode 100644 uk/basic/record/archive-trash.mdx create mode 100644 uk/basic/record/comment.mdx create mode 100644 uk/basic/record/record-history.mdx create mode 100644 uk/basic/security.mdx create mode 100644 uk/basic/space.mdx create mode 100644 uk/basic/space/ai-setting.mdx create mode 100644 uk/basic/space/base-invite.mdx create mode 100644 uk/basic/space/billing.mdx create mode 100644 uk/basic/space/space-invite.mdx create mode 100644 uk/basic/space/space-permission.mdx create mode 100644 uk/basic/sso/auth0.mdx create mode 100644 uk/basic/sso/authentik.mdx create mode 100644 uk/basic/sso/azure-entra-id.mdx create mode 100644 uk/basic/sso/google-workspace.mdx create mode 100644 uk/basic/sso/okta.mdx create mode 100644 uk/basic/sso/onelogin.mdx create mode 100644 uk/basic/sso/overview.mdx create mode 100644 uk/basic/table.mdx create mode 100644 uk/basic/table/export.mdx create mode 100644 uk/basic/table/import.mdx create mode 100644 uk/basic/view/calendar.mdx create mode 100644 uk/basic/view/form.mdx create mode 100644 uk/basic/view/gallery.mdx create mode 100644 uk/basic/view/grid.mdx create mode 100644 uk/basic/view/kanban.mdx create mode 100644 uk/basic/view/toolbar.mdx create mode 100644 uk/changelog-2024.mdx create mode 100644 uk/changelog-2025.mdx create mode 100644 uk/changelog.mdx create mode 100644 uk/compare/teable-vs-excel.mdx create mode 100644 uk/deploy/activate.mdx create mode 100644 uk/deploy/architecture.mdx create mode 100644 uk/deploy/choose.mdx create mode 100644 uk/deploy/dashboard.mdx create mode 100644 uk/deploy/docker.mdx create mode 100644 uk/deploy/email.mdx create mode 100644 uk/deploy/env.mdx create mode 100644 uk/deploy/nginx.mdx create mode 100644 uk/deploy/oidc.mdx create mode 100644 uk/deploy/one-key.mdx create mode 100644 uk/deploy/telemetry.mdx create mode 100644 uk/deploy/upgrade.mdx diff --git a/ar/api-doc/error-code.mdx b/ar/api-doc/error-code.mdx new file mode 100644 index 00000000..47a079fc --- /dev/null +++ b/ar/api-doc/error-code.mdx @@ -0,0 +1,58 @@ +--- +title: "رموز الأخطاء" +--- + +تتبع واجهة Teable Web API دلالات رموز حالة HTTP. + +* 2xx + يشير إلى نجاح العملية +* 4xx + أخطاء من جانب العميل +* 5xx + أخطاء من جانب الخادم + +تُرجع استجابات الأخطاء نصًا بترميز JSON يحتوي على حقلي الخطأ والمعلومات. فيما يلي مثال على نص استجابة خطأ: + +```json +{ + "message": "not allowed to operate space|read on spcxxxxxx", + "status": 403, + "code": "restricted_resource" +} +``` + +## رموز حالة النجاح + +### 200 OK + +اكتمل الطلب بنجاح. + +### 201 Created + +اكتمل الطلب بنجاح وأُنشئ مورد جديد. + +## رموز الأخطاء + +### 400 Bad Request + +تعذّر تحليل نص الطلب على أنه `JSON`، أو أن معلمات الإدخال في النص لا تستوفي متطلبات المواصفات. + +### 401 Unauthorized + +محاولة وصول غير مصرّح بها إلى API. + +### 403 Forbidden + +محاولة الوصول إلى مورد محمي باستخدام بيانات اعتماد API لا تتضمن الأذونات اللازمة. + +### 404 Not Found + +لم يُعثر على المسار أو المورد. يُرجع هذا الخطأ عند محاولة الوصول إلى مسار مورد غير موجود أو عندما لا تتطابق طريقة الطلب معه. + +### 500 Internal Server Error + +واجه الخادم حالة غير متوقعة. + +### 503 Service Unavailable + +الخدمة غير متاحة مؤقتًا، وقد يرجع ذلك إلى انتهاء مهلة المعالجة أو فشل الاتصال بقاعدة البيانات. diff --git a/ar/api-doc/get-id.mdx b/ar/api-doc/get-id.mdx new file mode 100644 index 00000000..f172fbd9 --- /dev/null +++ b/ar/api-doc/get-id.mdx @@ -0,0 +1,88 @@ +--- +title: "الحصول على المعرّفات" +--- + +## SpaceId + +انقر على المساحة المستهدفة، ثم انسخ من عنوان URL السلسلة التي تبدأ بـ 'spc'، مثال: `spcXXXXXXXXXX` + +معرّف المساحة في عنوان URL + +## BaseId + +انقر على قاعدة البيانات المستهدفة، ثم انسخ من عنوان URL السلسلة التي تبدأ بـ 'bse'، مثال: `bseXXXXXXXXXX` + +معرّف قاعدة البيانات في عنوان URL + +## TableId {#tableid} + +انقر على الجدول المستهدف، ثم انسخ من عنوان URL السلسلة التي تبدأ بـ 'tbl'، مثال: `tblXXXXXXXXXX` + +معرّف الجدول في عنوان URL + +## ViewId {#viewid} + +انقر على طريقة العرض المستهدفة، ثم انسخ من عنوان URL السلسلة التي تبدأ بـ 'viw'، مثال: `viwXXXXXXXXXX` + +معرّف طريقة العرض في عنوان URL + +## FieldId {#fieldid} + +**الطريقة الأولى:** + +انقر على أيقونة "المزيد" (النقاط الثلاث) في الزاوية العلوية اليسرى، ثم اختر "التصميم" للانتقال إلى واجهة التصميم وعرض معرّفات جميع الحقول + +فتح صفحة التصميم من قائمة المزيد + +معرّفات الحقول في صفحة التصميم + +**الطريقة الثانية:** + +انقر نقرًا مزدوجًا على رأس العمود أو اختر "تحرير الحقل" لفتح خصائص الحقل. يمكنك العثور على معرّف الحقل في قسم "اسم حقل قاعدة البيانات". + +فتح إعدادات الحقل من قائمة العمود + +اسم حقل قاعدة البيانات ومعرّف الحقل + + +## RecordId {#recordid} + +وسّع نموذج تحرير السجل، ثم انسخ من عنوان URL السلسلة التي تبدأ بـ 'rec' بعد 'recordId='، مثال: `recXXXXXXXXXX` + +معرّف السجل في عنوان URL للسجل الموسّع diff --git a/ar/api-doc/oauth.mdx b/ar/api-doc/oauth.mdx new file mode 100644 index 00000000..d7006cff --- /dev/null +++ b/ar/api-doc/oauth.mdx @@ -0,0 +1,527 @@ +--- +title: "تطبيق OAuth" +description: "أنشئ عمليات تكامل تتيح للمستخدمين التصريح بالوصول إلى بياناتهم في Teable باستخدام OAuth 2.0." +--- + +تتيح تطبيقات OAuth لتطبيقات الجهات الخارجية الوصول إلى Teable نيابةً عن المستخدمين. يوضح هذا الدليل كيفية إنشاء تطبيق OAuth وتهيئته، وتنفيذ مسار التفويض في OAuth 2.0، واستخدام رموز الوصول للتفاعل مع Teable API. + +يدعم Teable ثلاثة أوضاع للتفويض في OAuth 2.0: + +- **رمز التفويض + سر العميل**: لتطبيقات الويب التي لديها خادم خلفي +- **رمز التفويض + PKCE**: للتطبيقات الأصلية وأدوات CLI وتطبيقات الصفحة الواحدة وغيرها من العملاء العامّين الذين لا يمكنهم تخزين سر العميل بأمان +- **منح التفويض للجهاز**: للعملاء الذين لا يمكنهم تلقي إعادة توجيه من المتصفح مطلقًا، مثل أداة CLI تعمل عبر SSH أو داخل حاوية أو في بيئة تطوير سحابية + +## إنشاء تطبيق OAuth + +1. انتقل إلى [الإعدادات > تطبيقات OAuth](https://app.teable.ai/setting/oauth-app) في حسابك على Teable. +2. انقر على **تطبيقات OAuth جديدة** لإنشاء تطبيق جديد. +3. أدخل المعلومات المطلوبة: + - **اسم تطبيق OAuth**: اسم وصفي لتطبيقك + - **عنوان URL للصفحة الرئيسية**: عنوان URL الكامل لموقع تطبيقك + - **عنوان URL لمعاودة الاتصال**: عنوان URL الذي سيُعاد توجيه المستخدمين إليه بعد التفويض + - **النطاقات**: الأذونات التي يحتاج إليها تطبيقك + - **تمكين مسار الجهاز**: يكون معطّلًا افتراضيًا. لا تمكّنه إلا إذا كان تطبيقك يسجّل دخول المستخدمين باستخدام رمز جهاز + +4. بعد إنشاء التطبيق، أنشئ **سر العميل**. تأكد من نسخه وحفظه بأمان، إذ لن تتمكن من رؤيته مرة أخرى. + +ستتلقى **معرّف العميل**، وستحتاج إلى إنشاء **سر العميل**. حافظ على أمان بيانات الاعتماد هذه ولا تكشفها مطلقًا في الشيفرة من جانب العميل. عند استخدام مسار PKCE، لا يلزم سر عميل. + +## النطاقات المتاحة {#available-scopes} + +تحدد النطاقات الإجراءات التي يمكن لتطبيق OAuth تنفيذها. تُنظّم النطاقات المتاحة حسب نوع المورد: + +| المورد | النطاقات | +|----------|--------| +| **التطبيق** | `app\|create`, `app\|read`, `app\|update`, `app\|delete` | +| **قاعدة البيانات** | `base\|read`, `base\|read_all`, `base\|update`, `base\|table_import`, `base\|table_export`, `base\|query_data` | +| **الجدول** | `table\|create`, `table\|delete`, `table\|export`, `table\|import`, `table\|read`, `table\|update`, `table\|trash_read`, `table\|trash_update`, `table\|trash_reset` | +| **طريقة العرض** | `view\|create`, `view\|delete`, `view\|read`, `view\|update` | +| **الحقل** | `field\|create`, `field\|delete`, `field\|read`, `field\|update` | +| **السجل** | `record\|comment`, `record\|create`, `record\|delete`, `record\|read`, `record\|update` | +| **الأتمتة** | `automation\|create`, `automation\|delete`, `automation\|read`, `automation\|update` | +| **المستخدم** | `user\|email_read`, `user\|integrations` | + +لا تطلب إلا النطاقات التي يحتاج إليها تطبيقك فعليًا. سيرى المستخدمون الأذونات المطلوبة أثناء التفويض. + +## مسار رمز التفويض في OAuth 2.0 + +يطبّق Teable مسار رمز التفويض القياسي في OAuth 2.0: + +```mermaid +sequenceDiagram + participant User as المستخدم + participant App as تطبيقك + participant Teable + + App->>Teable: 1. إعادة التوجيه إلى /api/oauth/authorize + Teable->>User: 2. عرض صفحة التفويض + User->>Teable: 3. الموافقة أو الرفض + Teable->>App: 4. إعادة التوجيه باستخدام رمز التفويض + App->>Teable: 5. استبدال الرمز بالرموز المميزة + Teable->>App: 6. إرجاع access_token وrefresh_token +``` + +### الخطوة 1: إعادة توجيه المستخدمين إلى التفويض + +وجّه المستخدمين إلى نقطة نهاية التفويض مع معلمات تطبيقك: + +``` +GET https://app.teable.ai/api/oauth/authorize +``` + +**معلمات الاستعلام:** + +| المعلمة | مطلوبة | الوصف | +|-----------|----------|-------------| +| `response_type` | نعم | يجب أن تكون `code` | +| `client_id` | نعم | معرّف العميل لتطبيق OAuth الخاص بك | +| `redirect_uri` | لا | يجب أن يطابق أحد عناوين URL المسجلة لمعاودة الاتصال. عند حذفه، سيُستخدم أول عنوان URL مسجل لمعاودة الاتصال | +| `scope` | لا | قائمة نطاقات مفصولة بمسافات. عند حذفها، تُستخدم النطاقات المهيأة في تطبيق OAuth | +| `state` | لا | سلسلة عشوائية لمنع هجمات CSRF. ستُعاد في معاودة الاتصال | + +**مثال:** + +``` +https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=https://yourapp.com/callback&scope=table|read%20record|read&state=random_state_string +``` + +### الخطوة 2: تفويض المستخدم + +سيرى المستخدمون صفحة تفويض تعرض ما يلي: +- اسم تطبيقك وشعاره +- الأذونات المطلوبة (النطاقات) +- خياري الموافقة على الوصول أو رفضه + +إذا سبق للمستخدم تفويض تطبيقك (خلال 7 أيام افتراضيًا)، فستتم إعادة توجيهه فورًا من دون رؤية صفحة التفويض مرة أخرى. + +### الخطوة 3: معالجة معاودة الاتصال + +بعد موافقة المستخدم (أو رفضه)، يعيد Teable التوجيه إلى عنوان URL لمعاودة الاتصال: + +**عند النجاح:** +``` +https://yourapp.com/callback?code=AUTHORIZATION_CODE&state=random_state_string +``` + +**عند الرفض:** +``` +https://yourapp.com/callback?error=access_denied&state=random_state_string +``` + +### الخطوة 4: استبدال الرمز برموز وصول + +استبدل رمز التفويض برمز وصول ورمز تحديث: + +``` +POST https://app.teable.ai/api/oauth/access_token +Content-Type: application/x-www-form-urlencoded +``` + +**نص الطلب:** + +| المعلمة | مطلوبة | الوصف | +|-----------|----------|-------------| +| `grant_type` | نعم | يجب أن تكون `authorization_code` | +| `code` | نعم | رمز التفويض المستلَم | +| `client_id` | نعم | معرّف العميل لتطبيق OAuth الخاص بك | +| `client_secret` | نعم | سر العميل لتطبيق OAuth الخاص بك | +| `redirect_uri` | نعم | يجب أن يطابق تمامًا redirect_uri المستخدم في التفويض | + +**مثال على الطلب:** + +```bash +curl -X POST https://app.teable.ai/api/oauth/access_token \ + -H "Content-Type: application/x-www-form-urlencoded" \ + -d "grant_type=authorization_code" \ + -d "code=AUTHORIZATION_CODE" \ + -d "client_id=YOUR_CLIENT_ID" \ + -d "client_secret=YOUR_CLIENT_SECRET" \ + -d "redirect_uri=https://yourapp.com/callback" +``` + +**الاستجابة:** + +```json +{ + "token_type": "Bearer", + "access_token": "teable_xxxxxxxxxxxx", + "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", + "expires_in": 600, + "refresh_expires_in": 2592000, + "scopes": ["table|read", "record|read"] +} +``` + +| الحقل | الوصف | +|-------|-------------| +| `token_type` | دائمًا `Bearer` | +| `access_token` | الرمز المستخدم لطلبات API | +| `refresh_token` | الرمز المستخدم للحصول على رموز وصول جديدة | +| `expires_in` | مدة صلاحية رمز الوصول بالثواني (الافتراضي: 600 = 10 دقائق) | +| `refresh_expires_in` | مدة صلاحية رمز التحديث بالثواني (الافتراضي: 2592000 = 30 يومًا) | +| `scopes` | مصفوفة النطاقات الممنوحة | + +## مسار التفويض باستخدام PKCE + +صُمم PKCE (إثبات المفتاح لتبادل الرمز) للتطبيقات التي لا يمكنها تخزين سر العميل بأمان، مثل تطبيقات سطح المكتب الأصلية وتطبيقات الأجهزة المحمولة وأدوات CLI وتطبيقات الصفحة الواحدة. + +### الخطوة 1: إنشاء معلمات PKCE + +قبل بدء التفويض، يحتاج العميل إلى إنشاء زوج من معلمات PKCE: + +```javascript +// إنشاء code_verifier (سلسلة عشوائية من 43 إلى 128 حرفًا) +const codeVerifier = generateRandomString(43); + +// إنشاء code_challenge = BASE64URL(SHA256(code_verifier)) +const encoder = new TextEncoder(); +const data = encoder.encode(codeVerifier); +const digest = await crypto.subtle.digest('SHA-256', data); +const codeChallenge = btoa(String.fromCharCode(...new Uint8Array(digest))) + .replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, ''); +``` + +### الخطوة 2: إعادة توجيه المستخدمين إلى التفويض + +``` +GET https://app.teable.ai/api/oauth/authorize +``` + +**معلمات الاستعلام:** + +| المعلمة | مطلوبة | الوصف | +|-----------|----------|-------------| +| `response_type` | نعم | يجب أن تكون `code` | +| `client_id` | نعم | معرّف العميل لتطبيق OAuth الخاص بك | +| `redirect_uri` | لا | عنوان URL لمعاودة الاتصال. يدعم وضع PKCE عناوين الاسترجاع المحلي | +| `scope` | لا | قائمة نطاقات مفصولة بمسافات | +| `state` | لا | سلسلة عشوائية لمنع هجمات CSRF | +| `code_challenge` | نعم | تجزئة SHA-256 للقيمة code_verifier (مرمّزة بصيغة Base64URL) | +| `code_challenge_method` | نعم | يجب أن تكون `S256` | + +**مثال:** + +``` +https://app.teable.ai/api/oauth/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=http://127.0.0.1:8080/callback&code_challenge=YOUR_CODE_CHALLENGE&code_challenge_method=S256&state=random_state_string +``` + +في وضع PKCE، يدعم `redirect_uri` عناوين الاسترجاع المحلي (`http://127.0.0.1` و`http://[::1]` و`http://localhost`) مع مطابقة مرنة للمنافذ؛ فلا تحتاج إلى تسجيل كل منفذ بدقة. + +### الخطوة 3: معالجة معاودة الاتصال + +كما في مسار رمز التفويض القياسي، يُعاد رمز التفويض عبر إعادة التوجيه بعد موافقة المستخدم. + +### الخطوة 4: استبدال الرمز وcode_verifier برموز وصول + +``` +POST https://app.teable.ai/api/oauth/access_token +Content-Type: application/x-www-form-urlencoded +``` + +**نص الطلب:** + +| المعلمة | مطلوبة | الوصف | +|-----------|----------|-------------| +| `grant_type` | نعم | يجب أن تكون `authorization_code` | +| `code` | نعم | رمز التفويض المستلَم | +| `client_id` | نعم | معرّف العميل لتطبيق OAuth الخاص بك | +| `code_verifier` | نعم | السلسلة العشوائية الأصلية التي أُنشئت في الخطوة 1 | +| `redirect_uri` | نعم | يجب أن يطابق تمامًا redirect_uri المستخدم في التفويض | + +لا يتطلب وضع PKCE القيمة `client_secret`. تُستخدم القيمة `code_verifier` بدلاً منها للتحقق من هوية العميل. + +**مثال على الطلب:** + +```bash +curl -X POST https://app.teable.ai/api/oauth/access_token \ + -H "Content-Type: application/x-www-form-urlencoded" \ + -d "grant_type=authorization_code" \ + -d "code=AUTHORIZATION_CODE" \ + -d "client_id=YOUR_CLIENT_ID" \ + -d "code_verifier=YOUR_CODE_VERIFIER" \ + -d "redirect_uri=http://127.0.0.1:8080/callback" +``` + +تنسيق الاستجابة مماثل لمسار رمز التفويض القياسي. + +## مسار تفويض الجهاز + +يُستخدم منح تفويض الجهاز ([RFC 8628](https://datatracker.ietf.org/doc/html/rfc8628)) للعملاء الذين لا يمكنهم تلقي إعادة توجيه من المتصفح: مثل أداة CLI تعمل عبر SSH أو داخل حاوية أو في بيئة تطوير سحابية. يعرض عميلك عنوان URL ورمزًا قصيرًا، ويوافق المستخدم في أي متصفح، ولا يلزم إدخال أي شيء مجددًا في الطرفية. + +يتبع Teable معيار RFC 8628، لذا يمكن لمعظم مكتبات عميل OAuth تشغيل هذا المسار من دون شيفرة مخصصة. وفيما يلي ما يخص Teable تحديدًا. + +يكون مسار الجهاز معطّلًا افتراضيًا. فعّل **تمكين مسار الجهاز** في إعدادات تطبيق OAuth قبل استخدامه. يمكن لأي شخص يعرف معرّف العميل بدء هذا المسار باسم تطبيقك، لذا لا تمكّنه إلا إذا كان تطبيقك يحتاج إليه. كما يؤدي تعطيله مرة أخرى إلى إيقاف الطلبات التي لا تزال بانتظار الموافقة. + +### طلب رمز جهاز + +أرسل `POST /api/oauth/device/code` مع `client_id` و`scope` اختياري. نقطة النهاية مجهولة الهوية ومحدودة بمعدل 30 طلبًا لكل 15 دقيقة لكل عنوان IP. + +```json +{ + "device_code": "xxxxxxxxxxxx", + "user_code": "BCDF-GHJK", + "verification_uri": "https://app.teable.ai/oauth/device", + "expires_in": 900, + "interval": 5 +} +``` + +تنتهي صلاحية كلا الرمزين بعد 15 دقيقة (`BACKEND_OAUTH_DEVICE_CODE_EXPIRE_IN`)، وتمثل `interval` الحد الأدنى لعدد الثواني الواجب انتظاره بين عمليات الاستقصاء. + +اعرض `verification_uri` و`user_code`. في تلك الصفحة، يسجّل المستخدم الدخول ويدخل الرمز ويراجع اسم تطبيقك وصفحته الرئيسية ونطاقاته المطلوبة قبل الموافقة أو الرفض. تحذّره الصفحة من الموافقة على رمز لم يبدأ طلبه بنفسه. ولا يمكن استخدام كل رمز إلا مرة واحدة. + +لا يُرجع Teable القيمة `verification_uri_complete`، وينبغي ألا ينشئ عميلك واحدة. يُسجّل الرمز الموافق عليه دخول الشخص الذي وافق إلى حسابه الخاص في Teable؛ ولذلك فإن الرابط الذي يحمل الرمز مسبقًا هو تحديدًا ما تعتمد عليه هجمات التصيد الاحتيالي لرمز الجهاز. + +### الاستقصاء عن رموز الوصول + +أرسل `POST /api/oauth/access_token` مع `grant_type=urn:ietf:params:oauth:grant-type:device_code` و`device_code` و`client_id`. لا يرسل العملاء العامّون `client_secret`، بينما يضيفه العملاء السريون كما في المسارات الأخرى. + +إلى أن يوافق شخص على الرمز، تستجيب نقطة النهاية بخطأ بدلاً من رموز الوصول: + +| الخطأ | ما ينبغي لعميلك فعله | +|-------|----------------------------| +| `authorization_pending` | لم يوافق أحد بعد. واصل الاستقصاء وفق `interval` | +| `slow_down` | أجريت الاستقصاء بسرعة زائدة. انتظر مدة أطول قبل الاستقصاء التالي | +| `access_denied` | رفض المستخدم الطلب. أوقف الاستقصاء | +| `expired_token` | انتهت صلاحية الرمز أو سبق استخدامه. ابدأ من جديد | + +بعد موافقة المستخدم، تكون الاستجابة هي حمولة رموز الوصول نفسها المستخدمة في المسارات الأخرى. + +## استخدام رموز الوصول + +ضمّن رمز الوصول في ترويسة `Authorization` لطلبات API: + +```bash +curl https://app.teable.ai/api/table/TABLE_ID/record \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" +``` + +تكون الخطوة الأولى بعد الحصول على رمز عادةً هي جلب جميع قواعد البيانات التي يمكن للمستخدم الحالي الوصول إليها: + +```bash +curl https://app.teable.ai/api/base/access/all \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" +``` + +تُرجع نقطة النهاية هذه جميع قواعد البيانات التي يملك المستخدم الحالي إذنًا للوصول إليها. ويمكنك استخدام `baseId` من الاستجابة في استدعاءات API اللاحقة. + +## تحديث رموز الوصول + +عند انتهاء صلاحية رمز الوصول، استخدم رمز التحديث للحصول على رمز جديد: + +``` +POST https://app.teable.ai/api/oauth/access_token +Content-Type: application/x-www-form-urlencoded +``` + +**نص الطلب:** + +| المعلمة | مطلوبة | الوصف | +|-----------|----------|-------------| +| `grant_type` | نعم | يجب أن تكون `refresh_token` | +| `refresh_token` | نعم | رمز التحديث الحالي | +| `client_id` | نعم | معرّف العميل لتطبيق OAuth الخاص بك | +| `client_secret` | مشروطة | مطلوبة لوضع رمز التفويض القياسي، وغير مطلوبة لوضع PKCE | + +**مثال على الطلب:** + +```bash +curl -X POST https://app.teable.ai/api/oauth/access_token \ + -H "Content-Type: application/x-www-form-urlencoded" \ + -d "grant_type=refresh_token" \ + -d "refresh_token=YOUR_REFRESH_TOKEN" \ + -d "client_id=YOUR_CLIENT_ID" \ + -d "client_secret=YOUR_CLIENT_SECRET" +``` + +بعد التحديث، يصبح رمز التحديث السابق غير صالح (تدوير رمز التحديث). احفظ دائمًا رمز التحديث الجديد الوارد في الاستجابة. + +## إلغاء الوصول + +### لمالكي تطبيق OAuth + +ألغِ وصول التطبيق **لجميع المستخدمين** (لا يمكن تنفيذ ذلك إلا بواسطة منشئ التطبيق): + +``` +POST https://app.teable.ai/api/oauth/client/{clientId}/revoke-access +``` + +يحذف ذلك جميع سجلات التفويض ورموز الوصول الخاصة بالمستخدمين، ويمنع التطبيق تمامًا من الوصول إلى بيانات أي مستخدم. + +### للمستخدمين + +ألغِ تفويضك **الخاص** لتطبيق محدد: + +``` +POST https://app.teable.ai/api/oauth/client/{clientId}/revoke-token +``` + +لا يؤدي ذلك إلا إلى إبطال رموز الوصول ورموز التحديث للمستخدم الحالي، من دون التأثير في المستخدمين الآخرين. + +يمكن للمستخدمين أيضًا إلغاء الوصول من خلال صفحة إعدادات [التطبيقات المصرّح بها](https://app.teable.ai/setting/authorized-apps). + +### للتطبيقات + +يمكن للتطبيقات إلغاء وصولها باستخدام رمز وصول: + +``` +GET https://app.teable.ai/api/oauth/client/{clientId}/revoke-token +Authorization: Bearer YOUR_ACCESS_TOKEN +``` + +لا تقبل نقطة النهاية هذه إلا المصادقة باستخدام رمز الوصول، وليس مصادقة الجلسة. + +## انتهاء صلاحية الرموز + +| نوع الرمز | انتهاء الصلاحية الافتراضي | قابل للتهيئة عبر | +|------------|-------------------|------------------| +| رمز التفويض | 5 دقائق | `BACKEND_OAUTH_CODE_EXPIRE_IN` | +| رمز الجهاز | 15 دقيقة | `BACKEND_OAUTH_DEVICE_CODE_EXPIRE_IN` | +| رمز الوصول | 10 دقائق | `BACKEND_OAUTH_ACCESS_TOKEN_EXPIRE_IN` | +| رمز التحديث | 30 يومًا | `BACKEND_OAUTH_REFRESH_TOKEN_EXPIRE_IN` | +| تذكّر التفويض | 7 أيام | `BACKEND_OAUTH_AUTHORIZED_EXPIRE_IN` | + +## معالجة الأخطاء + +استجابات الأخطاء الشائعة: + +| الخطأ | الوصف | +|-------|-------------| +| `invalid_client` | معرّف العميل أو سر العميل غير صالح | +| `invalid_grant` | انتهت صلاحية رمز التفويض أو سبق استخدامه | +| `invalid_scope` | النطاق المطلوب غير مسموح به لتطبيق OAuth هذا | +| `access_denied` | رفض المستخدم طلب التفويض | +| `redirect_uri_mismatch` | لا يطابق معرّف URI لإعادة التوجيه عناوين URL المسجلة | +| `unauthorized_client` | لم يمكّن تطبيق OAuth مسار الجهاز | +| `too_many_requests` | تم تجاوز حد المعدل. الحد الافتراضي لطلبات رموز الوصول هو 30 طلبًا لكل 15 دقيقة، ولطلبات رمز الجهاز 30 طلبًا لكل 15 دقيقة لكل عنوان IP | + +## أفضل الممارسات + +1. **اختيار الوضع المناسب**: استخدم وضع سر العميل لتطبيقات الويب ذات الخادم الخلفي، ووضع PKCE للتطبيقات الأصلية وأدوات CLI وتطبيقات الصفحة الواحدة، ومسار الجهاز عندما يتعذر على العميل تلقي إعادة توجيه من المتصفح +2. **حفظ الأسرار بأمان**: لا تكشف سر العميل مطلقًا في الشيفرة من جانب العميل +3. **استخدام معلمة state**: ضمّن دائمًا معلمة `state` عشوائية لمنع هجمات CSRF +4. **طلب الحد الأدنى من النطاقات**: لا تطلب إلا الأذونات التي يحتاج إليها تطبيقك فعليًا +5. **معالجة تحديث الرموز**: نفّذ تحديثًا تلقائيًا للرموز قبل انتهاء صلاحيتها +6. **تأمين تخزين الرموز**: خزّن رموز الوصول والتحديث بأمان على خادمك + +## أمثلة كاملة + +### Node.js (رمز التفويض + سر العميل) + +```javascript +const express = require('express'); +const crypto = require('crypto'); +const app = express(); + +const CLIENT_ID = 'your_client_id'; +const CLIENT_SECRET = 'your_client_secret'; +const REDIRECT_URI = 'http://localhost:3000/callback'; +const TEABLE_URL = 'https://app.teable.ai'; + +// الخطوة 1: إعادة توجيه المستخدم إلى صفحة التفويض +app.get('/login', (req, res) => { + const state = crypto.randomBytes(16).toString('hex'); + req.session.oauthState = state; // تخزين state في الجلسة + const authUrl = `${TEABLE_URL}/api/oauth/authorize?` + + `response_type=code&` + + `client_id=${CLIENT_ID}&` + + `redirect_uri=${encodeURIComponent(REDIRECT_URI)}&` + + `scope=${encodeURIComponent('record|read table|read')}&` + + `state=${state}`; + res.redirect(authUrl); +}); + +// الخطوة 2: معالجة رد الاتصال واستبدال الرمز بالرموز المميزة +app.get('/callback', async (req, res) => { + const { code, state } = req.query; + + // التحقق من state لمنع هجمات CSRF + if (state !== req.session.oauthState) { + return res.status(403).send('قيمة state غير صالحة'); + } + + const response = await fetch(`${TEABLE_URL}/api/oauth/access_token`, { + method: 'POST', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + body: new URLSearchParams({ + grant_type: 'authorization_code', + client_id: CLIENT_ID, + client_secret: CLIENT_SECRET, + code, + redirect_uri: REDIRECT_URI, + }), + }); + + const tokens = await response.json(); + // tokens.access_token — يُستخدم لاستدعاءات API + // tokens.refresh_token — يُستخدم لتحديث الرموز المميزة + res.json({ success: true, scopes: tokens.scopes }); +}); + +app.listen(3000); +``` + +### Python (وضع PKCE لأدوات CLI) + +```python +import hashlib +import base64 +import secrets +import http.server +import urllib.parse +import requests + +CLIENT_ID = 'your_client_id' +TEABLE_URL = 'https://app.teable.ai' +PORT = 8080 +REDIRECT_URI = f'http://127.0.0.1:{PORT}/callback' + +# الخطوة 1: إنشاء معلمات PKCE +code_verifier = secrets.token_urlsafe(32) # 43 characters +code_challenge = base64.urlsafe_b64encode( + hashlib.sha256(code_verifier.encode()).digest() +).rstrip(b'=').decode() + +# الخطوة 2: إنشاء عنوان URL للتفويض (افتحه في المتصفح) +auth_url = ( + f"{TEABLE_URL}/api/oauth/authorize?" + f"response_type=code&" + f"client_id={CLIENT_ID}&" + f"redirect_uri={urllib.parse.quote(REDIRECT_URI)}&" + f"code_challenge={code_challenge}&" + f"code_challenge_method=S256" +) +print(f"افتح في متصفحك:\n{auth_url}") + +# الخطوة 3: تشغيل خادم محلي لاستقبال رد الاتصال +authorization_code = None + +class CallbackHandler(http.server.BaseHTTPRequestHandler): + def do_GET(self): + global authorization_code + query = urllib.parse.urlparse(self.path).query + params = urllib.parse.parse_qs(query) + authorization_code = params.get('code', [None])[0] + self.send_response(200) + self.end_headers() + self.wfile.write('تم التفويض بنجاح! يمكنك إغلاق هذه الصفحة.'.encode('utf-8')) + + def log_message(self, format, *args): + pass # تعطيل السجلات + +server = http.server.HTTPServer(('127.0.0.1', PORT), CallbackHandler) +server.handle_request() # معالجة طلب واحد + +# الخطوة 4: استبدال code + code_verifier بالرموز المميزة +response = requests.post(f"{TEABLE_URL}/api/oauth/access_token", data={ + 'grant_type': 'authorization_code', + 'client_id': CLIENT_ID, + 'code': authorization_code, + 'redirect_uri': REDIRECT_URI, + 'code_verifier': code_verifier, +}) + +tokens = response.json() +print(f"رمز الوصول: {tokens['access_token']}") +print(f"تنتهي الصلاحية خلال: {tokens['expires_in']} ثانية") +``` diff --git a/ar/api-doc/overview.mdx b/ar/api-doc/overview.mdx new file mode 100644 index 00000000..a47e965a --- /dev/null +++ b/ar/api-doc/overview.mdx @@ -0,0 +1,63 @@ +--- +title: "نظرة عامة على API" +description: "كل ما تحتاج إليه لبدء استدعاء Teable API: عنوان URL الأساسي والمصادقة والمعرّفات وأنماط الطلبات الشائعة." +--- + +يساعدك هذا القسم على بدء استخدام Teable API بسرعة وأمان. + +## عنوان URL الأساسي + +- **Teable السحابية**: `https://app.teable.ai` +- **الاستضافة الذاتية**: استخدم نطاقك الخاص (على سبيل المثال `https://teable.example.com`) + +جميع مسارات API في هذه الوثائق مرتبطة بعنوان URL الأساسي وتبدأ بـ `/api`. + +## المصادقة + +تستخدم واجهات Teable API **رموز Bearer**: + +```bash +curl -H 'Authorization: Bearer __token__' \ + 'https://app.teable.ai/api/table/__tableId__/record' +``` + +يمكنك استخدام أحد الخيارين التاليين: + +- **رمز الوصول الشخصي**: الأنسب للنصوص البرمجية والأدوات الداخلية وعمليات التكامل من جانب الخادم. راجع [رمز الوصول](/ar/api-doc/token). +- **رمز وصول OAuth**: الأنسب لعمليات التكامل متعددة المستأجرين التي يمنح فيها المستخدمون النهائيون حق الوصول. راجع [تطبيق OAuth](/ar/api-doc/oauth). + +## المعرّفات (spaceId / baseId / tableId / viewId / fieldId / recordId) + +تتطلب معظم نقاط النهاية معرّفات مثل `tbl...` و`rec...`. راجع [الحصول على المعرّفات](/ar/api-doc/get-id). + +## النطاقات والأذونات + +تُقيّد رموز الوصول الشخصية ورموز OAuth بنطاقات أذونات محددة. إذا تلقيت الخطأ 403، فهذا يعني عادةً أن الرمز لا يتضمن النطاق المطلوب. + +- راجع [رموز الأخطاء](/ar/api-doc/error-code) +- مرجع نطاقات OAuth: [تطبيق OAuth](/ar/api-doc/oauth#available-scopes) + +## التقسيم إلى صفحات (take / skip) + +تدعم العديد من نقاط النهاية التي تعرض قوائم ما يلي: + +- `take`: عدد العناصر المطلوب إرجاعها (تضع بعض نقاط النهاية حدًا أقصى لهذا العدد؛ فمثلًا، الحد الأقصى للسجلات هو 100 لكل طلب، لذا تنقّل بين الصفحات باستخدام `skip`) +- `skip`: عدد العناصر المطلوب تخطيها + +## مفاتيح الحقول وتنسيق الخلايا + +تتيح لك بعض واجهات API التحكم في كيفية تمثيل حقول السجلات: + +- `fieldKeyType`: `name` (الافتراضي) / `id` / `dbFieldName` +- `cellFormat`: `json` (الافتراضي) / `text` + +للاطلاع على بُنى قيم حقول السجلات، راجع [واجهة حقول السجلات](/ar/api-doc/record/interface). + +## الخطوة التالية + +- **إذا كنت تريد جلب البيانات فقط**: [الحصول على السجلات](/ar/api-doc/record/get) +- **إنشاء السجلات أو تحديثها أو حذفها**: [إنشاء السجلات](/ar/api-doc/record/create)، [تحديث سجل](/ar/api-doc/record/update)، [حذف السجلات](/ar/api-doc/record/delete) +- **رفع المرفقات**: [رفع مرفق](/ar/api-doc/record/upload-attachment) +- **القائمة الكاملة لنقاط النهاية**: استخدم شريط التنقل الأيسر ضمن **مرجع API** + + diff --git a/ar/api-doc/record/create.mdx b/ar/api-doc/record/create.mdx new file mode 100644 index 00000000..13dd3fea --- /dev/null +++ b/ar/api-doc/record/create.mdx @@ -0,0 +1,243 @@ +--- +title: "إنشاء السجلات" +--- + +{/* mintlify-resync: 2026-05-14 */} +### المسار + +POST /api/table/\{tableId\}/record + +### الطلب + +#### معلمات المسار + +* tableId (string): المعرّف الفريد للجدول. + +#### نص الطلب + +* **records (مطلوب)** + * الوصف: مصفوفة السجلات المطلوب إنشاؤها + * النوع: مصفوفة + * مثال: + ```json + [ + { + "fields": { + "Name": "John Doe", + "Age": 30, + "Email": "john@example.com" + } + }, + { + "fields": { + "Name": "Jane Smith", + "Age": 28, + "Email": "jane@example.com" + } + } + ] + ``` + * ملاحظة: كل سجل عبارة عن عنصر يحتوي على كائن `fields`. ويحتوي كائن `fields` على أسماء الحقول وقيمها المقابلة. لكل نوع من الحقول بنية قيمة مختلفة؛ راجع [أنواع قيم حقول السجلات](/ar/api-doc/record/interface) للاطلاع على التفاصيل. + * القيم الافتراضية: تستخدم الحقول المحذوفة من `fields` القيمة الافتراضية للجدول عند تهيئة إحداها. إذا لم تكن للحقل المطلوب قيمة افتراضية، أو إذا مرّرت `null` صراحةً إلى حقل مطلوب، فسيفشل الطلب. +* **fieldKeyType (اختياري)** + * الوصف: يحدد نوع مفتاح الحقل + * النوع: سلسلة نصية + * القيم الممكنة: + * "name": استخدام اسم الحقل كمفتاح + * "id": استخدام معرّف الحقل كمفتاح + * "dbFieldName": استخدام dbFieldName للحقل كمفتاح + * مثال: `"name"` أو `"id"` أو `"dbFieldName"` + * ملاحظة: إذا لم تحدده، فسيُستخدم اسم الحقل كمفتاح افتراضيًا. + * الاستخدام: + * عند ضبطه على "name": + ```json + { + "fields": { + "Name": "John Doe", + "Age": 30 + } + } + ``` + * عند ضبطه على "id": + ```json + { + "fields": { + "fldABCDEFGHIJKLMN": "John Doe", + "fldOPQRSTUVWXYZ12": 30 + } + } + ``` +* **typecast (اختياري)** + * الوصف: يحدد ما إذا كانت أنواع قيم الحقول ستُحوّل تلقائيًا. يُطبّق التحقق الصارم افتراضيًا، ما يفرض تطابق قيم الإدخال مع نوع بيانات الحقل الحالي. عند تمكينه، سيحاول النظام إجراء التحويل تلقائيًا. + * النوع: قيمة منطقية + * القيم الممكنة: true أو false + * مثال: `true` + * ملاحظة: إذا ضُبط على true، فسيحاول النظام تحويل قيم الإدخال إلى نوع قيمة الحقل الصحيح. + * أمثلة على الاستخدام: + * حقل ارتباط: يمكن استخدام نص المفتاح الأساسي مباشرةً لإنشاء الارتباط + ```json + { + "User table": "John Smith" + } + ``` + * حقل تاريخ: يمكن استخدام سلاسل تاريخ بتنسيق غير قياسي + ```json + { + "Date": "2023-05-15" + } + ``` + * حقل مستخدم: يمكن استخدام اسم المستخدم مباشرةً + ```json + { + "Assigned To": "John Doe" + } + ``` +* **order (اختياري)** + * الوصف: يحدد موضع السجلات الجديدة في طريقة عرض محددة + * النوع: كائن + * الخصائص: + * viewId + * الوصف: معرّف طريقة العرض [(كيفية الحصول عليه)](/ar/api-doc/get-id#viewid) + * النوع: سلسلة نصية + * مثال: `"viwABCDEFGHIJKLMN"` + * anchorId + * الوصف: معرّف السجل المرجعي [(كيفية الحصول عليه)](/ar/api-doc/get-id#recordid) + * النوع: سلسلة نصية + * مثال: `"rec123456789ABCDE"` + * position + * الوصف: الموضع بالنسبة إلى السجل المرجعي + * النوع: سلسلة نصية + * القيم الممكنة: + * "before": قبل السجل المرجعي + * "after": بعد السجل المرجعي + * مثال: `"after"` + * مثال كامل: + ```json + { + "viewId": "viwABCDEFGHIJKLMN", + "anchorId": "rec123456789ABCDE", + "position": "after" + } + ``` + * ملاحظة: يتيح استخدام order التحكم الدقيق في مواضع السجلات الجديدة ضمن طريقة عرض محددة. + +### الاستجابة + +#### استجابة النجاح + +* رمز الحالة: 201 Created +* نص الاستجابة: يُرجع بيانات السجلات التي أُنشئت. + +**مثال على نص الاستجابة** + +```json +{ + "records": [ + { + "id": "record789", + "fields": { + "single line text": "قيمة نصية 1" + } + }, + { + "id": "record567", + "fields": { + "single line text": "قيمة نصية 2" + } + } + ] +} +``` + +### استجابات الأخطاء + +* رمز الحالة: 400 Bad Request: خطأ في تنسيق نص الطلب أو غياب الحقول المطلوبة. +* رمز الحالة: 404 Not Found: قيمة tableId المحددة غير موجودة. + +### مثال على الشيفرة + + + ```bash CURL + curl -X POST 'https://app.teable.ai/api/table/__tableId__/record' \ + -H 'Authorization: Bearer __token__' \ + -H 'Content-Type: application/json' \ + -d '{ + "records": [ + { + "fields": { + "Name": "John Doe", + "Age": 30 + } + } + ] + }' + ``` + + ```js JS SDK + import { configApi, createRecords } from '@teable/openapi'; + + configApi({ + endpoint: 'https://app.teable.ai', + token, + }); + + const response = await createRecords('__tableId__', { + records: [ + { + fields: { + Name: 'John Doe', + Age: 30 + } + } + ] + }); + + console.log(response.data); + ``` + + ```ts TypeScript + const response = await fetch('https://app.teable.ai/api/table/__tableId__/record', { + method: 'POST', + headers: { + 'Authorization': 'Bearer __token__', + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + records: [ + { + fields: { + Name: 'John Doe', + Age: 30 + } + } + ] + }) + }); + + console.log(await response.json()); + ``` + + ```python Python + import requests + + response = requests.post( + 'https://app.teable.ai/api/table/__tableId__/record', + headers={ + 'Authorization': 'Bearer __token__', + 'Content-Type': 'application/json' + }, + json={ + 'records': [ + { + 'fields': { + 'Name': 'John Doe', + 'Age': 30 + } + } + ] + } + ) + + print(response.json()) + ``` + diff --git a/ar/api-doc/record/delete.mdx b/ar/api-doc/record/delete.mdx new file mode 100644 index 00000000..28685172 --- /dev/null +++ b/ar/api-doc/record/delete.mdx @@ -0,0 +1,80 @@ +--- +title: "حذف السجلات" +--- + +### المسار + +DELETE /api/table/\{tableId\}/record + +### الطلب + +**معلمات المسار** + +* tableId (string): المعرّف الفريد للجدول [(كيفية الحصول عليه)](/ar/api-doc/get-id#tableid). + +**معلمات الاستعلام** + +* **recordIds (مطلوب)** [(كيفية الحصول عليها)](/ar/api-doc/get-id#recordid) + * الوصف: مصفوفة معرّفات السجلات المطلوب حذفها + * النوع: مصفوفة + * مثال: `["rec123456", "rec789012"]` + * ملاحظة: كل عنصر عبارة عن سلسلة تمثل معرّف سجل مطلوب حذفه. + +#### الاستجابة + +**استجابة النجاح** + +* رمز الحالة: 200 OK +* نص الاستجابة: لا يوجد محتوى + +#### استجابات الأخطاء + +* رمز الحالة: 400 Bad Request: خطأ في تنسيق معلمات الطلب أو غياب المعلمات المطلوبة. +* رمز الحالة: 404 Not Found: قيمة tableId المحددة غير موجودة أو بعض معرّفات السجلات غير موجودة. + +#### مثال على الشيفرة + + + ```bash CURL + curl -X DELETE 'https://app.teable.ai/api/table/__tableId__/record?recordIds[]=rec123456&recordIds[]=rec789012' \ + -H 'Authorization: Bearer __token__' + ``` + + ```js JS SDK + import { configApi, deleteRecords } from '@teable/openapi'; + + configApi({ + endpoint: 'https://app.teable.ai', + token: '__token__', + }); + + await deleteRecords('__tableId__', ['rec123456', 'rec789012']); + ``` + + ```ts TypeScript + const response = await fetch('https://app.teable.ai/api/table/__tableId__/record?recordIds[]=rec123456&recordIds[]=rec789012', { + method: 'DELETE', + headers: { + 'Authorization': 'Bearer __token__' + } + }); + + console.log(response.status); // 200 عند النجاح + ``` + + ```python Python + import requests + + response = requests.delete( + 'https://app.teable.ai/api/table/__tableId__/record', + headers={ + 'Authorization': 'Bearer __token__' + }, + params={ + 'recordIds': ['rec123456', 'rec789012'] + } + ) + + print(response.status_code) # 200 عند النجاح + ``` + diff --git a/ar/api-doc/record/get.mdx b/ar/api-doc/record/get.mdx new file mode 100644 index 00000000..b72d66e4 --- /dev/null +++ b/ar/api-doc/record/get.mdx @@ -0,0 +1,85 @@ +--- +title: "الحصول على السجلات" +--- + +نوفر للمطورين [أداة مدمجة لإنشاء معلمات الاستعلام](https://app.teable.ai/developer/tool/query-builder)، تساعدهم على إنشاء طلبات مخصصة استنادًا إلى جداولهم الحالية. + +### المسار +GET /api/table/\{tableId\}/record +​ +### الطلب +#### معلمات المسار +tableId (string): المعرّف الفريد للجدول [(كيفية الحصول عليه)](/ar/api-doc/get-id#tableid). + +#### معلمات الاستعلام الأساسية +جميع المعلمات اختيارية + + + يحدد معرّف طريقة العرض التي ستُجلب السجلات منها. إذا لم تحدده، فستُرجع السجلات بترتيب وقت إنشائها، بما يشمل جميع السجلات والحقول. + + + + يحدد عدد السجلات المطلوب جلبها، وقيمته القصوى 100. لقراءة المزيد من السجلات، تنقّل بين صفحات البيانات باستخدام `skip` و`take` (راجع [التقسيم إلى صفحات](/ar/api-doc/overview)). + + ينطبق حد 100 سجل على مفاتيح API الشخصية في Teable السحابية التي أُنشئت في 10 سبتمبر 2026 أو بعده. أما المفاتيح التي أُنشئت قبل ذلك التاريخ، ورموز OAuth والمكونات الإضافية، والنسخ ذاتية الاستضافة، فلا تزال تقبل ما يصل إلى 1000 سجل، لكن يظل الحجم الموصى به للصفحة 100 سجل. + + + + يحدد عدد السجلات المطلوب تخطيها، ويُستخدم للتقسيم إلى صفحات. + + + + يحدد نوع مفتاح الحقول في السجلات. القيم الممكنة: + - `name`: استخدام أسماء الحقول كمفاتيح (الافتراضي) + - `id`: استخدام معرّفات الحقول كمفاتيح + - `dbFieldName`: استخدام قيم dbFieldName للحقول كمفاتيح + + + + يحدد تنسيق إرجاع قيم الخلايا. القيم الممكنة: + - `json`: إرجاع بيانات JSON منظّمة (الافتراضي) + - `text`: إرجاعها بتنسيق نص عادي + + + + إذا كنت تحتاج إلى حقول محددة فقط، فحددها باستخدام هذه المعلمة. وإلا، فستُجلب جميع الحقول المرئية. تعتمد قيم المعلمة على إعداد fieldKeyType (أي استخدام أسماء الحقول أو معرّفاتها أو dbFieldName). + + + + مصفوفة من كائنات الفرز تحدد كيفية ترتيب السجلات. + + + + كائن شروط استعلام مركبة لتصفية النتائج. يدعم شروط الاستعلام المركبة استنادًا إلى الحقول والعوامل والقيم. + + + + البحث عن سجلات تطابق الحقول والقيم المحددة. + + + + + مصفوفة من كائنات التجميع تحدد كيفية تجميع السجلات. + + + + مصفوفة معرّفات المجموعات المطلوب طيها. + + + + تصفية السجلات المحددة حسب معرّفات السجلات. + + + + عند تحديد viewId، يؤدي ضبط هذه القيمة على true إلى تجاهل عوامل التصفية والفرز والإعدادات الأخرى الخاصة بطريقة العرض. + + + + تصفية السجلات القابلة للتحديد من الجدول المرتبط بواسطة خلية الارتباط المحددة. على سبيل المثال، في حقول العلاقات من واحد إلى متعدد أو من واحد إلى واحد، لن تظهر معرّفات السجلات المحددة مسبقًا. + + + + تصفية السجلات المحددة بالفعل من الجدول المرتبط بواسطة خلية الارتباط هذه. ملاحظة: لن تسري قيم viewId وfilter وorderBy في هذه الحالة، لأن للسجلات المحددة ترتيبها الخاص. + + + diff --git a/ar/api-doc/record/interface.mdx b/ar/api-doc/record/interface.mdx new file mode 100644 index 00000000..dcceea8c --- /dev/null +++ b/ar/api-doc/record/interface.mdx @@ -0,0 +1,449 @@ +--- +title: "واجهة حقول السجلات" +--- + +حقل البحث ليس نوعًا محددًا من الحقول. يمكننا البحث عن أي نوع من الحقول في قاعدة بيانات مرتبطة. يتحدد نوع حقل البحث وفقًا للحقل الأصلي في قاعدة البيانات المرتبطة، وتكون لديه الخاصية isLookup. لا يمكن تحرير حقول البحث. + + +قد تحمل جميع قيم الإرجاع للحقول القيمة `isMultipleCellValue: true` في حالات معينة: + +1. يحدث ذلك عندما يكون الحقل حقل بحث. وعندما تسمح القيمة المرتبطة بتحديد خيارات متعددة، تكون قيمة حقل البحث مصفوفة بالضرورة. + +2. يمكن تهيئة الحقول؛ فعلى سبيل المثال، يمكن تهيئة حقول المستخدم وحقول الارتباط لتحديد خيار واحد أو خيارات متعددة. يمكنك استخدام `field.isMultipleCellValue` في شيفرتك لتحديد ما إذا كان الحقل يقبل قيمًا متعددة. + + + +لا تستخدم نوع الحقل لتحديد أذونات الكتابة. استخدم بدلاً من ذلك الخاصية isComputed للحقل. + + +### 1. حقل الأرقام +* النوع: number +* نوع الكتابة: `number` +* نوع الإرجاع: + * `isMultipleCellValue: false`: `number` + * `isMultipleCellValue: true`: `number[]` + +مثال: +```js +// قيمة الإدخال +42 + +// القيمة المُعادة (isMultipleCellValue: false) +42 + +// القيمة المُعادة (isMultipleCellValue: true) +[42, 17, 99] +``` + +### 2. حقل النص أحادي السطر +* النوع: singleLineText +* نوع الكتابة: `string` +* نوع الإرجاع: + * `isMultipleCellValue: false`: `string` + * `isMultipleCellValue: true`: `string[]` + +مثال: +```js +// قيمة الإدخال +"مرحبًا، Teable!" + +// القيمة المُعادة (isMultipleCellValue: false) +"مرحبًا، Teable!" + +// القيمة المُعادة (isMultipleCellValue: true) +["مرحبًا، Teable!", "مرحبًا بك", "يوم سعيد"] +``` + +### 3. حقل النص الطويل +* النوع: longText +* نوع الكتابة: `string` +* نوع الإرجاع: + * `isMultipleCellValue: false`: `string` + * `isMultipleCellValue: true`: `string[]` + +مثال: +```js +// قيمة الإدخال +"هذا حقل نص طويل يمكن أن يحتوي على عدة فقرات..." + +// القيمة المُعادة (isMultipleCellValue: false) +"هذا حقل نص طويل يمكن أن يحتوي على عدة فقرات..." + +// القيمة المُعادة (isMultipleCellValue: true) +["هذا نص طويل...", "نص طويل آخر...", "نص طويل آخر أيضًا..."] +``` + +### 4. حقل التحديد الأحادي +* النوع: singleSelect +* نوع الكتابة: `string` (قيمة الخيار) +* نوع الإرجاع: + * `isMultipleCellValue: false`: `string` + * `isMultipleCellValue: true`: `string[]` + +مثال: +```js +// قيمة الإدخال +"الخيار A" + +// القيمة المُعادة (isMultipleCellValue: false) +"الخيار A" + +// القيمة المُعادة (isMultipleCellValue: true) +["الخيار A", "الخيار B", "الخيار C"] +``` + +### 5. حقل التحديد المتعدد +* النوع: multipleSelect +* نوع الكتابة: `string[]` (مصفوفة قيم الخيارات) +* نوع الإرجاع: `string[]` + +مثال: +```js +// قيمة الإدخال +["أحمر", "أزرق", "أخضر"] + +// القيمة المُعادة +["أحمر", "أزرق", "أخضر"] +``` + +### 6. حقل الارتباط +* النوع: link +* نوع الكتابة: + * `isMultipleCellValue: false`: `{ id: string }` + * `isMultipleCellValue: true`: `{ id: string }[]` +* نوع الإرجاع: + * `isMultipleCellValue: false`: `{ id: string, title?: string }` + * `isMultipleCellValue: true`: `{ id: string, title?: string }[]` + +مثال: +```js +// قيمة الإدخال (isMultipleCellValue: false) +{ id: "rec123456" } + +// قيمة الإدخال (isMultipleCellValue: true) +[{ id: "rec123456" }, { id: "rec789012" }] + +// القيمة المُعادة (isMultipleCellValue: false) +{ id: "rec123456", title: "السجل المرتبط 1" } + +// القيمة المُعادة (isMultipleCellValue: true) +[ + { id: "rec123456", title: "السجل المرتبط 1" }, + { id: "rec789012", title: "السجل المرتبط 2" } +] +``` + +### 7. حقل الصيغة +* النوع: formula +* نوع الكتابة: لا يمكن الكتابة فيه مباشرةً +* نوع الإرجاع: يعتمد على نتيجة الصيغة، ويمكن أن يكون `string | number | boolean` أو مصفوفة من أحد هذه الأنواع + +مثال: +```js +// القيمة المُعادة (isMultipleCellValue: false) +42 // أو "النتيجة" أو true + +// القيمة المُعادة (isMultipleCellValue: true) +[42, 17, 99] // أو ["النتيجة1", "النتيجة2"] أو [true, false, true] +``` + +### 8. حقل المرفقات +لرفع مرفق إلى حقل مرفقات، استخدم واجهة API المخصصة لذلك. للاطلاع على التفاصيل، راجع قسم [رفع مرفق](/ar/api-doc/record/upload-attachment). +* النوع: attachment +* نوع الكتابة: + ```ts + { + id: string; + name: string; + path: string; + token: string; // معرّف فريد + size: number; // حجم الملف بالبايت + mimetype: string; // نوع الملف + presignedUrl?: string; // عنوان URL لمعاينة الملف أو تنزيله + width?: number; // عرض الصورة + height?: number; // ارتفاع الصورة + }[] + ``` + +* نوع الإرجاع: +```ts +{ + id: string; + name: string; + path: string; + token: string; // معرّف فريد + size: number; // حجم الملف بالبايت + mimetype: string; // نوع الملف + presignedUrl?: string; // عنوان URL لمعاينة الملف أو تنزيله + width?: number; // عرض الصورة + height?: number; // ارتفاع الصورة +}[] +``` + +مثال: +```js +// قيمة الإدخال +[ + { + name: "document.pdf", + type: "application/pdf", + token: "abc123", + size: 1024000 + } +] + +// القيمة المُعادة +[ + { + id: "att123", + name: "document.pdf", + path: "/uploads/document.pdf", + token: "abc123", + size: 1024000, + mimetype: "application/pdf", + presignedUrl: "https://app.teable.ai/preview/document.pdf", + }, + { + id: "att456", + name: "image.jpg", + path: "/uploads/image.jpg", + token: "def456", + size: 2048000, + mimetype: "image/jpeg", + presignedUrl: "https://app.teable.ai/preview/image.jpg", + width: 1920, + height: 1080 + } +] +``` + +### 9. حقل التاريخ +* النوع: date +* نوع الكتابة: `string` (بتنسيق ISO 8601) +* نوع الإرجاع: + * `isMultipleCellValue: false`: `string` (بتنسيق ISO 8601) + * `isMultipleCellValue: true`: `string[]` (بتنسيق ISO 8601) +يمكنك استخدام `new Date().toISOString()` للحصول على تنسيق الوقت ISO 8601 + +مثال: +```js +// قيمة الإدخال +"2024-09-02T02:51:03.875Z" + +// القيمة المُعادة (isMultipleCellValue: false) +"2024-09-02T02:51:03.875Z" + +// القيمة المُعادة (isMultipleCellValue: true) +["2024-09-02T02:51:03.875Z", "2024-09-02T02:51:03.875Z"] +``` + +### 10. حقل وقت الإنشاء +* النوع: createdTime +* نوع الكتابة: لا يمكن الكتابة فيه مباشرةً +* نوع الإرجاع: + * `isMultipleCellValue: false`: `string` (بتنسيق ISO 8601) + * `isMultipleCellValue: true`: `string[]` (بتنسيق ISO 8601) + +مثال: +```js +// القيمة المُعادة (isMultipleCellValue: false) +"2024-09-02T02:51:03.875Z" + +// القيمة المُعادة (isMultipleCellValue: true) +["2024-09-02T02:51:03.875Z", "2024-09-02T02:51:03.875Z"] +``` + +### 11. حقل وقت آخر تعديل +* النوع: lastModifiedTime +* نوع الكتابة: لا يمكن الكتابة فيه مباشرةً +* نوع الإرجاع: + * `isMultipleCellValue: false`: `string` (بتنسيق ISO 8601) + * `isMultipleCellValue: true`: `string[]` (بتنسيق ISO 8601) + +مثال: +```js +// القيمة المُعادة (isMultipleCellValue: false) +"2023-04-15T10:30:00Z" + +// القيمة المُعادة (isMultipleCellValue: true) +["2023-04-15T10:30:00Z", "2023-04-16T14:45:00Z"] +``` + +### 12. حقل مربع الاختيار +* النوع: checkbox +* نوع الكتابة: `boolean` +* نوع الإرجاع: + * `isMultipleCellValue: false`: `boolean` + * `isMultipleCellValue: true`: `boolean[]` + +مثال: +```js +// قيمة الإدخال +true + +// القيمة المُعادة (isMultipleCellValue: false) +true + +// القيمة المُعادة (isMultipleCellValue: true) +[true, false, true] +``` + +### 13. حقل التجميع +* النوع: rollup +* نوع الكتابة: لا يمكن الكتابة فيه مباشرةً +* نوع الإرجاع: يعتمد على تهيئة التجميع، ويمكن أن يكون `number | string` أو مصفوفة من أحد هذين النوعين + +مثال: +```js +// القيمة المُعادة (isMultipleCellValue: false) +42 // أو "نتيجة الملخص" + +// القيمة المُعادة (isMultipleCellValue: true) +[42, 17, 99] // أو ["الملخص 1", "الملخص 2"] +``` + +### 14. حقل التقييم +* النوع: rating +* نوع الكتابة: `number` +* نوع الإرجاع: + * `isMultipleCellValue: false`: `number` + * `isMultipleCellValue: true`: `number[]` + +مثال: +```js +// قيمة الإدخال +4 + +// القيمة المُعادة (isMultipleCellValue: false) +4 + +// القيمة المُعادة (isMultipleCellValue: true) +[4, 3, 5] +``` + +### 15. حقل الترقيم التلقائي +* النوع: autoNumber +* نوع الكتابة: لا يمكن الكتابة فيه مباشرةً +* نوع الإرجاع: + * `isMultipleCellValue: false`: `number` + * `isMultipleCellValue: true`: `number[]` + +مثال: +```js +// القيمة المُعادة (isMultipleCellValue: false) +42 + +// القيمة المُعادة (isMultipleCellValue: true) +[42, 43, 44] +``` + +### 16. حقل المستخدم + +* النوع: user +* نوع الكتابة: + * `isMultipleCellValue: false`: `{ id: string, title: string }` + * `isMultipleCellValue: true`: `{ id: string, title: string }[]` +* نوع الإرجاع: + * `isMultipleCellValue: false`: `{ id: string, title: string, email?: string, avatar?: string }` + * `isMultipleCellValue: true`: `{ id: string, title: string, email?: string, avatar?: string }[]` + +مثال: +```js +// قيمة الإدخال (isMultipleCellValue: false) +{ id: "user123", title: "John Doe" } + +// قيمة الإدخال (isMultipleCellValue: true) +[ + { id: "user123", title: "John Doe" }, + { id: "user456", title: "Jane Smith" } +] + +// القيمة المُعادة (isMultipleCellValue: false) +{ + id: "user123", + title: "John Doe", + email: "john@example.com", + avatar: "https://example.com/avatar.jpg" +} + +// القيمة المُعادة (isMultipleCellValue: true) +[ + { + id: "user123", + title: "John Doe", + email: "john@example.com", + avatar: "https://example.com/avatar1.jpg" + }, + { + id: "user456", + title: "Jane Smith", + email: "jane@example.com", + avatar: "https://example.com/avatar2.jpg" + } +] +``` + +### 17. حقل المنشئ +* نوع الكتابة: لا يمكن الكتابة فيه مباشرةً +* نوع الإرجاع: + * `isMultipleCellValue: false`: `{ id: string, title: string, email?: string, avatar?: string }` + * `isMultipleCellValue: true`: `{ id: string, title: string, email?: string, avatar?: string }[]` +مثال: +```js +// القيمة المُعادة (isMultipleCellValue: false) +{ + id: "user123", + title: "John Doe", + email: "john@example.com", + avatar: "https://example.com/avatar.jpg" +} + +// القيمة المُعادة (isMultipleCellValue: true) +[ + { + id: "user123", + title: "John Doe", + email: "john@example.com", + avatar: "https://example.com/avatar1.jpg" + }, + { + id: "user456", + title: "Jane Smith", + email: "jane@example.com", + avatar: "https://example.com/avatar2.jpg" + } +] +``` + +### 18. حقل آخر من أجرى تعديلًا +* نوع الكتابة: لا يمكن الكتابة فيه مباشرةً +* نوع الإرجاع: + * `isMultipleCellValue: false`: `{ id: string, title: string, email?: string, avatar?: string }` + * `isMultipleCellValue: true`: `{ id: string, title: string, email?: string, avatar?: string }[]` + +مثال: +```js +// القيمة المُعادة (isMultipleCellValue: false) +{ + id: "user123", + title: "John Doe", + email: "john@example.com", + avatar: "https://example.com/avatar.jpg" +} + +// القيمة المُعادة (isMultipleCellValue: true) +[ + { + id: "user123", + title: "John Doe", + email: "john@example.com", + avatar: "https://example.com/avatar1.jpg" + }, + { + id: "user456", + title: "Jane Smith", + email: "jane@example.com", + avatar: "https://example.com/avatar2.jpg" + } +] +``` diff --git a/ar/api-doc/record/update.mdx b/ar/api-doc/record/update.mdx new file mode 100644 index 00000000..27e282ea --- /dev/null +++ b/ar/api-doc/record/update.mdx @@ -0,0 +1,210 @@ +--- +title: "تحديث سجل" +--- + +{/* mintlify-resync: 2026-05-14 */} +### المسار + +PATCH /api/table/\{tableId\}/record/\{recordId\} + +### الطلب + +#### معلمات المسار + +* tableId (string): المعرّف الفريد للجدول [(كيفية الحصول عليه)](/ar/api-doc/get-id#tableid). +* recordId (string): المعرّف الفريد للسجل المطلوب تحديثه [(كيفية الحصول عليه)](/ar/api-doc/get-id#recordid). + +#### نص الطلب + +* **record (مطلوب)** + * الوصف: بيانات السجل المطلوب تحديثها + * النوع: كائن + * مثال: + ```json + { + "fields": { + "Name": "John Doe", + "Age": 31, + "Email": "john.doe@example.com" + } + } + ``` + * ملاحظة: يحتوي كائن `fields` على أسماء الحقول وقيمها الجديدة المقابلة. لكل نوع من الحقول بنية قيمة مختلفة؛ راجع [أنواع قيم حقول السجلات](/ar/api-doc/record/interface) للاطلاع على التفاصيل. + +لمسح قيمة حقل، مرّر `null` صراحةً. إذا لم يتضمن الطلب اسم حقل، فلن يُجرى أي تحديث لذلك الحقل. + +* **fieldKeyType (اختياري)** + * الوصف: يحدد نوع مفتاح الحقل + * النوع: سلسلة نصية + * القيم الممكنة: + * "name": استخدام اسم الحقل كمفتاح + * "id": استخدام معرّف الحقل كمفتاح + * "dbFieldName": استخدام dbFieldName للحقل كمفتاح + * مثال: `"name"` أو `"id"` أو `"dbFieldName"` + * ملاحظة: إذا لم تحدده، فسيُستخدم اسم الحقل كمفتاح افتراضيًا. + * الاستخدام: + * عند ضبطه على "name": + ```json + { + "fields": { + "Name": "John Doe", + "Age": 30 + } + } + ``` + * عند ضبطه على "id": + ```json + { + "fields": { + "fldABCDEFGHIJKLMN": "John Doe", + "fldOPQRSTUVWXYZ12": 30 + } + } + ``` +* **typecast (اختياري)** + * الوصف: يحدد ما إذا كانت أنواع قيم الحقول ستُحوّل تلقائيًا. يُطبّق التحقق الصارم افتراضيًا، ما يفرض تطابق قيم الإدخال مع نوع بيانات الحقل الحالي. عند تمكينه، سيحاول النظام إجراء التحويل تلقائيًا. + * النوع: قيمة منطقية + * القيم الممكنة: true أو false + * مثال: `true` + * ملاحظة: إذا ضُبط على true، فسيحاول النظام تحويل قيم الإدخال إلى نوع قيمة الحقل الصحيح. + * أمثلة على الاستخدام: + * حقل ارتباط: يمكن استخدام نص المفتاح الأساسي مباشرةً لإنشاء الارتباط + ```json + { + "User table": "John Smith" + } + ``` + * حقل تاريخ: يمكن استخدام سلاسل تاريخ بتنسيق غير قياسي + ```json + { + "Date": "2023-05-15" + } + ``` + * حقل مستخدم: يمكن استخدام اسم المستخدم مباشرةً + ```json + { + "Assigned To": "John Doe" + } + ``` + +لرفع ملفات جديدة إلى حقول المرفقات، يُرجى الرجوع إلى قسم [رفع مرفق](/ar/api-doc/record/upload-attachment). + +* **order (اختياري)** + * الوصف: بعد تحديث السجل، نقله إلى موضع محدد في طريقة عرض محددة. + * النوع: كائن + * الخصائص: + * viewId: معرّف طريقة العرض + * anchorId: معرّف السجل المرجعي + * position: الموضع بالنسبة إلى السجل المرجعي. القيم الممكنة: `"before"` أو `"after"` + * مثال: + ```json + { + "viewId": "viwABCDEFGHIJKLMN", + "anchorId": "rec123456789ABCDE", + "position": "after" + } + ``` + +### الاستجابة + +#### استجابة النجاح + +* رمز الحالة: 200 OK +* نص الاستجابة: يُرجع بيانات السجل المحدّثة. + +**مثال على نص الاستجابة** +```json +{ + "id": "rec123456789ABCDE", + "fields": { + "Name": "John Doe", + "Age": 31, + "Email": "john.doe@example.com" + } +} +``` + +#### استجابات الأخطاء + +* رمز الحالة: 400 Bad Request: خطأ في تنسيق نص الطلب أو غياب الحقول المطلوبة. +* رمز الحالة: 404 Not Found: قيمة tableId أو recordId المحددة غير موجودة. + +#### مثال على الشيفرة + + + ```bash CURL + curl -X PATCH 'https://app.teable.ai/api/table/__tableId__/record/__recordId__' \ + -H 'Authorization: Bearer __token__' \ + -H 'Content-Type: application/json' \ + -d '{ + "record": { + "fields": { + "Name": "John Doe", + "Age": 31 + } + } + }' + ``` + + ```js JS SDK + import { configApi, updateRecord } from '@teable/openapi'; + + configApi({ + endpoint: 'https://app.teable.ai', + token, + }); + + const response = await updateRecord('__tableId__', '__recordId__', { + record: { + fields: { + Name: 'John Doe', + Age: 31 + } + } + }); + + console.log(response.data); + ``` + + ```ts TypeScript + const response = await fetch('https://app.teable.ai/api/table/__tableId__/record/__recordId__', { + method: 'PATCH', + headers: { + 'Authorization': 'Bearer __token__', + 'Content-Type': 'application/json' + }, + body: JSON.stringify({ + record: { + fields: { + Name: 'John Doe', + Age: 31 + } + } + }) + }); + + console.log(await response.json()); + ``` + + ```python Python + import requests + + response = requests.patch( + 'https://app.teable.ai/api/table/__tableId__/record/__recordId__', + headers={ + 'Authorization': 'Bearer __token__', + 'Content-Type': 'application/json' + }, + json={ + 'record': { + 'fields': { + 'Name': 'John Doe', + 'Age': 31 + } + } + } + ) + + print(response.json()) + ``` + diff --git a/ar/api-doc/record/upload-attachment.mdx b/ar/api-doc/record/upload-attachment.mdx new file mode 100644 index 00000000..df45f3b7 --- /dev/null +++ b/ar/api-doc/record/upload-attachment.mdx @@ -0,0 +1,213 @@ +--- +title: "رفع مرفق" +description: "رفع ملفات محلية أو ملفات عبر عنوان URL إلى نهاية حقل مرفقات في سجل محدد" +--- + +### المسار + +POST /api/table/\{tableId}/record/\{recordId}/\{fieldId}/uploadAttachment + +### الطلب + +#### معلمات المسار + +* tableId (string): المعرّف الفريد للجدول [(كيفية الحصول عليه)](/ar/api-doc/get-id#tableid). +* recordId (string): المعرّف الفريد للسجل المطلوب تحديثه [(كيفية الحصول عليه)](/ar/api-doc/get-id#recordid). +* fieldId (string): معرّف حقل المرفقات المطلوب الرفع إليه [(كيفية الحصول عليه)](/ar/api-doc/get-id#fieldid) + +يمكن أن تحتوي حقول المرفقات على عدة مرفقات. تتيح واجهة API هذه رفع مرفق واحد في كل مرة إلى نهاية الخلية. + +لحذف المرفقات أو إعادة ترتيبها، استخدم [واجهة API لتحديث السجل](/ar/api-doc/record/update). + +يجب أن يشير fieldId إلى حقل من نوع المرفقات. + +يقتصر حجم المرفقات المرفوعة عبر API على 100MB في الإصدار السحابي، ولا يوجد حد في الإصدار ذي الاستضافة الذاتية. + +#### نص الطلب + +النوع: formData + +المعلمات: + +* **file (اختياري)** + * الوصف: بيانات السجل المطلوب تحديثها + * النوع: Buffer أو ReadStream +* **fileUrl (اختياري)** + * الوصف: عنوان URL الذي سيتم الرفع منه + * النوع: سلسلة نصية + * مثال: `https://example.com/image.jpg` + * ملاحظة: يمكن تحديد أحد الخيارين file أو fileUrl فقط في كل مرة. إذا حُددا معًا، فتكون الأولوية لـ file. + +### الاستجابة + +#### استجابة النجاح + +* رمز الحالة: 201 Created +* نص الاستجابة: يُرجع بيانات السجل المحدّثة. + +**مثال على نص الاستجابة** + +```json +{ + "id": "rec123456789ABCDE", + "fields": { + "fld123456789ABCDE": [ + { + "id": "act75TiSyhcS7hfrizW", + "name": "example.jpg", + "path": "table/example", + "size": 392903, + "token": "tokenxxxxx", + "width": 976, + "height": 1000, + "mimetype": "image/jpeg", + "presignedUrl": "https://app.teable.ai/preview/previewURL" + } + ], + } +} +``` + +#### استجابات الأخطاء + +* رمز الحالة: 400 Bad Request: خطأ في تنسيق نص الطلب أو غياب الحقول المطلوبة. +* رمز الحالة: 404 Not Found: قيمة tableId أو recordId المحددة غير موجودة. + +### مثال على الشيفرة + + + ```bash CURL + # الرفع عبر ملف + + curl -X POST 'https://app.teable.ai/api/table/__tableId__/record/__recordId__/__fieldId__/uploadAttachment' \ + -H 'Authorization: Bearer __token__' \ + -H 'Content-Type: multipart/form-data' \ + -F 'file=@/path/to/your/file.jpg' + + # الرفع عبر عنوان URL + curl -X POST 'https://app.teable.ai/api/table/__tableId__/record/__recordId__/__fieldId__/uploadAttachment' \ + -H 'Authorization: Bearer __token__' \ + -H 'Content-Type: multipart/form-data' \ + -F 'fileUrl=https://example.com/image.jpg' + ``` + + ```js JS SDK + import { configApi, uploadAttachment } from '@teable/openapi'; + + configApi({ + endpoint: 'https://app.teable.ai', + token: '__token__', + }); + + // بيئة Node.js: رفع ملف محلي + const fileStream = fs.createReadStream('/path/to/your/file.jpg'); + const response = await uploadAttachment('__tableId__', '__recordId__', '__fieldId__', fileStream); + + console.log(response.data); + + // رفع عنوان URL (يعمل في بيئتي Node.js والمتصفح) + const response = await uploadAttachment('__tableId__', '__recordId__', '__fieldId__', 'https://example.com/image.jpg'); + + console.log(response.data); + + // بيئة المتصفح: رفع ملف + // بافتراض وجود عنصر لإدخال الملف: + document.getElementById('fileInput').addEventListener('change', async (event) => { + const file = event.target.files[0]; + if (file) { + const response = await uploadAttachment('__tableId__', '__recordId__', '__fieldId__', file); + console.log(response.data); + } + }); + ``` + + ```ts TypeScript + import FormData from 'form-data'; + import fs from 'fs'; + + // بيئة Node.js: رفع ملف محلي + const formData = new FormData(); + formData.append('file', fs.createReadStream('/path/to/your/file.jpg')); + + const response = await fetch('https://app.teable.ai/api/table/__tableId__/record/__recordId__/__fieldId__/uploadAttachment', { + method: 'POST', + headers: { + 'Authorization': 'Bearer __token__', + ...formData.getHeaders() + }, + body: formData + }); + + console.log(await response.json()); + + // رفع عنوان URL (يعمل في بيئتي Node.js والمتصفح) + const formDataUrl = new FormData(); + formDataUrl.append('fileUrl', 'https://example.com/image.jpg'); + + const responseUrl = await fetch('https://app.teable.ai/api/table/__tableId__/record/__recordId__/__fieldId__/uploadAttachment', { + method: 'POST', + headers: { + 'Authorization': 'Bearer __token__', + ...formDataUrl.getHeaders() + }, + body: formDataUrl + }); + + console.log(await responseUrl.json()); + + // بيئة المتصفح: رفع ملف + // بافتراض وجود عنصر لإدخال الملف: + document.getElementById('fileInput').addEventListener('change', async (event: Event) => { + const fileInput = event.target as HTMLInputElement; + const file = fileInput.files?.[0]; + if (file) { + const formData = new FormData(); + formData.append('file', file); + + const response = await fetch('https://app.teable.ai/api/table/__tableId__/record/__recordId__/__fieldId__/uploadAttachment', { + method: 'POST', + headers: { + 'Authorization': 'Bearer __token__' + }, + body: formData + }); + + console.log(await response.json()); + } + }); + ``` + + ```python Python + import requests + import mimetypes + import os + + # رفع ملف محلي + file_path = '/path/to/your/file.jpg' + with open(file_path, 'rb') as file: + file_name = os.path.basename(file_path) + mime_type, _ = mimetypes.guess_type(file_path) + files = {'file': (file_name, file, mime_type)} + response = requests.post( + 'https://app.teable.ai/api/table/__tableId__/record/__recordId__/__fieldId__/uploadAttachment', + headers={ + 'Authorization': 'Bearer __token__' + }, + files=files + ) + + print(response.json()) + + # رفع عنوان URL + response_url = requests.post( + 'https://app.teable.ai/api/table/__tableId__/record/__recordId__/__fieldId__/uploadAttachment', + headers={ + 'Authorization': 'Bearer __token__' + }, + data={'fileUrl': 'https://example.com/image.jpg'} + ) + + print(response_url.json()) + ``` + + diff --git a/ar/api-doc/sql-query.mdx b/ar/api-doc/sql-query.mdx new file mode 100644 index 00000000..f53d65d8 --- /dev/null +++ b/ar/api-doc/sql-query.mdx @@ -0,0 +1,145 @@ +--- +title: "استعلام SQL (مهمل)" +noindex: true +--- + + +**للاستضافة الذاتية فقط**: متاح لجميع الإصدارات مع اتصالات غير محدودة. + + +يتيح لك Teable الاتصال بقاعدة بيانات PostgreSQL الأساسية الخاصة به من خلال أدوات خارجية لتنفيذ استعلامات للقراءة فقط. يمكّن ذلك من التكامل مع أدوات ذكاء الأعمال (PowerBI وMetabase وSuperset)، وعملاء قواعد البيانات (DataGrip وNavicat وTablePlus)، ومنصات البرمجة منخفضة التعليمات البرمجية (Appsmith وBudibase)، وشيفرة التطبيقات. + +### إنشاء اتصال بقاعدة البيانات + +1. **فتح جدول**: افتح أولًا أي جدول ضمن قاعدة البيانات التي تريد الاتصال بها. +2. **الانتقال إلى صفحة التصميم**: انقر على أيقونة ⚙️ في الزاوية العلوية اليمنى للانتقال إلى صفحة تصميم قاعدة البيانات. + +فتح صفحة تصميم قاعدة البيانات + +3. **العثور على لوحة اتصال قاعدة البيانات**: ابحث عن لوحة "اتصال قاعدة البيانات" في صفحة التصميم. +4. **إنشاء اتصال**: انقر على إنشاء، وسيُنشئ النظام تلقائيًا اتصال PostgreSQL للقراءة فقط، يتضمن اسم مستخدم وكلمة مرور وعنوان مضيف. + +لوحة اتصال قاعدة البيانات + +### الاتصال بقاعدة البيانات + +استخدم بيانات الاعتماد للاتصال عبر أداتك المفضلة. فيما يلي مثال: + +مثال على اتصال خارجي بقاعدة البيانات + +### الاستعلام عن البيانات + +بعد الاتصال، يمكنك الاستعلام عن البيانات باستخدام SQL: + +```sql +SELECT * FROM "bseamGnQT65TVSCzIaC"."clients" LIMIT 100 +``` + +**ملاحظة:** في PostgreSQL، استخدم علامتي الاقتباس المزدوجتين `"` حول أسماء المخططات والجداول للحفاظ على حساسية حالة الأحرف. + +لكتابة هذا الاستعلام، ستحتاج إلى معرفة ثلاثة أمور: +- **اسم المخطط (BaseId)**: معرّف قاعدة البيانات الذي يبدأ بـ `bse` +- **اسم الجدول**: الاسم الفعلي للجدول في PostgreSQL +- **أسماء الحقول**: أسماء الأعمدة الفعلية في قاعدة البيانات + +توضح الأقسام التالية كيفية العثور على كل منها. + +### العثور على BaseId (اسم المخطط) + +تقابل كل قاعدة بيانات في Teable **مخططًا** في PostgreSQL. وBaseId هو اسم المخطط المستخدم في استعلامات SQL. + +**الطريقة الأولى:** انظر إلى عنوان URL؛ السلسلة التي تبدأ بـ `bse` هي BaseId. + +معرّف قاعدة البيانات في عنوان URL + +**الطريقة الثانية:** في واجهة تصميم قاعدة البيانات، اسم المخطط المعروض هو BaseId. + +اسم المخطط في صفحة تصميم قاعدة البيانات + +### العثور على أسماء الجداول + +لا تتزامن أسماء الجداول في واجهة Teable تلقائيًا مع أسماء الجداول الفعلية في قاعدة البيانات. راجع واجهة تصميم قاعدة البيانات لمعرفة الاسم الفعلي للجدول في قاعدة البيانات. + +الاسم الفعلي للجدول في صفحة التصميم + +**نصيحة:** يمكنك تعديل الاسم الفعلي للجدول في واجهة التصميم عند الحاجة. + +### العثور على أسماء الحقول + +قد تختلف أسماء الحقول (الأعمدة) في قاعدة البيانات عنها في واجهة Teable. راجع `dbFieldName` في واجهة التصميم. + +اسم حقل قاعدة البيانات في صفحة التصميم + +**نصيحة:** لا تتزامن تغييرات أسماء الحقول في Teable تلقائيًا. عدّل `dbFieldName` صراحةً لتغيير اسم العمود الفعلي في PostgreSQL. + +### حقول النظام + +ينشئ Teable حقول النظام التالية تلقائيًا (ولا يمكن إعادة تسميتها): + +| الحقل | الوصف | +|-------|-------------| +| `__id` | معرّف فريد | +| `__version` | رقم الإصدار | +| `__auto_number` | رقم متزايد تلقائيًا، وهو المفتاح الأساسي | +| `__created_time` | وقت الإنشاء | +| `__last_modified_time` | وقت آخر تعديل | +| `__created_by` | معرّف المنشئ | +| `__last_modified_by` | معرّف آخر من أجرى تعديلًا | +| `__row*` | حقول فهرسة طرق العرض، وتُستخدم للحفاظ على ترتيب السجلات | +| `__fk*` | مفاتيح خارجية لحقول العلاقات | + +### جداول الربط + +الجداول التي تبدأ بـ `junction_` هي جداول ينشئها النظام لمعالجة علاقات ManyToMany والعلاقات أحادية الاتجاه. + +### ملاحظات حول الأذونات + +يقتصر اتصال قاعدة البيانات على قاعدة البيانات الحالية فقط. توفر مخططات PostgreSQL عزلًا للأذونات، بما يضمن عدم قدرتك على الوصول إلا إلى الجداول الموجودة ضمن قاعدة بياناتك. + +قد ترى قيم baseIds أخرى (أسماء مخططات) عند الاتصال، لكن لا يمكنك الوصول إلى محتواها. + +معرّف قاعدة البيانات في TablePlus + +### حدود الاتصال + +الحد الافتراضي هو 20 اتصالًا متزامنًا. + +### كتابة البيانات + +لا يتيح Teable الكتابة مباشرةً إلى قاعدة البيانات عبر الاتصالات الخارجية. لتعديل البيانات، استخدم [Teable API](/ar/api-doc/token) بدلاً من ذلك. + +### إغلاق الاتصال + +في لوحة اتصال قاعدة البيانات، انقر على حذف لإغلاق الاتصال. ستُمسح كلمة المرور القديمة، وسيؤدي إنشاء اتصال جديد إلى إنشاء بيانات اعتماد جديدة. diff --git a/ar/api-doc/token.mdx b/ar/api-doc/token.mdx new file mode 100644 index 00000000..48727923 --- /dev/null +++ b/ar/api-doc/token.mdx @@ -0,0 +1,31 @@ +--- +title: "رمز الوصول" +description: "تُستخدم رموز الوصول الشخصية للمصادقة والتخويل." +--- + +تُعد رموز الوصول الشخصية الأنسب للنصوص البرمجية والأدوات الداخلية وعمليات التكامل من جانب الخادم. + +إذا كنت تنشئ عملية تكامل متعددة المستأجرين لمستخدمين خارجيين، فاستخدم OAuth بدلاً من ذلك: راجع [تطبيق OAuth](/ar/api-doc/oauth). + +## إنشاء رمز وصول + +1. انتقل إلى [صفحة إدارة رموز الوصول](https://app.teable.ai/setting/personal-access-token) وانقر على زر "إنشاء رمز وصول" لإنشاء رمز وصول شخصي جديد. + +2. اختر مدة صلاحية رمز الوصول. لاحظ أنه لا يمكن تعديل هذه المدة بعد تحديدها. + +3. أضف نطاقات الأذونات المناسبة إلى رمز الوصول. + +4. حدّد القواعد والمساحات التي يمكن الوصول إليها باستخدام الرمز. + +بعد إنشاء رمز الوصول، لن يُعرض إلا مرة واحدة. نوصي بنسخه وحفظه في مكان آمن. + +## استخدام رمز الوصول + +أرسل رمز الوصول في ترويسة `Authorization`: + +```bash +curl -H 'Authorization: Bearer __token__' \ + 'https://app.teable.ai/api/table/__tableId__/record' +``` + +هل تحتاج إلى مساعدة في العثور على معرّفات مثل `tbl...`؟ راجع [الحصول على المعرّفات](/ar/api-doc/get-id). diff --git a/ar/basic/admin-panel/ai-generation-queue.mdx b/ar/basic/admin-panel/ai-generation-queue.mdx new file mode 100644 index 00000000..d3620d44 --- /dev/null +++ b/ar/basic/admin-panel/ai-generation-queue.mdx @@ -0,0 +1,44 @@ +--- +title: "قائمة انتظار توليد الذكاء الاصطناعي" +description: "راجع حالة التوليد في حقول الذكاء الاصطناعي ضمن النسخة ذاتية الاستضافة الحالية." +--- + +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← قائمة انتظار توليد الذكاء الاصطناعي + +استخدم **قائمة انتظار توليد الذكاء الاصطناعي** للتحقق من سير عمليات التوليد في حقول الذكاء الاصطناعي بصورة طبيعية ضمن النسخة ذاتية الاستضافة الحالية. + +## قراءة حالة السلامة + +**المراقب** هو فحص الاسترداد التلقائي الذي يحدد عمليات التوليد المتوقفة ويعالج الأعمال القابلة للاسترداد. + +تلخص الحالة المجاورة لعنوان الصفحة وضع قائمة الانتظار الحالي: + +| الحالة | المعنى | +| --- | --- | +| **سليمة** | يعمل توليد الذكاء الاصطناعي بصورة طبيعية. | +| **متدهورة** | عثر Teable على عمل متوقف، أو أعمال متراكمة منذ مدة، أو معدل فشل حديث مرتفع، أو عدم تطابق في قدرة المعالجة، أو عمل يتيم، أو مراقب معطّل. | + +تعرض بطاقات الملخص ما يلي: + +| البطاقة | ما تعرضه | +| --- | --- | +| **بانتظار الإدراج** | عمليات التوليد التي لم تدخل قائمة الانتظار وأطول مدة انتظار | +| **في قائمة الانتظار** | عمليات التوليد الموجودة في قائمة الانتظار أو قيد المعالجة | +| **الساعة الماضية** | النجاحات والإخفاقات ومعدل الفشل مؤخرًا | +| **المراقب** | وقت آخر تشغيل لفحص الاسترداد وما عالجه | + +## مراجعة المساحات والمهام + +يرتب جدول **المساحات** المساحات التي لديها أعمال توليد غير مكتملة بالذكاء الاصطناعي. انقر على **عرض المهام** لمراجعة التقدم أو إلغاء مهمة. + +لا تظهر هنا إلا المهام ذات عمليات التوليد غير المكتملة. استخدم **سجل التدقيق** لمراجعة الأعمال المكتملة. + +## معالجة عمليات التوليد المتوقفة + +عندما يعثر Teable على عمليات توليد لم تحرز تقدمًا مؤخرًا، يعرض قسم **عمليات التوليد المتوقفة** مدة توقفها وما إذا كانت مهمة قائمة الانتظار لا تزال نشطة. تُترك المهمة البطيئة والنشطة قيد التشغيل، بينما يتولى المراقب استرداد المهمة التي اختفت أو لم تعد نشطة. + +## إلغاء مهمة + +في قائمة مهام إحدى المساحات، انقر على **إلغاء المهمة** لإيقاف المهمة وجميع عمليات التوليد غير المكتملة. diff --git a/ar/basic/admin-panel/ai-setting.mdx b/ar/basic/admin-panel/ai-setting.mdx new file mode 100644 index 00000000..f9080a65 --- /dev/null +++ b/ar/basic/admin-panel/ai-setting.mdx @@ -0,0 +1,111 @@ +--- +title: "إعدادات الذكاء الاصطناعي" +description: "هيئ محادثة الذكاء الاصطناعي وحقوله وأتمتته ومنشئ التطبيقات لنسخة ذاتية الاستضافة." +--- + +{/* mintlify-resync: 2026-05-14 */} +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← إعدادات الذكاء الاصطناعي + +تُستخدم صفحة **إعدادات الذكاء الاصطناعي** لتهيئة **محادثة الذكاء الاصطناعي** و**حقوله** و**أتمتته** و**منشئ التطبيقات**. تعرض لوحة **التهيئة المعلقة** على اليمين العناصر المطلوبة التي لا تزال ناقصة. + +## قبل البدء + +تأكد من جاهزية العناصر التالية قبل فتح صفحة إعدادات الذكاء الاصطناعي. + +| المتطلب | هل هو مطلوب؟ | ملاحظات | +|------|------|------| +| **إعداد بيئة تشغيل الوكيل** | مطلوب لمحادثة الذكاء الاصطناعي ومنشئ التطبيقات | تستخدمه محادثة الذكاء الاصطناعي ومنشئ التطبيقات | +| **موفّر مخصص** | مطلوب عندما تستخدم محادثة الذكاء الاصطناعي أو منشئ التطبيقات مفتاحك الخاص (BYOK) | استخدم موفّرًا **متوافقًا مع OpenAI** أو موفّر **Anthropic** | +| **مفتاح OpenAI API** | اختياري | لا يلزم إلا إذا أردت تمكين **الإدخال الصوتي** في محادثة الذكاء الاصطناعي | +| **الوصول العام** | مطلوب عند اختيار محرك نشر **Vercel** | يجب إتاحة **نسخة Teable** و**تخزين العناصر (MinIO / S3)** للعامة حتى يصل إليهما Vercel | + +## خطوات الإعداد + +ابدأ بتهيئة بيئة تشغيل محادثة الذكاء الاصطناعي ونشر التطبيقات والنماذج: + + + + اختر [خيار نشر](/ar/deploy/choose) وأكمل النشر، ثم انقر على **تشغيل الاختبار** و**اختبار الاتصال**. + + + أعد اتصال النموذج وأكمل الاختبار الأولي. + + + اختر النماذج الموصى بها لحقول الذكاء الاصطناعي وأتمتته. + + + اختر النموذج الافتراضي لمحادثة الذكاء الاصطناعي. + + + +### تهيئة بيئة التشغيل + +انقر على **تشغيل الاختبار** للتحقق من بيئة تشغيل محادثة الذكاء الاصطناعي. + +### تهيئة LLM API + +في **LLM API**، أضف موفّر نماذج واختبر نماذجه. إذا كنت تستخدم مفتاحك الخاص (BYOK)، فاختر **متوافق مع OpenAI** أو **Anthropic** بوصفه نوع الموفّر. + +افتح **إعدادات النموذج** لأحد النماذج عندما تحتاج إلى مراجعة القيم التالية أو تجاوزها: + +| الإعداد | التأثير | +|------|------| +| **السياق** | اختياري. يحدد الحد الأقصى لرموز الإدخال المستخدمة في ضغط السياق. | +| **الحد الأقصى للمخرجات** | اختياري. يحدد الحد الأقصى للرموز التي يمكن للنموذج توليدها في استجابة واحدة. | + +### تهيئة النماذج الموصى بها + +اختر النماذج الموصى بها التي يمكن للمستخدمين تحديدها في **حقول الذكاء الاصطناعي** و**أتمتة الذكاء الاصطناعي**. + +### تعيين نموذج المحادثة + +اختر النموذج الافتراضي لـ **محادثة الذكاء الاصطناعي** في الشريط الجانبي. يجب أن يكون نموذج المحادثة ضمن قائمة النماذج الموصى بها. + +### تمكين ميزات الذكاء الاصطناعي + +في **إمكانات الذكاء الاصطناعي**، مكّن **حقل الذكاء الاصطناعي** و**محادثة الذكاء الاصطناعي** حسب الحاجة. هيئ بيئة التشغيل قبل استخدام **محادثة الذكاء الاصطناعي**. + +### تهيئة منشئ التطبيقات + +في **محرك النشر**، اختر طريقة نشر التطبيقات: + +| محرك النشر | متطلبات الإعداد | +|------|------| +| **Vercel** | أدخل رمز وصول Vercel، وانقر على **اختبار الاتصال**، واستخدم **اختبار الوصول العام** للتأكد من قدرة Vercel على الوصول إلى نسخة Teable وتخزين العناصر. | +| **بنية Teable التحتية** | تستخدم بيئة تشغيل حاويات بنية Teable التحتية المهيأة. لا يلزم هنا تقديم بيانات اعتماد إضافية أو إجراء اختبار للوصول العام. | + +يمكنك إضافة إعدادات منشئ التطبيقات الاختيارية التالية عند الحاجة: + +| العنصر الاختياري | وقت الحاجة إليه | +|------|------| +| **نطاق مخصص** | عندما تريد نشر التطبيقات ضمن نطاقك الخاص | +| **مصادقة التطبيق** | عندما تحتاج التطبيقات المنشأة إلى تسجيل الدخول عبر **رمز لمرة واحدة بالبريد الإلكتروني** أو **Google** | + +في **مصادقة التطبيق**، يمكنك تهيئة موفّري تسجيل الدخول للتطبيقات المنشأة: + +- يستخدم **الرمز المرسل لمرة واحدة بالبريد الإلكتروني** صندوق بريد SMTP مستقلًا لإرسال رسائل التحقق الخاصة بتسجيل الدخول إلى التطبيق. +- يتطلب **Google OAuth** معرّف عميل وسر عميل. أضف معرّف URI لإعادة التوجيه الظاهر في هذه الصفحة إلى قائمة معرّفات URI المصرّح بها لإعادة التوجيه في Google Cloud Console. + +يتاح تسجيل الدخول عبر **Teable** افتراضيًا. لا يظهر **الرمز المرسل لمرة واحدة بالبريد الإلكتروني** في منشئ التطبيقات إلا بعد إكمال إعدادات SMTP، ولا يظهر **Google** إلا بعد تهيئة بيانات اعتماد OAuth معًا. + +يكون خيار **إدخال مفتاح AI API تلقائيًا في التطبيقات** مفعّلًا افتراضيًا، حتى تتمكن التطبيقات من استدعاء نماذج الذكاء الاصطناعي في المنصة. يؤدي تعطيله إلى منع التطبيقات من الوصول إليها. + +### اختياري: تهيئة الإدخال الصوتي + +لاستخدام الإدخال الصوتي في محادثة الذكاء الاصطناعي، مكّن الميزة وأدخل **مفتاح OpenAI API**. لا تهيئ **نقطة نهاية النسخ الصوتي** إلا عند استخدام خدمة نسخ صوتي مخصصة. ويمكنك أيضًا تقييد مدة التسجيل وعدد الطلبات في الدقيقة. + +### التحقق من الإعداد + +بعد اكتمال الإعداد، تأكد أولًا من ظهور جميع العناصر المطلوبة في لوحة **التهيئة المعلقة** باللون الأخضر. ثم اختبر **محادثة الذكاء الاصطناعي** و**حقوله** و**أتمتته** و**منشئ التطبيقات** واحدًا تلو الآخر. + +## الأسئلة الشائعة + + + + +تحقق من الحساب أو الموفّر الذي تستخدمه خدمة النماذج المهيأة. أضف رصيدًا أو غيّر تهيئة النموذج عند الحاجة. + + + diff --git a/ar/basic/admin-panel/announcements.mdx b/ar/basic/admin-panel/announcements.mdx new file mode 100644 index 00000000..4a6a250c --- /dev/null +++ b/ar/basic/admin-panel/announcements.mdx @@ -0,0 +1,62 @@ +--- +title: "الإعلانات" +description: "انشر إعلانات داخل التطبيق للجميع أو لمساحات أو مستخدمين محددين، واسحبها عندما تنتهي الحاجة إليها." +--- + +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← الإعلانات + +تتيح **الإعلانات** للمسؤولين عرض رسالة أمام المستخدمين المسجلين من دون إرسال بريد إلكتروني، مثل صيانة مخططة أو حادثة وحلها أو تغيير في السياسة أو ميزة جديدة تريد تعريف المستخدمين بها. يعمل كل إعلان ضمن نافذة زمنية مجدولة ويمكن توجيهه إلى النسخة بأكملها أو مجموعة محددة. + +## نشر إعلان + +انقر على **نشر إعلان** واملأ النموذج. تعرض المعاينة الجانبية الإعلان كما سيراه المستخدمون. + +| الإعداد | ما يتحكم فيه | +| --- | --- | +| **الشكل** | مكان ظهور الإعلان: **شريط** يمتد أعلى التطبيق، أو **إشعار منبثق** مؤقت، أو **نافذة مشروطة** تقاطع العمل، أو **بطاقة في الشريط الجانبي** للمساحات وقواعد البيانات. | +| **المستوى** | النبرة التي يراها المستخدمون: **معلومات** أو **صيانة** أو **حرج** أو **تم الحل**. | +| العنوان و**النص** | نص الإعلان. | +| **يبدأ في** / **ينتهي في** | النافذة الزمنية التي يُعرض الإعلان خلالها. يجب أن يكون وقت الانتهاء بعد وقت البدء. | +| **نص الرابط** / **عنوان URL للرابط** | وجهة اختيارية. بطاقة الشريط الجانبي هي رابط في حد ذاتها، لذا تعرض دائمًا حقل عنوان URL؛ أما الأشكال الأخرى فتظهره عند استخدام العنصر النائب `{link}` في النص. | +| **الجمهور** | **الجميع** أو **مساحات محددة** أو **مستخدمون محددون**. | + +اختر أقوى شكل تستحقه الرسالة. يظهر الشريط وبطاقة الشريط الجانبي بجوار عمل المستخدم، بينما تحجبه النافذة المشروطة. يمكن للمستخدمين إغلاق الإعلان بأنفسهم، وعندما تنشط عدة إعلانات في الوقت نفسه، تُطوى الأشرطة خلف مفتاح تبديل **عدد إضافي من الإعلانات: N**. + +### استهداف مساحات أو مستخدمين محددين + +بالنسبة إلى **مساحات محددة** أو **مستخدمين محددين**، الصق المعرّفات في مربع الجمهور (معرّفات المساحات أو أسماؤها، أو معرّفات المستخدمين أو أسماؤهم أو عناوين بريدهم الإلكتروني، مفصولة بفواصل)، ثم انقر على **مطابقة**. تتحول الإدخالات المطابقة إلى شارات، ويبقى كل ما تعذر على Teable حله في المربع ضمن **غير مطابق:** حتى تتمكن من تصحيحه وإعادة المحاولة. + +تُقيّم عضوية المساحة عند عرض الإعلان، لذا يتلقى المتعاونون الذين يُضافون لاحقًا إعلانًا موجّهًا إلى المساحة أيضًا. + +### إدراج قيم مباشرة + +استخدم **إدراج عنصر نائب** في النص لإضافة قيم يملؤها Teable وقت العرض، حتى تظل الرسالة الواحدة دقيقة لكل قارئ: + +| العنصر النائب | يظهر في صورة | +| --- | --- | +| `{startTime}` / `{endTime}` | بداية النافذة أو نهايتها، بلغة القارئ ومنطقته الزمنية | +| `{time:…}` | لحظة محددة تختارها | +| `{duration}` | مدة النافذة | +| `{countdown}` | عد تنازلي مباشر حتى البداية | +| `{link}` | الرابط، معروضًا باستخدام **نص الرابط** الذي أدخلته | + +لا يتاح `{link}` لبطاقة الشريط الجانبي، لأن البطاقة بأكملها هي الرابط بالفعل. + +### ترجمة المحتوى + +اكتب الإعلان بلغة واحدة، ثم استخدم **الترجمة بالذكاء الاصطناعي** لملء لغات الواجهة الأخرى المتاحة. اختر **ملء الفراغات فقط** للاحتفاظ بالترجمات التي كتبتها، أو **الكتابة فوق الكل** لإعادة ترجمة كل شيء. راجع كل علامة تبويب للغات بعد ذلك؛ فالترجمة مسودة وليست نصًا نهائيًا مدققًا. يرى القراء اللغة المطابقة لواجهتهم، مع الرجوع إلى الإنجليزية عند عدم توفرها. + +## إدارة الإعلانات المنشورة + +تعرض القائمة كل إعلان مع **حالته** و**عنوانه** و**شكله** و**مستواه** و**جمهوره** و**نافذته الزمنية** و**منشئه**. افتح صفًا لفحص محتواه الكامل. + +| الحالة | المعنى | +| --- | --- | +| **مجدول** | لم يحن وقت البدء بعد. | +| **نشط** | يُعرض حاليًا. | +| **منتهي الصلاحية** | انقضى وقت الانتهاء. | +| **مسحوب** | أوقفه مسؤول قبل موعده. | + +انقر على **سحب** في إعلان نشط لإيقاف عرضه فورًا. لا يمكن سحب إعلان انتهت صلاحيته بالفعل، ويظل سجله كما هو. diff --git a/ar/basic/admin-panel/audit-log.mdx b/ar/basic/admin-panel/audit-log.mdx new file mode 100644 index 00000000..6ac45cce --- /dev/null +++ b/ar/basic/admin-panel/audit-log.mdx @@ -0,0 +1,44 @@ +--- +title: "سجل التدقيق" +description: "راجع النشاط على مستوى النسخة، وصفِّ سجل العمليات، وافحص تفاصيل سجل التدقيق في لوحة الإدارة." +--- + +متاح لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← سجل التدقيق + +يتيح **سجل التدقيق** للمسؤولين مراجعة النشاط عبر النسخة وتتبع من نفّذ عملية ووقت تنفيذها والمنطقة التي أثرت فيها. + +## ما يمكنك مراجعته + +يغطي سجل التدقيق أنشطة الإدارة والتعاون الشائعة، بما في ذلك المساحات وقواعد البيانات والجداول وطرق العرض والحقول والسجلات والمشاركة والدعوات ورموز الوصول ومصفوفة الصلاحيات. + +يعرض كل إدخال في السجل وقت العملية ومنفّذها ونوع الإجراء وقاعدة البيانات أو المساحة المرتبطة ومصدر الطلب. افتح إدخالًا لعرض تفاصيله. + +## اتخاذ إجراء بشأن منفّذ العملية + +افتح إدخالًا في السجل واستخدم **إجراءات منفّذ العملية** بجواره للتعامل مع ذلك الحساب من دون مغادرة الصفحة. يطلب كل إجراء التأكيد أولًا. + +| الإجراء | ما يفعله | +| --- | --- | +| **تعطيل المستخدم** | يمنع الحساب من الوصول إلى هذه النسخة. لا يتاح لحسابك أو لمسؤولي النسخة أو المستخدمين المحذوفين. | +| **إعادة تنشيط المستخدم** | يعيد الوصول إلى حساب معطّل. يمكن للمستخدم استئناف العمل فورًا من دون تسجيل الدخول مجددًا أو استبدال أي بيانات اعتماد. | + +## تصفية السجلات + +استخدم عوامل التصفية أعلى الصفحة لتضييق قائمة السجل: + +- **تحديد منفّذ العملية**: عرض الإجراءات التي نفّذها مستخدم محدد. +- **تحديد مساحة**: عرض النشاط ضمن مساحة محددة. +- **تحديد قاعدة بيانات**: عرض نشاط قاعدة بيانات محددة. +- **تحديد إجراء**: التصفية حسب نوع العملية، مثل السجلات والحقول وطرق العرض والجداول وقواعد البيانات والمشاركة ومصفوفة الصلاحيات وأدوار مصفوفة الصلاحيات والمساحات والدعوات والمستخدمين ورموز الوصول. + +إذا حُذف مستخدم أو قاعدة بيانات أو مساحة، يظل الإدخال في السجل ويُعلّم المورد بأنه محذوف. + +## تصفح قوائم السجل الكبيرة + +يعرض سجل التدقيق المجمّع 50 إدخالًا في كل صفحة. استخدم **السابق** و**التالي** أسفل القائمة للتنقل بين النتائج، سواء في القائمة المجمّعة أو بعد فتح إدخال مجمّع لعرض الأحداث داخل تلك العملية. + +## ملاحظات + +- لا يمكن الوصول إلى لوحة الإدارة إلا لمسؤولي النسخة. diff --git a/ar/basic/admin-panel/automation-management.mdx b/ar/basic/admin-panel/automation-management.mdx new file mode 100644 index 00000000..cc7a83f6 --- /dev/null +++ b/ar/basic/admin-panel/automation-management.mdx @@ -0,0 +1,63 @@ +--- +title: "إدارة الأتمتة" +description: "اعرض حالة تشغيل الأتمتة ومعدل النجاح وسجل التشغيل في لوحة الإدارة." +--- + +{/* mintlify-resync: 2026-05-14 */} +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← إدارة الأتمتة + +تُستخدم **إدارة الأتمتة** لعرض حالة تشغيل عمليات الأتمتة عبر النسخة. + +## مقاييس الملخص + +يعرض أعلى الصفحة الحالة الإجمالية للنطاق الزمني المحدد: + +| المقياس | الوصف | +|------|------| +| **مهام سير العمل النشطة** | عدد عمليات الأتمتة النشطة حاليًا | +| **إجمالي مرات التشغيل** | إجمالي مرات التشغيل في النطاق الزمني المحدد | +| **معدل النجاح** | نسبة مرات التشغيل الناجحة من جميع مرات التشغيل | +| **مرات التشغيل الفاشلة** | عدد مرات التشغيل الفاشلة في النطاق الزمني المحدد | +| **نظرة عامة على السلامة** | سلامة الأتمتة مجمعة حسب الحالات السليمة والتحذيرية والحرجة | +| **توزيع حالات التشغيل** | توزيع مرات التشغيل حسب حالات النجاح والفشل والتشغيل والانتظار والإلغاء | + +## عوامل التصفية + +تدعم الصفحة الرئيسية عوامل التصفية التالية: + +- **النطاق الزمني**: آخر 30 دقيقة أو ساعة أو 6 ساعات أو يوم أو 3 أيام أو 7 أيام أو 30 يومًا. +- **المشغّل**: تصفية عمليات الأتمتة حسب نوع المشغّل. + +## قائمة عمليات الأتمتة + +تعرض القائمة ملخص تشغيل لكل عملية أتمتة: + +- آخر تشغيل +- إجمالي مرات التشغيل +- متوسط المدة +- حالة السلامة الحالية +- ما إذا كانت تتطلب الانتباه + +إذا كانت عملية الأتمتة غير نشطة، تعرض القائمة **غير نشطة**. + +## سجل التشغيل + +افتح عملية أتمتة لعرض **سجل التشغيل**: + +| الحقل | الوصف | +|------|------| +| **الحالة** | ما إذا كان التشغيل ناجحًا أو فاشلًا أو جاريًا أو معلقًا أو ملغى | +| **وقت البدء** | وقت بدء التشغيل | +| **المدة** | مدة التشغيل | +| **الخطأ** | معلومات الخطأ المعروضة لمرات التشغيل الفاشلة | + +يمكن تصفية سجل التشغيل حسب حالة النجاح أو الفشل أو التشغيل أو الانتظار أو الإلغاء. + +## الإجراءات + +يمكنك من قائمة عمليات الأتمتة: + +- **تعطيل**: منع تشغيل عملية الأتمتة. +- **وضع علامة للحذف**: وضع علامة على عملية الأتمتة لحذفها. diff --git a/ar/basic/admin-panel/computed-outbox.mdx b/ar/basic/admin-panel/computed-outbox.mdx new file mode 100644 index 00000000..b87deade --- /dev/null +++ b/ar/basic/admin-panel/computed-outbox.mdx @@ -0,0 +1,106 @@ +--- +title: "صندوق المهام المحسوبة" +description: "راقب تسليم BullMQ وتراكم المهام المحسوبة في لوحة الإدارة." +--- + +متاح لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← صندوق المهام المحسوبة + +استخدم **صندوق المهام المحسوبة** عندما تتوقف قيم الصيغ أو البحث أو غيرها من الحقول المحسوبة عن التحديث أو تستغرق وقتًا أطول بكثير من المتوقع. تعرض الصفحة السلامة العامة للمهام، والمهام التي تتحرك عبر قائمة الانتظار، والمهام التي قد تحتاج إلى استرداد، وأي مساحة أُوقفت مهامها المحسوبة مؤقتًا. + +## قراءة حالة السلامة + +توضح الحالة المجاورة لعنوان الصفحة ما إذا كانت المهام المحسوبة تحتاج إلى الانتباه: + +| الحالة | المعنى | +| --- | --- | +| **سليمة** | تعمل المهام المحسوبة بصورة طبيعية. | +| **متدهورة** | عثر Teable على إخفاقات أو مهام انتهت مهلتها أو تراكم متزايد. | +| **حرجة** | BullMQ غير متاح أو لا يوجد عامل متاح لمعالجة المهام. | + +عندما تتطلب الحالة الانتباه، تسرد الصفحة السبب. + +## العثور على مهمة في قائمة الانتظار + +تعرض **قائمة BullMQ المباشرة** الوظائف التي لا يزال Teable يحتفظ بها، حتى تتمكن من متابعة مهمة محسوبة أو البحث عن المهام البطيئة. + +يمثل كل صف مهمة واحدة افتراضيًا، ويتنقل بين الحالات في موضعه أثناء إعادة Teable المحاولة. انتقل إلى **عمليات التسليم** عندما تحتاج إلى السجل الكامل لمحاولات مهمة أو تريد البحث عن عمليات التشغيل البطيئة. + +لتضييق القائمة: + +- انقر على مربعات الحالات أعلى الجدول للتصفية حسب الحالة: **بانتظار التنفيذ** و**نشطة** و**مؤجلة** و**فاشلة** و**مكتملة (محتفظ بها)** وما إلى ذلك. يمكنك تحديد عدة حالات معًا، ويشرح تمرير المؤشر فوق مربع معنى تلك الحالة. +- صفِّ حسب **المساحة** أو **قاعدة البيانات** أو **السبب** أو **النتيجة**، أو ابحث عن مهمة أو قاعدة بيانات أو مساحة أو خطأ، أو عيّن حدًا أدنى لوقت المعالجة لإظهار المهام البطيئة. +- انقر على صف لفتح **مسار الحوسبة**: الطوابع الزمنية لقائمة الانتظار، وتأخر التسليم، ووقت المعالجة، وسبب الفشل الكامل مع SQL المنقح لعملية تسليم فاشلة، وتفاصيل الانتشار الموضحة أدناه. + +لا تعني حالة **مكتملة** أن المهمة نفذت عملًا. توضح شارة النتيجة ما فعلته عملية التسليم فعليًا: **تمت المعالجة** تعني تشغيل المهمة، و**بلا إجراء** تعني عدم العثور على شيء متبقٍ، و**مؤجلة** تعني إعادة جدولتها لوقت لاحق، و**مركونة** تعني أن نطاقها متوقف مؤقتًا. يضيّق عامل تصفية **النتيجة** القائمة حسب تلك النتيجة ويعرض عدد عمليات التسليم التي تغطيها كل نتيجة؛ لذا فإن الجمع بين **مكتملة (محتفظ بها)** و**تمت المعالجة** لا يترك إلا عمليات التسليم التي شغّلت المهمة بالفعل. + +يمثل الصف الفاشل سجل محاولة تسليم واحدة، لا مهمة عالقة. تواصل المهمة الدائمة إعادة المحاولة تلقائيًا، لذا اقرأ عمود **حالة دفتر السجل** لتحديد ما إذا كان يلزم التدخل: تعني **تمت التسوية** نجاح محاولة لاحقة بالفعل، بينما تربط **رسالة ميتة** بمعالجة الحالات الشاذة. تُخفى الإخفاقات التي تمت تسويتها افتراضيًا؛ ويعرض شريط عددها ويتيح لك إظهارها. + +لا يؤدي **مسح سجل الإخفاقات** إلا إلى إزالة سجلات الوظائف الفاشلة المحتفظ بها من قائمة الانتظار. وهو لا يصلح شيئًا، وتظل الرسائل الميتة في **معالجة الحالات الشاذة**. + +قد يحسب مربع الحالة أيضًا إدخالات لم تعد بيانات وظائفها موجودة في Redis، وغالبًا ما تكون متبقية بعد الإخلاء أو فقدان البيانات. لا تستطيع القائمة عرضها، لذلك توضح الصفحة الفجوة أسفل الجدول. يزيل Teable هذه البقايا من حالة الفشل تلقائيًا، بينما يزيلها **مسح سجل الإخفاقات** فورًا. + +## تتبع كيفية انتشار القيمة + +عندما تبدو قيمة محسوبة غير صحيحة أو تصل متأخرة، افتح **مسار الحوسبة** لرؤية السلسلة الكاملة وراءها. انقر على أي صف في قائمة الانتظار، أو انقر على **المسار** بجوار معرّف مهمة في تفاصيل الحالة الشاذة. + +| القسم | السؤال الذي يجيب عنه | +| --- | --- | +| الملخص | زمن الاستجابة من البداية إلى النهاية، ووقت تغير المصدر، ووقت استقرار القيمة، والجدول والحقول التي شغّلت التنفيذ. تعني شارة **قيد الحوسبة** أن السلسلة لا تزال قيد التشغيل. | +| **المخطط الزمني** | وقت إدراج التشغيل في قائمة الانتظار وبدئه واكتماله أو فشله. | +| **سلسلة المهام** | كل مهمة في التسلسل، متداخلة تحت المهمة التي أدرجتها في قائمة الانتظار، حتى تتمكن من معرفة مصدر كل فرع. يعرض كل صف حالته وخطوات الخطة و**هدف الكتابة** (الجدول والحقول التي تحدّثها المهمة) و**الصفوف المتسخة** وعمق التسلسل ووقت الإدراج والمدة. | +| **انتشار الحقول** | الحقول التي قرأها التشغيل وكتبها، وكيف انتقل التغيير بينها. يمثل الأزرق المتقطع الأصل الذي أدى إلى هذه الكتابة، والرمادي مدخلًا لم يُكتب في هذا التشغيل، والأخضر ما كُتب في هذا التشغيل، وتمثل الأسهم تبعيات الحقول أو انتقالات الارتباط لا ترتيب الخطوات. لا تُرسم إلا الأصول التي تصل فعليًا إلى كتابات هذا التشغيل. استخدم **توسيع** لفتح الرسم بملء الشاشة عندما يصعب تتبع سلسلة عريضة داخل الصفحة. | + +لا يسجل دفتر المسار إلا المهام التي أُنشئت بعد إصدار هذه الميزة، ويحتفظ بسجل لمدة 7 أيام. تعرض المهمة الأقدم بيانات قائمة الانتظار من دون رسم انتشار. ولا تعرض المهمة الأولية التي لم يخطط لها العامل بعد إلا حقول تشغيلها. عندما لا ينتج عن تغيير أي كتابات محسوبة لاحقة، يوضح الرسم ذلك: لم يعتمد شيء على تلك الحقول من خلال صيغة أو بحث أو تجميع أو عنوان ارتباط. + +## معالجة المهام الشاذة + +يعرض عدد **الفاشلة** وقسم **معالجة الحالات الشاذة** أنواعًا مختلفة من المشكلات، ولذلك قد تختلف أرقامهما. + +تجمع **معالجة الحالات الشاذة** الحالات في مجموعات مشكلات، واحدة لكل قاعدة بيانات وجدول مصدر وخطأ، حتى يسهل اكتشاف السبب الجذري الواحد. راجع سبب الفشل وأصلح المشكلة الأساسية قبل استرداد أي شيء. وسّع مجموعة لقراءة تفاصيل الخطأ والمهام التي تشملها؛ هذه الصفوف للفحص، ويُنفذ الاسترداد دائمًا على المجموعة بأكملها. + +تعتمد الإجراءات التي توفرها المجموعة على نوعها: + +| نوع الحالة الشاذة | الإجراء | ما يحدث | +| --- | --- | --- | +| **رسالة ميتة** | **استرداد المجموعة بأكملها** | يعيد كل الرسائل الميتة الموجودة حاليًا في تلك المجموعة إلى قائمة الانتظار الدائمة ويسلّمها مجددًا. وتظل كل مجموعة أخرى من دون تغيير. | +| **رسالة ميتة** | **تجاهل المجموعة** (في قائمة **إجراءات إضافية**) | يحذف الرسائل الميتة في تلك المجموعة نهائيًا. لا يمكن استردادها أو إعادة تشغيلها بعد ذلك، لذا لا تستخدمه إلا عندما تكون إعادة التشغيل بلا جدوى. | +| **انتهت مهلتها** | **إعادة تفعيل أحدث مهمة منتهية المهلة** | يوقظ قائمة الانتظار لأحدث مهمة في المجموعة حتى يتمكن عامل من توليها. | + +بعد استرداد مجموعة، يبلغ Teable بعدد المهام التي استعادها، وعدد المهام التي أُدرجت حديثًا أو كانت مدرجة بالفعل، وعدد ما سُلّم منها أو أُجّل. ثم تستهلك العوامل المجموعة وفق حدود التزامن وتقسيم المهام الحالية. + +تنتمي المجموعة التي تحمل علامة **قاعدة البيانات محذوفة** إلى قاعدة بيانات لم تعد موجودة. سيفشل استردادها فورًا مرة أخرى، لذلك يكون **تجاهل المجموعة** هو الإجراء الوحيد المتاح. + +لم يعد نقل جدول إلى سلة المهملات ينشئ حالات شاذة هنا. تتخطى المهمة المحسوبة التي لا تزال تشير إلى جدول في سلة المهملات الخطوات التي تقرأه، وتكمل الخطوات التي تستهدف جداول نشطة، ثم تنتهي. + +لا يتاح الاسترداد أيضًا عندما تكون البيانات نفسها سبب الفشل، مثل قيمة تتجاوز حد الحجم أو تخالف قيدًا على حقل. ستفشل إعادة تشغيل المهمة نفسها بالطريقة ذاتها، لذا تجاهل المجموعة وأصلح بيانات المصدر أو تعريف الحقل بدلاً من ذلك؛ وستعيد عمليات الكتابة اللاحقة حساب تلك الحقول تلقائيًا. + +## إيقاف المهام المحسوبة مؤقتًا لمساحة + +عندما تؤدي المهام المحسوبة لإحدى المساحات إلى تفاقم حادثة، أوقف تلك المساحة مؤقتًا في **إيقافات المهام المحسوبة** بدلاً من إيقاف النسخة بأكملها. + + + انقر على **إيقاف مساحة مؤقتًا**. + ابحث حسب معرّف المساحة أو اسمها، ثم حددها من النتائج. + اضبط **مدة الإيقاف المؤقت** على 15 أو 30 أو 60 أو 120 دقيقة. + دوّن الحادثة أو نافذة الصيانة في **السبب**. + انقر على **تأكيد الإيقاف المؤقت**. + + +لا يمنع الإيقاف المؤقت إلا العوامل من المطالبة بمهام محسوبة جديدة لتلك المساحة. لا تتوقف المهام الجاري تنفيذها، وتنتظر المهام المطابقة حتى انتهاء الإيقاف بدلاً من إسقاطها. + +ينتهي الإيقاف المؤقت دائمًا تلقائيًا، وساعتان هما أطول مدة يمكنك تعيينها. إذا استمرت الحادثة بعد ذلك، فأوقف المساحة مؤقتًا مرة أخرى من هذه الصفحة. تعرض القائمة كل إيقاف نشط مع منشئه وسببه ووقت الاستئناف التلقائي، إلى جانب عدد المهام المعلقة التي تحتجزها الإيقافات النشطة، حتى تتمكن من تقدير الأعمال المتراكمة التي سيحررها الاستئناف. لإنهاء إيقاف مبكرًا، انقر على **استئناف** في صفه وأكد الإجراء. + +## ضبط التزامن + +يتضمن قسم قائمة الانتظار عنصري تحكم في التزامن. يكتب كل منهما تجاوزًا على مستوى المجموعة تلتقطه كل عملية خلال نحو 15 ثانية من دون إعادة تشغيل، ويمكن إعادة تعيين كل منهما حتى تعود العمليات إلى إعدادات بيئتها. تشير شارة **تم التجاوز** إلى عنصر تحكم لم يعد على قيمته الافتراضية. + +| عنصر التحكم | ما يقيّده | +| --- | --- | +| **التزامن لكل عملية** | عدد المهام المحسوبة التي تعالجها كل عملية عامل في الوقت نفسه. | +| **حدود المطالبة لكل قاعدة بيانات** | عدد المهام المحسوبة التي تعمل في الوقت نفسه لقاعدة بيانات واحدة (**لكل قاعدة بيانات**) ولجدول مصدر واحد داخلها (**لكل جدول أولي**). القيمة الافتراضية لكل منهما 2، ويقبلان قيمًا من 1 إلى 16. | + +ارفع حدود المطالبة عندما تكون قاعدة بيانات مزدحمة واحدة هي عنق الزجاجة، وارفع التزامن لكل عملية عندما تكون عدة قواعد بيانات في قائمة الانتظار في الوقت نفسه. + +يفرض التزامن الأعلى حملًا أكبر على قاعدة بياناتك. تحتفظ المساحات التي تخزن بياناتها في [مستأجر قاعدة بيانات](/ar/basic/admin-panel/database-tenant) بالإعدادات الافتراضية للبيئة الخاصة بحدود المطالبة، لأن مجمعات اتصالاتها مضبوطة لتلك القيم. diff --git a/ar/basic/admin-panel/database-tenant.mdx b/ar/basic/admin-panel/database-tenant.mdx new file mode 100644 index 00000000..fb6468e3 --- /dev/null +++ b/ar/basic/admin-panel/database-tenant.mdx @@ -0,0 +1,31 @@ +--- +title: "مستأجر قاعدة البيانات" +description: "استضف بيانات مساحة Teable في قاعدة بيانات PostgreSQL يديرها العميل." +--- + +متاح لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← BYODB + +يفيد مستأجر قاعدة البيانات عندما تحتاج مساحة تابعة لعميل أو نشاط تجاري محدد إلى تخزين بيانات يُدار بصورة منفصلة. تُخزن بيانات أعمال المساحة في قاعدة بيانات PostgreSQL مخصصة بدلاً من مشاركة قاعدة بيانات النسخة الافتراضية مع المساحات الأخرى، ما يقلل أثر حمل قاعدة بيانات أحد المستأجرين أو فشلها على المساحات الأخرى. ويمكن لمؤسستك أيضًا إدارة موقع نشر قاعدة البيانات وضوابط الوصول إليها والنسخ الاحتياطية والمراقبة. + +## ما يمكنك فعله + +من **لوحة الإدارة** ← **BYODB**، يمكن لمسؤول النسخة: + +- إنشاء مساحة جديدة تستخدم قاعدة بيانات PostgreSQL يديرها العميل. +- نقل مساحة موجودة إلى قاعدة البيانات المستهدفة. +- التحقق من الاتصال وحالة الترحيل والأخطاء الأخيرة. + +بالنسبة إلى مساحة موجودة، يختبر Teable الترحيل افتراضيًا من دون تبديل قواعد البيانات. وبعد التحقق، يقرر المسؤول ما إذا كان سيجري التبديل. يوقف التبديل عمليات الكتابة لفترة وجيزة، لذا خطط له ضمن نافذة صيانة مناسبة. + +## الأسئلة الشائعة + + + + لا. يشير إلى مساحة Teable التي تُخزن بياناتها في قاعدة البيانات تلك. + + + لا. إنه يغيّر مكان تخزين Teable لبيانات مساحته وإدارتها. تقدم قاعدة بيانات PostgreSQL مستضافة في مكان آخر، وينشئ Teable بياناته الخاصة فيها ويديرها. لا ترتبط الجداول والسجلات الموجودة في قاعدة البيانات تلك بـ Teable، ولا تُستورد تلقائيًا كقواعد بيانات. + + diff --git a/ar/basic/admin-panel/multitenancy.mdx b/ar/basic/admin-panel/multitenancy.mdx new file mode 100644 index 00000000..c12e8c49 --- /dev/null +++ b/ar/basic/admin-panel/multitenancy.mdx @@ -0,0 +1,145 @@ +--- +title: "إدارة مستأجري المؤسسات" +description: "أنشئ عدة مستأجرين للمؤسسات وأدرهم في نسخة Teable واحدة، وعيّن مسؤولًا لكل مستأجر." +hidden: true +noindex: true +--- + +{/* mintlify-resync: 2026-05-14 */} +متاح لخطة Enterprise ذاتية الاستضافة + +يمكن أن تحتوي نسخة Teable على عدة مستأجرين للمؤسسات، لكل منهم أعضاء وأقسام ومساحات وإعدادات منفصلة لعميل أو وحدة أعمال أو فريق. + +## التسلسل الهرمي لمستأجري المؤسسات + +```text +نسخة Teable +├── مستأجر المؤسسة A +│ ├── مسؤولو المؤسسة والأعضاء والأقسام +│ └── المساحات وقواعد البيانات والإعدادات على مستوى المؤسسة +├── مستأجر المؤسسة B +│ ├── مسؤولو المؤسسة والأعضاء والأقسام +│ └── المساحات وقواعد البيانات والإعدادات على مستوى المؤسسة +└── مستأجر المؤسسة C +``` + +يشترك مستأجرو المؤسسات في نشر Teable وتهيئة النسخة نفسيهما، مع إدارة العناصر التالية بصورة منفصلة: + +| النطاق | الوصف | +| --- | --- | +| **الأعضاء والأقسام** | تحتفظ كل مؤسسة بأعضاء المؤسسة ومسؤوليها وبنية أقسامها الخاصة | +| **المساحات** | تدير كل مؤسسة المساحات المرتبطة بها | +| **المصادقة والأمان** | يمكن لكل مؤسسة تهيئة موفّري المصادقة ونطاقات البريد الإلكتروني التي تم التحقق منها | +| **إعدادات المؤسسة** | يُهيأ اسم المؤسسة والوصول التلقائي إلى المساحات ونطاق الأقسام بصورة منفصلة | +| **تهيئة النسخة** | تظل التراخيص وإعدادات النظام وإنشاء مستأجري المؤسسات وحذفهم تحت سيطرة مسؤول النسخة | + +لا يمنح مستأجرو المؤسسات كل مؤسسة قاعدة بيانات PostgreSQL منفصلة. لتخزين بيانات مساحة في قاعدة بيانات PostgreSQL منفصلة، راجع [مستأجر قاعدة البيانات](/ar/basic/admin-panel/database-tenant). + +## نقطتا دخول للإدارة + +| نقطة الدخول | دور الإدارة | الغرض | +| --- | --- | --- | +| **لوحة الإدارة ← المؤسسات** | مسؤول النسخة | إنشاء مستأجري المؤسسات وعرضهم وحذفهم وتعيين مسؤولي المؤسسات | +| **لوحة المؤسسة** | مسؤول المؤسسة | إدارة المستخدمين والأقسام والمساحات والمصادقة والأمان والإعدادات داخل المستأجر الحالي | + +لا يستطيع مسؤولو المؤسسة إلا إدارة المؤسسة المعيّنة لهم. ولا يمكنهم إنشاء مستأجرين آخرين للمؤسسات أو حذفهم أو تغيير إعدادات النسخة على مستوى النظام. + +## فتح المؤسسات + +1. سجّل الدخول إلى Teable بصفتك مسؤول نسخة. +2. اختر **لوحة الإدارة** في الزاوية العلوية اليسرى. +3. افتح **المؤسسات** من شريط التنقل الأيسر. + +مدخل المؤسسات في لوحة الإدارة + +يصبح أول مستخدم مسجل في النسخة مسؤولًا عنها تلقائيًا. + +## إنشاء مستأجر مؤسسة + +1. اختر **إنشاء مؤسسة**. +2. أدخل **اسم المؤسسة**. +3. اختر **إنشاء**. + +تظهر المؤسسة الجديدة في قائمة المؤسسات. بعد تعيين مسؤول مؤسسة، يمكن لذلك المسؤول تهيئة الأعضاء والأقسام والمساحات من لوحة المؤسسة. + +## عرض قائمة المؤسسات + +يمكن البحث في القائمة حسب الاسم، وهي تتضمن: + +| العمود | الوصف | +| --- | --- | +| **اسم المؤسسة** | اسم مستأجر المؤسسة ومعرّفه | +| **عدد المستخدمين** | إجمالي المستخدمين في المؤسسة | +| **عدد المساحات** | إجمالي المساحات المرتبطة بالمؤسسة | +| **المسؤولون** | مسؤولو المؤسسة المعيّنون | +| **وقت الإنشاء** | وقت إنشاء مستأجر المؤسسة | + +قائمة المؤسسات في لوحة الإدارة + +## تعيين مسؤولي المؤسسات + +1. افتح قائمة الإجراءات للمؤسسة المستهدفة. +2. اختر **إدارة المسؤولين**. +3. ابحث عن مستخدم في النسخة. +4. اختر **تعيين كمسؤول** أو **إزالة المسؤول**. + +يمكن تعيين أي مستخدم في النسخة، باستثناء المستخدم المحذوف، مسؤولًا لمؤسسة. يحصل المستخدم على صلاحية إدارة المؤسسة الحالية، لكنه لا يصبح مسؤول نسخة. + +| الدور | إدارة جميع مستأجري المؤسسات | إدارة إعدادات النسخة | إدارة المؤسسة الحالية | إدارة المساحات في المؤسسة الحالية | +| --- | --- | --- | --- | --- | +| **مسؤول النسخة** | نعم | نعم | نعم | نعم | +| **مسؤول المؤسسة** | لا | لا | نعم | نعم | +| **عضو عادي** | لا | لا | لا | يعتمد على الدور في المساحة | + +## إدارة مستأجر من الداخل + +يمكن لمسؤول المؤسسة، من مبدّل المساحات، فتح **لوحة المؤسسة** وإدارة ما يلي: + +| الصفحة | إمكانات الإدارة | +| --- | --- | +| **المستخدمون** | عرض المستخدمين وإدارتهم في المؤسسة الحالية | +| **المؤسسة** | إنشاء الأقسام ونقلها وإعادة تسميتها وحذفها وإدارة أعضائها | +| **إدارة المساحات** | إضافة مساحات إلى المؤسسة أو إزالتها منها وعرض أعداد المساحات وقواعد البيانات | +| **إعدادات المصادقة** | تهيئة موفّري مصادقة الجهات الخارجية للمؤسسة | +| **إعدادات الأمان** | التحقق من نطاقات البريد الإلكتروني حتى ينضم المستخدمون الجدد أصحاب تلك النطاقات إلى المؤسسة تلقائيًا | +| **إعدادات النسخة** | تغيير اسم المؤسسة والوصول التلقائي إلى المساحات ونطاق الأقسام | + +للاطلاع على تعليمات **إعدادات النسخة** التفصيلية، راجع [إعدادات لوحة المؤسسة](/ar/basic/organization-panel/settings). + +## حذف مستأجر مؤسسة + +1. افتح قائمة الإجراءات للمؤسسة المستهدفة. +2. اختر **حذف**. +3. راجع التأكيد وأكد الحذف. + +يؤدي حذف مؤسسة إلى إزالة المؤسسة وجميع بياناتها نهائيًا. تحقق من المؤسسة المستهدفة والمساحات المرتبطة والنسخ الاحتياطية قبل المتابعة. + +## نماذج المستأجرين الشائعة + +| السيناريو | نموذج مستأجر المؤسسة | +| --- | --- | +| تقديم خدمة Teable واحدة لعدة عملاء | إنشاء مستأجر مؤسسة منفصل لكل عميل | +| الحفاظ على نشر واحد لمجموعة ذات شركات تابعة مستقلة | إنشاء مستأجر مؤسسة لكل شركة تابعة | +| عزل وحدات الأعمال في مؤسسة كبيرة | إنشاء مستأجر مؤسسة لكل وحدة تحتاج إلى عضوية ومساحات وسياسات إدارة مستقلة | + +## الأسئلة الشائعة + + + + يفصل مستأجر المؤسسة الأعضاء والأقسام والمساحات وأذونات الإدارة. ويتحكم مستأجر قاعدة البيانات في قاعدة بيانات PostgreSQL التي تخزن بيانات مساحة محددة. يمكن أن يحتوي مستأجر مؤسسة واحد على عدة مساحات، وتُهيأ قاعدة بيانات البيانات التي تستخدمها كل مساحة بصورة منفصلة. + + + ينشئ مسؤول النسخة المستأجرين ويحذفهم ويدير النسخة. ويتولى مسؤول المؤسسة الإدارة اليومية داخل المستأجر. يفوّض تعيين مسؤول للمؤسسة إدارة الأعضاء والأقسام والمساحات والمصادقة من دون منح صلاحية وصول على مستوى النسخة. + + + نعم. أنشئ مستأجر مؤسسة منفصلًا لكل عميل. يحافظ مسؤول النسخة على النشر المشترك وإعدادات النظام، بينما يحصل كل عميل على مسؤولي المؤسسة الخاصين به. + + diff --git a/ar/basic/admin-panel/overview.mdx b/ar/basic/admin-panel/overview.mdx new file mode 100644 index 00000000..84b37856 --- /dev/null +++ b/ar/basic/admin-panel/overview.mdx @@ -0,0 +1,59 @@ +--- +title: "نظرة عامة" +description: "تُستخدم لوحة إدارة Teable ذاتية الاستضافة لإدارة مستخدمي النسخة ومساحاتها وتهيئة النظام." +--- + +{/* mintlify-resync: 2026-05-14 */} +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +توفر لوحة الإدارة إدارة مركزية لنسخة Teable. ويمكن للمسؤولين إدارة المستخدمين والمساحات والقوالب وإعدادات النسخة وإعدادات الذكاء الاصطناعي من خلالها. + +## الوصول إلى لوحة الإدارة + +بعد تسجيل الدخول بصفتك مسؤول نسخة، اختر **لوحة الإدارة** في الزاوية العلوية اليسرى. + +لا يمكن الوصول إلى لوحة الإدارة إلا لمسؤولي النسخة. ويصبح أول مستخدم مسجل مسؤول نسخة تلقائيًا. + +## وحدات لوحة الإدارة + +تجمع لوحة الإدارة صفحاتها حسب الغرض: + +### تهيئة النسخة + +- **[إعدادات النسخة](/ar/basic/admin-panel/settings)**: تهيئة الإعدادات والأذونات والبريد الإلكتروني وحدود النظام على مستوى النسخة +- **[إعدادات الذكاء الاصطناعي](/ar/basic/admin-panel/ai-setting)**: تهيئة ميزات الذكاء الاصطناعي ونماذجه +- **[المهارات](/ar/basic/admin-panel/skills)**: نشر مهارات يمكن لكل وكيل ذكاء اصطناعي في النسخة استخدامها +- **[إدارة القوالب](/ar/basic/admin-panel/template-admin)**: تهيئة مركز القوالب والقوالب المخصصة +- **[ترخيص الاستضافة الذاتية](/ar/deploy/activate)**: تسجيل ترخيص النسخة الحالي وتحديثه وعرضه + +### المؤسسة والمساحات + +- **[المستخدمون](/ar/basic/admin-panel/users)**: إدارة حسابات المستخدمين وأذوناتهم ووصولهم +- **[المساحات](/ar/basic/admin-panel/spaces)**: إدارة المساحات وإعدادات الانضمام التلقائي +- **[مستأجر قاعدة البيانات](/ar/basic/admin-panel/database-tenant)**: إنشاء مستأجري قواعد البيانات الذين يستخدمون قواعد PostgreSQL يديرها العميل وإدارتهم + +### العمليات والتدقيق + +- **[إدارة الأتمتة](/ar/basic/admin-panel/automation-management)**: عرض حالة تشغيل الأتمتة وسجل التشغيل +- **[عمليات استعلام الجداول](/ar/basic/admin-panel/table-query-ops)**: تحليل مخاطر استعلامات الجداول وتوصيات الفهارس +- **[صندوق المهام المحسوبة](/ar/basic/admin-panel/computed-outbox)**: مراقبة تسليم المهام المحسوبة وسلامة قائمة الانتظار وتراكم قاعدة البيانات +- **[قائمة انتظار توليد الذكاء الاصطناعي](/ar/basic/admin-panel/ai-generation-queue)**: مراجعة حالة توليد حقول الذكاء الاصطناعي في النسخة ذاتية الاستضافة الحالية +- **[وكيل البيئة المعزولة](/ar/basic/admin-panel/sandbox-agent)**: تهيئة وكيل البيئة المعزولة وإدارته +- **[سجل التدقيق](/ar/basic/admin-panel/audit-log)**: مراجعة نشاط النسخة الأخير وتفاصيل العمليات + +## أذونات المسؤول + +يتمتع مسؤولو النسخة بتحكم كامل فيها: + +- إدارة جميع المستخدمين والمساحات +- تهيئة الإعدادات على مستوى النظام +- تسجيل التراخيص وتحديثها +- لا يخضعون للقيود على مستوى المستخدم + +أذونات المسؤول واسعة جدًا. استخدمها بحذر لتجنب التغييرات غير المقصودة. + +## الأسئلة الشائعة + +**كيف أضيف مسؤولين آخرين؟** + +في صفحة المستخدمين، انقر على قائمة الإجراءات لأي مستخدم واختر «تعيين كمسؤول». يتطلب النظام وجود مسؤول واحد على الأقل في جميع الأوقات. diff --git a/ar/basic/admin-panel/sandbox-agent.mdx b/ar/basic/admin-panel/sandbox-agent.mdx new file mode 100644 index 00000000..100748ef --- /dev/null +++ b/ar/basic/admin-panel/sandbox-agent.mdx @@ -0,0 +1,33 @@ +--- +title: "وكيل البيئة المعزولة" +description: "هيئ وكيل البيئة المعزولة وأدره." +--- + +{/* mintlify-resync: 2026-05-26 */} +متاح لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← وكيل البيئة المعزولة + +تتضمن صفحة **وكيل البيئة المعزولة** علامتي تبويب **الإعدادات** و**البيئات المعزولة** لتهيئة كيفية تشغيل محادثة الذكاء الاصطناعي داخل البيئات المعزولة. + +لإعداد الاستضافة الذاتية، انشر أولًا بيئة التشغيل كاملة الميزات. راجع [البنية](/ar/deploy/architecture). + +## حدود بيئة التشغيل + +هيئ حدود بيئة التشغيل في علامة تبويب **الإعدادات**: + +| الإعداد | الوصف | +|------|------| +| **مهلة خمول البث** | تحديد وقت إنهاء بث خامل | +| **مهلة الخمول** | تحديد وقت إعادة تدوير بيئة معزولة غير نشطة | +| **حد المحادثات المتزامنة** | تحديد عدد الوكلاء الذين يمكن لكل مستخدم تشغيلهم في الوقت نفسه. محادثة الذكاء الاصطناعي ومنشئ التطبيقات وكيلان | +| **وحدات vCPU** | تحديد عدد وحدات المعالجة المركزية الافتراضية لكل نسخة من البيئة المعزولة | +| **الذاكرة** | تحديد حد الذاكرة لكل نسخة من البيئة المعزولة | +| **القرص المؤقت** | تحديد حد التخزين المؤقت لكل نسخة من البيئة المعزولة | +| **جهد التفكير** | تحديد جهد التفكير الافتراضي للوكلاء | + +## علامة تبويب البيئات المعزولة + +استخدم علامة تبويب **البيئات المعزولة** لعرض جلسات البيئات المعزولة الحالية وإدارتها. + +يؤدي إنهاء الجلسات النشطة إلى مقاطعة أعمال الوكيل الجارية أو معاينات التطبيقات. اتبع مطالبات التأكيد داخل المنتج قبل المتابعة. diff --git a/ar/basic/admin-panel/settings.mdx b/ar/basic/admin-panel/settings.mdx new file mode 100644 index 00000000..c2b13b52 --- /dev/null +++ b/ar/basic/admin-panel/settings.mdx @@ -0,0 +1,103 @@ +--- +title: "إعدادات النسخة" +description: "أدر مفاتيح التبديل على مستوى النسخة وإعدادات البريد الإلكتروني وعناصر النظام المعلقة." +--- + +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← إعدادات النسخة + +تُستخدم صفحة **إعدادات النسخة** لإدارة الإعدادات الأساسية للنسخة بأكملها، بما في ذلك **الإعدادات العامة** و**البريد الإلكتروني** وفحوص النظام المعروضة في لوحة **التهيئة المعلقة**. + +## نظرة عامة + +تغطي هذه الصفحة أساسًا الإعدادات العامة على مستوى النسخة. وتُجمع الإعدادات الرئيسية كما يلي: + +| نوع الإعداد | الوصف | +|------|------| +| **الإعدادات العامة** | تتضمن **السماح بإنشاء حسابات جديدة** و**نطاقات البريد الإلكتروني المحظورة** و**السماح بإرسال دعوات المساحات** و**السماح للجميع بإنشاء مساحات جديدة** و**تمكين التحقق من البريد الإلكتروني** | +| **البريد الإلكتروني** | يتضمن **بريد الإشعارات** و**بريد الأتمتة** لإعادة تعيين كلمة المرور والتحقق من البريد وإشعارات البريد الإلكتروني ورسائل الدعوة | +| **حدود النظام** | تعرض الحدود الفعلية لبيانات الجداول والحقول وطرق العرض والنصوص في النسخة | + +لتمكين رسائل النظام الإلكترونية، أكمل الإعداد في **البريد الإلكتروني**. + +استخدم **نطاقات البريد الإلكتروني المحظورة** لمنع العناوين التابعة للنطاقات المدرجة من التسجيل. يرفض Teable هذه النطاقات قبل إرسال رموز التحقق من التسجيل، ولا تُرسل أي دعوات بريدية تتضمنها. + + +إذا لم تكتمل تهيئة البريد الإلكتروني، فلن يتحول عنصر **البريد الإلكتروني** في لوحة **التهيئة المعلقة** إلى اللون الأخضر. + + +## حدود النظام + +تعرض **حدود النظام** الحدود الحالية على مستوى النسخة لبيانات الجداول والتهيئة ذات الصلة. إذا احتجت إلى تعديل حد، فاستخدم متغير البيئة الظاهر في تلك الصفحة. + + +بعد تغيير متغير بيئة، أعد تشغيل الخدمة لتطبيق القيمة الجديدة. + + +## التهيئة المعلقة + +لوحة **التهيئة المعلقة** على اليمين هي قائمة تحقق للنظام. تعرض الإعدادات المهمة التي لا تزال ناقصة في النسخة. + +تشمل الفحوص الشائعة في هذه الصفحة: + +| العنصر | التأثير | +|------|------| +| **متغير البيئة PUBLIC_ORIGIN** | يؤثر في الميزات التي تعتمد على عنوان URL للوصول الخارجي، مثل المرفقات وعمليات الاستيراد | +| **تمكين HTTPS** | يؤثر في الإمكانات التي تعتمد على HTTPS، مثل النسخ واللصق | +| **البريد الإلكتروني** | يؤثر في إعادة تعيين كلمة المرور والتحقق من البريد والإشعارات والميزات المشابهة | + +إذا لم تكتمل هذه العناصر، فقد تظل النسخة قابلة للفتح بصورة طبيعية، لكن بعض الميزات قد تظل غير متاحة. + +## العلاقة بإعدادات الذكاء الاصطناعي + +تعرض **إعدادات النسخة** جزءًا من الفحوص على مستوى النظام، لكنها ليست موضع تهيئة **نماذج الذكاء الاصطناعي** أو **بيئة تشغيل محادثة الذكاء الاصطناعي** أو **منشئ التطبيقات**. + +انتقل إلى الصفحة التالية لهذه الإعدادات: + +- [إعدادات الذكاء الاصطناعي](/ar/basic/admin-panel/ai-setting) + +يمكن تلخيص التقسيم كما يلي: + +- **إعدادات النسخة**: تغطي الإمكانات الأساسية للنسخة نفسها +- **إعدادات الذكاء الاصطناعي**: تغطي محادثة الذكاء الاصطناعي وحقوله وأتمتته ومنشئ التطبيقات + +## ترتيب الفحص + +إذا كنت تُعد نشرًا جديدًا ذاتي الاستضافة أو تطلقه لأول مرة، فتحقق من العناصر بالترتيب التالي: + + + + تأكد من تهيئة **PUBLIC_ORIGIN** بصورة صحيحة. + + + تأكد من تمكين **HTTPS** في النسخة. + + + تأكد من تهيئة **SMTP** وقدرته على إرسال الرسائل بنجاح. + + + بعد تأكيد العناصر الأساسية، تابع إلى [إعدادات الذكاء الاصطناعي](/ar/basic/admin-panel/ai-setting). + + + +يسهّل ذلك تحويل عناصر **التهيئة المعلقة** إلى اللون الأخضر بالترتيب ويساعد في استكشاف الأخطاء وإصلاحها. + +## الأسئلة الشائعة + + + + +يعني ذلك عادةً أن النسخة قابلة للوصول، لكن متطلبًا مهمًا واحدًا أو أكثر لبيئة التشغيل لا يزال مفقودًا. اتبع المطالبات في اللوحة اليمنى وأكملها واحدًا تلو الآخر، ولا تعتمد فقط على إمكانية فتح الصفحة. + + + + +تحقق من اكتمال إعدادات SMTP المحفوظة، ومن مطابقتها لغرض الإرسال المقصود، ومن موثوقية إرسال رسائل التحقق أو الإشعارات. + + + + +تعتمد عليه ميزات كثيرة تستخدم عنوان URL للوصول الخارجي. إذا لم تطابق القيمة المهيأة عنوان الوصول الفعلي، فقد لا تعمل ميزات مثل الاستيراد أو المرفقات أو عمليات إعادة التوجيه بصورة صحيحة. + + diff --git a/ar/basic/admin-panel/skills.mdx b/ar/basic/admin-panel/skills.mdx new file mode 100644 index 00000000..d7a1037a --- /dev/null +++ b/ar/basic/admin-panel/skills.mdx @@ -0,0 +1,37 @@ +--- +title: "المهارات" +description: "انشر مهارات يمكن لكل وكيل ذكاء اصطناعي في النسخة استخدامها." +--- + +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← المهارات + +استخدم **المهارات** لنشر مهارات للنسخة بأكملها. تتاح المهارة المضافة هنا في كل محادثة للذكاء الاصطناعي ومنشئ التطبيقات والروبوتات، لذا استخدمها لأساليب العمل التي ينبغي لمؤسستك مشاركتها افتراضيًا، مثل أسلوب الكتابة المؤسسي أو نهج إعداد التقارير أو إجراء مشترك للتكامل. + +تظل المهارات التي يضيفها المستخدمون في مواضع أخرى ضمن نطاقها. راجع [محادثة الذكاء الاصطناعي](/ar/basic/ai/ai-chat) للتعرف إلى المهارات الشخصية ومهارات قواعد البيانات والمساحات. + +## إضافة مهارة + +انقر على **استيراد مهارة** واختر مصدرها: + +| المصدر | ما يجب تقديمه | +| --- | --- | +| **عنوان GitHub URL** | رابط مجلد المهارة في مستودع، مثل `https://github.com/owner/repo/tree/main/skills/my-skill` | +| **ملف ZIP / ملف مهارة** | ملف `.zip` أو `.skill` يحتوي على `SKILL.md` | + +إذا كانت هناك مهارة بالاسم نفسه في هذا النطاق، يحل الاستيراد محلها. + +## إدارة المهارات المنشورة + +تجمع القائمة المهارات حسب النطاق وتعرض مصدر كل منها. تظهر المهارات المدمجة أسفل القائمة للرجوع إليها ولا يمكن تحريرها. + +- استخدم مفتاح التبديل في صف لتمكين مهارة أو تعطيلها من دون حذفها. تظل المهارة المعطلة في القائمة، لكنها لا تُعرض على الوكلاء. +- بالنسبة إلى مهارة مستوردة من GitHub، انقر على زر التحديث لجلب أحدث إصدار من مصدرها. +- انقر على صف لقراءة `SKILL.md` أو تحرير الاسم والوصف أو تنزيل المهارة أو استبدال ملفاتها أو حذفها. + +لا يمكن إضافة المهارات أو تغييرها أو إزالتها في هذه الصفحة إلا لمسؤولي النسخة. ويمكن لكل مستخدم مسجل الدخول استخدام المهارات المنشورة في محادثاته. + +## عند تكرار الاسم + +المهارة المنشورة هنا هي الإعداد الافتراضي للنسخة. إذا استخدمت مهارة على مستوى قاعدة بيانات أو مساحة أو مستخدم أو تطبيق أو روبوت الاسم نفسه، تُطبق المهارة الأضيق نطاقًا في تلك المحادثة، وتُتجاهل مهارة النسخة فيها. diff --git a/ar/basic/admin-panel/spaces.mdx b/ar/basic/admin-panel/spaces.mdx new file mode 100644 index 00000000..60731a08 --- /dev/null +++ b/ar/basic/admin-panel/spaces.mdx @@ -0,0 +1,38 @@ +--- +title: "المساحات" +description: "أدر جميع المساحات في نسختك عبر لوحة الإدارة، بما في ذلك عرض معلومات المساحة وحذف المساحات وتهيئة إعدادات الانضمام التلقائي." +--- + +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +### معلومات المساحة + +* **اسم المساحة**: الاسم المعروض للمساحة +* **قواعد البيانات**: إجمالي عدد قواعد البيانات في المساحة +* **المتعاونون**: إجمالي عدد المستخدمين الذين يمكنهم الوصول إلى المساحة +* **وقت الإنشاء**: وقت إنشاء المساحة +* **الانضمام التلقائي**: ما إذا كانت المساحة تسمح للمستخدمين الجدد بالانضمام تلقائيًا + +### عمليات المساحة + +#### الانضمام التلقائي + +* **السماح بالانضمام التلقائي**: عند تمكينه، ينضم جميع المستخدمين المسجلين حديثًا تلقائيًا إلى هذه المساحة مع [إذن القراءة](/ar/basic/space/space-invite). وهو مفيد للمساحات العامة أو المشتركة على مستوى الشركة. +* **منع الانضمام التلقائي**: تعطيل الانضمام التلقائي للمستخدمين الجدد. + +#### حذف مساحة + +المساحات المحذوفة من لوحة الإدارة **لا يمكن استردادها**. بخلاف الحذف العادي للمساحات، لا تدخل المساحات المحذوفة هنا إلى نظام سلة المهملات. + +عند حذف مساحة من لوحة الإدارة: +* تُعلّم المساحة كمحذوفة فورًا +* يتعذر الوصول إلى جميع قواعد البيانات والبيانات داخلها +* يفقد المتعاونون إمكانية الوصول إلى المساحة +* لا يمكن التراجع عن هذه العملية + +**قبل حذف مساحة:** +1. أخطر جميع المتعاونين بالحذف +2. صدّر البيانات المهمة أو أنشئ نسخة احتياطية منها +3. تأكد من عدم الحاجة إلى المساحة +4. فكّر في استخدام خيار التعطيل إذا كنت تحتاج إلى إزالة مؤقتة + diff --git a/ar/basic/admin-panel/table-query-ops.mdx b/ar/basic/admin-panel/table-query-ops.mdx new file mode 100644 index 00000000..61e5fcca --- /dev/null +++ b/ar/basic/admin-panel/table-query-ops.mdx @@ -0,0 +1,81 @@ +--- +title: "عمليات استعلام الجداول" +description: "راجع توصيات مخاطر الاستعلام للجداول البطيئة وأكّد تحسينات قاعدة البيانات." +--- + +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +المسار: لوحة الإدارة ← عمليات استعلام الجداول + +استخدم **عمليات استعلام الجداول** عندما تصبح طرق العرض أو عوامل التصفية أو العلاقات أو عمليات البحث في جدول كبير بطيئة. يراقب محلل في الخلفية حمل الاستعلام ويحوّل ملاحظاته إلى توصيات. تسردها الصفحة حتى يراجع مسؤولو النسخة الأدلة ويحللوا جدولًا محددًا بعمق ويؤكدوا أي تغيير في قاعدة البيانات. + +تلخص العدادات أعلى القائمة الوضع الحالي: نوافذ المراقبة والطلبات والاستعلامات البطيئة والمهل المنتهية والتوصيات المفتوحة والمقبولة والمهام الجارية والفاشلة وعدد مسارات الوصول للبحث الجاهزة أو المتدهورة. + +## مراجعة التوصيات + +تُفتح الصفحة على **التوصيات** مرتبة حسب الأولوية. يوازن المحلل بين مخاطر الاستعلام وكثافة استخدام الجدول، فتظهر أولًا الإدخالات الأجدر بالتنفيذ. + +ابحث حسب معرّف الجدول أو قاعدة البيانات أو المساحة لتصفية جميع التوصيات؛ ويصفّي أي نص آخر ما يظهر على الشاشة. وتضيّق عوامل تصفية الحالة والمخاطر القائمة أكثر. + +يسمي كل إدخال المساحة وقاعدة البيانات والجدول التابع لها. وسّع صفًا لقراءة الأدلة والتفسير وبيانات SQL التشخيصية: + +| القسم | ما يوضحه | +| --- | --- | +| **المشغّل** | مصدر التوصية: حركة استعلام مرصودة أو تهيئة طريقة عرض محفوظة أو تهيئة حقل علاقة. لا يعني مشغّل طريقة العرض المحفوظة رصد استعلام بطيء؛ فالتهيئة وحدها رفعت المخاطر. | +| **مسار الوصول** | مرات الوصول إلى الجدول بالمسح التسلسلي مقارنة بمسح الفهرس. | +| **الأسباب** | أسباب مقروءة مثل كبر الجدول أو غياب فهرس مفيد لحقول التصفية أو الفرز أو ارتفاع تكلفة الفرز أو رصد انتهاء المهلة. | +| **شكل الاستعلام** | الحقول المحددة التي تُصفّى وتُرتب ونوع المطابقة المستخدم لكل منها. | +| **الفهرس المقترح** | الحقول التي ستفهرسها التوصية والسبب. | + +يفتح **التحليل المتعمق** مساحة عمل التحليل مع تعبئة ذلك الجدول مسبقًا. + +عندما يرصد المحلل بحثًا كثيفًا بسلاسل فرعية عبر جدول، ينشئ توصية واحدة من نوع **GIN للنص المنشأ** للجدول كله بدل فهرس لكل حقل. يعرض هذا الصف **إنشاء مسار بحث** بدل **التحليل المتعمق**، ولا يظهر **إضافة فهرس** لأن مسار الوصول يُطبق من مساحة التحليل ويتطلب أولًا **نموذج بحث EXPLAIN**. وتُغلق التوصية تلقائيًا بعد حصول الجدول على المسار. + +توجد علامتا تبويب إضافيتان بجوارها: + +| علامة التبويب | ما تعرضه | +| --- | --- | +| **الجداول النشطة** | أكثر الجداول انشغالًا مع الطلبات والاستعلامات البطيئة والمهل المنتهية وأطول مدة استعلام. | +| **المهام** | مهام المعالجة التي أنشأها Teable، مع الحالة والمحاولات والعامل وآخر خطأ. | + +يظهر شريط أعلى القائمة عندما تعوق مشكلة تهيئة العملية: قد تكون مسارات البحث مهيأة مع تعطيل علامة التشغيل، أو قد تملك بعض الجداول مسارًا قديمًا أو بانتظار إعادة البناء فعاد بحثها بصمت إلى مسح `ILIKE` الأبطأ، أو تكون أقدم مهمة منتظرة قد طال انتظارها بما يوحي بعدم وجود عامل يستهلكها. أصلح ما يورده الشريط قبل تنفيذ التوصيات. + +### قراءة شارة القرار + +تحمل كل توصية أحدث قرار اتخذه النظام بشأنها: + +| الشارة | المعنى | +| --- | --- | +| **تحتاج إلى تأكيد يدوي** | لا يمكن تطبيقها إلا لمسؤول. | +| **ظل · ستعمل تلقائيًا** | تستوفي التوصية معايير القبول، لكن التنفيذ التلقائي غير مفعّل، فلم يتغير شيء. | +| **قيد التنفيذ التلقائي** / **نُفذت تلقائيًا** | قبل التنفيذ التلقائي التوصية وطبقها. | +| **فشل التحقق اللاحق · تراجع مؤقت** | لم يجتز تغيير تلقائي التحقق. ينتظر Teable مدة أطول قبل إعادة محاولة الجدول. | +| **فترة تهدئة** | تغير النطاق نفسه مؤخرًا، لذا ينتظر النظام. | +| **معلقة** / **لم يُطبق التنفيذ التلقائي** | لم تبلغ أدلة الخطة أو حجم الجدول حد التنفيذ التلقائي. | + +لا يسجل Teable افتراضيًا إلا القرارات وينشئ سجلات التوصيات والمهام، ولا يغير قاعدة بياناتك تلقائيًا. التنفيذ التلقائي اختياري عبر `V2_TABLE_QUERY_OPS_AUTO_ACCEPT=auto`، وحتى عند تمكينه لا يطبق إلا على الجداول الصغيرة التي تُظهر خطة تنفيذها تحسنًا واضحًا في التكلفة. أما البقية فتنتظر مسؤولًا. + +### إضافة الفهرس المقترح + +عندما توافق على فهرس مقترح، انقر على **إضافة فهرس** في الصف. يؤدي التأكيد إلى قبول التوصية وتشغيل `CREATE INDEX CONCURRENTLY` على جدول PostgreSQL الأساسي؛ وإذا جرى تخطي التحقق من الخطة، يبني Teable الفهرس من الحقول الموصى بها. يكرر مربع الحوار الأدلة للمراجعة الأخيرة. + +بالنسبة إلى جدول يُقدّر بأنه يضم 50,000 صف أو أكثر، يطلب مربع الحوار تأكيد وجود نافذة صيانة قبل إتاحة الزر. يستغرق البناء المتزامن لجدول كبير وقتًا ويضيف حملًا أثناء التنفيذ. + +يعرض Teable بعدها **أُنشئ الفهرس** أو **قُبلت التوصية وأُدرجت في قائمة الانتظار**. في الحالة الثانية، تابع المهمة ضمن **المهام**. إذا لم يكن للتوصية عمود فعلي قابل للتنفيذ، يظل **إضافة فهرس** معطلًا ويوضح السبب؛ استخدم مساحة التحليل لمزيد من البحث. + +## إجراء تحليل متعمق + +افتح **مساحة عمل التحليل** لتحليل نطاق عند الطلب، مثل إبلاغ مستخدم عن جدول بطيء لا يملك توصية بعد. + +| نوع التحليل | الاستخدام | +| --- | --- | +| **الاستعلامات والفهارس** | العثور على مخاطر الاستعلام وتحسينات الفهرس الممكنة. | +| **بحث السلسلة الفرعية** | التحقق مما إذا كان مسار وصول للبحث بسلسلة فرعية يسرّع عمليات البحث «يحتوي على» من دون تغيير سلوك المطابقة. | + +اختر **جدولًا** أو **قاعدة بيانات** أو **مساحة**، وأدخل المعرّف الموافق وحدد نوع التحليل. ابدأ بـ **جدول** عندما تعرف الجدول البطيء. + +انقر على **إنشاء تقرير استعلام** أو **إنشاء تقرير بحث**. يلخص التقرير المخاطر والإجراءات التالية الموصى بها. في تقرير البحث، يكون **نموذج بحث EXPLAIN** اختياريًا. أضف نموذجًا للتحقق من توافق النتائج وخطط الاستعلام وتوقيت الاستعلام المتكرر لمسار البحث المقترح. لا يحفظ Teable قيمة النموذج. + +لا يغير تقرير الاستعلام قاعدة البيانات. يتطلب تطبيق توصية بحث السلسلة الفرعية **نموذج بحث EXPLAIN** وتأكيد المسؤول. + +بالنسبة إلى جدول كبير، راجع الأثر وجدول أي تغيير مؤكد ضمن نافذة صيانة مناسبة. diff --git a/ar/basic/admin-panel/template-admin.mdx b/ar/basic/admin-panel/template-admin.mdx new file mode 100644 index 00000000..0152558e --- /dev/null +++ b/ar/basic/admin-panel/template-admin.mdx @@ -0,0 +1,37 @@ +--- +title: "إدارة القوالب" +description: "أدر قوالب سير العمل لمؤسستك، بما يتيح للمستخدمين البدء سريعًا بقواعد بيانات مهيأة مسبقًا." +--- + +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +### إدارة القوالب + +يمكنك في واجهة إدارة القوالب إنشاء القوالب المتاحة في مركز قوالب مؤسستك وتهيئتها. + +#### معلومات القالب + +* **الغلاف**: صورة غلاف بطاقة القالب +* **الاسم والوصف**: العنوان والوصف الموجز المعروضان في مركز القوالب +* **وصف Markdown**: وصف تفصيلي يدعم تنسيق النص المنسق +* **الفئة**: تجميع القوالب حسب سيناريوهات الأعمال (مثل الموارد البشرية والمبيعات والهندسة) +* **النظام**: يوضح ما إذا كان القالب قالب نظام رسميًا +* **المصدر**: قاعدة البيانات الأصلية المستخدمة لإنشاء القالب + +#### عمليات القالب + +* **قالب جديد**: إنشاء تهيئة قالب جديدة +* **نشر لقطة**: التقاط الحالة الحالية لقاعدة البيانات المصدرية. يجب نشر لقطة قبل إدراج القالب. +* **الحالة (النشر)**: التبديل بين إدراج القالب وإلغاء إدراجه في مركز القوالب. يتطلب اسمًا ووصفًا ولقطة. +* **تثبيت**: تثبيت القوالب المهمة أعلى القائمة +* **حذف**: إزالة تهيئة القالب + +### استخدام القوالب الرسمية + +يمكن لمستخدمي الاستضافة الذاتية استيراد القوالب من Teable السحابية الرسمية: + +1. **التنزيل**: احصل على ملف `.tea` من [مركز القوالب الرسمي](https://teable.ai/templates) +2. **الاستيراد**: استورد ملف `.tea` كقاعدة بيانات جديدة في مساحتك +3. **إنشاء قالب**: انتقل إلى إدارة القوالب > قالب جديد +4. **تحديد المصدر**: اختر قاعدة البيانات المستوردة كمصدر +5. **النشر**: هيئ التفاصيل وانشر اللقطة ومكّن الحالة diff --git a/ar/basic/admin-panel/users.mdx b/ar/basic/admin-panel/users.mdx new file mode 100644 index 00000000..9cc1eb61 --- /dev/null +++ b/ar/basic/admin-panel/users.mdx @@ -0,0 +1,39 @@ +--- +title: "المستخدمون" +description: "أدر جميع المستخدمين في نسختك عبر لوحة الإدارة، بما في ذلك عرض معلوماتهم وتعطيلهم وحذفهم." +--- + +متاحة لخطة Business ذاتية الاستضافة والخطط الأعلى + +### معلومات المستخدم + +* **اسم المستخدم**: الاسم المعروض للمستخدم +* **آخر تسجيل دخول**: آخر وقت سجل فيه المستخدم الدخول إلى النظام +* **تاريخ التسجيل**: وقت تسجيل المستخدم حسابه لأول مرة +* **الحالة**: الحالة الحالية لحساب المستخدم (نشط أو معطّل أو محذوف) + +### عمليات المستخدم + +#### الأذونات + +* **تعيين كمسؤول**: يمنح حقوق إدارة كاملة للنسخة +* **إزالة صلاحية المسؤول**: يلغي حقوق المسؤول + +#### حالة الحساب + +* **تعطيل**: لا يمكن للمستخدم تسجيل الدخول، مع الاحتفاظ بالبيانات +* **تنشيط**: استعادة الوصول لمستخدم معطّل + +#### إعادة تعيين كلمة المرور + +افتح قائمة إجراءات مستخدم واختر **إعادة تعيين كلمة المرور**. بعد التأكيد، ينشئ Teable رابطًا صالحًا لمرة واحدة يمكنك نسخه وإرساله إلى المستخدم. وإذا كان بريد الإشعارات مهيأً، يرسل Teable الرابط بالبريد الإلكتروني أيضًا. + +تظل كلمة المرور الحالية للمستخدم صالحة حتى يعيّن كلمة جديدة عبر الرابط. يعرض Teable وقت انتهاء الصلاحية عند إنشاء الرابط، ولا يمكن استخدام كل رابط إلا مرة واحدة. + +لا يتاح خيار **إعادة تعيين كلمة المرور** عند تعطيل تسجيل الدخول بكلمة المرور في النسخة. + +#### الحذف + +* **حذف**: حذف المستخدم حذفًا مبدئيًا (مع وضع علامة محذوف) +* **استعادة**: استرداد مستخدم محذوف مبدئيًا +* **حذف نهائي**: إزالة بيانات المستخدم بالكامل (لا يمكن التراجع) diff --git a/ar/basic/ai/ai-chat.mdx b/ar/basic/ai/ai-chat.mdx new file mode 100644 index 00000000..33e66950 --- /dev/null +++ b/ar/basic/ai/ai-chat.mdx @@ -0,0 +1,288 @@ +--- +title: محادثة الذكاء الاصطناعي +description: تفاعل مع بياناتك باللغة الطبيعية لتحليلها وعرضها مرئيًا وإنشاء المحتوى. +--- + +{/* mintlify-resync: 2026-05-14 */} +متاحة ضمن جميع الخطط السحابية؛ وتتطلب الاستضافة الذاتية خطة Business أو أعلى. + +تساعدك محادثة الذكاء الاصطناعي على تحليل الجدول الحالي، وشرح محتوى السجلات، وإنشاء المخططات والتقارير، وإنشاء الجداول وطرق العرض والتطبيقات وعمليات الأتمتة أو تحديثها. + +يعطي الذكاء الاصطناعي الأولوية للصفحة الحالية. للإشارة إلى جداول أو طرق عرض أو تطبيقات أو عمليات أتمتة أو مجلدات أخرى، اكتب `@` في مربع الإدخال وحدد العقدة ذات الصلة. + +## كيفية الفتح + +افتح جدولًا أو طريقة عرض، ثم انقر على Cuppy في الزاوية العلوية اليمنى لفتح محادثة الذكاء الاصطناعي. صِف السؤال أو المهمة في مربع الإدخال. إذا كانت المهمة ستعدّل البيانات أو تنشئ عُقدًا، فاطلب من الذكاء الاصطناعي عرض الخطة أولًا، ثم أكّدها قبل التنفيذ. + +## ما يمكن للذكاء الاصطناعي الرجوع إليه + +يعطي الذكاء الاصطناعي الأولوية للمعلومات الواردة في الصفحة الحالية: + +- **الجدول وطريقة العرض الحاليان**: الجدول الحالي وطريقة العرض الحالية والنتائج المصفّاة أو المرتبة فيها. +- **الصفوف والأعمدة والخلايا المحددة**: إذا حددت صفوفًا أو أعمدة أو خلية واحدة أو نطاق خلايا في طريقة عرض الشبكة، يستخدم الذكاء الاصطناعي هذا التحديد بوصفه سياقًا أساسيًا. +- **الملفات المرفوعة**: أضف ملفات PDF وExcel ومستندات Word والصور وغيرها من الملفات إلى المحادثة. +- **المزيد من العُقد باستخدام `@`**: اكتب `@` في مربع الإدخال لإضافة جداول أو طرق عرض أو تطبيقات أو عمليات أتمتة أو مجلدات من الشجرة. + +يمكن أيضًا لصق الملفات أو إفلاتها مباشرةً في مربع الإدخال. تظهر أولًا في صورة شارات مرفقات، ثم تصبح متاحة للذكاء الاصطناعي بعد إرسال الرسالة. + +عند لصق كتلة طويلة من النص العادي، يحولها Teable إلى مرفق Markdown حتى يظل إدخال الرسالة سهل القراءة. ويمكنك معاينة مرفقات النص وMarkdown من شارات المرفقات الخاصة بها. + +## عناصر التحكم في الإدخال + +- **الإدخال الصوتي**: انقر على زر الميكروفون في مربع الإدخال واسمح بالوصول إلى الميكروفون لبدء التسجيل. أثناء التسجيل، اختر **إنهاء الإدخال الصوتي** أو **تجاهل الإدخال الصوتي**. بعد اختيار الإنهاء، ينسخ Teable التسجيل إلى نص في مربع الإدخال. +- **النموذج**: استخدم قائمة النماذج لاختيار نموذج المحادثة. استخدم نموذجًا أخف للاستعلامات البسيطة أو التنظيف أو إعادة الصياغة، ونموذجًا أقوى للتخطيط المعقد والتحليل عبر الجداول وإنشاء التطبيقات. +- **مستوى الذكاء**: اختر مستوى **الذكاء** بصورة مستقلة في قائمة النماذج. يتحكم هذا المستوى في عمق التفكير؛ وتنتج المستويات الأعلى استدلالًا أشمل. +- **الأسرار**: افتح قائمة **+** واختر **الأسرار** لحفظ مفاتيح API أو غيرها من بيانات الاعتماد لمحادثة الذكاء الاصطناعي. يمكن للمحادثة قراءة هذه القيم بوصفها متغيرات بيئة. القيم المحفوظة مخصصة للكتابة فقط؛ أدخل قيمة جديدة لتحديث سر. +- **عمليات التكامل**: عندما يحتاج الذكاء الاصطناعي إلى الوصول إلى حساب تابع لجهة خارجية، يمكنه عرض بطاقة مثل **ربط Slack** في المحادثة. انقر على **ربط** للتصريح عبر OAuth. انقر على **تخطي** لإلغاء هذا التصريح؛ وسيواصل الذكاء الاصطناعي تنفيذ الأجزاء التي يمكنه إكمالها من دون ذلك الاتصال. +- **المهارات**: افتح قائمة **+** واختر **المهارات** لاستيراد المهارات أو تمكينها أو تعطيلها أو تجربتها في المحادثة الحالية. عند استيراد مهارة، اختر من يمكنه استخدامها: يحصرها **شخصي** بك، ويتيحها **قاعدة البيانات** للمتعاونين في قاعدة البيانات هذه، وتتيحها **المساحة** للجميع في هذه المساحة. اكتب `/` في مربع الإدخال لاختيار مهارة مفعّلة. لربط نظام خارجي أو ترحيله، راجع [ربط كل شيء وترحيله](/ar/basic/ai/connect-everything). +- **استخدام السياق**: توضح الحلقة المجاورة لمربع الإدخال مقدار ما تستخدمه المحادثة حاليًا من نافذة سياق النموذج. انقر عليها لعرض النسبة المئوية وأعداد الرموز. عندما يمتلئ السياق، يضغط Teable المحادثة؛ ابدأ محادثة جديدة إذا أردت سياقًا جديدًا بدلاً من ذلك. +- **إدارة الملفات**: افتح **+** ← **المزيد** ← **إدارة الملفات** لعرض الملفات في بيئة المحادثة المعزولة الحالية. يمكنك معاينة الملفات المدعومة أو تنزيلها أو حذف الملفات والمجلدات التي لم تعد بحاجة إليها. يجب أن تكون هناك محادثة قبل أن تتمكن من إدارة ملفاتها. +- **قائمة انتظار الرسائل**: لا يؤدي إرسال رسالة أخرى أثناء عمل الذكاء الاصطناعي إلى مقاطعته. تنتظر الرسالة في قائمة أعلى مربع الإدخال وتُرسل عند انتهاء التشغيل الحالي. تحتفظ العناصر الموجودة في قائمة الانتظار بشارات الجدول وطريقة العرض والمرفقات والتحديد نفسها الموجودة في إدخال المحادثة؛ يؤدي **إزالة** إلى حذف عنصر، ويعيده **...** ← **تحرير الرسالة** إلى مربع الإدخال، كما يتيح العنصر النصي فقط خيار **توجيه** لتمرير نصه إلى الدور الجاري بدلاً من الانتظار. + +## الاستخدامات الشائعة + + + + خطط لقاعدة بيانات أعمال، وأنشئ الجداول وطرق العرض والتطبيقات وعمليات الأتمتة، أو حدّث السجلات الحالية. + + + لخّص البيانات في الجدول أو طريقة العرض الحالية، أو حلّلها عبر عدة عُقد مترابطة. + + + حوّل البيانات المستعلم عنها إلى مخطط أو تقرير أو صفحة تفاعلية صغيرة يمكنك إعادة فتحها ومشاركتها. + + + أجب عن الأسئلة باستخدام ملفات PDF وExcel ومستندات Word والصور وغيرها من المرفقات. + + + +### إنشاء الجداول وعمليات الأتمتة + +يمكن لمحادثة الذكاء الاصطناعي مساعدتك على إنشاء البيانات وتحديثها وتنظيمها، وليس مجرد الإجابة عن الأسئلة. عند إنشاء سير عمل أعمال جديد، ناقش بنية البيانات أولًا، ثم اطلب من الذكاء الاصطناعي إنشاء الجداول وطرق العرض والتطبيقات وعمليات الأتمتة. + +من المطالبات المناسبة: + +- ساعدني في التخطيط لنظام متابعة العملاء. ما الجداول والحقول التي أحتاج إليها؟ +- بناءً على الخطة أعلاه، أنشئ هذه الجداول وطرق العرض والحقول. +- أضف حقول الأولوية والمسؤول وتاريخ الاستحقاق والحالة إلى جدول المهام، ثم أنشئ طرق العرض الشائعة. +- غيّر حالة السجلات المحددة إلى مكتملة. +- أنشئ جدولًا جديدًا من ملف Excel هذا، وتحقق من ملاءمة أنواع الحقول. +- أنشئ تطبيق CRM من جدول العملاء هذا، يتضمن صفحات قائمة العملاء وتفاصيل العميل وسجلات المتابعة. +- عند إنشاء طلب جديد، أخطر المسؤول وأدرج رقم الطلب واسم العميل والمبلغ. + +لإنشاء قاعدة بيانات أعمال متكاملة، ابدأ بأن تطلب من الذكاء الاصطناعي تخطيط بنية الجداول. وبعد مراجعة الخطة، واصل إنشاء الجداول وطرق العرض والتطبيقات وعمليات الأتمتة. + + + + صِف هدف العمل، مثل إنشاء نظام لمتابعة العملاء، واطلب من الذكاء الاصطناعي تحديد الجداول والحقول وطرق العرض وعمليات الأتمتة المطلوبة. + + + راجع الجداول والحقول وأنواع الحقول والعلاقات المقترحة. أضف أي قواعد أو تفاصيل مفقودة في سير العمل. + + + اطلب من الذكاء الاصطناعي إنشاء الجداول وطرق العرض المؤكدة، ثم تابع إنشاء التطبيقات أو عمليات الأتمتة. + + + +للاطلاع على تفاصيل إنشاء التطبيقات، راجع [منشئ التطبيقات](/ar/basic/ai/app-builder). وللاطلاع على تفاصيل الأتمتة، راجع [الأتمتة](/ar/basic/automation). + +### تحليل البيانات + +اطرح أسئلة حول البيانات في الجدول الحالي، مثل: + +- احسب المهام المكتملة هذا الشهر حسب المسؤول. +- اعثر على العملاء ذوي أعلى مبيعات خلال آخر 30 يومًا. +- حلّل السجلات غير المعتادة في طريقة العرض هذه. + +إذا كان السؤال يتضمن عدة جداول، فاستخدم `@` لإضافة الجداول أو طرق العرض ذات الصلة إلى المحادثة. + +في طريقة عرض الشبكة، يمكنك أيضًا تحديد صفوف أو أعمدة أو خلية واحدة أو نطاق خلايا، ثم استخدام **إضافة إلى المحادثة** من قائمة السياق. يظهر التحديد كشارة في مربع الإدخال، ويؤدي النقر على الشارة إلى تمييز منطقة الشبكة ذات الصلة مجددًا. تستخدم شارات الأعمدة أسماء الحقول عند توفرها وتختصر التحديدات الطويلة بعد الأسماء القليلة الأولى. + +### إنشاء المخططات والتقارير + +اطلب من الذكاء الاصطناعي تحويل البيانات المستعلم عنها إلى مخطط أو تقرير مكتوب أو صفحة تفاعلية صغيرة: + +- أنشئ مخططًا لاتجاه المبيعات الأسبوعي. +- حوّل نتيجة هذا الاستعلام إلى مخطط دائري. +- أنشئ تقريرًا موجزًا من هذه السجلات. + +ينشئ الذكاء الاصطناعي هذه النتائج في صورة **نتائج تفاعلية**: تظهر كبطاقة في المحادثة، وتُفتح في عارض مستقل، وتظل متاحة بعد انتهاء المحادثة. راجع [النتائج التفاعلية](#artifacts) لمعرفة ما يمكنك فعله بإحداها. + + +تحتفظ النتيجة التفاعلية بالبيانات التي وضعها الذكاء الاصطناعي فيها عند إنشائها، ولذلك لا تُحدّث تلقائيًا. لإنشاء صفحة تواصل قراءة بيانات الجدول المباشرة، أو تجمع المدخلات وتحفظ الحالة، أنشئ تطبيقًا باستخدام [منشئ التطبيقات](/ar/basic/ai/app-builder). + + +### قراءة الملفات + +بعد رفع الملفات، يمكن للذكاء الاصطناعي الإجابة عن الأسئلة باستخدام محتوى الملفات وبيانات الجدول معًا: + +- لخّص ملف PDF هذا واربطه بسجل العميل الحالي. +- اقرأ ملف Excel هذا وحدد الحقول التي ينبغي استيرادها. +- أنشئ وصفًا لمنتج من هذه الصورة. + +تُحفظ الملفات المرفوعة إلى المحادثة والملفات التي تُنشأ خلالها في بيئة المحادثة المعزولة الحالية. استخدم **إدارة الملفات** لفحصها لاحقًا. + +عندما يعرض رد عدة ملفات في آن واحد، استخدم **تنزيل الكل** أسفل بطاقات الملفات لحفظها في ملف zip واحد. + +### الذاكرة + +تخزّن الذاكرة المعلومات التي تطلب صراحةً من Cuppy تذكرها. يقتصر نطاق الذاكرة على المستخدم وقاعدة البيانات: لكل مستخدم في كل قاعدة بيانات سياق ذاكرة مستقل، ولا تظهر الذاكرة المحفوظة في قاعدة بيانات أخرى تلقائيًا في قاعدة البيانات الحالية. + +- حفظ ذاكرة في قاعدة البيانات الحالية + +اذكر في المحادثة ما ينبغي لـ Cuppy تذكره: + +```text +يرجى تذكّر xxx. +``` + +- إعادة استخدام ذاكرة من قاعدة بيانات أخرى + +اطلب من Cuppy قراءة قاعدة بيانات أخرى وحفظ الأجزاء ذات الصلة في قاعدة البيانات الحالية: + +```text +Cuppy، يرجى قراءة الذاكرة الخاصة بـ Base ID bsexxxxxxxxxxxx وحفظ المعلومات ذات الصلة في قاعدة البيانات الحالية. +``` + +### معالجة المهام الطويلة + +يمكن لمحادثة الذكاء الاصطناعي إبقاء بيئة محادثة واحدة متاحة لنحو 24 ساعة، وهي مدة تكفي لمعظم مهام تحليل البيانات ومعالجة الملفات وإنشاء التطبيقات. أبقِ العمل طويل الأمد في المحادثة الحالية حتى تتمكن من متابعة تقدمه وتقديم المدخلات عند الحاجة. + + + + إذا عرضت الواجهة `جارٍ التفكير` أو واصلت إرجاع تحديثات التقدم، فلا تزال المهمة قيد التشغيل. وإذا عرضت `مكتمل`، فقد انتهى التشغيل الحالي. + + + في الأعمال متعددة المراحل، اطلب من Cuppy إعادة كتابة النتائج إلى Teable أو تصديرها أو إنشاء ملف قابل للتنزيل عند نقاط التوقف الرئيسية. يظل العمل المحفوظ متاحًا حتى إذا أُوقفت بيئة المحادثة لاحقًا. + + + يبلغ الحد الأقصى التقريبي لعمر بيئة المحادثة الواحدة 24 ساعة. وبعد انتهاء التنفيذ في الواجهة، تُوقف البيئة الخاملة بعد نحو 30 دقيقة. لا تُحفظ الملفات المؤقتة والنتائج الوسيطة غير المحفوظة إذا أُعيد تشغيل البيئة. + + + +للأعمال طويلة الأمد أو القابلة للتكرار، استخدم الميزة التي تناسب سير العمل: + + + + استخدمها للعمل على كل سجل على حدة، مثل معالجة الجداول الكبيرة أو التصنيف المجمع أو معالجة المحتوى أو تعبئة الحقول. + + + استخدمها للأعمال القابلة للتكرار بعد إنشاء السجلات أو تحديثها، أو للإشعارات أو معالجة البيانات المجدولة. + + + +## النتائج التفاعلية {#artifacts} + +عندما ينشئ الذكاء الاصطناعي مخططًا أو تقريرًا أو صفحة شبيهة بلوحة معلومات أو أداة تفاعلية صغيرة، يحفظ النتيجة بوصفها **نتيجة تفاعلية**: صفحة مستقلة تُعرض خارج المحادثة. تظهر النتائج التفاعلية كبطاقات في المحادثة وتظل متاحة بعد ذلك. وتكون كل واحدة منها إما صفحة HTML تفاعلية أو تقرير Markdown. + +انقر على البطاقة لفتح النتيجة التفاعلية. ومن العارض يمكنك: + +- استخدام **ملء الشاشة** أو **فتح في صفحة جديدة** لتوفير مساحة أكبر للنتيجة التفاعلية. +- **تنزيل** الإصدار الحالي كملف. +- فتح قائمة الإصدارات للاطلاع على إصدار سابق، واستخدام **استعادة هذا الإصدار** لجعله الإصدار الحالي مجددًا. +- **حذف** النتيجة التفاعلية. تتحول بطاقاتها في المحادثة إلى عنصر نائب يدل على الحذف، لذا لا تحذفها إلا عندما لا تعود بحاجة إلى النتيجة. + +لتغيير نتيجة تفاعلية، اطلب من الذكاء الاصطناعي ذلك في المحادثة نفسها. يصبح كل تعديل إصدارًا جديدًا من النتيجة التفاعلية نفسها بدلاً من إنشاء نتيجة منفصلة، ولذلك يظل رابط المشاركة صالحًا ويظل بإمكانك الرجوع إلى إصدار سابق. إذا تعذر تشغيل الصفحة، يعرض العارض الخطأ ويوفر خيار **الإصلاح باستخدام الذكاء الاصطناعي**، الذي يعيد إرسال الخطأ إلى المحادثة حتى يصححه الذكاء الاصطناعي. + +### مشاركة نتيجة تفاعلية + +تكون النتائج التفاعلية خاصة بمن أنشأها، لذا استخدم رابط مشاركة للسماح لأي شخص آخر بفتحها. + + + + انقر على **مشاركة** في العارض وفعّل **تمكين المشاركة**. ينشئ Teable الرابط. + + + اضبط **من يمكنه العرض** على **أي شخص لديه الرابط**، أو على **أعضاء المساحة** حتى لا يتمكن من فتحه إلا أعضاء المساحة الذين سجّلوا الدخول. + + + ضمن الإعدادات المتقدمة، فعّل **الحماية بكلمة مرور** وعيّن كلمة مرور. يجب على المشاهدين إدخالها قبل تحميل النتيجة التفاعلية. + + + استخدم **نسخ الرابط** لنسخه. إذا انتشر الرابط على نطاق أوسع من المطلوب، فإن **إعادة تعيين الرابط** ينشئ رابطًا جديدًا ويوقف الرابط القديم عن العمل. + + + +### العثور على النتائج التفاعلية لاحقًا + +افتح **+** ← **المزيد** ← **إدارة النتائج التفاعلية** لتصفح كل ما أنشأته عبر محادثاتك. ابحث بالاسم، ثم افتح إحداها لعرضها أو إعادة مشاركتها. + +## نصائح لكتابة المطالبات + +- **اذكر الهدف أولًا**: صِف في الرسالة الأولى ما يجب فعله والشروط ذات الصلة والنتيجة المتوقعة. على سبيل المثال، حلّل اتجاهات المبيعات الأسبوعية خلال الأشهر الثلاثة الماضية، مجمعة حسب المنطقة، وأرجع جدول اتجاهات مع خلاصة موجزة. +- **استخدم أسماء الحقول**: على سبيل المثال، رتّب حسب `وقت الإنشاء` حتى يتمكن الذكاء الاصطناعي من تحديد العمود المستهدف. +- **قدّم عدة أمثلة**: بالنسبة إلى المخرجات ذات التنسيق الثابت، قدّم 3 إلى 5 أمثلة على الإدخال -> المخرج المتوقع. +- **استخدم `@` لتحديد العُقد**: عندما يحتاج الذكاء الاصطناعي إلى الرجوع إلى جداول أو طرق عرض أو تطبيقات أو عمليات أتمتة أو مجلدات، اكتب `@` وحددها مباشرةً. +- **أكّد قبل التنفيذ**: في المهام التي تعدّل البيانات أو تنشئ الجداول أو التطبيقات أو تمكّن عمليات الأتمتة، اطلب من الذكاء الاصطناعي وصف التغييرات قبل تنفيذها. +- **اختر النموذج حسب المهمة**: إذا كانت المساحة تدعم اختيار النموذج، فاستخدم نموذجًا أخف للاستعلامات البسيطة أو التنظيف أو إعادة الصياغة، ونموذجًا أقوى للتخطيط المعقد والتحليل عبر الجداول وإنشاء التطبيقات. +- **اضبط مستوى الذكاء**: يتحكم **الذكاء** في عمق التفكير؛ وتنتج المستويات الأعلى استدلالًا أشمل. +- **ابدأ محادثة جديدة عند تغير الموضوع**: يُوصى ببدء محادثة جديدة عند تغير الموضوع أو عندما تصبح المحادثة طويلة جدًا أو يلزم تقليل استخدام السياق. + +## الأسئلة الشائعة + + + + اكتب `@` في مربع الإدخال وحدد العقدة التي تريد من محادثة الذكاء الاصطناعي الرجوع إليها. وبالنسبة إلى التحديدات في طريقة عرض الشبكة، يمكنك أيضًا تحديد صفوف أو أعمدة أو خلية واحدة أو نطاق خلايا، ثم استخدام **إضافة إلى المحادثة** من قائمة السياق. + + + + نعم. لا يقتصر الذكاء الاصطناعي على قاعدة البيانات التي تنتمي إليها المحادثة؛ بل يمكنه البحث في قواعد البيانات الأخرى التي يمكنك الوصول إليها والعمل فيها. اذكر قاعدة البيانات في طلبك، مثل «قارن هذا الجدول بجدول الطلبات في قاعدة بيانات المبيعات». لا يعرض `@` إلا العُقد الموجودة في قاعدة البيانات الحالية، وأي إجراء لا توجهه إلى مكان آخر يُنفذ في قاعدة البيانات التي تنتمي إليها المحادثة. + + + + نعم. تُحفظ بوصفها نتائج تفاعلية، مع سجل للإصدارات ورابط مشاركة اختياري، ويمكنك إعادة فتحها من **+** ← **المزيد** ← **إدارة النتائج التفاعلية**. تحتفظ النتيجة التفاعلية بالبيانات التي أُنشئت باستخدامها ولا تُحدّث تلقائيًا. لإنشاء صفحة تقرأ بيانات الجدول المباشرة، أنشئ تطبيقًا باستخدام [منشئ التطبيقات](/ar/basic/ai/app-builder). + + + ليس افتراضيًا. لا يمكنك إلا أنت فتح نتائجك التفاعلية. فعّل **تمكين المشاركة** في العارض وأرسل الرابط، واختر **أعضاء المساحة** إذا كان ينبغي أن تظل النتيجة داخل المساحة. + + + + لا. يقتصر نطاق الذاكرة على المستخدم وقاعدة البيانات. إذا أردت إعادة استخدام ذاكرة من قاعدة بيانات أخرى، فاطلب من Cuppy قراءة ذاكرة قاعدة البيانات تلك وحفظ الأجزاء ذات الصلة في قاعدة البيانات الحالية. + + + + لا تستخدم محادثة الذكاء الاصطناعي كمشغّل مهام في الخلفية. واصل العمل في المحادثة الظاهرة، واطلب من Cuppy إعادة كتابة النتائج إلى Teable أو تصديرها أو إنشاء ملف قابل للتنزيل. + + + + يمكن لكل مستخدم تشغيل ما يصل إلى 3 وكلاء في الوقت نفسه، بما في ذلك محادثة الذكاء الاصطناعي ومنشئ التطبيقات. إذا ظهرت الرسالة `الوكيل مشغول في محادثة أخرى. يُرجى الانتظار.`، فلا تزال مهمة أخرى قيد التشغيل. انتظر حتى ينهي Cuppy المهمة السابقة قبل المتابعة. + + + + قد يتضمن دور واحد في محادثة الذكاء الاصطناعي عدة خطوات معالجة. تعرض المحادثة وصفحة الفوترة إجمالي الأرصدة لذلك الدور. يظل العمل الذي أكمله Cuppy وحفظه قابلًا للاستخدام. إذا توقفت الخطوة الأخيرة بسبب خطأ غير متوقع، تُرد أرصدة تلك الخطوة المتوقفة تلقائيًا. ويمكنك مواصلة العمل في المحادثة نفسها. + + + + تنضم إلى قائمة انتظار الإرسال أعلى مربع الإدخال بدلاً من مقاطعة التشغيل، ويرسل Teable قائمة الانتظار كلها كرسالة واحدة عند انتهاء التشغيل. توجد القائمة على الخادم، ولذلك تبقى بعد تحديث الصفحة وتظهر بالطريقة نفسها في كل علامة تبويب أو جهاز تُفتح فيه المحادثة. + + أثناء انتظار عنصر، يمكنك **إزالته** أو استخدام **تحرير الرسالة** لإعادته إلى مربع الإدخال. ويمكن أيضًا توجيه العنصر النصي فقط: يمرره **توجيه** إلى الدور الجاري فورًا، ثم يظهر في المحادثة بالتصنيف **محادثة موجّهة**. + + تستوعب المحادثة ما يصل إلى 30 رسالة في قائمة الانتظار. وبعد ذلك، لا تُضاف الرسالة إلى القائمة ويرد Teable بالرسالة `قائمة انتظار الإرسال ممتلئة. انتظر حتى ينتهي Cuppy.` + + + + يؤدي إيقاف تشغيل إلى تعليق قائمة الانتظار أيضًا، حتى لا يؤدي الإيقاف المقصود للإجابة الحالية إلى إرسال ما أضفته إلى القائمة. يعرض رأس القائمة بعد ذلك `تم إيقاف قائمة الانتظار مؤقتًا لأنك قاطعت التنفيذ`. انقر على **استئناف** لتحريرها، أو أرسل رسالتك التالية فحسب؛ فبدء تشغيل جديد يحرر القائمة أيضًا. + + + + افتح قائمة **+** واختر **المهارات** لاستيراد المهارات أو إدارتها، أو اكتب `/` في مربع الإدخال لاختيار مهارة مفعّلة. اختر من يمكنه استخدام المهارة عند استيرادها: شخصي لمحادثاتك، وقاعدة البيانات عندما يحتاج إليها المتعاونون في قاعدة البيانات نفسها، والمساحة عندما يحتاج إليها الجميع في المساحة. يمكن للمستخدمين القادرين على إدارة قاعدة البيانات إضافة مهارات على مستوى قاعدة البيانات، ويمكن لمالكي المساحة ومنشئيها إضافة مهارات على مستوى المساحة. إذا عرضت محادثة الذكاء الاصطناعي ملف `.skill`، فاستخدم **تثبيت** في بطاقة الملف لإضافته. + + + + لا يُطبق إلا إصدار واحد، وتكون أولوية الإصدار المشترك للفريق أعلى من النسخة الشخصية: تتقدم مهارة قاعدة البيانات على مهارة المساحة، وتتقدم مهارة المساحة على المهارة الشخصية. وفي محادثة تطبيق أو روبوت، تتقدم المهارة المضافة إلى ذلك التطبيق أو الروبوت. لنقل الجميع إلى إصدار جديد، حدّث النسخة في قاعدة البيانات أو المساحة. + + + + يحتوي **إدارة الملفات** على مجلدين: `uploads` للملفات التي أضفتها، و`outputs` للملفات الناتجة في المحادثة. يستخدم كل منهما مساحة تخزين مستقلة، ولذلك يبقيان بعد إيقاف البيئة المعزولة أو إعادة إنشائها، ويمكنك العودة لاحقًا لمعاينتهما أو تنزيلهما أو حذفهما. + + أي شيء يكتبه Cuppy خارج هذين المجلدين مؤقت، مثل النتائج الوسيطة لنص برمجي. لا يظهر في **إدارة الملفات** ويختفي بعد إعادة تشغيل البيئة المعزولة. بالنسبة إلى النتائج التي تحتاج إلى الاحتفاظ بها، اطلب من Cuppy كتابتها في `outputs` أو إعادتها إلى Teable، أو نزّلها أثناء فتح المحادثة، مستخدمًا **تنزيل الكل** عندما ينتج الرد عدة ملفات. + + + + عند نسخ رسالة مستخدم، يُحتفظ بالجداول وطرق العرض والتطبيقات وعمليات الأتمتة والمجلدات والتحديدات والمرفقات كنصوص علامات. وعند لصق النص مجددًا في محادثة الذكاء الاصطناعي، يستعيد Teable العلامات التي يمكنه التعرف إليها في صورة شارات. + + + + استخدم **+** ← **الأسرار** في إدخال المحادثة. يمكن لمحادثة الذكاء الاصطناعي استخدام هذه القيم أثناء المحادثة من دون وضع النص الصريح في مطالبتك. + + diff --git a/ar/basic/ai/app-builder-practical-guide.mdx b/ar/basic/ai/app-builder-practical-guide.mdx new file mode 100644 index 00000000..15ac6430 --- /dev/null +++ b/ar/basic/ai/app-builder-practical-guide.mdx @@ -0,0 +1,274 @@ +--- +title: "أفضل ممارسات منشئ التطبيقات" +description: "نصائح وأنماط عملية لتحقيق أقصى استفادة من منشئ تطبيقات Teable." +--- + +## نصائح للإنشاء + +### 1. حدّد البيانات أولًا + +يعمل منشئ تطبيقات Teable فوق جداول Teable الحالية لديك — **جداولك وحقولك هي مخطط بياناتك**، ويقرأها الذكاء الاصطناعي مباشرةً عند إنشاء واجهة المستخدم والمنطق. + +لذلك، حدّد نموذج بياناتك بوضوح قبل بدء الإنشاء. كلما زادت دقة أنواع الحقول والارتباطات ومسارات القراءة والكتابة، ارتفعت جودة ما ينتجه الذكاء الاصطناعي. + +### 2. خطط قبل الإنشاء + +حتى بعد إعداد نموذج البيانات، لا تتعجل الانتقال مباشرةً إلى إنشاء واجهة المستخدم. نفّذ أولًا مرحلة تخطيط مع الذكاء الاصطناعي. + +قل مثلًا: *«لنكتب خطة أولًا من دون كتابة الشيفرة»*. صِف المشكلة التي تحلها والمستخدمين المستهدفين ومجموعة الميزات العامة. دع الذكاء الاصطناعي يصوغ مقترحًا منظمًا، ثم راجعه وعدّله، ولا تبدأ الإنشاء إلا بعد الاتفاق على سلامة الخطة. + +توفر بضع دقائق إضافية لمواءمة الاتجاه منذ البداية ساعات من إعادة العمل لاحقًا. + +### 3. ابدأ بنطاق صغير + +لا تحاول حشد كل ميزة في مطالبة واحدة. صِف الوظيفة الأساسية أولًا، وشغّل إصدارًا أوليًا بسيطًا، ثم أضف شيئًا واحدًا في كل مرة: تفاعلًا واحدًا أو تعديلًا واحدًا على النمط أو جزءًا واحدًا من المنطق. + +تحقق من كل تغيير قبل الانتقال إلى التالي. وعندما يتعطل شيء، لن تحتاج إلا إلى التراجع عن تغيير صغير واحد بدلاً من البدء من جديد. + +### 4. كن محددًا لا مجردًا + +لا تقدم أوصاف مثل *«اجعله أجمل»* أو *«اجعل التفاعلات تبدو أكثر طبيعية»* أي معلومات تُذكر للذكاء الاصطناعي. + +تكون المطالبات الفعالة ملموسة: **أي صفحة، وأي منطقة، وما السلوك المطلوب، وما الذي لا تريده**. ويساعد إرفاق لقطات شاشة أو واجهات مرجعية كثيرًا. + +تعامل مع مطالبتك كما لو كانت موجزًا لشخص ذكي لا يعرف شيئًا عن مشروعك. كلما زادت دقة التعليمات، اقتربت النتيجة مما تخيلته. + +### 5. شخّص المشكلة قبل إصلاحها + +عندما يتصرف التطبيق على نحو غير متوقع، تجنب أن تطلب من الذكاء الاصطناعي *«إصلاحه فحسب»*. تدفع تعليمات الإصلاح المبهمة الذكاء الاصطناعي إلى إجراء تعديلات عشوائية، وغالبًا ما تُدخل أخطاء جديدة أثناء ذلك. + +النهج الأفضل يتكون من خطوتين: + + + + صِف الأعراض واطلب من الذكاء الاصطناعي سرد الأسباب المحتملة والأساليب الممكنة، من دون لمس الشيفرة بعد. + + + حدد التفسير الأكثر ترجيحًا، واطلب من الذكاء الاصطناعي المتابعة وفق ذلك المسار. + + + +إذا فشلت عدة محاولات إصلاح متتالية، فتراجع إلى آخر إصدار معروف بسلامته وابدأ من جديد. يكون ذلك عادةً أسرع من إضافة تصحيحات فوق تصحيحات أخرى. + +### 6. استفد من التراجع عن الإصدارات + +تنتج كل محادثة مع الذكاء الاصطناعي تغييرات. الإيقاع الموصى به هو: أكمل وحدة ميزات واحدة، وتأكد من عملها، ثم انتقل إلى التالية. **لا تعمل على عدة ميزات غير مكتملة في الوقت نفسه.** + +هل تسبب تغيير لاحق في تعطل شيء؟ تراجع إلى آخر إصدار ثابت وحاول مجددًا بمطالبة أوضح. + +## الأسئلة الشائعة + +### لا يدعم منشئ التطبيقات سوى Next.js + +تعتمد بيئة تشغيل منشئ التطبيقات (البيئة المعزولة والمعاينة والبناء) على **Next.js**، وهي **لا تدعم حاليًا** أطر الواجهة الأمامية الأخرى، ومنها Astro وVite وCreate React App وVue وSvelte وغيرها. + +إذا طلبت من الذكاء الاصطناعي استخدام إطار غير Next.js، فقد لا يرفض الطلب دائمًا، بل قد يحاول إنشاء الشيفرة المقابلة. ولكن نظرًا إلى عدم توافق البيئة الأساسية، **ستفشل المعاينة في البدء**، وستظل عالقًا عند «جارٍ بدء المعاينة...» إلى أجل غير مسمى، وستواصل المحادثات استهلاك الأرصدة خلال ذلك الوقت. + + +إذا كنت تحتاج إلى استخدام إطار غير Next.js، فنوصي بالتطوير في بيئتك المحلية وربط بياناتك عبر Teable API. + + +### معالجة أخطاء 429 + + +يقتصر Teable API حاليًا على **10 QPS** (10 طلبات في الثانية). قد تواجه التطبيقات التي ينشئها منشئ التطبيقات أخطاء 429 أثناء الاستخدام العادي إذا لم تُحسّن معالجة الطلبات. يعمل فريقنا الهندسي بفعالية على تحسين أداء API، وقد نعدّل هذا الحد مستقبلًا. + + +توجد أربع استراتيجيات عامة لمعالجة ذلك: + + + + تقليل الطلبات المكررة + + + تقليص حمولة كل طلب + + + خفض تكرار الطلبات + + + تقليل أخطاء المعاينة + + + +يسرد كل قسم أدناه السيناريوهات الشائعة والإصلاح ومطالبة مرجعية يمكنك إعادة استخدامها. + +**التخزين المؤقت — تقليل الطلبات المكررة** + + + + **السيناريو**: تحتوي صفحة لوحة معلومات على عدة مخططات وبطاقات إحصاءات وقوائم، يستعلم كل منها عن جدول مختلف. أو تكون الصفحة مخصصة أساسًا للعرض، لكن كل زيارة تظل تستدعي API مباشرةً. في الحالتين، قد يرتفع عدد الطلبات المتزامنة عند تحميل الصفحة، وتزداد احتمالية تسبب ارتفاع حركة الزيارات في أخطاء 429. + + **الإصلاح**: فضّل أنماط عرض ملائمة للتخزين المؤقت. خزّن البيانات مؤقتًا في ذاكرة التطبيق بعد تحميلها (تُعد مدة TTL من دقيقة إلى 3 دقائق نقطة بداية مناسبة) وأعد استخدامها في الزيارات اللاحقة. حمّل المكوّنات الواقعة أسفل الجزء المرئي تحميلًا كسولًا لتوزيع الطلبات زمنيًا. وإذا ظلت الصفحة تعيد الجلب في كل زيارة، فاطلب صراحةً من الذكاء الاصطناعي تعزيز استراتيجية التخزين المؤقت. + + + **مطالبة مرجعية**: «هذه صفحة كثيفة العرض. استخدم أسلوب عرض ملائمًا للتخزين المؤقت. خزّن البيانات محليًا بعد تحميل الصفحة مع مدة TTL قدرها دقيقة واحدة، ولا تعاود طلب API خلال مدة TTL، وأخّر المكوّنات الواقعة أسفل الجزء المرئي بمقدار 500 ms». + + + + + **السيناريو**: تحتاج ثلاثة مكوّنات في الصفحة نفسها إلى بيانات من الجدول نفسه، ويرسل كل منها طلبًا مستقلًا، مع أن طلبًا واحدًا كان سيكفي. + + **الإصلاح**: اجعل جلب البيانات مركزيًا، بحيث تُحمّل مجموعة البيانات نفسها مرة واحدة وتُشارك بين المكوّنات. + + + **مطالبة مرجعية**: «إذا احتاجت عدة مكوّنات إلى بيانات من الجدول نفسه، فاجلبها مرة واحدة وشاركها بينها جميعًا. لا ترسل طلبات مكررة». + + + + + **السيناريو**: يتنقل المستخدمون ذهابًا وإيابًا بين الصفحات، وتؤدي كل عودة إلى عملية جلب جديدة حتى إذا لم يتغير شيء. + + **الإصلاح**: أعد استخدام البيانات المحمّلة سابقًا خلال مدة TTL للتخزين المؤقت بدلاً من طلبها مجددًا. + + + **مطالبة مرجعية**: «عندما يعود المستخدم إلى صفحة، استخدم البيانات المخزنة مؤقتًا إذا مر أقل من دقيقة واحدة منذ آخر تحميل. لا تعاود طلب API». + + + + + **السيناريو**: تعرض قائمة منسدلة كل سجل في جدول كخيار. ومع كثرة السجلات، يصبح هذا الطلب الواحد ثقيلًا. + + **الإصلاح**: حوّلها إلى أداة اختيار بالبحث، بحيث لا تُجلب إلا السجلات المطابقة بعد أن يكتب المستخدم. ويمكنك بدلاً من ذلك تخزين قائمة الخيارات مؤقتًا. + + + **مطالبة مرجعية**: «ينبغي ألا تحمّل القوائم المنسدلة كل الخيارات مسبقًا. استخدم بحثًا بالكلمات المفتاحية يجلب السجلات المطابقة عند الإدخال، مع تطبيق تأخير ارتدادي». + + + + + **السيناريو**: يؤدي اختيار حقل إلى تحميل خيارات المستوى التالي. وتؤدي السلاسل متعددة المستويات إلى تراكم عدة طلبات لكل تفاعل. + + **الإصلاح**: حمّل البيانات ذات الصلة مسبقًا مرة واحدة وصفّها محليًا، أو خزّن بيانات التسلسل مؤقتًا بعد التحميل الأول. + + + **مطالبة مرجعية**: «خزّن بيانات خيارات أدوات التحديد المتتالية محليًا بعد تحميلها. عندما يغيّر المستخدم خيارًا رئيسيًا، صفِّ البيانات من الذاكرة المؤقتة بدلاً من طلبها مجددًا». + + + + + **السيناريو**: تتسبب إدارة الحالة السيئة في إعادة جلب المكوّنات للبيانات عند كل عملية عرض. + + **الإصلاح**: شغّل جلب البيانات عند أحداث محددة (التحميل الأولي أو إجراء صريح من المستخدم)، لا عند كل عملية عرض. واستخدم التخزين المؤقت كشبكة أمان. + + + **مطالبة مرجعية**: «لا تجلب البيانات إلا عند أول تحميل للصفحة أو عند إجراءات صريحة من المستخدم. لا تعاود الجلب عند إعادة العرض، واستخدم البيانات المخزنة مؤقتًا بدلاً من ذلك». + + + + +**التقسيم إلى صفحات والمعالجة المجمعة — تقليص حمولة كل طلب** + + + + **السيناريو**: يؤدي تحميل جميع السجلات دفعة واحدة إلى سيل من استدعاءات API عندما تكبر مجموعة البيانات. + + **الإصلاح**: قسّم البيانات إلى صفحات، ولا تجلب إلا بيانات الصفحة الحالية. + + + **مطالبة مرجعية**: «اعرض 20 صفًا في كل صفحة. لا تحمّل الصفحة التالية إلا عند انتقال المستخدم إليها. لا تحمّل كل شيء دفعة واحدة». + + + + + **السيناريو**: بعد تحميل قائمة، تجلب تفاصيل الجدول المرتبط لكل سجل على حدة. فتحميل 50 مشروعًا ثم إجراء 50 عملية بحث عن المسؤولين يعني 50 طلبًا إضافيًا في لحظة واحدة. + + **الإصلاح**: اجلب جميع البيانات المرتبطة في دفعة واحدة، لا صفًا بصف. + + + **مطالبة مرجعية**: «عند تحميل قائمة، اجلب جميع البيانات المرتبطة في طلب مجمع واحد. لا تمر على السجلات لجلب معلوماتها المرتبطة كلًا على حدة». + + + + + **السيناريو**: تحديث عدة سجلات دفعة واحدة بإرسال طلب تحديث لكل سجل بدلاً من طلب مجمع واحد. + + **الإصلاح**: استخدم API للتحديث المجمع لإرسال جميع التغييرات في استدعاء واحد. + + + **مطالبة مرجعية**: «ادمج تغييرات عدة سجلات في طلب مجمع واحد عند تنفيذ عمليات مجمعة. لا ترسل طلب تحديث مستقلًا لكل سجل». + + + + + **السيناريو**: تعالج حلقة `for` السجلات واحدًا تلو الآخر وتستدعي API في كل تكرار. + + **الإصلاح**: اجمع جميع المعرّفات أولًا، ثم أرسل طلبًا مجمعًا واحدًا. + + + **مطالبة مرجعية**: «لا تستدعِ API داخل حلقة. اجمع جميع المعرّفات المطلوبة أولًا، ثم أرسل طلبًا مجمعًا واحدًا». + + + + +**تأخير الإدخال وتقييد المعدل — خفض تكرار الطلبات** + + + + **السيناريو**: ترسل كل ضغطة مفتاح في مربع البحث طلبًا. تؤدي كتابة استعلام من 4 أحرف إلى إرسال 4 طلبات. + + **الإصلاح**: طبّق تأخيرًا ارتداديًا على الإدخال؛ انتظر من 300 إلى 500 ms بعد توقف المستخدم عن الكتابة قبل إرسال الطلب. + + + **مطالبة مرجعية**: «طبّق تأخيرًا ارتداديًا على إدخال البحث. لا ترسل الطلب إلا بعد 300 ms من توقف المستخدم عن الكتابة. لا ترسل طلبات أثناء الكتابة». + + + + + **السيناريو**: نقرات إرسال متلاحقة، أو تبديل سريع لعوامل التصفية، أو تنقل سريع بين الصفحات؛ يرسل كل إجراء طلبًا فورًا. + + **الإصلاح**: طبّق التأخير الارتدادي أو تقييد المعدل. عطّل أزرار الإرسال إلى أن يكتمل الطلب لمنع الإرسال المزدوج. + + + **مطالبة مرجعية**: «عطّل زر الإرسال بعد النقر، وأعد تمكينه عند اكتمال الطلب. طبّق تأخيرًا ارتداديًا على تغييرات عوامل التصفية حتى لا ترسل التغييرات السريعة خلال 300 ms سوى طلب واحد». + + + + + **السيناريو**: يُحفظ كل تغيير في حقل فورًا. قد يؤدي ملء نموذج إلى عشرات عمليات الكتابة. + + **الإصلاح**: استخدم الحفظ الصريح عند النقر على زر، أو طبّق تأخيرًا ارتداديًا على الحفظ التلقائي حتى يعمل مرة واحدة بعد توقف التحرير مؤقتًا. + + + **مطالبة مرجعية**: «لا تحفظ عند كل تغيير في حقل. احفظ عند النقر صراحةً على الزر، أو نفّذ الحفظ التلقائي مرة واحدة بعد توقف المستخدم عن التحرير لمدة ثانيتين». + + + + + **السيناريو**: تُحدّث البيانات كل بضع ثوان، ما ينتج حركة مرور مستمرة وعالية التكرار. + + **الإصلاح**: زد فاصل الاستقصاء إلى مدة معقولة (30 ثانية أو أكثر)، أو انتقل إلى التحديث اليدوي. + + + **مطالبة مرجعية**: «اضبط فاصل التحديث التلقائي على 60 ثانية. أضف زر تحديث يدويًا حتى يتمكن المستخدمون من جلب أحدث البيانات عند الطلب». + + + + + **السيناريو**: يضبط كل مكوّن من عدة مكوّنات في الصفحة مؤقت الاستقصاء الخاص به. ويتجاوز الحمل المجمع الحد بسهولة. + + **الإصلاح**: اجعل الاستقصاء مركزيًا. نفّذ عملية جلب دورية واحدة، ثم وزّع النتيجة على كل مكوّن يحتاج إليها. + + + **مطالبة مرجعية**: «لا تسمح لكل مكوّن بضبط مؤقت استقصاء خاص به. استخدم آلية تحديث واحدة تجلب كل شيء وفق جدول زمني وتوزع البيانات على المكوّنات». + + + + +**توافق العرض — تقليل أخطاء المعاينة** + + + + **السيناريو**: تستخدم الصفحة مخططات أو خرائط أو مكتبات تعتمد على `window` أو قياسات DOM أو واجهات API أخرى لا تتوفر إلا في المتصفح، وتعرض المعاينة أخطاء أو شاشة فارغة أو حالات عدم تطابق في الإماهة. + + **الإصلاح**: غالبًا ما يكون تحميل هذه المكوّنات في المتصفح أكثر أمانًا من عرضها مباشرةً على الخادم. وإذا استمرت مشكلات المعاينة، فاطلب صراحةً من الذكاء الاصطناعي تحويلها إلى نمط تحميل خاص بالمتصفح. + + + **مطالبة مرجعية**: «يعتمد هذا المكوّن على بيئة المتصفح. حمّله على جانب العميل فقط لتجنب أخطاء عرض المعاينة أو عدم تطابق الإماهة». + + + + + +قد يخطئ الذكاء الاصطناعي. يُرجى التحقق من الردود. + diff --git a/ar/basic/ai/app-builder.mdx b/ar/basic/ai/app-builder.mdx new file mode 100644 index 00000000..f9d089e3 --- /dev/null +++ b/ar/basic/ai/app-builder.mdx @@ -0,0 +1,329 @@ +--- +title: منشئ التطبيقات +description: حوّل بياناتك إلى تطبيقات ويب مخصصة باستخدام الذكاء الاصطناعي. +--- + +متاح ضمن جميع الخطط السحابية؛ وتتطلب الاستضافة الذاتية خطة Business أو أعلى. + +يتيح لك منشئ تطبيقات Teable تحويل قواعد بياناتك إلى تطبيقات ويب مخصصة ومتكاملة الوظائف من دون كتابة شيفرة. ومن خلال الجمع بين قوة بنية بياناتك والتصميم المدعوم بالذكاء الاصطناعي، يمكنك إطلاق أدوات داخلية وبوابات للعملاء ولوحات معلومات للبيانات في غضون دقائق. + +## نظرة عامة + +يتبع منشئ التطبيقات سير عمل «من المطالبة إلى التطبيق». تصف ما تريده، فينشئ الذكاء الاصطناعي بنية التطبيق وصفحاته ومنطقه. ويمكنك بعد ذلك ضبط كل التفاصيل باستخدام المحرر المرئي أو الشيفرة. + + +استخدم منشئ التطبيقات لإنشاء واجهات مخصصة وتطبيقات مستقلة. ولتحليل البيانات تفاعليًا وطرح الأسئلة المخصصة داخل قاعدة البيانات، استخدم [محادثة الذكاء الاصطناعي](/ar/basic/ai/ai-chat). + + +## إنشاء تطبيق + +توجد طريقتان رئيسيتان لإنشاء تطبيق: + +1. **من قاعدة بيانات**: انقر على «إنشاء تطبيق» في أي قاعدة بيانات لإنشاء تطبيق مرتبط ببياناتك الحالية. +2. **من المحادثة**: افتح محادثة الذكاء الاصطناعي وقل «أنشئ تطبيق CRM لجدول العملاء هذا». + +## واجهة محرر التطبيقات + +يوفر منشئ التطبيقات واجهة مزدوجة للمستخدمين غير التقنيين والمطورين على حد سواء. + +واجهة محرر منشئ التطبيقات + +### 1. واجهة المحادثة (مدعومة بالذكاء الاصطناعي) +مركز التحكم في تطبيقك. +- **التحرير باللغة الطبيعية**: صِف تغييرات مثل *«اجعل الترويسة زرقاء»* أو *«أضف نموذج إرسال للسجلات الجديدة»*. +- **التوجيه التلقائي**: يفهم الذكاء الاصطناعي المكوّن أو الصفحة التي تشير إليها ويعدّلها مباشرةً. +- **عمليات التكامل**: عندما تحتاج مهمة التطبيق إلى الوصول إلى حساب تابع لجهة خارجية، يمكن لمنشئ التطبيقات عرض بطاقة مثل **ربط Slack** في لوحة المحادثة. انقر على **ربط** للتصريح عبر OAuth. انقر على **تخطي** لإلغاء هذا التصريح؛ وسيواصل الذكاء الاصطناعي تنفيذ الأجزاء التي يمكنه إكمالها من دون ذلك الاتصال. +- **المهارات**: افتح قائمة **+** واختر **المهارات** لإدارة مهارات محادثة التطبيق هذه. لا تتاح المهارة المضافة هنا إلا للتطبيق الحالي، ويمكن أيضًا استخدام المهارات المشتركة مع قاعدة بيانات التطبيق ومساحته. اكتب `/` في مربع الإدخال لاختيار مهارة مفعّلة. +- **إدارة الملفات**: افتح **+** ← **المزيد** ← **إدارة الملفات** لعرض الملفات في بيئة التطبيق المعزولة. استخدمها لمعاينة الملفات المدعومة أو تنزيل الملفات المنشأة أو حذف الملفات والمجلدات التي لم تعد بحاجة إليها. +- **مسح المحادثة**: إذا انحرفت المحادثة الحالية عن مسارها، فانقر على **مسح المحادثة** في الزاوية السفلية اليمنى من اللوحة لبدء جلسة جديدة. يؤدي ذلك إلى مسح سجل المحادثة الحالية، لكنه لا يحذف التطبيق نفسه. يظهر تأكيد عند الاستخدام الأول، ويمكنك اختيار عدم إظهاره مرة أخرى لاحقًا. + +### 2. لوحة المعاينة +- **المعاينة والإصدار المباشر**: تحتوي اللوحة على علامتي تبويب. تشغّل **المعاينة** الإصدار الذي تنشئه، بما في ذلك التغييرات التي لم تُنشر بعد. ويحمّل **الإصدار المباشر** التطبيق المنشور من عنوانه العام، حتى تتمكن من مقارنة ما يراه المستخدمون بما تعمل عليه. إلى أن يُنشر التطبيق، تعرض علامة **الإصدار المباشر** مطالبة بالنشر بدلاً من ذلك. يفتح منشئ التطبيقات التطبيق المنشور على **الإصدار المباشر** وغير المنشور على **المعاينة**، ثم يتذكر بعد ذلك آخر علامة تبويب استخدمتها لذلك التطبيق. +- **محاكاة أجهزة متعددة**: استخدم أداة التبديل في الأعلى للتنقل بين طرق عرض **سطح المكتب** و**الجهاز اللوحي** و**الهاتف المحمول**. +- **الإنشاء المباشر**: يمكن للوحة المعاينة عرض التطبيق وهو يتشكل أثناء إنشاء منشئ التطبيقات له. +- **الملاحظات الفورية**: بعد أن ينتهي منشئ التطبيقات من تغيير، تُحدّث المعاينة إلى أحدث إصدار محفوظ. + +في علامة تبويب **المعاينة**، استخدم شريط الأدوات العائم في الأسفل لإجراء تغييرات محددة: + +- اختر **تحديد عنصر لتحريره**، ثم انقر على عنصر في المعاينة. يضيف منشئ التطبيقات العنصر إلى إدخال المحادثة. أضف تعليماتك وأرسل الرسالة حتى يتمكن الذكاء الاصطناعي من تحديث ذلك الجزء المحدد من التطبيق. +- اختر **تحرير النص مباشرةً**، ثم انقر على نص ثابت في المعاينة واكتب النص البديل. يمكنك تحرير أكثر من عنصر نصي قبل النقر على **حفظ**. انقر على **تجاهل التعديلات** للتراجع عن تغييرات النص المعلقة. + +لا يمكن تحرير النص الديناميكي، مثل المحتوى المحمّل من البيانات أو المحسوب بواسطة التطبيق، مباشرةً. حدد العنصر وصِف التغيير في المحادثة بدلاً من ذلك. يتوقف تحديد العناصر والتحرير المباشر للنص مؤقتًا أثناء عمل الذكاء الاصطناعي. اضغط على `Esc` للخروج من أي من الوضعين. + +### 3. وضع المطور (محرر الشيفرة) +للتخصيص بلا حدود، يمكنك الوصول مباشرةً إلى الشيفرة. +- **محرر Monaco**: تجربة شبيهة بـ VS Code داخل المتصفح مباشرةً. +- **مكوّنات React**: حرر شيفرة React الأساسية وفئات Tailwind CSS والمنطق. +- **شجرة الملفات**: تنقل عبر بنية المشروع. + +محرر شيفرة منشئ التطبيقات + +#### تنزيل الشيفرة +يمكنك تنزيل التطبيق بأكمله كأرشيف ZIP في أي وقت: +1. انتقل إلى علامة تبويب **الشيفرة** في المحرر. +2. انقر على قائمة **`...`** في شريط علامات التبويب. +3. اختر **تنزيل الشيفرة** لحفظ أرشيف ZIP يتضمن جميع ملفات المصدر. + +إذا كان التطبيق يستخدم متغيرات بيئة مخصصة، فقد يتضمن الأرشيف المنزّل ملف `.env` في جذر المشروع. راجعه قبل مشاركة ملف ZIP. + +#### استيراد الشيفرة +يمكنك تحديث شيفرة التطبيق باستيراد ملف ZIP: +1. انتقل إلى علامة تبويب **الشيفرة** في المحرر. +2. انقر على قائمة **`...`** في شريط علامات التبويب. +3. اختر **استيراد الشيفرة** وحدد ملف ZIP يصل حجمه إلى 20 MB. + + +- ضمّن ملفات المصدر فقط. تُتجاهل `node_modules` و`.next` وغيرها من نواتج البناء تلقائيًا. +- يحل ملف ZIP محل المشروع الحالي. وتُحذف من الإصدار الجديد الملفات التي لم تضمنها فيه. +- إذا احتوى ملف ZIP على مجلد تغليف واحد، يزيل Teable ذلك المجلد. يمكنك ضغط مجلد المشروع الخارجي مباشرةً. +- يجب أن يتضمن المشروع المستورد ملف `package.json` في جذر المشروع. +- يُقرأ ملف `.env` الموجود في جذر ملف ZIP إلى **أسرار** التطبيق. وتُتجاهل صيغ `.env*` الأخرى، مثل `.env.local`. + + +#### الأسرار + +استخدم **الأسرار** لمفاتيح API وبيانات الاعتماد وقيم التهيئة التي يحتاج إليها تطبيقك أثناء التشغيل. في لوحة محادثة منشئ التطبيقات، افتح قائمة **+** واختر **الأسرار**. + +| التفاصيل | السلوك | +| --- | --- | +| الإتاحة | تتاح أسرار التطبيق في بيئة معاينة التطبيق والتطبيق المنشور | +| الوصول من الشيفرة | يمكن لشيفرة التطبيق من جانب الخادم قراءتها من متغيرات البيئة، مثل `process.env.MY_API_KEY` | +| القيم المحفوظة | تكون قيم الأسرار مخصصة للكتابة فقط بعد حفظها؛ أدخل قيمة جديدة لتحديث إحداها | +| تنسيق الاسم | يجب أن يبدأ **الاسم** بحرف إنجليزي كبير، ويمكن أن يحتوي على أحرف إنجليزية كبيرة وأرقام وشرطات سفلية | + +بعد إضافة قيمة سر أو حذفها أو تغييرها، تستخدم بيئة معاينة التطبيق القيمة الجديدة. ولا يستخدمها التطبيق المنشور إلا بعد إعادة نشره. لا يتطلب تحرير وصف السر وحده إعادة النشر. + +#### إدارة ملفات التطبيق + +يخزن منشئ التطبيقات الملفات المرفوعة والمخرجات المنشأة وملفات وقت التشغيل في بيئة التطبيق المعزولة. في لوحة المحادثة، افتح **+** ← **المزيد** ← **إدارة الملفات** لفحصها. تُفتح أنواع الملفات المدعومة في المعاينة. ويمكنك أيضًا تنزيل الملفات أو حذف الملفات والمجلدات التي لم تعد بحاجة إليها. + +#### إضافة ميزات الذكاء الاصطناعي إلى تطبيق + +أضف الذكاء الاصطناعي عندما يحتاج تطبيقك إلى تلخيص السجلات أو تصنيف الطلبات أو صياغة الردود أو الإجابة عن أسئلة مستخدمي التطبيق. + +يمكنك إخبار منشئ التطبيقات بما تريده، مثل: «أضف مساعدًا مدعومًا بالذكاء الاصطناعي للرد على تذاكر الدعم» أو «لخّص كل إرسال للنموذج». يستطيع منشئ التطبيقات تفعيل **الوصول إلى الذكاء الاصطناعي** وإضافة شيفرة الميزة. + + +بعد أن يضيف منشئ التطبيقات ميزة الذكاء الاصطناعي، تستخدم معاينة التطبيق الإصدار الجديد. ولا يستخدمه التطبيق المنشور إلا بعد إعادة نشره. + + +## مزامنة الشيفرة مع GitHub + +متاح ضمن خطط Business السحابية والخطط الأعلى. + +اربط تطبيقًا بمستودع GitHub خاص عندما تريد مراجعة الشيفرة في طلبات السحب، أو الاحتفاظ بنسخة خارج Teable، أو العمل على التطبيق في محررك المحلي. بعد الربط، يتزامن التطبيق والمستودع في الاتجاهين: يُدفع كل إصدار جديد من التطبيق إلى GitHub، وتصبح الالتزامات التي تدفعها إلى GitHub إصدارات جديدة من التطبيق. + +### ربط حساب وإنشاء المستودع + +أنشئ التطبيق مرة واحدة على الأقل أولًا. إلى أن يحتوي التطبيق على شيفرة، يعرض زر GitHub العبارة **أنشئ التطبيق أولًا لربط GitHub** ولا ينفذ أي إجراء. + + + انقر على أيقونة GitHub في ترويسة التطبيق لفتح **مزامنة GitHub**. تحتاج إلى صلاحية تحرير التطبيق. + انقر على **ربط GitHub** وأكمل التثبيت في النافذة المنبثقة. اختر حسابك الشخصي أو مؤسسة تديرها. اسمح بالنوافذ المنبثقة إذا حظرها متصفحك. + حدد الحساب المرتبط ضمن **حساب GitHub**. انقر على **+** لربط حساب آخر. + يُملأ **اسم المستودع** مسبقًا من اسم التطبيق. يمكن أن تحتوي الأسماء على أحرف وأرقام و`.` و`-` و`_`، وبحد أقصى 100 حرف. + انقر على **إنشاء المستودع وربطه**. بالنسبة إلى الحساب الشخصي، يطلب منك GitHub التصريح بالإنشاء في نافذة منبثقة إضافية. + + +ينشئ Teable مستودعًا خاصًا جديدًا ويلتزم بشيفرة التطبيق الحالية إلى فرع `main`، مع ملف README يشير إلى التطبيق ويوضح كيفية استمرار مزامنتهما. لا يمكنك ربط تطبيق بمستودع موجود مسبقًا. + +ينتمي الاتصال افتراضيًا إلى الشخص الذي أنشأه. للسماح للمتعاونين بالإنشاء على حساب المؤسسة نفسه، حدد الاتصال وفعّل **السماح للأعضاء الآخرين باستخدام هذا الاتصال**. عندئذ يمكن للأعضاء الآخرِين الذين يملكون صلاحية تحرير التطبيق إنشاء مستودعات لتطبيقاتهم ضمن تلك المؤسسة. لا يمكن مشاركة الاتصالات الشخصية، لأن GitHub يتطلب تصريح مالك الحساب نفسه لإنشاء مستودع. + +### آلية المزامنة + +| الاتجاه | ما يحدث | +| --- | --- | +| التطبيق ← GitHub | يُدفع كل إصدار جديد من التطبيق إلى فرع `main` في المستودع. | +| GitHub ← التطبيق | تصبح الالتزامات المدفوعة إلى `main` إصدارًا جديدًا من التطبيق. تعرض رسالة في لوحة المحادثة ما تمت مزامنته، وتُعاد معاينة مفتوحة تحميل الشيفرة الجديدة. | + +لا تُدفع ملفات البيئة مطلقًا. راجع **متغيرات البيئة والتطوير المحلي** أدناه. + +تعرض اللوحة الحالة الحالية بجوار اسم المستودع: + +| الحالة | المعنى | الإجراء المطلوب | +| --- | --- | --- | +| **متزامن** | يطابق المستودع أحدث إصدار من التطبيق. | لا يلزم اتخاذ إجراء. | +| **جارٍ التزامن** | عملية دفع جارية. | انتظر؛ تُحدّث اللوحة تلقائيًا. | +| **تعارض** | يتضمن فرع `main` التزامات لم ينشئها Teable ولا يمكن دمجها تلقائيًا. | ادمج فرع `teable-sync` على GitHub. راجع أدناه. | +| **متوقف مؤقتًا** | أوقف Teable المزامنة لأن تطبيق GitHub أُلغي تثبيته أو عُلّق. | توضح اللوحة السبب. يؤدي رفع التعليق إلى استئناف المزامنة تلقائيًا. | +| **خطأ** | فشلت آخر محاولة مزامنة. | اقرأ السبب في اللوحة وانقر على **إعادة المحاولة**. | + +### حل تعارض + +لا يفرض Teable دفعًا قسريًا إلى فرعك. عندما تتباعد السجلات، يضع أحدث إصدار من التطبيق في فرع باسم `teable-sync` ويضع علامة **تعارض** على الرابط. ادمج `teable-sync` في `main` على GitHub؛ يعود الدمج كإصدار جديد من التطبيق وتعود حالة الرابط إلى **متزامن**. وأثناء استمرار التعارض، تواصل إصدارات التطبيق اللاحقة تقديم فرع `teable-sync`، لذلك يجلب دمجه دائمًا أحدث عمل. + +### متغيرات البيئة والتطوير المحلي + +لا يحتوي المستودع إلا على المصدر. لا يدفع Teable مطلقًا ملفًا يبدأ اسمه بـ `.env`، سواء في جذر المشروع أو مجلد فرعي أو سجل الالتزامات. توجد قيم البيئة ضمن **أسرار** التطبيق ولا تدخل إلى git مطلقًا. يتضمن ملف `.gitignore` في المستودع إدخال `.env*` مسبقًا، لذلك لن تلتزم نسخة محلية به عن طريق الخطأ. + +لتشغيل التطبيق على جهازك: + + + استنسخ المستودع وشغّل `pnpm install`. + في لوحة GitHub، انقر على **نسخ متغيرات البيئة المحلية**، ثم الصق محتوى الحافظة في ملف `.env` في جذر المشروع. + شغّل `pnpm dev`. + + +يطابق المحتوى المنسوخ ما يتلقاه التطبيق في بيئة Teable المعزولة: أسرارك، إلى جانب المتغيرات التي تضخها المنصة لنقطة نهاية API للتطبيق ورمز الوصول والوصول إلى الذكاء الاصطناعي. + + +يمنح سطر `TEABLE_APP_TOKEN` في ذلك الملف حق الوصول إلى بيانات التطبيق، ولذلك لا يمكن نسخه إلا بواسطة الأعضاء الذين يملكون صلاحية تحرير التطبيق. لا تلتزم الملف مطلقًا، ولا تلصقه في مسألة أو طلب سحب. + + +لإضافة سر أو تغييره، حرر **الأسرار** في Teable بدلاً من الملف المحلي. لا يؤدي الالتزام بملف `.env` إلى GitHub إلى إنشاء سر أو تحديثه. بعد تغيير سر، انسخ المتغيرات مجددًا لتحديث ملف `.env` المحلي. + +### إلغاء ربط المستودع + +انقر على أيقونة الحذف بجوار اسم المستودع وأكد الإجراء. تتوقف المزامنة، ويظل المستودع وشيفرته على GitHub. يؤدي ربط التطبيق نفسه مجددًا لاحقًا إلى إنشاء مستودع جديد بدلاً من إعادة الاتصال بالمستودع القديم. + +## النشر والإدارة + +### نشر تطبيقك +عندما يصبح تطبيقك جاهزًا، انقر على زر **نشر** (أيقونة السهم) في الزاوية العلوية اليمنى. +- **عنوان URL عام**: ينشئ Teable عنوان URL آمنًا ومتاحًا للعامة لتطبيقك. +- **نطاق مخصص**: اربط نطاقك الخاص بالتطبيق. +- **إظهار العلامة التجارية**: استخدم **إظهار العلامة التجارية** في قائمة **نشر** للتحكم في ظهور شارة **تم الإنشاء باستخدام Teable** في التطبيق المنشور. إذا غيّرت هذا الإعداد بعد النشر، فانقر على **إعادة النشر** لتطبيقه. +- **إلغاء النشر**: بالنسبة إلى تطبيق منشور، استخدم **إلغاء النشر** في قائمة النشر لإيقاف الرابط العام. +- **تغييرات تهيئة التطبيق**: عندما تعرض قائمة النشر **تغيرت تهيئة وقت التشغيل. أعد النشر لتطبيقها على التطبيق المباشر** أو **تغير إعداد العلامة التجارية. أعد النشر لتطبيقه على التطبيق المباشر**، انقر على **إعادة النشر**. +- **فتح التطبيق المنشور**: بعد نشر تطبيق، تفتح الأيقونة المجاورة لـ **نشر** التطبيق المباشر في علامة تبويب جديدة. + +يتطلب إخفاء شارة **تم الإنشاء باستخدام Teable** خطة Business أو أعلى. + +قائمة نشر التطبيق + +### إلغاء نشر تطبيق + +لإيقاف تطبيق منشور، افتح قائمة **نشر** وانقر على **إلغاء النشر**. بعد التأكيد، يتعذر الوصول إلى عنوان URL العام للتطبيق. + +زر إلغاء نشر التطبيق في قائمة النشر + +لا يؤدي إلغاء النشر إلى حذف التطبيق أو سجل تحريره. ويمكنك مواصلة تحرير التطبيق ونشره مجددًا لاحقًا. + +### النطاقات المخصصة + +تتطلب النطاقات المخصصة خطة Business أو أعلى. + +استخدم **نطاق مخصص** لربط نطاق بالتطبيق المنشور. يُوصى باستخدام نطاق فرعي، مثل `app.yourdomain.com`. بعد إدخال النطاق، يعرض Teable سجلات DNS المطلوب إضافتها. أضف السجلات لدى موفّر DNS وانتظر انتشارها، ثم تحقق من النطاق في Teable. + +يمكنك أيضًا استخدام نطاق فرعي متاح ضمن `teable.app` وتحرير بادئة `teable.app`، مثل `your-name.teable.app`. + +إعدادات النطاق المخصص + +### معلومات الموقع المخصصة + +استخدم **معلومات الموقع المخصصة** في قائمة **نشر** لتعيين أيقونة علامة تبويب المتصفح وعنوان الصفحة ووصف التطبيق المنشور. يعاين مربع الحوار كيفية ظهورها معًا أثناء التحرير. + +| الإعداد | ما يتحكم فيه | +| --- | --- | +| **الأيقونة المفضلة** | الأيقونة الظاهرة في علامة تبويب المتصفح. ارفع ملف PNG أو JPEG أو WebP أو SVG أو ICO يصل حجمه إلى 5 MB؛ والمقاس الموصى به هو 32×32. أزل الملف المرفوع للعودة إلى أيقونة Teable الافتراضية. | +| **العنوان** | عنوان الصفحة، بحد أقصى 120 حرفًا. | +| **الوصف** | وصف الموقع في بيانات الصفحة الوصفية، بحد أقصى 500 حرف. | + +اترك الحقل فارغًا للاحتفاظ بالقيمة التي كتبها منشئ التطبيقات. يؤدي الحفظ إلى تطبيق التغيير على بيئة معاينة التطبيق، ولا يستخدمه التطبيق المنشور إلا بعد إعادة نشره. + +### تسجيل الدخول إلى التطبيق + +انقر على **إضافة تسجيل دخول** في ترويسة التطبيق لمطالبة الزوار بتسجيل الدخول قبل استخدام التطبيق. بعد تهيئة تسجيل الدخول، يتغير الزر إلى **إعدادات تسجيل الدخول**. + +إعدادات تسجيل الدخول إلى التطبيق + +عند تمكين تسجيل الدخول: + +1. اختر مكان تخزين مستخدمي التطبيق. يمكنك إنشاء جدول **المستخدمون** أو إعادة استخدام جدول موجود يتضمن حقل بريد إلكتروني. يُخزن كل مستخدم مسجل الدخول كسجل واحد، ويمكن لعدة تطبيقات إعادة استخدام جدول المستخدمين نفسه. +2. اختر طريقة واحدة على الأقل لتسجيل الدخول، مثل **رمز لمرة واحدة عبر البريد الإلكتروني** أو **Google** أو **Teable**. تعتمد الطرق المتاحة على إعدادات المصادقة في نسختك. +3. اختر سياسة وصول: **يمكن لأي شخص التسجيل** أو **نطاقات البريد الإلكتروني المسموح بها** أو **بالدعوة فقط**. + +تظهر تغييرات تسجيل الدخول في بيئة معاينة التطبيق بعد إعادة تحميلها. انشر التطبيق مجددًا لتطبيق هذه التغييرات على التطبيق المنشور. + +### سجل الإصدارات والتراجع +يتتبع Teable كل عملية نشر تلقائيًا. +- انقر على زر **السجل** (أيقونة الساعة) لعرض قائمة بجميع الإصدارات المنشورة. +- **التراجع بنقرة واحدة**: إذا تسبب تحديث جديد في مشكلات، فيمكنك إعادة التطبيق المباشر فورًا إلى أي إصدار ثابت سابق. + +سجل إصدارات التطبيق + +### الإصلاح التلقائي +إذا تسببت تغييرات الشيفرة المخصصة في خطأ بناء، فستفشل عملية النشر. +- يوفر Teable زر **الإصلاح التلقائي** بجوار سجل الأخطاء. +- يتيح النقر عليه للذكاء الاصطناعي تحليل خطأ الترجمة البرمجية وتصحيح الشيفرة تلقائيًا لحل المشكلة. + +### حذف تطبيق +لحذف تطبيق، انقر على زر **الإعدادات** (أيقونة الترس) في الترويسة واختر **حذف**. + +## أفضل الممارسات + +للاطلاع على أنماط المطالبات ونصائح الإنشاء وإرشادات التراجع واستكشاف الأخطاء الشائعة، راجع [الدليل العملي لمنشئ التطبيقات](/ar/basic/ai/app-builder-practical-guide). + +## الأسئلة الشائعة + + + + لا. لا يؤدي مسح المحادثة إلا إلى إزالة سجل المحادثة الحالية للتطبيق، ولا يحذف التطبيق نفسه. استخدمه عندما تنحرف المحادثة وتريد البدء من جديد. + + + + انتقل إلى علامة تبويب **الشيفرة** في المحرر، وانقر على قائمة **`...`** في شريط علامات التبويب، ثم اختر **تنزيل الشيفرة** أو **استيراد الشيفرة**. يمكن أن يصل حجم ملفات ZIP المستوردة إلى 20 MB، وهي تحل محل المشروع الحالي؛ لذا ضمّن كل ملف مصدر تريد الاحتفاظ به. يجب أن يتضمن المشروع المستورد ملف `package.json` في الجذر. ويُستورد ملف `.env` في الجذر إلى **أسرار** التطبيق. + + + + تظهر إعدادات تسجيل الدخول في بيئة معاينة التطبيق بعد إعادة تحميلها. انشر التطبيق مجددًا لتطبيق هذه التغييرات على التطبيق المنشور. + + + + أخبر منشئ التطبيقات بميزة الذكاء الاصطناعي التي تريدها، مثل مساعد للرد أو ملخص لعمليات الإرسال أو مصنّف للطلبات. يستطيع منشئ التطبيقات تمكين **الوصول إلى الذكاء الاصطناعي** وإضافة شيفرة الميزة. تستخدم معاينة التطبيق الإصدار الجديد بعد أن ينهي منشئ التطبيقات التغيير. ولا يستخدمه التطبيق المنشور إلا بعد إعادة نشره. تظهر استدعاءات الذكاء الاصطناعي المنفذة عبر هذا التطبيق باسم **ذكاء التطبيق الاصطناعي** في تفاصيل استخدام الأرصدة. + + + + يشمل **الذكاء الاصطناعي المدمج** ميزات الذكاء الاصطناعي المتاحة مباشرةً في Teable، مثل توليد حقول الذكاء الاصطناعي ومحادثة الذكاء الاصطناعي وروبوت المراسلة ومنشئ التطبيقات. تستخدم هذه الميزات حاليًا الأرصدة بسعر مخفّض بدرجة كبيرة. + + يشير **الذكاء الاصطناعي داخل التطبيقات** إلى ميزات الذكاء الاصطناعي المستخدمة داخل التطبيقات المنشأة باستخدام منشئ التطبيقات. يُحتسب الاستخدام وفق [سعر API الرسمي](https://vercel.com/ai-gateway/models) لموفّر النموذج المحدد، من دون هامش ربح أو خصم. يعادل كل US$1 من استخدام API مقدار 100 رصيد. + + + + انقر على زر **السجل** (أيقونة الساعة) لعرض الإصدارات المنشورة، ثم أعد التطبيق المباشر إلى إصدار ثابت سابق. + + + + يمكن لكل مستخدم تشغيل ما يصل إلى 3 وكلاء في الوقت نفسه، بما في ذلك محادثة الذكاء الاصطناعي ومنشئ التطبيقات. إذا أفاد منشئ التطبيقات بأن وكيلًا مشغول في محادثة أخرى، فلا تزال مهمة أخرى قيد التشغيل. انتظر انتهاء المهمة السابقة قبل المتابعة. + + + + قد يتضمن تشغيل واحد لمنشئ التطبيقات عدة خطوات معالجة. تعرض المحادثة وصفحة الفوترة إجمالي الأرصدة لذلك التشغيل. يظل العمل الذي أكمله Cuppy وحفظه قابلًا للاستخدام. إذا توقفت الخطوة الأخيرة بسبب خطأ غير متوقع، تُرد أرصدة تلك الخطوة المتوقفة تلقائيًا. ويمكنك مواصلة العمل في محادثة التطبيق نفسها. + + + + إذا كنت تشغّل Teable باستضافة ذاتية، فاتبع خطوات الإعداد في صفحة [إعدادات الذكاء الاصطناعي](/ar/basic/admin-panel/ai-setting). إذا كان منشئ التطبيقات يستخدم مفتاحك الخاص (BYOK)، فيجب أن يأتي نموذج المحادثة من موفّر **متوافق مع OpenAI** أو **Anthropic**. للحصول على دعم النشر، تواصل مع Teable على **support@teable.ai**. + + + إذا اخترت **Vercel** ضمن **محرك النشر**، فتأكد من إتاحة نسخة Teable وتخزين العناصر (MinIO / S3) للعامة، ثم استخدم **اختبار الوصول العام** في صفحة [إعدادات الذكاء الاصطناعي](/ar/basic/admin-panel/ai-setting). لا يلزم هذا الفحص عند اختيار **بنية Teable التحتية**. + + + diff --git a/ar/basic/ai/connect-everything.mdx b/ar/basic/ai/connect-everything.mdx new file mode 100644 index 00000000..1c39b98b --- /dev/null +++ b/ar/basic/ai/connect-everything.mdx @@ -0,0 +1,50 @@ +--- +title: "ربط كل شيء وترحيله" +description: "استخدم Teable AI Chat لربط وترحيل Airtable وBaserow وSmartSuite وNocoDB وواجهات API وقواعد البيانات وبيانات المشاريع من Jira أو Asana أو monday.com أو ClickUp." +keywords: + - Connect Everything + - ترحيل البيانات بالذكاء الاصطناعي + - الترحيل إلى Teable + - ترحيل Airtable + - ترحيل Baserow + - ترحيل SmartSuite + - ترحيل NocoDB + - ترحيل Jira إلى Teable + - استيراد بيانات مشروع Jira + - ترحيل Asana + - ترحيل monday.com + - ترحيل ClickUp + - ترحيل إدارة المشاريع بالذكاء الاصطناعي +--- + +**Connect Everything** هي مهارة ضمن [Teable AI Chat](/ar/basic/ai/ai-chat) لربط الأنظمة الخارجية وترحيل بياناتها إلى Teable. + + + + انقل بيانات Airtable المتاحة عبر الرمز وبنيتها إلى Teable. + + + اربط نسخة Baserow ورحّل قواعد البيانات التي يمكن الوصول إليها. + + + اربط SmartSuite باستخدام مفتاح API ومعرّف مساحة العمل. + + + اربط نسخة NocoDB ورحّل قواعد البيانات التي يمكن الوصول إليها. + + + انقل المشاريع من Jira أو Asana أو monday.com أو ClickUp أو Smartsheet أو Trello أو Notion أو Linear أو Microsoft Planner. + + + اربط واجهة API أخرى أو قاعدة بيانات أو أداة SaaS أو مصدر بيانات مصرّحًا به. + + + +## آلية العمل + +1. افتح [Teable AI Chat](/ar/basic/ai/ai-chat). +2. اكتب `/` واختر **Connect Everything**. +3. قدّم عنوان URL للمصدر والرمز أو بيانات الاعتماد المطلوبة. +4. أخبر Teable AI بما تريد ترحيله، ثم راجع النتيجة. + +استنادًا إلى ما يتيحه المصدر، يستطيع Teable AI ترحيل البيانات والسجلات والجداول وأنواع الحقول والعلاقات. يعتمد نطاق الترحيل على واجهة API للمصدر والأذونات الممنوحة للاتصال. diff --git a/ar/basic/ai/connect-everything/migrate-airtable.mdx b/ar/basic/ai/connect-everything/migrate-airtable.mdx new file mode 100644 index 00000000..527e56c7 --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-airtable.mdx @@ -0,0 +1,26 @@ +--- +title: "ترحيل Airtable" +description: "رحّل بيانات Airtable المتاحة عبر الرمز وبنية الجداول وأنواع الحقول والعلاقات إلى Teable باستخدام Connect Everything." +keywords: + - ترحيل Airtable إلى Teable + - ترحيل Airtable + - بديل Airtable + - ترحيل Airtable باستخدام الرمز +--- + +في [**Teable AI Chat**](/ar/basic/ai/ai-chat)، اكتب `/` واختر مهارة **Connect Everything**، ثم قدّم رمز Airtable الخاص بك. يستطيع Teable AI استخدام هذا الاتصال المصرّح به لترحيل جميع البيانات المتاحة عبر الرمز وبنية الجداول وأنواع الحقول والعلاقات إلى Teable، حتى لا تضطر إلى إعادة بناء مساحة العمل يدويًا. + +## بدء الترحيل + +1. أنشئ [رمز وصول شخصيًا في Airtable](https://airtable.com/create/tokens) يتيح الوصول إلى قواعد البيانات التي تريد ترحيلها. +2. افتح قاعدة بيانات Teable المستهدفة وشغّل AI Chat. +3. اكتب `/`، واختر **Connect Everything**، وقدّم الرمز. +4. اطلب من Teable AI ترحيل قاعدة بيانات Airtable، ثم راجع النتيجة. + + +يعتمد نطاق الترحيل على واجهة Airtable API ونطاقات الرمز والموارد التي يتيح الوصول إليها. ألغِ الرمز بعد اكتمال الترحيل. + + +## المقارنة قبل الانتقال + +راجع الاختلافات في نمذجة البيانات والأتمتة والذكاء الاصطناعي والنشر والأسعار ضمن [مقارنة Teable وAirtable](https://teable.ai/compare/airtable-alternative). diff --git a/ar/basic/ai/connect-everything/migrate-baserow.mdx b/ar/basic/ai/connect-everything/migrate-baserow.mdx new file mode 100644 index 00000000..8b92aa7b --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-baserow.mdx @@ -0,0 +1,26 @@ +--- +title: "ترحيل Baserow" +description: "رحّل جداول Baserow وحقوله وسجلاته وعلاقاته التي يمكن الوصول إليها إلى Teable باستخدام Connect Everything." +keywords: + - ترحيل Baserow إلى Teable + - ترحيل Baserow + - بديل Baserow + - رمز قاعدة بيانات Baserow +--- + +استخدم **Connect Everything** في [Teable AI Chat](/ar/basic/ai/ai-chat) لربط نسخة Baserow وترحيل البيانات التي يمكن الوصول إليها إلى Teable. + +## بدء الترحيل + +1. انسخ عنوان URL لنسخة Baserow وأنشئ [رمز قاعدة بيانات Baserow](https://baserow.io/user-docs/personal-api-tokens) بصلاحية قراءة الجداول المصدرية. +2. افتح قاعدة بيانات Teable المستهدفة وشغّل AI Chat. +3. اكتب `/`، واختر **Connect Everything**، وقدّم عنوان URL للنسخة ورمز قاعدة البيانات. +4. اطلب من Teable AI ترحيل قاعدة بيانات Baserow، ثم راجع النتيجة. + + +يعتمد نطاق الترحيل على واجهة Baserow API والجداول والأذونات المخصصة لرمز قاعدة البيانات. + + +## المقارنة قبل الانتقال + +راجع الاختلافات في نمذجة البيانات والأتمتة والذكاء الاصطناعي والنشر والأسعار ضمن [مقارنة Teable وBaserow](https://teable.ai/compare/baserow-alternative). diff --git a/ar/basic/ai/connect-everything/migrate-clickup.mdx b/ar/basic/ai/connect-everything/migrate-clickup.mdx new file mode 100644 index 00000000..d764eb3b --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-clickup.mdx @@ -0,0 +1,29 @@ +--- +title: "ترحيل ClickUp" +sidebarTitle: "ترحيل ClickUp" +description: "رحّل مساحات عمل ClickUp ومساحاته ومجلداته وقوائمه ومهامه ومهامه الفرعية وحقوله وتعليقاته ومرفقاته المتاحة عبر API إلى Teable باستخدام Connect Everything." +keywords: + - ترحيل ClickUp إلى Teable + - ترحيل ClickUp + - استيراد مهام ClickUp + - بديل ClickUp + - ترحيل ClickUp عبر API + - ترحيل ClickUp باستخدام الرمز +--- + +في [**Teable AI Chat**](/ar/basic/ai/ai-chat)، اكتب `/` واختر **Connect Everything**، ثم قدّم رمز API الشخصي في ClickUp. يستطيع Teable AI استخدام هذا الاتصال المصرّح به لترحيل مساحات العمل والمساحات والمجلدات والقوائم والمهام والمهام الفرعية والحقول والتعليقات والمرفقات المتاحة عبر API إلى Teable، حتى لا تضطر إلى إعادة بناء مساحة العمل يدويًا. + +## بدء الترحيل + +1. في ClickUp، افتح **الإعدادات ← التطبيقات**، ثم انسخ رمز API الشخصي. راجع [دليل المصادقة](https://developer.clickup.com/docs/authentication) من ClickUp. +2. افتح قاعدة بيانات Teable المستهدفة وشغّل AI Chat. +3. اكتب `/`، واختر **Connect Everything**، وقدّم رمز API الشخصي. +4. اطلب من Teable AI ترحيل مساحات عمل ClickUp المتاحة وإنشاء طرق عرض المشاريع ولوحات المعلومات وعمليات الأتمتة التي يحتاج إليها فريقك. + + +يعتمد نطاق الترحيل على واجهة ClickUp API وحدود الخطة وحدود معدل الطلبات والموارد المصرّح للرمز بالوصول إليها. قد تتطلب لوحات المعلومات وعمليات الأتمتة والأذونات والأصول غير المدعومة معالجة منفصلة. استبدل بيانات الاعتماد المخصصة للترحيل بعد اكتماله. + + +## المقارنة قبل الانتقال + +راجع الاختلافات في بنية المشاريع وأتمتة سير العمل والتقارير والذكاء الاصطناعي والأسعار ضمن [مقارنة Teable وClickUp](https://teable.ai/compare/clickup-alternative). diff --git a/ar/basic/ai/connect-everything/migrate-jira.mdx b/ar/basic/ai/connect-everything/migrate-jira.mdx new file mode 100644 index 00000000..05175805 --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-jira.mdx @@ -0,0 +1,29 @@ +--- +title: "ترحيل Jira" +sidebarTitle: "ترحيل Jira" +description: "رحّل مشاريع Jira وعناصر العمل والحقول والمستخدمين ودورات العمل السريعة والتعليقات والعلاقات والمرفقات المتاحة عبر API إلى Teable باستخدام Connect Everything." +keywords: + - ترحيل Jira إلى Teable + - ترحيل Jira + - استيراد بيانات مشروع Jira + - بديل Jira + - ترحيل Jira عبر API + - ترحيل Jira باستخدام الرمز +--- + +في [**Teable AI Chat**](/ar/basic/ai/ai-chat)، اكتب `/` واختر **Connect Everything**، ثم قدّم عنوان URL لموقع Jira Cloud والبريد الإلكتروني لحساب Atlassian ورمز API. يستطيع Teable AI استخدام هذا الاتصال المصرّح به لترحيل المشاريع وعناصر العمل والحقول والمستخدمين والحالات ودورات العمل السريعة والتعليقات والعلاقات والمرفقات المتاحة عبر API إلى Teable، حتى لا تضطر إلى إعادة بناء مساحة العمل يدويًا. + +## بدء الترحيل + +1. أنشئ [رمز Atlassian API](https://id.atlassian.com/manage-profile/security/api-tokens) لحساب يمكنه الوصول إلى مشاريع Jira التي تريد ترحيلها. راجع دليل Atlassian حول [المصادقة الأساسية لواجهات REST API](https://developer.atlassian.com/cloud/jira/platform/basic-auth-for-rest-apis/). +2. افتح قاعدة بيانات Teable المستهدفة وشغّل AI Chat. +3. اكتب `/`، واختر **Connect Everything**، وقدّم عنوان URL لموقع Jira Cloud والبريد الإلكتروني للحساب ورمز API. +4. اطلب من Teable AI ترحيل مشاريع Jira المتاحة وإنشاء طرق عرض المشاريع ولوحات المعلومات وعمليات الأتمتة التي يحتاج إليها فريقك. + + +يعتمد نطاق الترحيل على واجهة Jira API وأذونات الحساب وصلاحية وصول الرمز. قد تتطلب قواعد أتمتة Jira وبيانات تطبيقات Marketplace ولوحات المعلومات ومخططات الأذونات معالجة منفصلة. ألغِ الرمز المخصص للترحيل بعد اكتماله. + + +## المقارنة قبل الانتقال + +راجع الاختلافات في بنية المشاريع وأتمتة سير العمل والتقارير والذكاء الاصطناعي والأسعار ضمن [مقارنة Teable وJira](https://teable.ai/compare/jira-alternative). diff --git a/ar/basic/ai/connect-everything/migrate-monday.mdx b/ar/basic/ai/connect-everything/migrate-monday.mdx new file mode 100644 index 00000000..09887d57 --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-monday.mdx @@ -0,0 +1,29 @@ +--- +title: "ترحيل monday.com" +sidebarTitle: "ترحيل monday.com" +description: "رحّل مساحات عمل monday.com ولوحاته ومجموعاته وعناصره وعناصره الفرعية وأعمدته ومستخدميه وتحديثاته وملفاته المتاحة عبر API إلى Teable باستخدام Connect Everything." +keywords: + - ترحيل monday.com إلى Teable + - ترحيل monday.com + - استيراد لوحة monday.com + - بديل monday.com + - ترحيل monday.com عبر API + - ترحيل monday.com باستخدام الرمز +--- + +في [**Teable AI Chat**](/ar/basic/ai/ai-chat)، اكتب `/` واختر **Connect Everything**، ثم قدّم رمز API الشخصي في monday.com. يستطيع Teable AI استخدام هذا الاتصال المصرّح به لترحيل مساحات العمل واللوحات والمجموعات والعناصر والعناصر الفرعية والأعمدة والمستخدمين والتحديثات والملفات المتاحة عبر API إلى Teable، حتى لا تضطر إلى إعادة بناء مساحة العمل يدويًا. + +## بدء الترحيل + +1. في monday.com، افتح قائمة ملفك الشخصي، واختر **المطورون**، ثم انسخ رمز API الشخصي. راجع [دليل مصادقة API](https://developer.monday.com/api-reference/docs/authentication) من monday.com. +2. افتح قاعدة بيانات Teable المستهدفة وشغّل AI Chat. +3. اكتب `/`، واختر **Connect Everything**، وقدّم رمز API الشخصي. +4. اطلب من Teable AI ترحيل مساحات عمل monday.com المتاحة وإنشاء طرق عرض المشاريع ولوحات المعلومات وعمليات الأتمتة التي يحتاج إليها فريقك. + + +يعتمد نطاق الترحيل على واجهة monday.com API وأذونات رمز المستخدم. قد تتطلب لوحات المعلومات ووصفات الأتمتة وعمليات التكامل والتطبيقات واللوحات الخاصة التي يتعذر الوصول إليها معالجة منفصلة. استبدل بيانات الاعتماد المخصصة للترحيل بعد اكتماله. + + +## المقارنة قبل الانتقال + +راجع الاختلافات في بنية المشاريع وأتمتة سير العمل والتقارير والذكاء الاصطناعي والأسعار ضمن [مقارنة Teable وmonday.com](https://teable.ai/compare/monday-alternative). diff --git a/ar/basic/ai/connect-everything/migrate-nocodb.mdx b/ar/basic/ai/connect-everything/migrate-nocodb.mdx new file mode 100644 index 00000000..fc59d030 --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-nocodb.mdx @@ -0,0 +1,26 @@ +--- +title: "ترحيل NocoDB" +description: "رحّل قواعد بيانات NocoDB وجداوله وحقوله وسجلاته وعلاقاته التي يمكن الوصول إليها إلى Teable باستخدام Connect Everything." +keywords: + - ترحيل NocoDB إلى Teable + - ترحيل NocoDB + - بديل NocoDB + - رمز NocoDB API +--- + +استخدم **Connect Everything** في [Teable AI Chat](/ar/basic/ai/ai-chat) لربط نسخة NocoDB وترحيل البيانات التي يمكن الوصول إليها إلى Teable. + +## بدء الترحيل + +1. انسخ عنوان URL لنسخة NocoDB وأنشئ [رمز NocoDB API](https://nocodb.com/docs/product-docs/account-settings/api-tokens) يتيح الوصول إلى قاعدة البيانات المصدرية. +2. افتح قاعدة بيانات Teable المستهدفة وشغّل AI Chat. +3. اكتب `/`، واختر **Connect Everything**، وقدّم عنوان URL للنسخة ورمز API. +4. اطلب من Teable AI ترحيل قاعدة بيانات NocoDB، ثم راجع النتيجة. + + +استخدم رمز API دقيق الصلاحيات عند توفره. يعتمد نطاق الترحيل على واجهة NocoDB API وصلاحية وصول الرمز إلى قاعدة البيانات وأذوناته. + + +## المقارنة قبل الانتقال + +راجع الاختلافات في نمذجة البيانات والأتمتة والذكاء الاصطناعي والنشر والأسعار ضمن [مقارنة Teable وNocoDB](https://teable.ai/compare/nocodb-alternative). diff --git a/ar/basic/ai/connect-everything/migrate-project-management-tools.mdx b/ar/basic/ai/connect-everything/migrate-project-management-tools.mdx new file mode 100644 index 00000000..754e3060 --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-project-management-tools.mdx @@ -0,0 +1,42 @@ +--- +title: "ترحيل أدوات إدارة المشاريع" +description: "انقل بيانات المشاريع من Jira أو Asana أو monday.com أو ClickUp أو Smartsheet أو Trello أو Notion أو Linear أو Microsoft Planner أو جداول البيانات إلى Teable باستخدام الذكاء الاصطناعي." +noindex: true +keywords: + - ترحيل Jira إلى Teable + - استيراد بيانات مشروع Jira + - ترحيل Asana إلى Teable + - ترحيل monday.com إلى Teable + - ترحيل ClickUp إلى Teable + - ترحيل Smartsheet إلى Teable + - ترحيل Trello إلى Teable + - ترحيل قاعدة بيانات Notion إلى Teable + - ترحيل Linear إلى Teable + - ترحيل Microsoft Planner + - ترحيل إدارة المشاريع بالذكاء الاصطناعي +--- + +انقل بيانات المشاريع الحالية إلى Teable من دون إعادة بناء النظام يدويًا. استخدم اتصال API مصرّحًا به عندما يتيح المصدر ذلك، أو أرفق تصديرًا بصيغة CSV أو JSON أو Excel أو HTML أو Markdown في Teable AI Chat. + +## اختيار مسار الترحيل + +- **Jira وAsana وmonday.com وClickUp:** استخدم اتصال API مصرّحًا به عند توفره، أو ابدأ من ملف تصدير. +- **Smartsheet:** صدّر الأوراق أو التقارير إلى Excel أو Google Sheets أو Microsoft Project XML. +- **Trello:** صدّر اللوحات أو مساحات العمل بصيغة JSON أو CSV. +- **Notion:** صدّر قواعد البيانات بصيغة CSV والصفحات أو مساحات العمل بصيغة HTML أو Markdown. +- **Linear:** صدّر المسائل والمشاريع والمبادرات بصيغة CSV، أو استخدم اتصال API مصرّحًا به. +- **Microsoft Planner:** صدّر خطة إلى Excel. +- **جداول البيانات:** أرفق ملفات Excel أو CSV مباشرةً. + +## الترحيل باستخدام Teable AI + +1. افتح [Teable AI Chat](/ar/basic/ai/ai-chat). +2. أرفق ملف التصدير، أو اكتب `/`، واختر **Connect Everything**، وقدّم تفاصيل الاتصال المصرّح به. +3. أخبر Teable AI بكيفية تعيين المشاريع والمسائل أو المهام والمسؤولين والحالات والتواريخ والحقول المخصصة والتبعيات في Teable. +4. راجع النتيجة قبل توسيع نطاق الترحيل. + +يستطيع Teable AI إعادة إنشاء السجلات والحقول والعلاقات المدعومة ونقل بيانات المشاريع إلى Teable. + + +يعتمد نطاق الترحيل على تنسيق المصدر أو واجهة API والأذونات الممنوحة. لا يحتفظ كل مصدر بالتعليقات أو المرفقات أو الصيغ أو السجل التاريخي أو الأذونات في ملفات التصدير الخاصة به. + diff --git a/ar/basic/ai/connect-everything/migrate-smartsheet.mdx b/ar/basic/ai/connect-everything/migrate-smartsheet.mdx new file mode 100644 index 00000000..57f03e1a --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-smartsheet.mdx @@ -0,0 +1,29 @@ +--- +title: "ترحيل Smartsheet" +sidebarTitle: "ترحيل Smartsheet" +description: "رحّل مساحات عمل Smartsheet ومجلداته وأوراقه وتقاريره وأعمدته وصفوفه ومناقشاته ومرفقاته المتاحة عبر API إلى Teable باستخدام Connect Everything." +keywords: + - ترحيل Smartsheet إلى Teable + - ترحيل Smartsheet + - استيراد مشروع Smartsheet + - بديل Smartsheet + - ترحيل Smartsheet عبر API + - ترحيل Smartsheet باستخدام الرمز +--- + +في [**Teable AI Chat**](/ar/basic/ai/ai-chat)، اكتب `/` واختر **Connect Everything**، ثم قدّم رمز وصول Smartsheet API وبيئة الحساب. يستطيع Teable AI استخدام هذا الاتصال المصرّح به لترحيل مساحات العمل والمجلدات والأوراق والتقارير والأعمدة والصفوف والمناقشات والمرفقات المتاحة عبر API إلى Teable، حتى لا تضطر إلى إعادة بناء مساحة العمل يدويًا. + +## بدء الترحيل + +1. في Smartsheet، افتح **الحساب ← الإعدادات الشخصية ← الوصول إلى API**، ثم أنشئ رمز وصول. راجع [دليل بدء استخدام API](https://developers.smartsheet.com/api/smartsheet/guides/getting-started) من Smartsheet. +2. افتح قاعدة بيانات Teable المستهدفة وشغّل AI Chat. +3. اكتب `/`، واختر **Connect Everything**، وقدّم رمز الوصول وبيئة الحساب: القياسية أو Regions Europe أو Gov. +4. اطلب من Teable AI ترحيل مساحات عمل Smartsheet المتاحة وإنشاء طرق عرض المشاريع ولوحات المعلومات وعمليات الأتمتة التي يحتاج إليها فريقك. + + +يعتمد نطاق الترحيل على واجهة Smartsheet API وأذونات الحساب وبيئته. لا يمكن استخدام الرموز بالتبادل بين بيئات Smartsheet. ألغِ الرمز المخصص للترحيل بعد اكتماله. + + +## المقارنة قبل الانتقال + +راجع الاختلافات في بنية المشاريع وأتمتة سير العمل والتقارير والذكاء الاصطناعي والأسعار ضمن [مقارنة Teable وSmartsheet](https://teable.ai/compare/smartsheet-alternative). diff --git a/ar/basic/ai/connect-everything/migrate-smartsuite.mdx b/ar/basic/ai/connect-everything/migrate-smartsuite.mdx new file mode 100644 index 00000000..1e018b83 --- /dev/null +++ b/ar/basic/ai/connect-everything/migrate-smartsuite.mdx @@ -0,0 +1,26 @@ +--- +title: "ترحيل SmartSuite" +description: "رحّل حلول SmartSuite وجداوله وحقوله وسجلاته وعلاقاته التي يمكن الوصول إليها إلى Teable باستخدام Connect Everything." +keywords: + - ترحيل SmartSuite إلى Teable + - ترحيل SmartSuite + - بديل SmartSuite + - مفتاح SmartSuite API +--- + +استخدم **Connect Everything** في [Teable AI Chat](/ar/basic/ai/ai-chat) لربط SmartSuite وترحيل البيانات التي يمكن الوصول إليها إلى Teable. + +## بدء الترحيل + +1. احصل على [مفتاح SmartSuite API ومعرّف مساحة العمل](https://help.smartsuite.com/en/articles/6096587-retrieving-your-api-key-and-workspace-id). +2. افتح قاعدة بيانات Teable المستهدفة وشغّل AI Chat. +3. اكتب `/`، واختر **Connect Everything**، وقدّم مفتاح API ومعرّف مساحة العمل. +4. اطلب من Teable AI ترحيل حل SmartSuite، ثم راجع النتيجة. + + +يستخدم مفتاح API أذونات عضو SmartSuite الذي أنشأه. استخدم حسابًا لا يملك إلا صلاحيات الوصول اللازمة للترحيل. + + +## المقارنة قبل الانتقال + +راجع الاختلافات في نمذجة البيانات والأتمتة والذكاء الاصطناعي والنشر والأسعار ضمن [مقارنة Teable وSmartSuite](https://teable.ai/compare/smartsuite-alternative). diff --git a/ar/basic/ai/connect-everything/more-sources.mdx b/ar/basic/ai/connect-everything/more-sources.mdx new file mode 100644 index 00000000..d7786511 --- /dev/null +++ b/ar/basic/ai/connect-everything/more-sources.mdx @@ -0,0 +1,24 @@ +--- +title: "ربط مصادر إضافية وترحيلها" +description: "استخدم Connect Everything لربط واجهات API وقواعد البيانات وأدوات SaaS وغيرها من مصادر البيانات المصرّح بها مع Teable." +keywords: + - ربط واجهة API مع Teable + - ترحيل قاعدة بيانات إلى Teable + - ترحيل البيانات بالذكاء الاصطناعي + - Connect Everything +--- + +لا تقتصر ميزة Connect Everything على Airtable أو Baserow أو SmartSuite أو NocoDB؛ إذ يمكنها العمل مع الأنظمة الأخرى التي تتيح بياناتها من خلال واجهة API أو اتصال آخر مصرّح به. + +## المعلومات المطلوبة + +- اسم النظام المصدر وعنوان URL الخاص به +- وثائق واجهة API أو معلومات نقطة النهاية +- رمز وصول أو بيانات اعتماد بأدنى مستوى مطلوب من الصلاحيات +- وصف موجز لما تريد ربطه أو ترحيله + +في [Teable AI Chat](/ar/basic/ai/ai-chat)، اكتب `/`، ثم اختر **Connect Everything**، وقدّم تفاصيل الاتصال، وأخبر Teable AI بما تريد ترحيله. + + +تعتمد البيانات المتاحة ونطاق الترحيل على النظام المصدر وواجهة API الخاصة به والأذونات الممنوحة للاتصال. + diff --git a/ar/basic/ai/custom-model.mdx b/ar/basic/ai/custom-model.mdx new file mode 100644 index 00000000..2fce7288 --- /dev/null +++ b/ar/basic/ai/custom-model.mdx @@ -0,0 +1,109 @@ +--- +title: نموذج ذكاء اصطناعي مخصص +description: أضف موفّري نماذج مخصصة لحقول الذكاء الاصطناعي وعمليات الأتمتة وAI Chat ومنشئ التطبيقات وغيرها من ميزات الذكاء الاصطناعي المدعومة. +--- + +متاح ضمن خطة Pro والخطط الأعلى + +## مكان التهيئة + +1. افتح المساحة المستهدفة. +2. انقر على **الإعدادات** في الزاوية العلوية اليمنى. +3. انتقل إلى **إعدادات الذكاء الاصطناعي**. + +صفحة إعدادات الذكاء الاصطناعي + +## خطوات الإعداد + +ضمن **إمكانات الذكاء الاصطناعي**، فعّل ما تحتاج إليه: + +- **حقل الذكاء الاصطناعي** +- **AI Chat** + +يتحكم تمكين **AI Chat** في إتاحة ميزة المحادثة ضمن المساحة. + +يحدد صف **التزامن** أسفل **حقل الذكاء الاصطناعي** عدد عمليات التوليد في حقول الذكاء الاصطناعي التي تنفذها هذه المساحة في الوقت نفسه، بينما تنتظر البقية في قائمة الانتظار. قلّل القيمة عندما تؤدي عمليات التعبئة المجمعة بالذكاء الاصطناعي في هذه المساحة إلى إبطاء عمل الآخرين، وارفعها عندما تريد إكمال عملية تعبئة كبيرة بسرعة أكبر. + +### إضافة موفّر LLM + + +عند إضافة موفّر LLM جديد، اختر **OpenAI** أو **Anthropic** أو **متوافق مع OpenAI** بوصفه نوع الموفّر. استخدم **متوافق مع OpenAI** للخدمات التي توفر نقطة نهاية API متوافقة مع OpenAI. إذا كانت المهمة تستخدم صورًا أو لقطات شاشة أو مدخلات مرئية أخرى، فاختر نموذجًا يدعم الرؤية. ستفشل النماذج التي لا تدعم الرؤية في هذه المهام متعددة الوسائط. + + +انقر على **إضافة موفّر LLM** وأدخل ما يلي: + +- **الاسم**: يُستخدم للتمييز بين الموفّرين المختلفين. +- **نوع الموفّر**: اختر نوع الموفّر. +- **عنوان URL الأساسي**: أدخل نقطة نهاية API للموفّر. +- **مفتاح API**: أدخل مفتاح API من الموفّر. +- **النماذج**: أدخل أسماء النماذج التي تريد ربطها. افصل بين النماذج المتعددة بفواصل إنجليزية. + +مربع حوار إضافة موفّر LLM + +### اختبار إمكانات النموذج + +توجد حاليًا ثلاث طرق للاختبار: + +- انقر على **اختبار** في صف موفّر LLM. +- انقر على **اختبار** في صف نموذج منفرد. +- انقر على **اختبار إمكانات النموذج** في الزاوية العلوية اليمنى للقائمة لاختبار جميع النماذج المهيأة دفعة واحدة. + +إذا كان النموذج مخصصًا لتوليد الصور، فحدد **نموذج توليد الصور** قبل تشغيل الاختبار. بعد تحديده، يختبره Teable كنموذج صور للتحقق من إمكانات تحويل النص إلى صورة وتحويل صورة إلى صورة. وإذا لم تحدده، فيُختبر النموذج كنموذج نصي عادي. + +## نصائح التهيئة + +### عنوان URL الأساسي والنماذج + +قد لا تعمل بعض مفاتيح Coding Plan إلا في أدوات برمجة محددة، وقد لا تكون مفاتيح API قياسية. راجع شروط الموفّر قبل استخدامها مع خدمات الجهات الخارجية. لربط Teable، استخدم مفتاح API قياسيًا أُنشئ في لوحة معلومات الموفّر. + +أمثلة شائعة: + +| نوع الموفّر | تنسيق عنوان URL الأساسي | نماذج توضيحية | +|----------|----------------|----------------| +| OpenAI | `https://api.openai.com/v1` | `gpt-5.5,o3,gpt-5-mini` | +| Anthropic | `https://api.anthropic.com/v1` | `claude-opus-4-8,claude-sonnet-5,claude-haiku-4-5` | +| متوافق مع OpenAI | نقطة نهاية `/v1` المتوافقة مع OpenAI لدى الموفّر | `gpt-5.5,gpt-5.4,o3,gpt-5-mini` | + +يجب أن تطابق أسماء النماذج وثائق الموفّر تمامًا، وهي حساسة لحالة الأحرف. افصل بين النماذج المتعددة بفواصل إنجليزية. + +ملاحظات: + +- أسماء النماذج حساسة لحالة الأحرف. استخدم الأسماء الدقيقة الواردة في وثائق الموفّر. +- لا يتيح بعض الموفّرين مسافات بعد الفواصل، مثل `gpt-5.5,o3`. +- بالنسبة إلى الموفّرين **المتوافقين مع OpenAI**، استخدم تنسيق تسمية النماذج الذي يطلبه الموفّر. تستخدم بعض الخدمات `provider/model-name`. + +## الأسئلة الشائعة + + + +تحقق من صحة **عنوان URL الأساسي**، ومن أنه لم يُملأ خطأً بعنوان URL لصفحة الموفّر الرئيسية، ومن عدم وجود شرطة مائلة إضافية `/` في نهايته. إذا كنت تستخدم نقطة نهاية متوافقة مع OpenAI، فتأكد أيضًا من عدم غياب `/v1`. + + + +تحقق من صلاحية **مفتاح API** ومن أن الحساب لا يزال يملك أرصدة أو إذنًا لاستدعاء النموذج. + + + +تحقق من صحة **عنوان URL الأساسي** ومن قدرة بيئتك الحالية على الوصول إلى ذلك العنوان. + + + +تأكد من أن قيمة **النماذج** تطابق وثائق الموفّر تمامًا، بما في ذلك حالة الأحرف وتنسيق الفواصل. + + + +قد لا يدعم هذا النوع من المفاتيح استدعاءات API القياسية، أو قد لا تسمح شروط الموفّر باستخدام خدمات الجهات الخارجية. راجع أولًا شروط Coding Plan لدى الموفّر. لربط Teable، استخدم **مفتاح API** قياسيًا أُنشئ في لوحة معلومات الموفّر. + + + +إذا كان النموذج مخصصًا لتوليد الصور، فحدد أولًا **نموذج توليد الصور**، ثم أعد الاختبار. بعد تحديده، يختبر Teable بدلاً من ذلك إمكانات تحويل النص إلى صورة وتحويل صورة إلى صورة. + + diff --git a/ar/basic/ai/overview.mdx b/ar/basic/ai/overview.mdx new file mode 100644 index 00000000..529a305b --- /dev/null +++ b/ar/basic/ai/overview.mdx @@ -0,0 +1,50 @@ +--- +title: "نظرة عامة" +description: "استكشف إمكانات Teable للذكاء الاصطناعي في معالجة البيانات وأتمتتها وتحليلها بذكاء." +--- + +{/* mintlify-resync: 2026-05-28 */} +متاح ضمن جميع الخطط السحابية؛ وتتطلب الاستضافة الذاتية خطة Business أو أعلى. + +قد يخطئ الذكاء الاصطناعي. يُرجى التحقق من الردود. + +يدمج Teable إمكانات قوية للذكاء الاصطناعي في مختلف أجزاء المنصة لمساعدتك على التعامل مع بياناتك بفعالية أكبر. تعمل ميزات الذكاء الاصطناعي، بدءًا من المعالجة الذكية للحقول ووصولًا إلى مهام سير العمل المؤتمتة، على تبسيط عمليات البيانات. + +## إمكانات الذكاء الاصطناعي + + + + مساعد ذكي مدرك للسياق لتحليل البيانات وعرضها مرئيًا وإنشائها. + + + حوّل بياناتك إلى تطبيقات ويب مخصصة باستخدام الذكاء الاصطناعي. + + + اكتب نصوصًا برمجية مخصصة مدعومة بالذكاء الاصطناعي لتوسيع إمكانات الأتمتة. + + + ولّد المعلومات ولخّصها وترجمها واستخرجها من بياناتك تلقائيًا باستخدام حقول مدعومة بالذكاء الاصطناعي. + + + ادمج معالجة الذكاء الاصطناعي في مهام سير عمل الأتمتة للتعامل الذكي مع البيانات. + + + +## التهيئة + + + + ادمج نماذج ذكاء اصطناعي مخصصة وموفّري API من جهات خارجية. + + + هيئ AI Chat وحقول الذكاء الاصطناعي وأتمتة الذكاء الاصطناعي ومنشئ التطبيقات لنسخة ذاتية الاستضافة. + + + +## بدء الاستخدام + +1. **تمكين الذكاء الاصطناعي** (للاستضافة الذاتية فقط) - تتضمن Teable السحابية ذكاءً اصطناعيًا مدمجًا جاهزًا للاستخدام. ينبغي لمستخدمي الاستضافة الذاتية إكمال [إعدادات الذكاء الاصطناعي](/ar/basic/admin-panel/ai-setting) أولًا. إذا أردت ربط نماذجك الخاصة، فتابع إلى [نموذج ذكاء اصطناعي مخصص](/ar/basic/ai/custom-model). +2. **استخدام AI Chat** - اطرح أسئلة حول بياناتك أو أنشئ مخططات +3. **إنشاء التطبيقات** - حوّل قاعدة بياناتك إلى تطبيق ويب بمطالبة بسيطة +4. **إنشاء حقول ذكاء اصطناعي** - أضف حقولًا مدعومة بالذكاء الاصطناعي لمعالجة بياناتك تلقائيًا +5. **إنشاء عمليات الأتمتة** - استخدم إجرائي التوليد بالذكاء الاصطناعي وتشغيل نص برمجي في مهام سير عملك diff --git a/ar/basic/ai/teable-skill.mdx b/ar/basic/ai/teable-skill.mdx new file mode 100644 index 00000000..c73ec10e --- /dev/null +++ b/ar/basic/ai/teable-skill.mdx @@ -0,0 +1,42 @@ +--- +title: ربط وكلاء الذكاء الاصطناعي بـ Teable +description: استعلم عن البيانات وحدّثها، وأدر الجداول، وأنشئ عمليات أتمتة أو تطبيقات من وكيل الذكاء الاصطناعي لديك. +--- + +## تثبيت مهارة Teable + +انسخ هذه المطالبة إلى وكيل الذكاء الاصطناعي لديك: + +```text wrap +يرجى قراءة https://github.com/teableio/agent-skills واتباع الدليل لمساعدتي في تثبيت مهارة وكيل Teable وإكمال مصادقة Teable CLI. +``` + +أو ثبّتها مباشرةً: + +```bash +npx skills add https://github.com/teableio/agent-skills +``` + +## تجربة مهارة Teable + +بعد تثبيت المهارة، جرّب هذه المطالبات. + + + +```text مطالبات بداية بسيطة wrap +أنشئ جدول CRM بسيطًا في <قاعدة البيانات> {الصق عنوان URL لقاعدة البيانات}. +``` + +```text الملفات المحلية → Teable wrap +حمّل جميع الفواتير في هذا المجلد المحلي إلى <جدول الإيصالات> {الصق عنوان URL للجدول} واستخرج الحقول الرئيسية. +``` + +```text بيانات من منصات أخرى → Teable wrap +استورد مسائل GitHub الجديدة إلى <متتبع الأخطاء> {الصق عنوان URL للجدول}. +``` + +```text تنظيف بيانات Teable أو تنظيمها wrap +تحقق من <جدول المهام> {الصق عنوان URL للجدول} وميّز المهام المتأخرة. +``` + + diff --git a/ar/basic/authority-matrix.mdx b/ar/basic/authority-matrix.mdx new file mode 100644 index 00000000..35733517 --- /dev/null +++ b/ar/basic/authority-matrix.mdx @@ -0,0 +1,120 @@ +--- +title: "نظرة عامة" +description: "حدّد نطاقات وصول للفرق المختلفة في قاعدة البيانات نفسها، بحيث لا يرى الأعضاء أو يحرروا أو يصدّروا إلا البيانات التي يحتاجون إليها." +--- + +{/* mintlify-resync: 2026-05-28 */} +متاح في خطة Business والخطط الأعلى + +عندما تشترك فرق المبيعات والمالية والعمليات والإدارة في قاعدة البيانات نفسها، +تحدّد الصلاحيات من يمكنه الدخول إلى القاعدة، والبيانات التي يمكنه رؤيتها أو تحريرها، +وما إذا كان يستطيع استيراد البيانات أو تصديرها. تساعد مصفوفة الصلاحيات الفرق على +الاحتفاظ بالبيانات في مكان واحد مع فصل الوصول بحسب المسؤولية. + +يمكنك تعيين أدوار مخصصة للأعضاء أو الأقسام، ثم السماح لكل دور بالوصول +إلى الجداول والتطبيقات ومسارات العمل التي يحتاجها فقط. وفي الجداول، يمكنك أيضًا +تقييد طرق العرض والسجلات الظاهرة والحقول القابلة للتحرير وصلاحيات الاستيراد أو +التصدير. فمثلًا، يستطيع فريق المبيعات إدارة عملائه، ويرى فريق المالية +حقول الفوترة، بينما ترى الإدارة مجموعة البيانات كاملة. + +## متى تستخدمها + +| السيناريو | مناسبة لـ | +| --- | --- | +| الوصول على مستوى الأقسام | يستطيع فريق المبيعات إدارة سجلات العملاء، بينما لا يرى فريق المالية إلا حقول الفوترة. | +| السجلات حسب المكلّف | لا يرى مندوبو المبيعات ولا يحدّثون إلا السجلات المسندة إليهم. | +| إدخال البيانات المقيّد | يستطيع الأعضاء إنشاء سجلات جديدة دون تحرير السجلات الموجودة أو حذفها. | +| حقول حساسة في قاعدة بيانات مشتركة | يستطيع الأعضاء رؤية سجلات الطلبات دون رؤية حقول الدفع أو التكلفة. | +| تطبيقات ومسارات عمل خاضعة للتحكم | تستطيع الأدوار فتح تطبيقات أو مسارات عمل محددة، بينما تظل العقد غير المصرح بها مخفية. | + +## آلية عمل الصلاحيات + +تعيّن مصفوفة الصلاحيات الوصول حسب الدور. ويمكن أن يحصل المستخدمون على الصلاحيات +من أدوار معيّنة لهم مباشرةً أو من أدوار الأقسام. وعند انطباق عدة +أدوار، يجمع Teable الصلاحيات التي تسمح بها تلك الأدوار. + +يمكن لمستخدمي المساحة الذين لديهم صلاحية **المدير** ولمسؤولي مصفوفة الصلاحيات إدارة مصفوفة الصلاحيات، ولا يخضعون لقيودها. + +تتضمن قائمة الأدوار قسم `المسؤولون` وقسم `الأدوار المخصصة`: + +قائمة أدوار مصفوفة الصلاحيات + +استخدم `إضافة دور` لإنشاء دور مخصص. في صفحة تفاصيل الدور، عيّن +المتعاونين، واكتب وصفًا موجزًا، واضبط الوصول لكل عقدة في +قاعدة البيانات: + +صفحة تفاصيل دور مصفوفة الصلاحيات + +## إعداد وصول الأدوار + +لكل جدول وتطبيق ومسار عمل إعداد وصول خاص به. + +| نوع العقدة | الإعداد المتاح | +| --- | --- | +| جدول | اختر `يمكنه التحرير` أو `لا وصول`. وبعد ضبط الجدول على `يمكنه التحرير`، اضبط صلاحياته التفصيلية. | +| تطبيق | اختر `يمكنه الوصول` أو `لا وصول`. يتحكم ذلك في قدرة الدور على فتح التطبيق. | +| مسار عمل | اختر `يمكنه الوصول` أو `لا وصول`. يتحكم ذلك في قدرة الدور على فتح مسار العمل. | +| مجلد | تظهر المجلدات للتنقل. وإذا لم تكن أي من العقد التابعة متاحة، يُخفى المجلد عن الدور. | + +لضبط صلاحيات طريقة العرض والسجل والحقل وغيرها من صلاحيات الجدول التفصيلية، اضبط +الجدول أولًا على `يمكنه التحرير`. ويُخفى الجدول المضبوط على `لا وصول` عن الأعضاء في +ذلك الدور. + +## صلاحيات الجدول + +عند ضبط جدول على `يمكنه التحرير`، اضبط مجالات الصلاحيات التالية: + +| مجال الصلاحية | ما يتحكم فيه | +| --- | --- | +| صلاحيات طرق العرض | ما إذا كان الدور يستطيع إنشاء طرق العرض أو تحديثها أو حذفها، وما إذا كان يستطيع رؤية `جميع طرق العرض` أو `طرق عرض محددة` فقط. | +| صلاحيات السجلات | ما إذا كان الدور يستطيع إنشاء السجلات أو تحديثها أو حذفها أو التعليق عليها أو نسخها. ويمكن أن تكون السجلات الظاهرة `جميع السجلات` أو السجلات المطابقة لشروط التصفية. | +| صلاحيات الحقول | ما إذا كان الدور يستطيع رؤية القيم أو تحديثها أو إنشائها في حقول محددة. ويجب أن يظل الحقل الأساسي ظاهرًا. | +| صلاحيات الاستيراد والتصدير | ما إذا كان الدور يستطيع استيراد البيانات إلى الجدول أو تصدير بيانات الجدول. | + +صلاحيات الجدول في مصفوفة الصلاحيات + +تلائم عوامل تصفية السجلات نطاقات الوصول التي تتغير حسب المسؤول أو القسم +أو حقول مشابهة. فمثلًا، يتيح شرط مثل `مسؤول المبيعات` `هو` +`المستخدم الحالي` لكل مندوب مبيعات رؤية سجلاته وحدها. ويمكن لصلاحيات +الحقول أيضًا إخفاء قيم الحقول الحساسة أو قفلها في السجلات التي +يستطيع الدور الوصول إليها. + +## الدور الافتراضي + +إعداد الدور الافتراضي في مصفوفة الصلاحيات + +استخدم `الدور الافتراضي` للأعضاء الذين لم يُعيّن لهم أي دور مخصص. ويمكنك +اختيار دور مخصص مفعّل، أو اختيار `الصلاحية مرفوضة` حتى لا يتمكن هؤلاء +الأعضاء من الوصول إلى المحتوى الخاضع لمصفوفة الصلاحيات. + +## ملاحظات + +- بعد تفعيل مصفوفة الصلاحيات، يخضع لها المستخدمون الذين تقل صلاحيتهم في المساحة عن + `المدير`، ما لم يُضافوا بصفتهم مسؤولين عن مصفوفة الصلاحيات. +- يُضاف المستخدم الذي يفعّل مصفوفة الصلاحيات تلقائيًا إلى + `المسؤولون`. +- تُفعّل الأدوار المخصصة الجديدة عند إنشائها من `إضافة دور`، لكن يظل كل + جدول وتطبيق ومسار عمل بحاجة إلى إعداد وصول خاص به. +- يُخفى الجدول المضبوط على `لا وصول` لدور ما عن ذلك الدور، حتى إذا كانت + خيارات صلاحياته التفصيلية قد عُدلت سابقًا. +- يمكن أن يؤدي تعيين دور من `إضافة مستخدم` أو `إضافة من المؤسسة` إلى إضافة الأعضاء + أو الأقسام المحددة بصفتهم متعاونين في قاعدة البيانات. ثم تضيّق مصفوفة الصلاحيات + نطاق ما يمكنهم الوصول إليه داخل قاعدة البيانات. + +للتعرف على مستويات الصلاحيات الأساسية للمساحة وقاعدة البيانات، راجع [صلاحيات التعاون](/ar/basic/space/space-permission). diff --git a/ar/basic/authority-matrix/authority-matrix-practical-guide.mdx b/ar/basic/authority-matrix/authority-matrix-practical-guide.mdx new file mode 100644 index 00000000..fbba3645 --- /dev/null +++ b/ar/basic/authority-matrix/authority-matrix-practical-guide.mdx @@ -0,0 +1,218 @@ +--- +title: "إرشادات مصفوفة الصلاحيات" +description: "اضبط أدوار مصفوفة الصلاحيات لفريق مبيعات يحتاج إلى بيانات مشتركة، ووصول إلى السجلات بحسب الملكية، وإدخال بيانات مقيّد." +--- + +{/* mintlify-resync: 2026-05-28 */} +يستخدم هذا الدليل قاعدة بيانات للمبيعات تضم ثلاثة جداول: `العملاء` و`طلبات المبيعات` +و`المنتجات`. والهدف هو تمكين كل دور من العمل بالبيانات التي يحتاجها +دون كشف قاعدة البيانات كاملة. + +| الدور | هدف الوصول | +| --- | --- | +| مدير المبيعات | رؤية بيانات العملاء والمبيعات، والتعليق على المنتجات، وتجنب تغيير أسعارها. | +| مندوب المبيعات | رؤية عملائه وطلباته وتحديثها فقط، وإنشاء عملاء جدد، وتجنب حذف الطلبات المكتملة. | +| موظف إدخال البيانات | إضافة منتجات جديدة دون رؤية المنتجات أو العملاء أو الطلبات الموجودة. | + +فعّل مصفوفة الصلاحيات قبل الاعتماد على صلاحيات الأدوار. + +تفعيل مصفوفة الصلاحيات + +## إنشاء الأدوار + + + + افتح صفحة مصفوفة الصلاحيات في قاعدة البيانات وفعّل المفتاح الرئيسي. ويُضاف + المستخدم الذي يفعّلها بصفته مسؤولًا. + + + انقر على `إضافة دور` وأنشئ `مدير المبيعات` و`مندوب المبيعات` و`موظف إدخال + البيانات`. + + + +إنشاء ثلاثة أدوار: مدير المبيعات ومندوب المبيعات وموظف إدخال البيانات + +## إعداد مدير المبيعات + +يحتاج مدير المبيعات إلى رؤية واسعة، لكن ينبغي حماية أسعار المنتجات +من التعديلات غير المقصودة. + +| العقدة | الإعداد | +| --- | --- | +| العملاء | اضبط الجدول على `يمكنه التحرير`. واترك صلاحيات السجلات والحقول مفتوحة حتى يتمكن الدور من رؤية بيانات العملاء. | +| طلبات المبيعات | اضبط الجدول على `يمكنه التحرير`. واترك صلاحيات السجلات والحقول مفتوحة حتى يتمكن الدور من مراجعة نشاط المبيعات. | +| المنتجات | اضبط الجدول على `يمكنه التحرير`، ثم اسمح فقط بـ`قراءة السجل` و`التعليق على السجل` في صلاحيات السجلات. | + +إعداد صلاحيات مدير المبيعات + +عيّن الأعضاء من قائمة الأدوار باستخدام `إضافة مستخدم` أو `إضافة من المؤسسة`، +ثم تأكد من تفعيل مفتاح الدور. + +إضافة أعضاء إلى دور مدير المبيعات + +بعد الإعداد، يستطيع مدير المبيعات مراجعة بيانات العملاء والطلبات، والتعليق على +المنتجات، وتجنب تغيير سجلات المنتجات. + +طريقة عرض مدير المبيعات بعد إعداد الصلاحيات + +## إعداد مندوب المبيعات + +يستخدم دور مندوب المبيعات عوامل تصفية السجلات حتى لا يعمل كل مندوب إلا على السجلات +التي يكون هو مسؤولها. + +### العملاء + +اضبط `العملاء` على `يمكنه التحرير`. + +| مجال الصلاحية | الإعداد | +| --- | --- | +| صلاحيات السجلات | اختر السجلات التي تطابق شروطًا محددة. أضف عامل تصفية مثل `مندوب المبيعات` `هو` `أنا (المستخدم الحالي)`. | +| عمليات السجلات | اسمح بـ`قراءة السجل` و`تحديث السجل` و`إنشاء سجل`. واترك `حذف السجل` متوقفًا إذا كان ينبغي ألا يحذف المندوبون سجلات العملاء. | + +إعداد عامل تصفية للسجلات حسب المسؤول لمندوب المبيعات + +إعداد صلاحيات العملاء لمندوب المبيعات + +### طلبات المبيعات + +اضبط `طلبات المبيعات` على `يمكنه التحرير`. + +| مجال الصلاحية | الإعداد | +| --- | --- | +| صلاحيات السجلات | استخدم عامل التصفية نفسه القائم على المسؤول، مثل `مندوب المبيعات` `هو` `أنا (المستخدم الحالي)`. | +| عمليات السجلات | اسمح بـ`قراءة السجل` و`إنشاء سجل`. واترك `تحديث السجل` و`حذف السجل` متوقفين إذا كان ينبغي إبقاء الطلبات المكتملة دون تغيير. | +| صلاحيات الحقول | أخفِ الحقول الحساسة مثل `طريقة الدفع` بإيقاف `قراءة السجل` لذلك الحقل. | + +إعداد صلاحيات الطلبات لمندوب المبيعات + +عيّن مندوبي المبيعات للدور وأبقِ الدور مفعّلًا. + +إضافة أعضاء إلى دور مندوب المبيعات + +لا يرى كل مندوب مبيعات الآن إلا سجلات العملاء والطلبات المطابقة لعامل تصفية +المسؤول. + +معاينة طريقة عرض مندوب المبيعات + +## إعداد موظف إدخال البيانات + +لا يحتاج موظف إدخال البيانات إلا إلى إضافة المنتجات. + +| العقدة | الإعداد | +| --- | --- | +| المنتجات | اضبط الجدول على `يمكنه التحرير`. وفي صلاحيات السجلات، اسمح فقط بـ`إنشاء سجل`. | +| حقول المنتجات | إذا كان ينبغي أن تظل بيانات الطلبات المرتبطة مخفية، فأوقف `قراءة السجل` للحقل المرتبط `الطلبات`. | +| العملاء وطلبات المبيعات | أبقِ هذين الجدولين على `لا وصول`. | + +إعداد صلاحيات موظف إدخال البيانات + +عيّن موظفي إدخال البيانات للدور وأبقِ الدور مفعّلًا. + +إضافة أعضاء إلى دور موظف إدخال البيانات + +بعد الإعداد، يستطيع موظف إدخال البيانات إضافة سجلات منتجات جديدة، لكنه لا يستطيع تصفح +بيانات المنتجات أو العملاء أو الطلبات الموجودة. + +معاينة طريقة عرض موظف إدخال البيانات + +## طريقة عرض مراجعة المبيعات + +استخدم هذا الإعداد لمراجعات المبيعات: يستطيع المندوبون رؤية قائمة العملاء كاملة، لكن لا يمكنهم تحرير إلا العملاء المسؤولين عنهم. + +أثناء المراجعة، قد يحتاج المندوبون إلى رؤية كل سجل عميل لمقارنة أنماط المتابعة +وحالة العملاء. ومع ذلك، ينبغي أن يظل التحرير اليومي مقصورًا على +العملاء المسؤولين عنهم، حتى لا يغيّروا سجلات مندوب آخر عن طريق الخطأ. + +احتفظ بدور `مندوب المبيعات` الحالي، ثم أضف دورًا للقراءة فقط لإتاحة رؤية +العملاء على مستوى الشركة. يستطيع المندوب استخدام دور القراءة فقط لرؤية جميع العملاء، +واستخدام دور `مندوب المبيعات` لتحديث العملاء المسؤول عنهم فقط. + +### إنشاء دور للقراءة فقط + +انقر على `إضافة دور` وأنشئ دورًا للقراءة فقط، مثل `عارض العملاء العام`. + +### إعداد الوصول إلى العملاء + +اضبط `العملاء` على `يمكنه التحرير`. وفي صلاحيات السجلات، اسمح فقط بـ`قراءة السجل`. +لا تفعّل `تحديث السجل` أو `حذف السجل` أو `إنشاء سجل`. واترك +عامل تصفية السجلات فارغًا حتى يتمكن هذا الدور من رؤية جميع سجلات العملاء. + +إعداد صلاحيات العملاء للقراءة فقط لعارض العملاء العام + +### تعيين مندوبي المبيعات + +عُد إلى قائمة الأدوار وأضف مندوبي المبيعات الذين يحتاجون إلى وصول للمراجعة إلى +`عارض العملاء العام`. + +إضافة أعضاء إلى دور عارض العملاء العام + +عندما يكون للمستخدم دورا `مندوب المبيعات` و`عارض العملاء العام` معًا، يجمع Teable +الصلاحيات. يستطيع المستخدم رؤية جميع سجلات العملاء، لكن لا يمكنه تحديث إلا +السجلات التي يسمح بها دور `مندوب المبيعات` القائم على المسؤول. + +طريقة عرض مندوب المبيعات مع صلاحيات عارض العملاء العام diff --git a/ar/basic/automation.mdx b/ar/basic/automation.mdx new file mode 100644 index 00000000..1c26dd26 --- /dev/null +++ b/ar/basic/automation.mdx @@ -0,0 +1,87 @@ +--- +title: "نظرة عامة" +description: "أنشئ تدفقات عمل مؤتمتة بالذكاء الاصطناعي أو بالتهيئة اليدوية." +--- + +{/* mintlify-resync: 2026-05-26 */} +يجعل Teable Automation تدفقات العمل القوية بسيطة. لا شيفرة، ولا سحب وإفلات، ولا إعداد معقد. ما عليك سوى إخبار الذكاء الاصطناعي بما تحتاج إليه بلغة طبيعية، وسيتولى Teable الأعمال المتكررة نيابةً عنك. + +## الإنشاء بالذكاء الاصطناعي (من الصفر) + +هذه أسهل طريقة للبدء. افتح أي جدول، وانقر على **دردشة الذكاء الاصطناعي** في الشريط الجانبي الأيمن، وصِف ما تريده: + +- *"عند وصول طلب جديد، أرسل إشعارًا إلى Slack يتضمن اسم العميل والمبلغ."* +- *"أرسل إليّ صباح كل اثنين ملخصًا بالمهام المتأخرة."* +- *"عندما يرسل شخص نموذج الملاحظات، صنّفه وحدّث حقل الفئة."* + +ينشئ الذكاء الاصطناعي الأتمتة كاملةً ويختبرها نيابةً عنك، بما في ذلك المشغّل والإجراءات وربط الحقول. راجع النتائج في لوحة الأتمتة ثم فعّلها. + +## الإنشاء بالذكاء الاصطناعي (بدءًا من المشغّل) + +يمكنك أيضًا البدء من مشغّل محدد وترك الذكاء الاصطناعي ينشئ الإجراءات: + +1. **إضافة مشغّل** — اختر نوع المشغّل (مثل "عند إنشاء سجل") وهيّئه. +2. **إضافة إجراء** — انقر على **+**، وانتقل إلى **الإنشاء بالذكاء الاصطناعي**، واختر **تشغيل برنامج نصي**. +3. في لوحة التهيئة، انقر على **فتح المحرر**. +4. اختر من **الاقتراحات** للبدء بسرعة، أو صِف ما تحتاج إليه بكلماتك. +5. ينشئ الذكاء الاصطناعي شيفرة JavaScript. راجعها وانقر على **تطبيق**. +6. انقر على **اختبار** لتشغيل البرنامج النصي ببيانات حقيقية، ثم انقر على **تمكين** لسير العمل. + +## الإنشاء يدويًا + +يمكنك أيضًا إنشاء عمليات الأتمتة خطوة بخطوة باستخدام الإجراءات المدمجة: + +1. **إضافة مشغّل** — اختر نوع المشغّل والجدول وهيّئ الحقول. انقر على **اختبار**. +2. **إضافة إجراء** — اختر نوع الإجراء (إنشاء سجل أو إرسال بريد إلكتروني أو طلب HTTP، إلخ)، واربط قيم الحقول باستخدام **+** لإدراج متغيرات ديناميكية. انقر على **إنشاء معاينة** أو **التشغيل وفق التهيئة**. +3. **التمكين** — انقر على مفتاح التبديل في الزاوية العلوية اليسرى. + +## تحرير سير عمل نشط + +تُحفظ التغييرات بوصفها مسودة. ويستمر سير العمل النشط في العمل بالإصدار السابق حتى تنقر على **تطبيق التحديث**. + +## الأسرار + +استخدم **الأسرار** لتخزين مفاتيح API وبيانات الاعتماد والتهيئة التي تحتاج إليها الأتمتة في وقت التشغيل. افتح سير العمل في علامة تبويب التحرير، ثم انقر على **الأسرار** بجوار عناصر التحكم في الاختبار. + +تقتصر الأسرار على الأتمتة الحالية. ويمكن لإجراءات البرامج النصية قراءتها من متغيرات البيئة مثل `process.env.EXTERNAL_API_KEY`. القيم المحفوظة مخصصة للكتابة فقط؛ أدخل قيمة جديدة لتحديث أحد الأسرار. + +## سجل التشغيل + +افتح سير عمل ← **سجل التشغيل**. تسرد لوحة السجل كل تشغيل مع حالته والوقت المستغرق وتفاصيل الخطوات. انقر على تشغيل لفحص مدخلات كل خطوة ومخرجاتها. + +استخدم عوامل تصفية السجل لتضييق القائمة بحسب الحالة أو المدة أو النطاق الزمني. بالنسبة إلى عمليات التشغيل الفاشلة، استخدم لوحة تفاصيل التشغيل للتشخيص أو إعادة التشغيل: + +- يفتح **التشخيص** دردشة الذكاء الاصطناعي مع التشغيل الفاشل بوصفه سياقًا، بحيث يمكنك مطالبة Cuppy بشرح سبب الفشل. +- يعيد **التشغيل الكامل** تنفيذ جميع الخطوات وقد ينشئ سجلات أو رسائل أو إشعارات مكررة. +- يتوفر **الاستئناف من الخطوة الفاشلة** عندما يستطيع Teable المتابعة بأمان من تلك الخطوة. + +عندما لا يتوفر **الاستئناف من الخطوة الفاشلة**، يوضح Teable سبب اقتصار الخيار على **التشغيل الكامل**. قد يحدث ذلك إذا عُدّل سير العمل بعد التشغيل الفاشل، أو كان معطلًا، أو لم تكتمل أي خطوة بنجاح قبل الفشل، أو كانت بيانات خطوة التحكم مفقودة. + +تُميّز محاولات إعادة التشغيل بأنها محاولات أخرى وترتبط بالتشغيل الأصلي. + +## الحدود + +| العنصر | الحد | +|---|---| +| معدل إرسال البريد | 5 / ثانية / قاعدة بيانات | +| معدل استلام خطافات الويب | 50 / ثانية / قاعدة بيانات، و2 / ثانية / سير عمل | +| حجم حمولة خطاف الويب | 4 MB | +| حصة التشغيل والاحتفاظ بالسجل | تختلف حسب الخطة | + +## الأسئلة الشائعة + + + + في Teable Cloud، يرسل Teable إشعارات باستخدام عمليات تشغيل الأتمتة إلى مالكي المساحة عندما تقترب المساحة من حصتها أو تتجاوزها، أو عندما تزداد العمليات بشدة خلال فترة قصيرة. + + بالنسبة إلى تذكيرات الحصة، يرسل Teable إشعارًا عندما تبلغ فترة الفوترة الحالية 80% أو 90% من حصة التشغيل المتاحة. + + قد تتلقى الخطط الاحترافية وما فوقها تنبيهات بعد تجاوز عمليات تشغيل الأتمتة للحصة. وقد يذكّرك Teable كل 6 ساعات تقريبًا. + + قد يرسل Teable Cloud أيضًا إشعارات حرجة بشأن الاستخدام غير المعتاد، مثل زيادة يومية كبيرة أو طفرة مفاجئة خلال مدة قصيرة. يستخدم النظام أنماط التشغيل اليومية وكل ساعة مؤخرًا، وقد تتغير الحدود الدقيقة. + + يفتح الإشعار **إعدادات المساحة** ← **الفوترة**. وعند توفر البيانات، يعرض سير العمل وقاعدة البيانات اللذين أسهما بأكبر عدد من عمليات التشغيل. تستند تذكيرات الحصة إلى العمليات المحتسبة ضمن حد خطتك؛ وقد تراعي فحوص الاستخدام غير المعتاد أيضًا عمليات التشغيل الأخيرة ذات الحالة **ناجح** أو **فاشل** أو **معلّق**. + + إذا كان الاستخدام متوقعًا، ففكّر في شراء حصة أتمتة إضافية أو تغيير خطتك. وإذا كان غير متوقع، فراجع سير العمل الأعلى استخدامًا وعدّل الأتمتة المرتبطة أو أوقفها مؤقتًا. + + diff --git a/ar/basic/automation/actions/ai/ai-generate.mdx b/ar/basic/automation/actions/ai/ai-generate.mdx new file mode 100644 index 00000000..7030323b --- /dev/null +++ b/ar/basic/automation/actions/ai/ai-generate.mdx @@ -0,0 +1,191 @@ +--- +title: "الإنشاء بالذكاء الاصطناعي" +description: "استخدم نماذج الذكاء الاصطناعي لإنشاء نص أو بيانات منظّمة في سير عمل" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، وينتقي الإجراءات الملائمة، ويربط الحقول، ويهيئ سير العمل بالكامل تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +يرسل مطالبة إلى نموذج لغوي كبير ويعيد نصًا أو JSON منظّمًا. استخدمه لتصنيف البيانات أو استخراجها أو تلخيصها أو إنشائها استنادًا إلى سجلاتك. + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| المطالبة | نعم | تعليماتك للذكاء الاصطناعي. انقر على **+** لإدراج متغيرات ديناميكية من الخطوات السابقة | +| النموذج | لا | اختر نموذجًا. يُستخدم نموذج النظام افتراضيًا. تتوفر أيضًا نماذج الرؤية والاستدلال | +| درجة الحرارة | لا | تتحكم في العشوائية: 0 = الأكثر حتمية، و1 = الأكثر إبداعًا. تكون القيمة الافتراضية عادةً نحو 0.7 | +| نوع المخرجات | لا | **نص** (افتراضي) — يعيد نصًا حرًا. **JSON** — يعيد JSON منظّمًا يطابق مخططًا تحدده | +| المرفقات | لا | ارفع صورًا أو ملفات PDF أو مستندات Word أو ملفات Excel. يتطلب نموذجًا يدعم الرؤية | + +## قدرات النماذج + +| الوسم | المعنى | +|---|---| +| **الرؤية** | يستطيع قراءة الصور وملفات PDF ومستندات Word وملفات Excel المرفقة بالمطالبة وتحليلها | +| **الاستدلال** | يعيد الإجابة والاستدلال خطوة بخطوة معًا، وهو مفيد للتحليلات المعقدة | + +يمكنك ربط نماذج ذكاء اصطناعي من جهات خارجية عبر **المساحة ← الإعدادات ← عمليات التكامل**. يتيح لك ذلك استخدام نماذج من OpenAI وAnthropic وGoogle وموفرين آخرين. + +## كيفية الإعداد + +1. أضف إجراء **الإنشاء بالذكاء الاصطناعي** إلى سير العمل. +2. اكتب **المطالبة**، وهي التعليمات التي سيتبعها الذكاء الاصطناعي. انقر على **+** لإدراج قيم ديناميكية، مثل نص تذكرة دعم أو محتوى نموذج مُرسل أو وصف منتج. +3. (اختياري) اختر **نموذجًا** إذا أردت استخدام نموذج محدد بدلًا من الافتراضي. +4. (اختياري) عدّل **درجة الحرارة**. تمنح القيم المنخفضة (0–0.3) مخرجات أكثر اتساقًا وقابلية للتوقع، بينما تمنح القيم الأعلى (0.7–1.0) مخرجات أكثر تنوعًا وإبداعًا. +5. (اختياري) غيّر **نوع المخرجات** إلى **JSON** إذا كنت تحتاج إلى بيانات منظّمة. حدّد مخطط JSON ليعرف الذكاء الاصطناعي التنسيق المطلوب إعادته. +6. (اختياري) أضف **مرفقات** إذا أردت أن يقرأ الذكاء الاصطناعي مستندات أو صورًا (يتطلب نموذج رؤية). +7. احفظ الإجراء. ستتاح استجابة الذكاء الاصطناعي للخطوات اللاحقة عبر منتقي المتغيرات **+**. + +## نصائح لكتابة المطالبات + +تعتمد جودة مخرجات الذكاء الاصطناعي اعتمادًا كبيرًا على مطالبتك. إليك إرشادات عملية: + +- **كن محددًا.** بدلًا من "صنّف هذا"، اكتب "صنّف تذكرة الدعم هذه ضمن إحدى الفئات التالية: الفوترة، تقنية، الحساب، أخرى." +- **قدّم أمثلة في المطالبة.** وضّح للذكاء الاصطناعي ما تتوقعه: + ``` + صنّف تذكرة الدعم التالية. أعد اسم الفئة فقط. + + الفئات: الفوترة، تقنية، الحساب، أخرى + + أمثلة: + - "لا أستطيع تسجيل الدخول إلى حسابي" ← الحساب + - "مبلغ فاتورتي غير صحيح" ← الفوترة + - "تعيد واجهة API خطأ 500" ← تقنية + + التذكرة: {{Ticket Description}} + ``` +- **حدّد تنسيق المخرجات.** إذا أردت تنسيقًا معينًا، فاذكره صراحةً: "أعد اسم الفئة فقط دون أي شيء آخر" أو "أعد كائن JSON بالمفاتيح: category وconfidence وreason." +- **حافظ على التركيز.** تؤدي مهمة واحدة في كل مطالبة إلى نتائج أفضل من مطالبة الذكاء الاصطناعي بتنفيذ عدة مهام في وقت واحد. + +## مخرجات JSON + +عند ضبط نوع المخرجات على **JSON**، يعيد الذكاء الاصطناعي بيانات منظّمة بدلًا من النص الحر. يفيد ذلك عندما تحتاج إلى استخراج عدة معلومات واستخدام كل منها على حدة في خطوات لاحقة. + +مثال على مطالبة لإخراج JSON: + +``` +استخرج المعلومات التالية من رسالة الفاتورة هذه. أعد JSON بهذه المفاتيح: +- vendor_name (سلسلة نصية) +- invoice_number (سلسلة نصية) +- amount (رقم) +- due_date (سلسلة نصية بتنسيق YYYY-MM-DD) + +نص الرسالة: {{Email Body}} +``` + +يعيد الذكاء الاصطناعي نتيجة مثل: + +```json +{ + "vendor_name": "شركة أكمي", + "invoice_number": "INV-2024-001", + "amount": 1250.00, + "due_date": "2024-03-15" +} +``` + +يصبح كل مفتاح في JSON متغيرًا مستقلًا متاحًا في الخطوات اللاحقة، بحيث يمكنك ربط `vendor_name` بحقل و`amount` بحقل آخر، وهكذا. + +## نماذج الرؤية والمرفقات + +تستطيع نماذج الرؤية تحليل الصور والمستندات. أرفق الملفات بالمطالبة وسيقوم الذكاء الاصطناعي «بقراءتها»: + +- **الصور:** لقطات الشاشة والصور الفوتوغرافية والمخططات والرسوم البيانية. +- **ملفات PDF:** الفواتير والعقود والتقارير. +- **ملفات Word / Excel:** المستندات وجداول البيانات. + +حالات الاستخدام: استخراج النص من المستندات الممسوحة ضوئيًا، وقراءة البيانات من صور الفواتير، وتحليل صور المخططات، ومعالجة النماذج المرفوعة. + +تأكد من اختيار نموذج يحمل وسم **الرؤية**. ستتجاهل النماذج التي لا تدعم الرؤية المرفقات. + +## نظام الرصيد + +تستهلك كل عملية استدعاء للإنشاء بالذكاء الاصطناعي رصيدًا استنادًا إلى: + +- **النموذج** المستخدم (تستهلك النماذج الأقوى رصيدًا أكبر لكل رمز). +- **عدد الرموز** المعالجة (في المدخلات والمخرجات). + +تظهر تكلفة الرصيد الدقيقة في لوحة الاختبار بعد تشغيل اختبار. راقب استخدام رصيدك في إعدادات الحساب، ولا سيما عند استخدام الإنشاء بالذكاء الاصطناعي داخل حلقة تعالج سجلات كثيرة. + +## أمثلة عملية للمطالبات + +### التصنيف + +``` +صنّف ملاحظات العميل هذه إلى: إيجابية أو سلبية أو محايدة. +أعد التصنيف فقط. + +الملاحظات: {{Feedback Text}} +``` + +### استخراج البيانات + +``` +استخرج جميع عناوين البريد الإلكتروني المذكورة في النص التالي. +أعدها في مصفوفة JSON من السلاسل النصية. + +النص: {{Message Body}} +``` + +### التلخيص + +``` +لخّص ملاحظات الاجتماع التالية في 3 نقاط. +ركّز على بنود العمل والقرارات المتخذة. + +الملاحظات: {{Meeting Notes}} +``` + +### إنشاء المحتوى + +``` +اكتب رسالة متابعة احترافية إلى {{Customer Name}} بشأن استفساره عن {{Product Name}}. +اجعلها أقل من 150 كلمة، واذكر أننا سنرد خلال 24 ساعة. +``` + +### الترجمة + +``` +ترجم النص التالي من {{Source Language}} إلى {{Target Language}}. +حافظ على التنسيق الأصلي. + +النص: {{Content}} +``` + +## حالات الاستخدام + +- **تصنيف تذاكر الدعم حسب الموضوع.** صنّف التذاكر الواردة تلقائيًا لتوجيهها إلى الفريق المناسب. +- **استخراج بيانات منظّمة من الفواتير أو الرسائل.** استخرج المبالغ والتواريخ والأسماء والأرقام المرجعية في حقول منفصلة. +- **تلخيص الحقول النصية الطويلة.** اختصر ملاحظات الاجتماعات أو الأوصاف أو التعليقات في ملخصات موجزة. +- **إنشاء محتوى بريد مخصص.** أنشئ نص رسالة مخصصًا استنادًا إلى بيانات السجل. +- **تحليل الصور والمستندات.** استخدم نماذج الرؤية لقراءة الفواتير أو الإيصالات أو لقطات الشاشة المرفوعة. + +## نصائح + +- استخدم **لوحة الاختبار** لتحسين مطالبتك قبل تفعيل الأتمتة. نفّذ اختبارات ببيانات حقيقية للتحقق من تنسيق المخرجات وجودتها. +- للحصول على نتائج متسقة، ولا سيما في التصنيف، اضبط درجة الحرارة على 0 أو قيمة قريبة منه. +- يكون وضع مخرجات JSON أكثر موثوقية عندما تقدم مخططًا واضحًا في مطالبتك. اسرد دائمًا المفاتيح المتوقعة وأنواعها. +- إذا كنت تعالج سجلات كثيرة في [حلقة](../logic/loop-run)، فأبقِ مطالباتك موجزة لتقليل استخدام الرموز وتكاليف الرصيد. +- اربط موفري ذكاء اصطناعي إضافيين عبر **المساحة ← الإعدادات ← إعدادات الذكاء الاصطناعي** إذا لم تلبِّ النماذج الافتراضية احتياجاتك. للتفاصيل، راجع [نماذج الذكاء الاصطناعي المخصصة](/ar/basic/ai/custom-model). + +اربط نماذج ذكاء اصطناعي من جهات خارجية عبر **المساحة ← الإعدادات ← إعدادات الذكاء الاصطناعي**. + +## موضوعات ذات صلة + +- [الحلقة (دفعة)](../logic/loop-run) — معالجة عدة سجلات بالذكاء الاصطناعي في تشغيل أتمتة واحد +- [تشغيل برنامج نصي](/ar/basic/automation/ai/scripting/runscript) — للمنطق المخصص الذي يتجاوز الإنشاء المستند إلى المطالبات +- [إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) +- [تحديث سجل](/ar/basic/automation/actions/records/update-record) diff --git a/ar/basic/automation/actions/ai/ai-script.mdx b/ar/basic/automation/actions/ai/ai-script.mdx new file mode 100644 index 00000000..f7b65f6e --- /dev/null +++ b/ar/basic/automation/actions/ai/ai-script.mdx @@ -0,0 +1,53 @@ +--- +title: "تشغيل برنامج نصي" +description: "صِف ما تحتاج إليه بلغة طبيعية ودع الذكاء الاصطناعي يكتب منطق الأتمتة نيابةً عنك" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +هذه أقوى طريقة لإنشاء إجراءات الأتمتة. صِف ما تحتاج إليه، وسيكتب الذكاء الاصطناعي الشيفرة. لا يلزم امتلاك خبرة برمجية. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: ينشئ المشغّل، ويكتب البرنامج النصي، ويربط الحقول، ويهيئ سير العمل بالكامل تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"عند وصول تذكرة دعم جديدة، صنّفها حسب الموضوع وأسندها إلى الفريق المناسب."* + +## كيفية الاستخدام + +- **إضافة مشغّل** — اختر نوع المشغّل (مثل "عند إنشاء سجل") وهيّئه +- **إضافة إجراء** — انقر على **+**، وانتقل إلى **الإنشاء بالذكاء الاصطناعي**، ثم اختر **تشغيل برنامج نصي** +- **التحرير يدويًا** — انقر على **التحرير يدويًا** في لوحة التهيئة +- **الوصف أو الاختيار** — اختر اقتراحًا مدمجًا، أو اكتب طلبك في لوحة الذكاء الاصطناعي على اليمين +- **التطبيق** — ينشئ الذكاء الاصطناعي الشيفرة ويعرض مخطط تدفق مرئيًا على اليسار. انقر على **تطبيق** +- **الاختبار والتمكين** — انقر على **اختبار** للتشغيل باستخدام بيانات حقيقية، ثم انقر على **تمكين** لسير العمل + +## الاقتراحات المدمجة + +تقدم لوحة الذكاء الاصطناعي مطالبات جاهزة يمكنك النقر عليها لاستخدامها مباشرةً: + +- إرسال رسالة إلى Slack عند تحديث السجل +- إرسال رسالة إشعار عبر Gmail عند إنشاء سجل +- الإرسال إلى روبوت Teams عند إنشاء سجل +- إرسال رسالة بريد إلكتروني إليّ عند تغير الحالة +- تحديث السجلات عند تغير الحالة +- إرسال طلب HTTP إلى Zapier + +يمكنك أيضًا وصف مهمتك بلغة طبيعية: + +- *"احسب إجمالي الطلب مع ضريبة قدرها 10% وحدّث السجل"* +- *"عند إنشاء تذكرة دعم جديدة، صنّفها حسب الموضوع وأسندها إلى الفريق المناسب"* +- *"تحقق كل صباح من الفواتير المتأخرة وأرسل رسائل تذكير إلى العملاء"* + +## ربط خدمات الجهات الخارجية + +إذا كان برنامجك النصي يحتاج إلى Slack أو Gmail أو خدمات أخرى، فانقر على أزرار التكامل أعلى لوحة الذكاء الاصطناعي لربط حساباتك. سيستخدم الذكاء الاصطناعي هذه الاتصالات عند إنشاء الشيفرة. diff --git a/ar/basic/automation/actions/communication/send-email-overview.mdx b/ar/basic/automation/actions/communication/send-email-overview.mdx new file mode 100644 index 00000000..ff400212 --- /dev/null +++ b/ar/basic/automation/actions/communication/send-email-overview.mdx @@ -0,0 +1,103 @@ +--- +title: "نظرة عامة على إرسال البريد الإلكتروني" +description: "أرسل رسائل بريد إلكتروني مخصصة من سير عمل" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، وينتقي الإجراءات الملائمة، ويربط الحقول، ويهيئ سير العمل بالكامل تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +يرسل هذا الإجراء رسالة بريد إلكتروني إلى مستلم واحد أو أكثر. يمكنك تخصيص المستلمين والموضوع والنص وعنوان الرد، واستخدام قيم ديناميكية من الخطوات السابقة لتخصيص كل رسالة. + +تُرسل الرسائل افتراضيًا من خدمة البريد المدمجة في Teable. إذا احتجت إلى الإرسال من نطاقك، فهيّئ [خادم SMTP مخصصًا](/ar/basic/automation/actions/communication/smtp-sender). + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| إلى | نعم* | عناوين بريد المستلمين. افصل بين عدة عناوين بفواصل | +| الموضوع | نعم | سطر الموضوع. يدعم المتغيرات الديناميكية عبر **+** | +| النص | نعم | نص الرسالة. يدعم Markdown وHTML والمتغيرات الديناميكية | +| اسم المرسل | لا | اسم العرض الظاهر في صندوق بريد المستلم (مثل "دعم أكمي") | +| نسخة | لا | مستلمو النسخة | +| نسخة مخفية | لا | مستلمو النسخة المخفية | +| الرد إلى | لا | العنوان الذي يرد عليه المستلمون (إذا اختلف عن المرسل) | + +\* يجب إدخال واحد على الأقل من **إلى** أو **نسخة مخفية**. + +**حد المعدل:** 5 رسائل / ثانية / قاعدة بيانات. + +## كيفية الإعداد + +1. أضف إجراء **إرسال بريد إلكتروني** إلى سير العمل. +2. في حقل **إلى**، أدخل عنوانًا ثابتًا أو انقر على **+** لإدراج قيمة ديناميكية (مثل حقل البريد الإلكتروني من سجل المشغّل). +3. اكتب **الموضوع**. انقر على **+** لتضمين قيم ديناميكية، مثل اسم السجل أو حالته. مثال: `طلب جديد من {{Customer Name}} — #{{Order ID}}`. +4. اكتب **النص**. يمكنك استخدام: + - **نص عادي** — ما عليك سوى كتابة رسالتك. + - **Markdown** — استخدم `**عريض**` و`*مائل*` و`- قوائم` و`[روابط](url)`، وغير ذلك. + - **HTML** — للتحكم الكامل في التنسيق، اكتب وسوم HTML مباشرةً. + - **متغيرات ديناميكية** — انقر على **+** في أي موضع من النص لإدراج قيم من الخطوات السابقة. +5. (اختياري) اضبط **اسم المرسل** أو **نسخة** أو **نسخة مخفية** أو **الرد إلى** حسب الحاجة. +6. احفظ الإجراء. + +## استخدام المتغيرات في الموضوع والنص + +تتيح لك المتغيرات تخصيص كل رسالة. انقر على زر **+** في أي حقل نصي لفتح منتقي المتغيرات. يمكنك الإشارة إلى: + +- **بيانات المشغّل:** حقول السجل الذي شغّل الأتمتة (مثل اسم العميل وبريده الإلكتروني ومبلغ الطلب). +- **مخرجات الإجراء السابق:** بيانات الخطوات السابقة، مثل معرّف سجل منشأ حديثًا أو نص أنشأه الذكاء الاصطناعي. + +مثال لنص يتضمن متغيرات: + +``` +مرحبًا {{Customer Name}}، + +تم تأكيد طلبك رقم {{Order ID}}. + +**الإجمالي:** ${{Order Amount}} +**التسليم المتوقع:** {{Delivery Date}} + +شكرًا لشرائك! +``` + +## خيارات تنسيق النص + +| التنسيق | كيفية الاستخدام | الأنسب لـ | +|---|---|---| +| نص عادي | اكتب رسالتك فحسب | الإشعارات البسيطة | +| Markdown | استخدم صياغة Markdown ‏(`**عريض**` و`# عنوان`، إلخ) | الرسائل المنظّمة ذات التنسيق | +| HTML | اكتب وسوم HTML ‏(`

` و`

` و``، إلخ) | الرسائل المصممة بالكامل بتخطيطات مخصصة | + +يمكنك مزج Markdown والمتغيرات الديناميكية في النص نفسه. ويمنحك HTML أكبر قدر من التحكم في تصميمات البريد المعقدة. + +## حالات الاستخدام + +- **إرسال تأكيدات الطلبات.** عند إنشاء طلب جديد، أرسل رسالة تتضمن تفاصيله ورسالة شكر. +- **إشعار أعضاء الفريق بتغيرات الحالة.** عندما تنتقل مهمة إلى "محظورة"، أرسل رسالة إلى المكلّف بها ومديره. +- **تسليم تقارير مجدولة.** ادمج هذا الإجراء مع مشغّل مجدول وإجراء جلب السجلات لإرسال ملخص أسبوعي. +- **إرسال تواصل مخصص.** استخدم بيانات السجل لتخصيص موضوع كل مستلم ونص رسالته. +- **تأكيد عمليات إرسال النماذج.** بعد إرسال نموذج، أرسل إلى صاحبه تأكيدًا يتضمن ردوده. + +## نصائح لإمكانية التسليم + +- **استخدم SMTP مخصصًا** إذا كنت ترسل رسائل كثيرة أو بالغة الأهمية للأعمال. تناسب خدمة Teable المدمجة الإشعارات الأساسية، لكن تزداد احتمالات وصول الرسائل من نطاقك إلى صندوق الوارد. +- **تجنب المحتوى الشبيه بالبريد العشوائي** في الموضوع والنص، فقد تؤدي الأحرف الكبيرة وعلامات التعجب والروابط المفرطة إلى تشغيل عوامل تصفية البريد العشوائي. +- **اضبط عنوانًا للرد** كي يتمكن المستلمون من الرد إلى صندوق بريد حقيقي بدلًا من عنوان لا يستقبل الردود. +- **اختبر رسائلك** قبل تفعيل الأتمتة في الإنتاج. شغّل الأتمتة يدويًا ببيانات اختبار للتحقق من التنسيق والتسليم. + +## موضوعات ذات صلة + +- [إعداد SMTP والمرسل](/ar/basic/automation/actions/communication/smtp-sender) — إرسال الرسائل من نطاقك +- [الحلقة (دفعة)](../logic/loop-run) — إرسال رسائل جماعية عبر التكرار على قائمة سجلات +- [الإنشاء بالذكاء الاصطناعي](/ar/basic/automation/actions/ai/ai-generate) — إنشاء محتوى بريد مخصص بالذكاء الاصطناعي diff --git a/ar/basic/automation/actions/communication/smtp-sender.mdx b/ar/basic/automation/actions/communication/smtp-sender.mdx new file mode 100644 index 00000000..b7f9d7a9 --- /dev/null +++ b/ar/basic/automation/actions/communication/smtp-sender.mdx @@ -0,0 +1,83 @@ +--- +title: "إعداد SMTP والمرسل" +description: "هيّئ خادم SMTP مخصصًا وهوية مرسل لرسائل الأتمتة" +--- + +تُرسل رسائل الأتمتة افتراضيًا من خدمة البريد المدمجة في Teable. ومع أن ذلك يناسب الإشعارات الأساسية، فقد ترغب في إرسال الرسائل من نطاقك لأغراض الهوية التجارية أو تحسين إمكانية التسليم أو الامتثال. وتتيح لك تهيئة SMTP المخصصة فعل ذلك تمامًا. + +عند تهيئة خادم SMTP مخصص، تأتي جميع الرسائل التي يرسلها ذلك الإجراء من خادم بريدك وعنوان مرسلك — فيرى المستلمون نطاقك، لا نطاق Teable. + +## متى تستخدم SMTP مخصصًا + +- **إرسال الرسائل من نطاق شركتك** (مثل `noreply@yourcompany.com` أو `support@yourcompany.com`) ليتعرف المستلمون على المرسل. +- **تحسين إمكانية التسليم.** تقل احتمالات وصول الرسائل من نطاقك إلى البريد العشوائي عند إعداد سجلات SPF وDKIM وDMARC بصورة صحيحة. +- **استيفاء متطلبات الامتثال.** تشترط بعض القطاعات أن تصدر الرسائل المؤتمتة من نطاق تتحكم فيه المؤسسة. +- **استخدام البنية الأساسية الحالية لبريدك.** وجّه الرسائل عبر خادم بريد شركتك لأغراض التسجيل أو الأرشفة أو الفحص الأمني. +- **حدود إرسال أعلى.** تخضع خدمة Teable المدمجة لحدود المعدل، وقد يدعم خادم SMTP الخاص بك معدل نقل أعلى. + +## التهيئة + +في إجراء **إرسال بريد إلكتروني**، انقر على خيار تهيئة النقل لإعداد خادم SMTP مخصص: + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| مضيف SMTP | نعم | عنوان خادم البريد (مثل `smtp.gmail.com`) | +| المنفذ | نعم | منفذ SMTP — عادةً 465 ‏(SSL) أو 587 ‏(STARTTLS) | +| اسم المستخدم | نعم | اسم مستخدم حساب SMTP (غالبًا عنوان بريدك الإلكتروني) | +| كلمة المرور | نعم | كلمة مرور حساب SMTP أو كلمة مرور خاصة بالتطبيق | +| عنوان المرسل | نعم | عنوان بريد المرسل الظاهر للمستلمين | + +## كيفية الإعداد + +1. افتح الأتمتة وانتقل إلى إجراء **إرسال بريد إلكتروني**. +2. انقر على خيار **تهيئة النقل** (أيقونة الترس أو الرابط قرب إعدادات المرسل). +3. أدخل تفاصيل خادم SMTP: + - **المضيف:** عنوان خادم SMTP لموفر بريدك. + - **المنفذ:** استخدم 465 مع SSL/TLS أو 587 مع STARTTLS. إذا لم تكن متأكدًا، فجرّب 465 أولًا. + - **اسم المستخدم:** حساب بريدك الإلكتروني أو اسم مستخدم SMTP. + - **كلمة المرور:** كلمة مرور بريدك، أو كلمة مرور خاصة بالتطبيق مع موفرين مثل Gmail. +4. اضبط **عنوان المرسل** — وهو ما يراه المستلمون بوصفه المرسل. +5. انقر على **اختبار** للتحقق من الاتصال. سيحاول Teable إرسال رسالة اختبار عبر خادم SMTP. +6. إذا نجح الاختبار، فاحفظ التهيئة. ستستخدم جميع الرسائل الصادرة من هذا الإجراء خادم SMTP الخاص بك. + +## إعدادات SMTP الشائعة حسب الموفر + +| الموفر | المضيف | المنفذ | ملاحظات | +|---|---|---|---| +| **Gmail** | `smtp.gmail.com` | 465 | يتطلب كلمة مرور تطبيق (لا كلمة مرور الحساب). راجع [إعداد Gmail IMAP](../../trigger/email/gmail-imap) | +| **Outlook / Microsoft 365** | `smtp.office365.com` | 587 | استخدم بيانات اعتماد حساب Microsoft | +| **Amazon SES** | `email-smtp.{region}.amazonaws.com` | 465 | استخدم بيانات اعتماد SES SMTP (لا بيانات اعتماد IAM) | +| **SendGrid** | `smtp.sendgrid.net` | 465 | اسم المستخدم هو `apikey`، وكلمة المرور هي مفتاح API | +| **Mailgun** | `smtp.mailgun.org` | 465 | استخدم بيانات اعتماد SMTP من إعدادات نطاق Mailgun | +| **Zoho Mail** | `smtp.zoho.com` | 465 | استخدم بيانات اعتماد حساب Zoho | +| **Yahoo Mail** | `smtp.mail.yahoo.com` | 465 | يتطلب كلمة مرور تطبيق | +| **Postmark** | `smtp.postmarkapp.com` | 587 | استخدم رمز API لخادم Postmark اسمًا للمستخدم وكلمة مرور | +| **مخصص / ذاتي الاستضافة** | عنوان خادمك | يختلف | راجع فريق تقنية المعلومات لمعرفة المضيف والمنفذ وبيانات الاعتماد | + +## الأخطاء الشائعة وحلولها + +عندما يفشل تشغيل في إرسال رسالة، افتح **سجل التشغيل** لسير العمل وتحقق من مخرجات خطوة **إرسال بريد إلكتروني**. بالنسبة إلى خادم SMTP مخصص، تعرض الخطوة الرفض الذي أعاده خادم البريد: رمز الرد، وأمر SMTP الذي فشل، والمستلمين المرفوضين، والمضيف. طابق ذلك مع الأسباب أدناه. + +| الخطأ | السبب المرجح | الحل | +|---|---|---| +| **رُفض الاتصال** | مضيف أو منفذ خاطئ | تحقق مجددًا من مضيف SMTP والمنفذ. جرّب التبديل بين 465 و587 | +| **فشلت المصادقة** | اسم مستخدم أو كلمة مرور خاطئة | تحقق من بيانات الاعتماد. بالنسبة إلى Gmail/Yahoo، استخدم كلمة مرور تطبيق بدلًا من كلمة مرور الحساب | +| **خطأ في الشهادة / فشلت مصافحة TLS** | عدم تطابق المنفذ والتشفير | يتوقع المنفذ 465 اتصال SSL، ويتوقع 587 اتصال STARTTLS. تأكد من توافق المنفذ مع تشفير الخادم | +| **رُفض عنوان المرسل** | لا يطابق عنوان المرسل حساب SMTP | يشترط بعض الموفرين أن يطابق عنوان المرسل الحساب المصادق عليه. راجع سياسة موفرك | +| **تجاوز حد المعدل** | إرسال رسائل كثيرة بسرعة كبيرة | خفّض وتيرة الإرسال أو رقِّ خطة البريد. استخدم الإرسال على دفعات مع فواصل زمنية عند الحاجة | +| **انتهاء المهلة** | مشكلة في جدار الحماية أو الشبكة | تأكد من أن شبكتك تسمح بالاتصالات الصادرة عبر منفذ SMTP. لمستخدمي Teable ذاتي الاستضافة: تحقق من قواعد جدار حماية الخادم | + +## نصائح + +- **اختبر قبل بدء الاستخدام الفعلي.** أرسل دائمًا رسالة اختبار بعد تهيئة SMTP للتأكد من عمل كل شيء. +- **استخدم كلمات مرور خاصة بالتطبيقات** مع Gmail وYahoo وغيرهما من الموفرين الذين يدعمون المصادقة الثنائية. لن تعمل كلمة مرور حسابك العادية إذا كانت المصادقة الثنائية مفعّلة. +- **أعدّ SPF وDKIM وDMARC** في سجلات DNS لنطاقك لتحسين إمكانية تسليم البريد ومنع تصنيف رسائلك كبريد عشوائي. +- **حافظ على أمان بيانات الاعتماد.** تُخزن كلمات مرور SMTP مشفرة في Teable، لكن تجنب مشاركة تهيئات الأتمتة التي تتضمن بيانات اعتماد حساسة. +- **راقب التسليم.** إذا توقفت الرسائل عن الوصول، فتحقق من لوحة معلومات موفر SMTP بحثًا عن رسائل مرتدة أو تحذيرات لحد المعدل أو مشكلات في الحساب. + +بالنسبة إلى Gmail، استخدم كلمة مرور تطبيق بدلًا من كلمة مرور حسابك. راجع [إعداد Gmail IMAP](../../trigger/email/gmail-imap) لمعرفة كيفية إنشائها. + +## موضوعات ذات صلة + +- [إجراء إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) — الإجراء الذي يستخدم تهيئة SMTP +- [إعداد Gmail IMAP](../../trigger/email/gmail-imap) — تعليمات كلمات مرور تطبيقات Gmail diff --git a/ar/basic/automation/actions/logic/http-request.mdx b/ar/basic/automation/actions/logic/http-request.mdx new file mode 100644 index 00000000..9338d231 --- /dev/null +++ b/ar/basic/automation/actions/logic/http-request.mdx @@ -0,0 +1,134 @@ +--- +title: "طلب HTTP" +description: "استدعِ أي واجهة API خارجية من سير عمل" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، وينتقي الإجراءات الملائمة، ويربط الحقول، ويهيئ سير العمل بالكامل تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +يرسل طلب HTTP إلى أي عنوان URL ويعيد الاستجابة. استخدمه لاستدعاء واجهات REST API، أو إرسال إشعارات إلى Slack أو Discord، أو دفع البيانات إلى أنظمة CRM، أو التفاعل مع أي خدمة تملك واجهة HTTP API. + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| URL | نعم | نقطة النهاية المستهدفة. تدعم المتغيرات الديناميكية عبر **+** | +| الطريقة | نعم | GET أو POST أو PUT أو PATCH أو DELETE أو HEAD | +| الترويسات | لا | ترويسات HTTP مخصصة في أزواج مفتاح وقيمة | +| Content-Type | لا | تنسيق نص الطلب (راجع أدناه) | +| النص | لا | حمولة الطلب — نص أو أزواج مفتاح وقيمة حسب Content-Type | + +## كيفية الإعداد + +1. أضف إجراء **طلب HTTP** إلى سير العمل. +2. أدخل **عنوان URL** لنقطة نهاية API. يمكنك استخدام **+** لإدراج قيم ديناميكية (مثل تضمين معرّف سجل في مسار URL). +3. اختر **الطريقة**: + - **GET** — استرداد البيانات. + - **POST** — إرسال بيانات لإنشاء شيء. + - **PUT / PATCH** — تحديث بيانات موجودة. + - **DELETE** — حذف البيانات. +4. أضف **ترويسات** إذا كانت واجهة API تتطلبها (مثل رموز التفويض أو الترويسات المخصصة). +5. اختر **Content-Type** واكتب **النص** عند الحاجة (مع POST وPUT وPATCH). +6. احفظ الإجراء. + +## شرح خيارات Content-Type + +| Content-Type | متى يُستخدم | تنسيق النص | +|---|---|---| +| `application/json` | معظم واجهات REST API. لإرسال بيانات منظّمة | نص JSON (مثل `{"key": "value"}`) | +| `application/x-www-form-urlencoded` | عمليات إرسال النماذج التقليدية وبعض واجهات API القديمة | أزواج مفتاح وقيمة مشفرة تلقائيًا لعنوان URL | +| `multipart/form-data` | رفع الملفات أو البيانات المختلطة | أزواج مفتاح وقيمة مع دعم الملفات | +| `text/plain` | حمولات نصية بسيطة | سلسلة نصية عادية | + +إذا لم تكن متأكدًا من Content-Type المناسب، فاختر `application/json`. تستخدم معظم واجهات API الحديثة JSON. + +إذا لم تكن متأكدًا من الخيار المناسب، فإن `application/json` هو الاختيار الصحيح لمعظم واجهات API الحديثة. + +## أمثلة المصادقة + +تتطلب واجهات API كثيرة المصادقة. فيما يلي أنماط شائعة يمكنك إعدادها في قسم الترويسات: + +### رمز Bearer + +أضف ترويسة: +- **المفتاح:** `Authorization` +- **القيمة:** `Bearer your-api-token-here` + +يعمل ذلك مع واجهات API مثل Slack وGitHub وNotion وغيرها الكثير. + +### مفتاح API في الترويسة + +أضف ترويسة: +- **المفتاح:** `X-API-Key` (أو ما تتوقعه واجهة API، مثل `api-key` أو `x-api-token`) +- **القيمة:** `your-api-key` + +### المصادقة الأساسية + +أضف ترويسة: +- **المفتاح:** `Authorization` +- **القيمة:** `Basic base64encoded(username:password)` + +ستحتاج إلى ترميز بيانات اعتمادك باستخدام Base64 خارج Teable أو استخدام إجراء برنامج نصي لإنشاء قيمة الترويسة. + +## مثال عملي: إرسال إشعار إلى Slack + +الهدف: نشر رسالة في قناة Slack عند إنشاء سجل جديد. + +1. **المشغّل:** عند إنشاء سجل. +2. **الإجراء:** طلب HTTP بالإعدادات التالية: + - **عنوان URL:** `https://hooks.slack.com/services/T00/B00/xxxx` (عنوان URL لخطاف Slack لديك) + - **الطريقة:** POST + - **Content-Type:** `application/json` + - **النص:** + ```json + { + "text": "تم إنشاء مهمة جديدة: {{Task Name}} — الأولوية: {{Priority}}" + } + ``` + استبدل `{{Task Name}}` و`{{Priority}}` بمتغيرات ديناميكية من المشغّل بالنقر على **+**. + +## استخدام بيانات الاستجابة في الخطوات التالية + +بعد تنفيذ طلب HTTP، تصبح الاستجابة متاحة للإجراءات اللاحقة: + +- **رمز الحالة** — حالة HTTP ‏(200 و201 و404، إلخ). +- **نص الاستجابة** — البيانات التي تعيدها واجهة API، وتُحلل بوصفها JSON عند انطباق ذلك. + +يمكنك الإشارة إلى حقول محددة في الاستجابة باستخدام منتقي المتغيرات **+** في الخطوات اللاحقة. على سبيل المثال، إذا أعادت واجهة API القيمة `{"id": "abc123", "status": "created"}`، فيمكنك الإشارة إلى `id` و`status` كلًا على حدة. وعند إدراج قيم ديناميكية باستخدام **+**، يمكنك أيضًا استخدام مسارات الحقول وخيارات التنسيق عندما تتطلب واجهة API خارجية تنسيق طلب محددًا. + +يفيد ذلك في تسلسل استدعاءات API — على سبيل المثال، أنشئ شيئًا عبر POST، واستلم معرّفًا، ثم استخدمه في إجراء لاحق لتحديث سجل أو في طلب HTTP آخر. + +## حالات الاستخدام + +- **نشر رسائل في Slack أو Discord.** أرسل إشعارات إلى القنوات باستخدام عناوين URL لخطافات الويب الواردة. +- **مزامنة البيانات مع CRM أو ERP.** ادفع السجلات الجديدة أو المحدّثة إلى Salesforce أو HubSpot أو أي نظام يملك واجهة API. +- **استدعاء أي واجهة API لجهة خارجية.** تفاعل مع معالجات الدفع أو خدمات الشحن أو أدوات التحليلات أو واجهات API داخلية مخصصة. +- **تشغيل تدفقات عمل خارجية.** استدعِ خطافات Zapier أو سيناريوهات Make ‏(Integromat) أو منصات أتمتة أخرى. +- **جلب بيانات من مصادر خارجية.** استخدم طلبات GET لسحب أسعار الصرف أو بيانات الطقس أو أي بيانات API عامة إلى سير العمل. + +## نصائح + +- راجع دائمًا وثائق واجهة API لمعرفة الترويسات والمصادقة وتنسيق النص المتوقع. +- استخدم `application/json` بوصفه Content-Type لمعظم واجهات API الحديثة. إذا كانت الواجهة تتوقع بيانات نموذج، فانتقل إلى `x-www-form-urlencoded`. +- إذا أعادت واجهة API خطأً (حالة 4xx أو 5xx)، يظل الإجراء مكتملًا، لكن الخطوات اللاحقة سترى استجابة الخطأ. تحقق من رمز الحالة في سير العمل إذا كنت تحتاج إلى معالجة شرطية. +- بالنسبة إلى واجهات API التي تعيد استجابات كبيرة، لا تشر في الخطوات اللاحقة إلا إلى الحقول المحددة التي تحتاج إليها. +- ادمج الإجراء مع [الحلقة (دفعة)](/ar/basic/automation/actions/logic/loop-run) لإجراء عدة استدعاءات API، واحد لكل سجل. وانتبه إلى حدود معدل واجهة API الخارجية. +- استخدم ميزة [نص مصفوفة HTTP](/ar/basic/automation/actions/logic/loop-run) عندما تحتاج إلى إرسال عدة عناصر في طلب واحد بدلًا من طلب لكل عنصر. + +## موضوعات ذات صلة + +- [الحلقة (دفعة)](/ar/basic/automation/actions/logic/loop-run) — تنفيذ طلبات HTTP لكل عنصر في مصفوفة +- [عند استلام خطاف ويب](/ar/basic/automation/trigger/external/webhook-received) — النظير الوارد: استلام طلبات HTTP من أنظمة خارجية +- [تشغيل برنامج نصي](/ar/basic/automation/ai/scripting/runscript) — لتفاعلات API الأكثر تعقيدًا باستخدام شيفرة مخصصة diff --git a/ar/basic/automation/actions/logic/loop-run.mdx b/ar/basic/automation/actions/logic/loop-run.mdx new file mode 100644 index 00000000..cba2db9c --- /dev/null +++ b/ar/basic/automation/actions/logic/loop-run.mdx @@ -0,0 +1,104 @@ +--- +title: "الحلقة (دفعة)" +description: "عالج عدة عناصر في إجراء واحد بالتكرار على مصفوفة" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +تتيح لك الحلقة تشغيل إجراء **مرة لكل عنصر** في مصفوفة. فبدلًا من معالجة سجل واحد أو إرسال رسالة واحدة، تكرر الحلقة الإجراء لكل عنصر في القائمة — لإنشاء سجلات دفعة واحدة، أو إرسال رسائل مخصصة إلى قائمة جهات اتصال، أو تنفيذ استدعاءات API لكل عنصر. + +تُعالج العناصر بالترتيب، وتُعاد نتائج جميع التكرارات في مصفوفة يمكن للخطوات اللاحقة استخدامها. + +## الإجراءات المدعومة + +| الإجراء | دعم الحلقة | +|---|---| +| إنشاء سجل | نعم | +| تحديث سجل | نعم | +| إرسال بريد إلكتروني | نعم | +| طلب HTTP | نعم | +| الإنشاء بالذكاء الاصطناعي | نعم | + +## مصادر المصفوفات + +لاستخدام الحلقة، تحتاج إلى مصفوفة بوصفها مدخلًا. تشمل المصادر الشائعة: + +| المصدر | ما تحصل عليه | +|---|---| +| إجراء **جلب السجلات** | مصفوفة سجلات من استعلام جدول | +| مشغّل **استلام خطاف ويب** | قد يتضمن نص JSON مصفوفات (مثل قائمة عناصر الطلب) | +| إجراء **الإنشاء بالذكاء الاصطناعي** (مخرجات JSON) | يستطيع الذكاء الاصطناعي إعادة مصفوفة عناصر منظّمة | +| إجراء **طلب HTTP** | استجابة API تتضمن مصفوفة | +| إجراء **برنامج نصي** | يستطيع البرنامج النصي إخراج أي مصفوفة عبر `output.set()` | + +## كيفية الإعداد + +1. افتح إجراءً مدعومًا (مثل إنشاء سجل أو إرسال بريد إلكتروني). +2. انقر على **تشغيل الحلقة** أسفل منتقي الجدول (أو في منطقة تهيئة الإجراء). +3. في منتقي مصدر البيانات، اختر **متغير مصفوفة** من خطوة سابقة، مثل مصفوفة السجلات من خطوة جلب السجلات. +4. تعرض منطقة ربط الحقول الآن خصائص كل عنصر منفرد (لا المصفوفة كاملةً). انقر على **+** للإشارة إلى خصائص **العنصر الحالي**، مثل اسم السجل الحالي أو بريده الإلكتروني أو حالته. +5. احفظ الإجراء. عند تشغيل سير العمل، يُنفّذ الإجراء مرة لكل عنصر في المصفوفة. + +## كيفية الإشارة إلى العنصر الحالي + +عندما تكون الحلقة نشطة، يعرض منتقي المتغيرات **+** خصائص العنصر الحالي في التكرار. مثال: + +- عند التكرار على مخرجات جلب السجلات، يمكنك الإشارة إلى `العنصر الحالي ← الحقول ← الاسم` و`العنصر الحالي ← الحقول ← البريد الإلكتروني`، إلخ. +- عند التكرار على مصفوفة خطاف ويب، يمكنك الإشارة إلى `العنصر الحالي ← product_name` و`العنصر الحالي ← quantity`، إلخ. + +يختلف ذلك عن الوضع دون حلقة، حيث تشير إلى المصفوفة كاملةً أو فهرس محدد. + +## مثال عملي: إرسال رسائل تذكير للمهام المتأخرة + +1. **المشغّل:** في وقت مجدول — يوميًا الساعة 9:00 صباحًا. +2. **الإجراء 1:** جلب السجلات — من جدول المهام، مع عامل التصفية: تاريخ الاستحقاق قبل اليوم AND الحالة لا تساوي "مكتملة". +3. **الإجراء 2:** إرسال بريد إلكتروني مع تمكين **الحلقة**، مصدر البيانات = مصفوفة سجلات الإجراء 1. + - **إلى:** حقل بريد المكلّف في العنصر الحالي. + - **الموضوع:** `تذكير: "{{current item → Task Name}}" متأخرة` + - **النص:** `مرحبًا {{current item → Assignee Name}}، كان موعد استحقاق مهمتك "{{current item → Task Name}}" في {{current item → Due Date}}. يُرجى تحديثها.` + +النتيجة: رسالة مخصصة واحدة لكل مهمة متأخرة. + +## نص مصفوفة HTTP + +بالنسبة إلى إجراءات طلب HTTP، تقدم الحلقة وضعًا خاصًا باسم **نص المصفوفة**. فبدلًا من إرسال طلب HTTP واحد لكل عنصر، وهو ما قد يكون بطيئًا ويبلغ حدود المعدل، يرسل نص المصفوفة **المصفوفة كاملةً كمصفوفة JSON واحدة** في طلب واحد. + +يفيد ذلك عندما تدعم واجهة API الخارجية العمليات الدفعية، مثل إنشاء عدة سجلات في استدعاء API واحد أو إرسال دفعة أحداث إلى خدمة تحليلات. + +لاستخدام نص المصفوفة: +1. فعّل الحلقة في إجراء طلب HTTP. +2. اختر وضع **نص المصفوفة** بدلًا من الوضع الافتراضي لكل عنصر. +3. تُسلسل المصفوفة كاملةً كمصفوفة JSON وتُرسل في نص الطلب. + +## اعتبارات الأداء + +- تعالج الحلقة العناصر **تسلسليًا**، لا بالتوازي. تستغرق حلقة على 100 عنصر نحو 100 ضعف زمن تنفيذ واحد. +- للمصفوفات الكبيرة (مئات أو آلاف العناصر)، تحقق مما إذا كان الإجراء الخارجي يقبل مدخلات دفعية. استخدم نص مصفوفة HTTP عندما تدعم واجهة API ذلك. +- إذا كنت تكرر على مخرجات جلب السجلات وتنفذ طلبات HTTP لكل سجل، فانتبه إلى حدود معدل واجهة API الخارجية. +- لمجموعات البيانات الكبيرة جدًا، قسّم العمل إلى دفعات أصغر باستخدام ترقيم الصفحات في جلب السجلات (تخطي/أخذ)، مع عدة عمليات تشغيل للأتمتة. + +## حالات الاستخدام + +- **إنشاء سجلات دفعة واحدة.** اجلب سجلات من جدول، ثم كرر لإنشاء سجلات مقابلة في جدول آخر. +- **إرسال رسائل مخصصة إلى قائمة.** اجلب قائمة جهات اتصال وكرر لإرسال رسالة مخصصة إلى كل منها. +- **تحديث عدة سجلات.** اجلب السجلات المطابقة لشرط وكرر لتحديث كل منها (مثل تمييز جميع المهام المتأخرة بأنها "مصعّدة"). +- **تنفيذ استدعاءات API لكل سجل.** ادفع بيانات كل سجل إلى نظام خارجي، واحدًا تلو الآخر. +- **معالجة دفعة سجلات بالذكاء الاصطناعي.** كرر على السجلات واستخدم الإنشاء بالذكاء الاصطناعي لتصنيف بيانات كل منها أو تلخيصها أو استخراجها. + +## نصائح + +- تحقق دائمًا من حجم المصفوفة قبل تمكين الحلقة. إذا أعاد جلب السجلات 1,000 سجل، فستعمل الحلقة 1,000 مرة. +- إذا كانت الحلقة تنشئ سجلات أو تحدّثها في الجدول نفسه الذي شغّل الأتمتة، فاحذر من إعادة تشغيل الأتمتة. استخدم عوامل تصفية في المشغّل لتجنب الحلقات. +- تتاح نتائج جميع تكرارات الحلقة في مصفوفة للخطوات اللاحقة، لكن قد تكون هذه المصفوفة كبيرة جدًا في الحلقات الضخمة. لا تشر إلا إلى ما تحتاج إليه. + +## موضوعات ذات صلة + +- [جلب السجلات](/ar/basic/automation/actions/records/get-records) — المصدر الأكثر شيوعًا للمصفوفات المستخدمة في الحلقة +- [إنشاء سجل](/ar/basic/automation/actions/records/create-record) — يُستخدم عادةً داخل حلقة لإنشاء سجلات دفعة واحدة +- [طلب HTTP](/ar/basic/automation/actions/logic/http-request) — يُستخدم عادةً داخل حلقة لاستدعاءات API لكل عنصر +- [إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) — يُستخدم عادةً داخل حلقة لإرسال البريد على دفعات diff --git a/ar/basic/automation/actions/manual/conditional-logic.mdx b/ar/basic/automation/actions/manual/conditional-logic.mdx new file mode 100644 index 00000000..7a89e642 --- /dev/null +++ b/ar/basic/automation/actions/manual/conditional-logic.mdx @@ -0,0 +1,78 @@ +--- +title: "المنطق الشرطي" +description: "أضف تفرعات if/else للتحكم في الإجراءات التي يجري تشغيلها" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +تتيح لك الشروط إضافة نقاط لاتخاذ القرار. ينقسم سير العمل إلى مسار **صحيح** ومسار **خطأ**. + +## كيفية الاستخدام + +1. أضف عقدة **شرط** بين الخطوات. +2. حدّد قاعدة واحدة أو أكثر. +3. انقر على **اختبار** للتحقق. + +## العوامل حسب نوع الحقل + +### النص + +| العامل | المعنى | +|---|---| +| يساوي / لا يساوي | تطابق تام | +| يحتوي على / لا يحتوي على | تطابق سلسلة فرعية | +| فارغ / غير فارغ | التحقق من القيمة الفارغة | + +### الرقم + +| العامل | المعنى | +|---|---| +| = / ≠ | يساوي / لا يساوي | +| > / ≥ / < / ≤ | مقارنة | +| فارغ / غير فارغ | التحقق من القيمة الفارغة | + +### التاريخ + +| العامل | المعنى | +|---|---| +| يساوي / لا يساوي | تاريخ مطابق تمامًا | +| قبل / بعد | مقارنة | +| في أو قبل / في أو بعد | مقارنة شاملة | +| ضمن | نطاق نسبي | +| فارغ / غير فارغ | التحقق من القيمة الفارغة | + +**التواريخ النسبية:** اليوم، غدًا، أمس، قبل أسبوع/بعد أسبوع، قبل شهر/بعد شهر، قبل X من الأيام/بعد X من الأيام. + +**النطاقات (للعامل "ضمن"):** الأسبوع الماضي/التالي، الشهر الماضي/التالي، السنة الماضية/التالية، آخر/تالي N من الأيام. + +### تحديد فردي / تحديد متعدد + +| العامل | المعنى | +|---|---| +| يحتوي على أي من / يحتوي على الكل / لا يحتوي على أي من | الانتماء إلى مجموعة | +| يطابق تمامًا / لا يطابق تمامًا | تطابق تام | +| فارغ / غير فارغ | التحقق من القيمة الفارغة | + +### قيمة منطقية + +| العامل | +|---| +| يساوي (صحيح / خطأ) | + +## دمج القواعد + +- **و** — يجب أن تكون جميع القواعد صحيحة +- **أو** — يمكن أن تكون أي قاعدة صحيحة +- **ليس** — نفي قاعدة أو مجموعة + +يمكن تداخل المجموعات: + +``` +(الحالة تساوي "نشط" أو الحالة تساوي "معلّق") +والمبلغ > 1000 +``` diff --git a/ar/basic/automation/actions/records/create-record.mdx b/ar/basic/automation/actions/records/create-record.mdx new file mode 100644 index 00000000..f538055d --- /dev/null +++ b/ar/basic/automation/actions/records/create-record.mdx @@ -0,0 +1,78 @@ +--- +title: "إنشاء سجل" +description: "أنشئ سجلًا جديدًا في أي جدول ضمن سير عمل" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويختار الإجراءات الملائمة، ويربط الحقول، ويهيئ سير العمل بالكامل تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +ينشئ سجلًا جديدًا في جدول محدد. يمكنك ربط بيانات الخطوات السابقة بحقول السجل الجديد. وبعد الإنشاء، يصبح معرّف السجل الجديد وجميع قيم الحقول متاحة للخطوات اللاحقة. + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| الجدول | نعم | الجدول المستهدف الذي سيُنشأ فيه السجل الجديد | +| الحقول | نعم | اربط كل حقل بقيمة — نص أو أرقام ثابتة، أو متغيرات ديناميكية من الخطوات السابقة | + +## كيفية الإعداد + +1. أضف إجراء **إنشاء سجل** إلى سير العمل. +2. اختر **الجدول** الذي تريد إنشاء السجل فيه. يكون هذا افتراضيًا جدولًا في قاعدة البيانات نفسها، ولكن يمكنك استخدام [الوصول عبر قواعد البيانات](/ar/basic/automation/actions/records/cross-base) لاستهداف جدول في قاعدة بيانات أخرى. +3. تعرض منطقة ربط الحقول جميع حقول الجدول المستهدف. لكل حقل تريد تعبئته: + - **قيمة ثابتة:** اكتب قيمة مباشرة في الحقل (مثل كتابة "جديد" في حقل الحالة). + - **قيمة ديناميكية:** انقر على زر **+** بجوار الحقل لإدراج متغير من خطوة سابقة. على سبيل المثال، أدرج حقل "الاسم" من المشغّل لنسخ الاسم من السجل الذي شغّل الأتمتة. +4. يمكنك المزج بين القيم الثابتة والديناميكية. على سبيل المثال، اضبط الحالة على القيمة الثابتة "معلّق" مع ضبط اسم العميل على قيمة ديناميكية من المشغّل. +5. احفظ الإجراء. + +يمكنك دمج عدة متغيرات في حقل نصي واحد. على سبيل المثال، أدرج `اسم عميل سجل المشغّل - معرّف طلب سجل المشغّل` في حقل "الملخص". + +## ما يحدث مع الحقول المطلوبة + +إذا كان للحقل المطلوب قيمة افتراضية وتركته دون ربط، يملأ Teable القيمة الافتراضية عند إنشاء السجل. وإذا لم تكن للحقل المطلوب قيمة افتراضية، أو كانت القيمة المرتبطة فارغة في وقت التشغيل، يفشل الإجراء. + +للتحقق من الحقول المطلوبة، راجع تهيئة الحقول في الجدول المستهدف. تُميّز الحقول المطلوبة عادةً بعلامة نجمة أو تسمية "مطلوب". + +## المخرجات: استخدام السجل المنشأ في الخطوات اللاحقة + +بعد تشغيل إجراء «إنشاء سجل»، يصبح السجل المنشأ حديثًا متاحًا لجميع الخطوات اللاحقة. ويشمل ذلك: + +- **معرّف السجل** — المعرّف الفريد المسند إلى السجل الجديد. +- **جميع قيم الحقول** — كل قيمة حقل في السجل المنشأ، بما فيها القيم المحسوبة تلقائيًا أو الافتراضية. + +يفيد ذلك عندما تحتاج إلى تسلسل الإجراءات. مثال: أنشئ سجلًا، ثم أرسل فورًا رسالة بريد تتضمن رابطًا إليه، أو حدّث سجلًا مرتبطًا بمعرّف السجل الجديد. + +## حالات الاستخدام + +- **تسجيل عمليات إرسال النماذج في جدول منفصل.** عند إرسال نموذج، أنشئ سجلًا في جدول "سجل عمليات الإرسال" يتضمن البيانات المرسلة وطابعًا زمنيًا. +- **إنشاء مهام متابعة تلقائيًا.** عند إنشاء مشروع، أنشئ مجموعة من المهام الافتراضية في جدول المهام المرتبط. +- **تكرار السجلات بين الجداول.** انسخ البيانات من جدول إلى آخر — مثل نقل عميل محتمل من "العملاء المحتملون" إلى "العملاء النشطون" عند إغلاق الصفقة. +- **إنشاء سجلات من بيانات خارجية.** عندما يرسل خطاف ويب بيانات طلب، أنشئ سجلًا جديدًا في جدول الطلبات يتضمن تفاصيله. +- **إنشاء إدخالات لمسار التدقيق.** بعد تشغيل أي أتمتة، أنشئ سجلًا في جدول سجل التدقيق يوثّق ما حدث. + +## نصائح + +- إذا كنت تنشئ سجلات في الجدول نفسه الذي يتضمن مشغّل **عند إنشاء سجل**، فاحذر من الحلقات اللانهائية. استخدم عامل تصفية في المشغّل لاستبعاد السجلات التي أنشأتها الأتمتة (مثل التحقق من حقل "المصدر" المضبوط على "الأتمتة"). +- يمكنك إنشاء سجلات دفعة واحدة بدمج هذا الإجراء مع [الحلقة (دفعة)](../logic/loop-run). على سبيل المثال، اجلب 50 سجلًا من جدول وأنشئ 50 سجلًا مقابلًا في جدول آخر. +- ستستخدم الحقول التي لا تربطها القيم الافتراضية للجدول (إن وُجدت) أو ستظل فارغة. +- تتوقع حقول السجلات المرتبطة معرّفات السجلات، لا قيم العرض. إذا أردت الربط بسجل، فتأكد من تمرير معرّف السجل، لا اسمه. +- استخدم [الوصول عبر قواعد البيانات](/ar/basic/automation/actions/records/cross-base) عندما يكون الجدول المستهدف في قاعدة بيانات مختلفة عن قاعدة بيانات الأتمتة. + +## موضوعات ذات صلة + +- [تحديث سجل](/ar/basic/automation/actions/records/update-record) — تعديل السجلات الموجودة بدلًا من إنشاء سجلات جديدة +- [جلب السجلات](/ar/basic/automation/actions/records/get-records) — استرداد سجلات لاستخدامها مدخلات لإنشاء سجلات جديدة +- [الوصول عبر قواعد البيانات](/ar/basic/automation/actions/records/cross-base) — إنشاء سجلات في جداول خارج قاعدة البيانات الحالية +- [الحلقة (دفعة)](../logic/loop-run) — إنشاء عدة سجلات في خطوة إجراء واحدة diff --git a/ar/basic/automation/actions/records/cross-base.mdx b/ar/basic/automation/actions/records/cross-base.mdx new file mode 100644 index 00000000..3aca5e3f --- /dev/null +++ b/ar/basic/automation/actions/records/cross-base.mdx @@ -0,0 +1,83 @@ +--- +title: "الوصول عبر قواعد البيانات" +description: "اقرأ البيانات واكتبها عبر قواعد بيانات مختلفة ضمن سير عمل واحد" +--- + +{/* mintlify-resync: 2026-05-26 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +تعمل إجراءات الأتمتة افتراضيًا على الجداول الموجودة داخل قاعدة بيانات سير العمل نفسه. ويتيح الوصول عبر قواعد البيانات لسير العمل القراءة من قاعدة بيانات أخرى والكتابة إليها. استخدمه في تدفقات العمل التي تمتد عبر الأقسام أو المشاريع أو مجموعات البيانات. + +على سبيل المثال، يمكن لأتمتة قاعدة بيانات المبيعات إنشاء سجل تنفيذ في قاعدة بيانات منفصلة للعمليات، أو يمكن لسير عمل التقارير جمع بيانات من عدة قواعد بيانات للمشاريع في ملخص واحد. + +## الإجراءات المدعومة + +| الإجراء | دعم الوصول عبر قواعد البيانات | +|---|---| +| إنشاء سجل | نعم | +| تحديث سجل | نعم | +| جلب السجلات | نعم | + +هذه هي الإجراءات الثلاثة الموجهة إلى السجلات. أما الإجراءات الأخرى (إرسال بريد إلكتروني وطلب HTTP وغيرهما) فلا تحتاج إلى الوصول عبر قواعد البيانات لأنها لا تستهدف جدولًا محددًا. + +## كيفية الإعداد + +1. افتح إجراءً مدعومًا (إنشاء سجل أو تحديث سجل أو جلب السجلات) في سير العمل. +2. بجوار منتقي **الجدول**، انقر على **الوصول عبر قواعد البيانات**. +3. ستفتح لوحة تعرض جميع المساحات وقواعد البيانات التي يستطيع حسابك الوصول إليها. اختر **المساحة** المستهدفة، ثم **قاعدة البيانات** المستهدفة. +4. اختر **الجدول** داخل قاعدة البيانات. وإذا كان الإجراء يدعم ذلك، فيمكنك أيضًا اختيار **طريقة عرض** محددة. +5. اربط الحقول وهيّئ الإجراء كالمعتاد. تعكس قائمة الحقول الآن حقول الجدول المستهدف، لا حقول قاعدة البيانات الحالية. +6. احفظ الإجراء. + +## مثال عملي: من المبيعات إلى التنفيذ + +لنفترض أن لديك قاعدتي بيانات: + +- **قاعدة بيانات المبيعات** — تتضمن جدول "الصفقات" الذي يتابع فيه فريق المبيعات الصفقات المغلقة. +- **قاعدة بيانات العمليات** — تتضمن جدول "التنفيذ" الذي يدير فيه فريق العمليات الشحن. + +تريد إنشاء سجل تنفيذ تلقائيًا عند إغلاق صفقة: + +1. **المشغّل:** في قاعدة بيانات المبيعات، استخدم "عند مطابقة السجل للشروط" مع عامل التصفية: `المرحلة` تساوي `مغلقة بنجاح`. +2. **الإجراء:** إنشاء سجل مع توجيه الوصول عبر قواعد البيانات إلى قاعدة بيانات العمليات > جدول التنفيذ. +3. **ربط الحقول:** اربط اسم العميل والمنتج والكمية وعنوان الشحن في الصفقة بالحقول المقابلة في جدول التنفيذ. + +الآن، كلما أُغلقت صفقة، يُنشأ سجل تنفيذ تلقائيًا في قاعدة بيانات العمليات دون حاجة إلى تسليم يدوي. + +## نموذج الصلاحيات + +عند إنشاء تحديثات سير العمل أو تحريرها أو تطبيقها، يتحقق Teable من كل إجراء عابر لقواعد البيانات وفق صلاحيات المحرر الحالي: + +| الإجراء | الصلاحية المطلوبة في قاعدة البيانات المستهدفة | +|---|---| +| جلب السجلات | قراءة الحقول والسجلات | +| إنشاء سجل | قراءة الحقول والسجلات، بالإضافة إلى إنشاء السجلات | +| تحديث سجل | قراءة الحقول والسجلات، بالإضافة إلى تحديث السجلات | + +تستخدم عمليات تشغيل سير العمل النشط هوية وقت تشغيل أتمتة Teable لقاعدة البيانات المستهدفة. وتظهر السجلات التي ينشئها أو يحدّثها إجراء عابر لقواعد البيانات باسم **روبوت الأتمتة** في بيانات السجل الوصفية وواجهات التدقيق. + +### ما يحدث عند تغير الوصول + +إذا لم يملك المحرر الحالي الصلاحية المطلوبة في قاعدة البيانات المستهدفة، يمنعه Teable من إضافة إجراءات عابرة لقواعد البيانات تشير إلى تلك القاعدة أو تغييرها. وإذا كانت المسودة تتضمن بالفعل إجراءات لا يستطيع المحرر الوصول إليها، يمنع Teable أيضًا تطبيق المسودة. ويستمر الإصدار النشط في العمل؛ ويتحقق Teable من الصلاحيات مجددًا في المرة التالية التي يحرر فيها شخص سير العمل أو يطبقه. + +لإصلاح خطأ في الصلاحيات أثناء تحرير سير عمل أو تطبيقه: + +1. اطلب من شخص يملك حق الوصول إلى قاعدتي البيانات تحرير سير العمل وتطبيقه. +2. أو استعد الصلاحيات المطلوبة في قاعدة البيانات المستهدفة، ثم طبّق سير العمل مجددًا. + +## نصائح + +- يمكن للوصول عبر قواعد البيانات الوصول إلى قواعد بيانات في **مساحات** مختلفة. ويجب أن يملك المحرر الذي يهيئ سير العمل أو يطبقه الصلاحيات المطلوبة في قاعدة البيانات المستهدفة. +- عند ربط الحقول عبر قواعد البيانات، يجب أن تكون أنواع الحقول متوافقة. فلا يمكنك، مثلًا، ربط حقل نصي بحقل مرفقات. +- إذا أعدت هيكلة قاعدة بيانات مستهدفة (مثل إعادة تسمية الجداول أو حذف الحقول)، فستتعطل الإجراءات التي تشير إلى تلك الجداول والحقول. حدّث سير العمل بعد إجراء تغييرات بنيوية. +- في تدفقات العمل المعقدة العابرة لقواعد البيانات، فكّر في تجميع عمليات الأتمتة في قاعدة بيانات "مركزية" واحدة للحفاظ على تنظيمها. + +## موضوعات ذات صلة + +- [إنشاء سجل](/ar/basic/automation/actions/records/create-record) — إنشاء سجلات في قاعدة البيانات الحالية أو قاعدة أخرى +- [تحديث سجل](/ar/basic/automation/actions/records/update-record) — تحديث سجلات في قاعدة البيانات الحالية أو قاعدة أخرى +- [جلب السجلات](/ar/basic/automation/actions/records/get-records) — استرداد سجلات من قاعدة البيانات الحالية أو قاعدة أخرى diff --git a/ar/basic/automation/actions/records/get-records.mdx b/ar/basic/automation/actions/records/get-records.mdx new file mode 100644 index 00000000..68e4e513 --- /dev/null +++ b/ar/basic/automation/actions/records/get-records.mdx @@ -0,0 +1,90 @@ +--- +title: "جلب السجلات" +description: "استرد السجلات من جدول باستخدام عوامل تصفية وترقيم صفحات اختياريين" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، وينتقي الإجراءات الملائمة، ويربط الحقول، ويهيئ سير العمل بالكامل تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +يسترد سجلات من جدول ويعيدها في مصفوفة. استخدم النتائج في الخطوات اللاحقة للتكرار على السجلات أو تمرير البيانات إلى برنامج نصي أو تغذية إجراءات أخرى. + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| الجدول | نعم | الجدول المطلوب الاستعلام منه | +| طريقة العرض | لا | قصر النتائج على السجلات المرئية في طريقة عرض محددة (ترث عوامل التصفية والفرز والحقول المخفية منها) | +| عامل التصفية | لا | شروط تصفية إضافية تُطبق فوق عامل تصفية طريقة العرض، إن وُجد | +| التخطي | لا | عدد السجلات المطلوب تخطيها من البداية (لترقيم الصفحات) | +| الأخذ | لا | الحد الأقصى لعدد السجلات المطلوب إعادتها (لترقيم الصفحات) | + +## كيفية الإعداد + +1. أضف إجراء **جلب السجلات** إلى سير العمل. +2. اختر **الجدول** المطلوب الاستعلام منه. استخدم [الوصول عبر قواعد البيانات](/ar/basic/automation/actions/records/cross-base) إذا كان الجدول في قاعدة بيانات مختلفة. +3. (اختياري) اختر **طريقة عرض** لوراثة إعداداتها لعوامل التصفية والفرز ورؤية الحقول. +4. (اختياري) أضف شروط **عامل التصفية** لتضييق النتائج. مثلًا، `الحالة` تساوي `نشط` و`تاريخ الاستحقاق` قبل اليوم. +5. (اختياري) اضبط **التخطي** و**الأخذ** لترقيم الصفحات. مثلًا، اضبط التخطي على 0 والأخذ على 100 لجلب أول 100 سجل. +6. احفظ الإجراء. عند تشغيل سير العمل، ستتاح النتائج في مصفوفة للخطوات اللاحقة. + +## المخرجات: التعامل مع النتائج + +المخرجات هي **مصفوفة سجلات**. يتضمن كل سجل في المصفوفة: + +- **معرّف السجل** — المعرّف الفريد. +- **جميع قيم الحقول** — كل حقل في الجدول (أو طريقة العرض، إذا اخترت واحدة). + +### استخدام النتائج في الخطوة التالية + +- **الإشارة إلى سجل واحد:** إذا كنت تتوقع نتيجة واحدة فقط (أو تريد الأولى)، فيمكنك الإشارة إلى حقول السجل الأول مباشرةً باستخدام منتقي المتغيرات **+**. +- **التكرار على جميع السجلات:** أضف إجراء [الحلقة (دفعة)](../logic/loop-run) بعد جلب السجلات، واختر مصفوفة النتائج مصدرًا للبيانات. وأشر داخل الحلقة إلى حقول كل عنصر. +- **المعالجة في برنامج نصي:** مرر المصفوفة إلى خطوة [تشغيل برنامج نصي](/ar/basic/automation/actions/ai/ai-script) للمعالجة أو التصفية أو التحويل المخصص. + +## ترقيم الصفحات + +إذا لم تضبط **التخطي** و**الأخذ**، يعيد الإجراء سجلات حتى الحد الافتراضي للنظام. استخدم ترقيم الصفحات مع الجداول الكبيرة للتحكم في حجم النتائج: + +| الإعداد | الغرض | المثال | +|---|---|---| +| التخطي | عدد السجلات المطلوب تخطيها من البداية | `0` (البدء من البداية) | +| الأخذ | عدد السجلات المطلوب إعادتها | `100` (إعادة 100 سجل) | + +لمعالجة جدول كبير بالكامل، يمكنك استخدام عدة خطوات لجلب السجلات مع زيادة قيم التخطي، أو معالجة ترقيم الصفحات في برنامج نصي. + +## حالات الاستخدام + +- **البحث عن المهام المتأخرة لإرسال تذكيرات.** صفِّ المهام التي يسبق تاريخ استحقاقها اليوم ولا تساوي حالتها "مكتملة". كرر على النتائج وأرسل رسالة لكل منها. +- **جمع البيانات لملخص يومي.** استرد جميع السجلات المحدّثة خلال آخر 24 ساعة واجمعها في رسالة ملخص. +- **البحث عن سجلات مرتبطة قبل الإنشاء أو التحديث.** قبل إنشاء نسخة مكررة، تحقق مما إذا كان يوجد سجل بالبريد الإلكتروني نفسه. +- **تغذية البيانات إلى إجراء ذكاء اصطناعي.** اجلب سجلات ذات حقول نصية طويلة، ثم استخدم الإنشاء بالذكاء الاصطناعي داخل حلقة لتلخيص كل منها أو تصنيفه. +- **مزامنة السجلات مع نظام خارجي.** اجلب جميع السجلات التي تغيرت منذ آخر مزامنة، ثم ادفعها إلى CRM أو مستودع بيانات عبر طلبات HTTP. + +## نصائح + +- **استخدم عوامل التصفية.** كلما كان عامل التصفية أكثر تحديدًا، قل عدد السجلات المعادة وزادت سرعة الإجراء. +- **حدّ النتائج باستخدام الأخذ.** إذا كنت تحتاج إلى أول 10 سجلات فقط، فاضبط الأخذ على 10. لا حاجة إلى استرداد آلاف السجلات عندما تحتاج إلى عدد قليل. +- **اختر طريقة عرض** تصفّي البيانات التي تحتاج إليها وترتبها بالفعل، فهذا يبسط تهيئة الأتمتة. +- **تجنب جلب الجدول بالكامل** ما لم تكن تحتاج حقًا إلى جميع السجلات. تستغرق مجموعات النتائج الكبيرة وقتًا أطول وتستخدم موارد أكثر، خصوصًا عند دمجها مع حلقة. +- لا يعدّل جلب السجلات أي بيانات — فهو للقراءة فقط. +- إذا أعاد الاستعلام صفرًا من السجلات، فستتلقى الخطوات اللاحقة التي تشير إلى النتائج مصفوفة فارغة. تأكد من أن سير العمل يعالج ذلك بسلاسة (مثل عدم إرسال رسالة تقول "إليك نتائجك" عندما لا توجد نتائج). +- تعمل عوامل التصفية في جلب السجلات مثل عوامل تصفية طرق العرض: يمكنك دمج الشروط بمنطق AND/OR. +- عند استخدام الوصول عبر قواعد البيانات، يُنفذ الاستعلام بصلاحيات منشئ سير العمل. وإذا فقد المنشئ الوصول إلى قاعدة البيانات المستهدفة، فستفشل الخطوة. + +## موضوعات ذات صلة + +- [الوصول عبر قواعد البيانات](/ar/basic/automation/actions/records/cross-base) — الاستعلام من جداول في قواعد بيانات أخرى +- [الحلقة (دفعة)](../logic/loop-run) — التكرار على مصفوفة النتائج +- [إنشاء سجل](/ar/basic/automation/actions/records/create-record) — إنشاء سجلات استنادًا إلى البيانات المستردة +- [تحديث سجل](/ar/basic/automation/actions/records/update-record) — تحديث السجلات التي عثر عليها جلب السجلات diff --git a/ar/basic/automation/actions/records/update-record.mdx b/ar/basic/automation/actions/records/update-record.mdx new file mode 100644 index 00000000..493469e5 --- /dev/null +++ b/ar/basic/automation/actions/records/update-record.mdx @@ -0,0 +1,103 @@ +--- +title: "تحديث سجل" +description: "عدّل حقول سجل موجود ضمن سير عمل" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، وينتقي الإجراءات الملائمة، ويربط الحقول، ويهيئ سير العمل بالكامل تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +يحدّث حقلًا واحدًا أو أكثر في سجل موجود. لن تتغير إلا الحقول التي تربطها، ويظل كل ما عداها كما هو. + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| الجدول | نعم | الجدول الذي يحتوي على السجل المطلوب تحديثه | +| معرّف السجل | نعم | السجل المطلوب تحديثه. يدعم المتغيرات الديناميكية والمعرّفات المفصولة بفواصل لتحديث عدة سجلات | +| الحقول | نعم | اربط كل حقل بقيمته الجديدة، سواء كانت ثابتة أو ديناميكية | + +## كيفية الإعداد + +1. أضف إجراء **تحديث سجل** إلى سير العمل. +2. اختر **الجدول** الذي يحتوي على السجل المطلوب تعديله. +3. اضبط **معرّف السجل**. انقر على **+** لإدراج متغير ديناميكي: + - من **مشغّل سجل** (إنشاء أو تحديث أو نقر زر): يوفر المشغّل معرّف السجل مباشرةً. + - من إجراء **جلب السجلات**: أشر إلى معرّف السجل من النتائج المستردة. + - يمكنك أيضًا كتابة معرّف سجل ثابت أو استخدام قائمة مفصولة بفواصل لتحديث عدة سجلات دفعة واحدة (مثل `rec123,rec456,rec789`). +4. اربط الحقول التي تريد تغييرها. لكل حقل: + - **قيمة ثابتة:** اكتب القيمة الجديدة مباشرةً. + - **قيمة ديناميكية:** انقر على **+** لإدراج قيمة من خطوة سابقة. +5. اترك الحقول التي لا تريد تغييرها دون ربط، وستحتفظ بقيمها الحالية. +6. احفظ الإجراء. + +## كيفية الحصول على معرّف السجل + +معرّف السجل هو المعلومة الأساسية التي يحتاج إليها هذا الإجراء. إليك موضع العثور عليه بحسب المشغّل: + +| المشغّل / الخطوة السابقة | كيفية الحصول على معرّف السجل | +|---|---| +| عند إنشاء سجل | متاح مباشرةً بوصفه متغيرًا في مخرجات المشغّل | +| عند تحديث سجل | متاح مباشرةً بوصفه متغيرًا في مخرجات المشغّل | +| عند نقر زر | متاح مباشرةً — وهو الصف الذي نُقر فيه الزر | +| عند إرسال نموذج | متاح مباشرةً — وهو السجل الذي أنشأه الإرسال | +| إجراء جلب السجلات | لكل سجل في النتائج معرّف. أشر داخل الحلقة إلى معرّف العنصر الحالي | +| عند استلام خطاف ويب | يجب تضمين معرّف السجل في حمولة خطاف الويب، أو البحث عنه باستخدام جلب السجلات | + +هل تحتاج إلى تحديث عدة سجلات دفعة واحدة؟ يمكنك تمرير معرّفات سجلات مفصولة بفواصل، أو استخدام [الحلقة (دفعة)](../logic/loop-run) مع نتيجة جلب السجلات لتحديثها دفعة واحدة. + +## التحديثات الجزئية + +ينفذ هذا الإجراء تحديثًا جزئيًا. وهذا يعني: + +- تُستبدل **الحقول المرتبطة** بالقيم الجديدة التي تحددها. +- تظل **الحقول غير المرتبطة** كما هي تمامًا. + +لا تحتاج إلى إعادة إرسال جميع قيم الحقول، بل القيم التي تريد تغييرها فقط. وهذا آمن وفعّال. + +## تحذير: حلقات المشغّل + +إذا كان سير العمل يستخدم مشغّل "عند تحديث سجل" وكانت خطوة لاحقة تحدّث الحقول المراقبة نفسها في الجدول نفسه، فسيُشغّل سير العمل مجددًا، مما ينشئ حلقة لا نهائية. + +إذا كانت الأتمتة تُشغّل بواسطة **عند تحديث سجل** وكان إجراء تحديث السجل يكتب إلى **الجدول نفسه**، فقد تنشئ حلقة لا نهائية: + +1. يتغير السجل ← يعمل المشغّل ← تحدّث الأتمتة السجل ← يعمل المشغّل مجددًا ← وهكذا. + +**كيفية منع الحلقات:** + +- **راقب حقولًا محددة** في المشغّل *تختلف* عن الحقول التي تحدّثها. على سبيل المثال، راقب "الحالة" لكن حدّث "تاريخ المعالجة". +- **أضف عامل تصفية** إلى المشغّل. على سبيل المثال، شغّله فقط عندما لا تساوي قيمة `تمت المعالجة` القيمة `true`، واضبط `تمت المعالجة` على `true` في الإجراء. +- فكّر في استخدام [عند مطابقة السجل للشروط](/ar/basic/automation/trigger/records/record-matches-conditions) بدلًا منه، إذ لا يعمل إلا عند انتقالات الحالة. + +## حالات الاستخدام + +- **تمييز مهمة بأنها مكتملة بعد الموافقة.** عند نقر زر، اضبط الحالة على "موافق عليه" واملأ تاريخ الموافقة. +- **تحديث حقل حالة استنادًا إلى أحداث خارجية.** عندما يبلغ خطاف ويب عن دفعة، ابحث عن سجل الطلب وحدّث حالته إلى "مدفوع". +- **كتابة طابع زمني عند حدوث تغيير.** عند تحديث سجل، اضبط حقل تاريخ "آخر تعديل بواسطة الأتمتة" على الوقت الحالي. +- **مزامنة البيانات العائدة من نظام خارجي.** بعد استدعاء واجهة API خارجية، اكتب بيانات الاستجابة (مثل رقم تتبع) في السجل. +- **تحديث سجلات دفعة واحدة.** ادمج جلب السجلات مع الحلقة لتحديث عدة سجلات دفعة واحدة، مثل تمييز جميع المهام المتأخرة بأنها "مصعّدة". + +## نصائح + +- قد يؤدي تحديث سجل إلى تشغيل عمليات أتمتة أخرى تراقب الجدول نفسه. انتبه إلى التأثيرات المتسلسلة. +- عند تحديث عدة سجلات بمعرّفات مفصولة بفواصل، تتلقى جميع السجلات قيم الحقول نفسها. استخدم خطوة [حلقة](../logic/loop-run) بدلًا من ذلك إذا كانت لكل سجل قيم مختلفة. +- إذا أردت مسح حقل، فاربطه بقيمة فارغة. أما تركه دون ربط فلن يمسحه. +- استخدم [الوصول عبر قواعد البيانات](/ar/basic/automation/actions/records/cross-base) لتحديث سجلات في جدول موجود بقاعدة بيانات مختلفة. + +## موضوعات ذات صلة + +- [إنشاء سجل](/ar/basic/automation/actions/records/create-record) — إضافة سجلات جديدة بدلًا من تعديل الموجودة +- [جلب السجلات](/ar/basic/automation/actions/records/get-records) — استرداد السجلات للعثور على معرّفاتها قبل التحديث +- [الوصول عبر قواعد البيانات](/ar/basic/automation/actions/records/cross-base) — تحديث سجلات في جداول خارج قاعدة البيانات الحالية +- [الحلقة (دفعة)](../logic/loop-run) — تحديث عدة سجلات بقيم مختلفة diff --git a/ar/basic/automation/ai/scripting/runscript.mdx b/ar/basic/automation/ai/scripting/runscript.mdx new file mode 100644 index 00000000..3ae09e44 --- /dev/null +++ b/ar/basic/automation/ai/scripting/runscript.mdx @@ -0,0 +1,290 @@ +--- +title: "تشغيل برنامج نصي" +description: "شغّل JavaScript مخصصًا في بيئة اختبار معزولة وآمنة لتنفيذ منطق يتجاوز الإجراءات المدمجة" +--- + +{/* mintlify-resync: 2026-05-14 */} + +نوصي بشدة باستخدام «تشغيل برنامج نصي» لإنشاء عمليات الأتمتة، لأنه يستطيع تغطية جميع سلوكيات الإجراءات، بما فيها الإجراءات التي كان يلزم إنشاؤها يدويًا لولا ذلك. ما عليك سوى وصف متطلباتك للذكاء الاصطناعي في الدردشة. + +يُرجى ملاحظة أنه إذا أضفت إجراءات يدويًا، فلن يتعرف عليها الذكاء الاصطناعي أو يعدّلها لاحقًا. + + +يتيح لك إجراء «تشغيل برنامج نصي» كتابة JavaScript مخصص لمعالجة منطق لا تستطيع الإجراءات المدمجة تغطيته. يمكنك تحويل البيانات، واستدعاء واجهات API خارجية، وإجراء الحسابات، وتنفيذ التفرع الشرطي، وغير ذلك، وكل هذا داخل بيئة اختبار معزولة وآمنة. + +تستقبل البرامج النصية بيانات الخطوات السابقة عبر كائن `input`، وتمرر النتائج إلى الخطوات اللاحقة عبر الدالة `output.set()`. + +## متى تستخدم «تشغيل برنامج نصي» بدلًا من الإجراءات المدمجة + +| السيناريو | استخدام الإجراءات المدمجة | استخدام «تشغيل برنامج نصي» | +|---|---|---| +| إنشاء السجلات أو تحديثها أو جلبها | نعم | فقط إذا احتجت إلى منطق معقد حولها | +| إرسال رسالة بسيطة | نعم | لا | +| استدعاء نقطة نهاية API واحدة | نعم (طلب HTTP) | فقط إذا احتجت إلى معالجة الاستجابة بطرق معقدة | +| تحويل البيانات بين الخطوات | أحيانًا | نعم — عندما تحتاج إلى منطق شرطي أو حلقات أو معالجة سلاسل نصية | +| تحليل بنى JSON معقدة | لا | نعم | +| حساب التواريخ وتنسيق الأرقام | لا | نعم | +| تسلسل عدة استدعاءات API مع منطق | غير عملي بالإجراءات المدمجة | نعم | +| تنفيذ قواعد أعمال بشروط كثيرة | غير عملي | نعم | + +عمومًا، استخدم الإجراءات المدمجة عندما تلبي احتياجاتك. واستخدم «تشغيل برنامج نصي» عندما تحتاج إلى منطق مخصص أو تحويل بيانات أو تفاعل معقد مع واجهات API. + +## البيئة + +| الخاصية | القيمة | +|---|---| +| اللغة | JavaScript ‏(ES6+)، مع دعم `await` في المستوى الأعلى | +| وقت التشغيل | بيئة اختبار معزولة وآمنة بمهلة 60 ثانية | +| الوحدات | CommonJS ‏(`require()`)، مع دعم حزم npm | +| الشبكة | طلبات HTTP عبر `fetch()` | + +## كيفية الإعداد + +1. أضف إجراء **تشغيل برنامج نصي** إلى سير العمل. +2. يفتح محرر البرنامج النصي بمساحة فارغة. اكتب شيفرة JavaScript هنا. +3. يستطيع البرنامج النصي قراءة بيانات الخطوات السابقة باستخدام كائن `input` (راجع أدناه). +4. استخدم `output.set(key, value)` لتمرير النتائج إلى الخطوات اللاحقة. +5. (اختياري) أضف تبعيات npm في لوحة التهيئة إذا كان البرنامج النصي يحتاج إلى مكتبات خارجية. +6. انقر على **اختبار** لتشغيل البرنامج النصي ببيانات حقيقية من أحدث تنفيذ للمشغّل. +7. تحقق من مخرجات الاختبار وسجلات وحدة التحكم للتأكد من عمل البرنامج النصي بصورة صحيحة. +8. احفظ الإجراء. + +## قراءة بيانات الإدخال + +يحتوي كائن `input` على بيانات جميع الخطوات السابقة في سير العمل. تُحدد كل خطوة بمعرّف الإجراء الخاص بها. + +### بنية الإدخال + +```javascript +// input كائن مفهرس بمعرّفات الإجراءات +// يحتوي كل مفتاح على مخرجات تلك الخطوة + +const actionIds = Object.keys(input); +// قد تكون actionIds: ["triggerStep1", "actionStep2", "actionStep3"] +``` + +### الحصول على بيانات المشغّل (حقول السجل) + +```javascript +const actionIds = Object.keys(input); +const triggerData = input[actionIds[0]]; // الإدخال الأول هو المشغّل عادةً + +// للمشغّلات المستندة إلى السجلات (إنشاء، تحديث، نقر زر، إرسال نموذج): +const recordId = triggerData.record.id; +const fields = triggerData.record.fields; + +// الوصول إلى حقول محددة بواسطة معرّف الحقل +const customerName = fields.fldXXXXXXX; // استبدله بمعرّف الحقل الفعلي +const orderAmount = fields.fldYYYYYYY; +``` + +### الحصول على بيانات من خطوة جلب السجلات + +```javascript +const actionIds = Object.keys(input); +const getRecordsData = input[actionIds[1]]; // الخطوة الثانية، على سبيل المثال + +const records = getRecordsData.records; +records.forEach(record => { + console.log(record.id, record.fields.fldName); +}); +``` + +### الحصول على بيانات من مخرجات إجراءات أخرى + +```javascript +const actionIds = Object.keys(input); +const previousOutput = input[actionIds[2]]; // مخرجات الخطوة الثالثة +// تعتمد البنية على مخرجات ذلك الإجراء +``` + +استخدم `console.log(JSON.stringify(input, null, 2))` أثناء الاختبار لرؤية البنية الدقيقة لبيانات الإدخال. وهذه أسرع طريقة لفهم ما هو متاح. + +## كتابة المخرجات + +استخدم `output.set(key, value)` لإتاحة البيانات للخطوات اللاحقة. ويمكنك تعيين عدة مفاتيح. + +```javascript +// تعيين قيم بسيطة +output.set("status", "success"); +output.set("count", 42); + +// تعيين كائنات +output.set("result", { + name: "أليس", + score: 95, + passed: true +}); + +// تعيين مصفوفات +output.set("items", [ + { id: 1, name: "العنصر أ" }, + { id: 2, name: "العنصر ب" } +]); +``` + +يصبح كل مفتاح تعيّنه متغيرًا مستقلًا يمكن للخطوات اللاحقة الإشارة إليه عبر منتقي المتغيرات **+**. على سبيل المثال، إذا استدعيت `output.set("status", "success")`، فيمكن للخطوة التالية الإشارة إلى `status` في مخرجات هذا البرنامج النصي. + +## تصحيح الأخطاء باستخدام console.log + +أثناء التطوير، استخدم `console.log()` لفحص البيانات وتتبع تدفق التنفيذ. تظهر مخرجات السجل في لوحة الاختبار عند النقر على **اختبار**. + +```javascript +const actionIds = Object.keys(input); +console.log("معرّفات الإجراءات:", actionIds); + +const data = input[actionIds[0]]; +console.log("بيانات المشغّل:", JSON.stringify(data, null, 2)); + +// تسجيل النتائج الوسيطة +const processed = data.record.fields.fldName.toUpperCase(); +console.log("الاسم المعالَج:", processed); + +output.set("name", processed); +``` + +لا تظهر سجلات وحدة التحكم إلا أثناء الاختبار، ولا تظهر في سجل تشغيل الإنتاج. استخدمها بحرية أثناء إنشاء برنامجك النصي. + +## إدارة حزم npm + +يمكنك استخدام حزم npm في برامجك النصية. أعلن عن التبعيات في لوحة التهيئة: + +```json +[ + { "name": "lodash", "version": "4.17.21" }, + { "name": "dayjs", "version": "1.11.10" } +] +``` + +ثم استخدمها في البرنامج النصي بواسطة `require()`: + +```javascript +const _ = require("lodash"); +const dayjs = require("dayjs"); + +const actionIds = Object.keys(input); +const records = input[actionIds[0]].records; + +const grouped = _.groupBy(records, r => r.fields.fldCategory); +const today = dayjs().format("YYYY-MM-DD"); + +output.set("grouped", grouped); +output.set("date", today); +``` + +فضّل ميزات JavaScript المدمجة على حزم npm متى أمكن. تتضمن JavaScript الحديثة أدوات كثيرة، مثل `Array.map()` و`Array.filter()` و`Object.entries()` والقوالب النصية والتفكيك، وغيرها. لا تضف حزم npm إلا عندما تقدم قيمة ملموسة. + +## المتغيرات المدمجة + +| المتغير | الوصف | +|---|---| +| `process.env.AUTOMATION_TOKEN` | رمز Bearer لاستدعاء واجهة Teable API. يقتصر نطاقه على صلاحيات الأتمتة الحالية | +| `process.env.PUBLIC_ORIGIN` | عنوان URL الأساسي لنسخة Teable (مثل `https://app.teable.io`) | + +### الأمان: نطاق AUTOMATION_TOKEN + +يُنشأ `AUTOMATION_TOKEN` تلقائيًا لكل تشغيل للأتمتة. ويحمل صلاحيات منشئ الأتمتة نفسها، ويقتصر نطاقه على التنفيذ الحالي. النقاط الأساسية: + +- يستطيع الوصول إلى أي جدول يمكن لمنشئ الأتمتة الوصول إليه. +- يظل صالحًا طوال مدة تنفيذ البرنامج النصي فقط (مهلة 60 ثانية). +- لا تكشف هذا الرمز للأنظمة الخارجية؛ فهو مخصص لاستدعاء واجهة Teable API من داخل برنامجك النصي. + +### استدعاء واجهة Teable API + +```javascript +const base = process.env.PUBLIC_ORIGIN + "/api"; +const token = process.env.AUTOMATION_TOKEN; + +// مثال: جلب سجلات من جدول +const res = await fetch(`${base}/table/tblXXXXXXX/record?take=10`, { + headers: { + Authorization: `Bearer ${token}`, + "Content-Type": "application/json" + } +}); + +const data = await res.json(); +console.log("السجلات المجلوبة:", data); +output.set("records", data); +``` + +### استدعاء الذكاء الاصطناعي من برنامج نصي + +يرسل `POST /api/automation/runtime/ai` مطالبة إلى نموذج الذكاء الاصطناعي في قاعدة بياناتك. تُستمد قاعدة البيانات من سياق الأتمتة، ولذلك لا يلزم معرّف قاعدة بيانات. يتلقى النص `prompt`، بالإضافة إلى `attachments` و`modelKey` و`temperature` و`outputType` الاختيارية؛ وتكون الاستجابة `{ "message": ... }`. + +المرفقات هي عناصر `{ url, mimetype, name }`، بحد أقصى 10 عناصر لكل استدعاء، وحجم أقل من 20MB لكل عنصر، ومدة تنزيل لا تتجاوز 30 ثانية، وتشمل الصور وملفات PDF ومستندات Office. قد لا يتمكن نموذج الدردشة الافتراضي من قراءة الصور والمرفقات المشابهة، لذا مرر `modelKey` عند إرسال الملفات. يستهلك كل استدعاء رصيدًا. + +## معالجة الأخطاء + +ضع دائمًا العمليات المحفوفة بالمخاطر داخل كتل try/catch حتى يتمكن سير العمل من معالجة حالات الفشل بسلاسة: + +```javascript +try { + const res = await fetch("https://api.example.com/data"); + + if (!res.ok) { + throw new Error(`أعادت واجهة API الحالة ${res.status}: ${res.statusText}`); + } + + const data = await res.json(); + output.set("success", true); + output.set("data", data); +} catch (error) { + console.log("خطأ:", error.message); + output.set("success", false); + output.set("error", error.message); +} +``` + +دون معالجة الأخطاء، سيؤدي فشل طلب fetch أو ورود تنسيق بيانات غير متوقع إلى تعطل البرنامج النصي، ولن تتلقى الخطوات اللاحقة أي مخرجات. + +## مثال كامل: معالجة تذاكر الدعم وتوجيهها + +```javascript +const actionIds = Object.keys(input); +const record = input[actionIds[0]].record; + +const subject = record.fields.fldSubject || ""; +const body = record.fields.fldBody || ""; +const email = record.fields.fldEmail || ""; + +// توجيه بسيط مستند إلى الكلمات المفتاحية +const text = (subject + " " + body).toLowerCase(); + +let category = "عام"; +let priority = "عادية"; + +if (text.includes("فوترة") || text.includes("فاتورة") || text.includes("دفعة")) { + category = "الفوترة"; +} else if (text.includes("خلل") || text.includes("خطأ") || text.includes("تعطل")) { + category = "تقنية"; + priority = "عالية"; +} else if (text.includes("إلغاء") || text.includes("استرداد")) { + category = "الحساب"; + priority = "عالية"; +} + +// التحقق من عملاء VIP +const vipDomains = ["bigcorp.com", "enterprise.io"]; +const domain = email.split("@")[1] || ""; +if (vipDomains.includes(domain)) { + priority = "عاجلة"; +} + +output.set("category", category); +output.set("priority", priority); +output.set("isVIP", vipDomains.includes(domain)); +``` + +## نصائح + +- **ابدأ باستخدام console.log.** عند إنشاء برنامج نصي جديد، سجّل كائن `input` بالكامل أولًا لفهم بنيته. +- **حافظ على تركيز البرامج النصية.** نفّذ مهمة واحدة بإتقان بدلًا من حشر عدة مهام في برنامج واحد. ويمكنك تسلسل عدة إجراءات لتشغيل برنامج نصي عند الحاجة. +- **انتبه إلى مهلة 60 ثانية.** قد تبلغ العمليات الطويلة (معالجة بيانات كثيرة أو استدعاءات API متسلسلة عديدة) حد المهلة. قسّم المهام الكبيرة إلى أجزاء أصغر. +- **اختبر باستخدام بيانات حقيقية.** تستخدم لوحة الاختبار بيانات فعلية من أحدث تنفيذ للمشغّل، مما يمنحك نتائج واقعية. +- **عالج البيانات المفقودة.** استخدم القيم الافتراضية (العامل `||`) للحقول التي قد تكون فارغة أو غير معرّفة. + +## موضوعات ذات صلة + +- [الإنشاء بالذكاء الاصطناعي](/ar/basic/automation/actions/ai/ai-generate) — لمهام الذكاء الاصطناعي المستندة إلى المطالبات التي لا تحتاج إلى شيفرة مخصصة +- [طلب HTTP](/ar/basic/automation/actions/logic/http-request) — لاستدعاءات API البسيطة التي لا تحتاج إلى برمجة نصية diff --git a/ar/basic/automation/examples/ai-classify-forms.mdx b/ar/basic/automation/examples/ai-classify-forms.mdx new file mode 100644 index 00000000..742561a3 --- /dev/null +++ b/ar/basic/automation/examples/ai-classify-forms.mdx @@ -0,0 +1,40 @@ +--- +title: "تصنيف إدخالات النماذج الجديدة تلقائيًا بالذكاء الاصطناعي" +description: "استخدم الإنشاء بالذكاء الاصطناعي لتصنيف عمليات إرسال النماذج تلقائيًا" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"عندما يرسل شخص نموذج الملاحظات، صنّف الملاحظات إلى بلاغ عن خلل أو طلب ميزة أو ملاحظات عامة، ثم اكتب الفئة في السجل"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## الإعداد اليدوي + +1. **أنشئ سير عمل** باستخدام المشغّل **عند إرسال نموذج**. +2. اختر جدول ونموذج **الملاحظات**. +3. انقر على **اختبار**. +4. **أضف إجراءً** ← **الإنشاء بالذكاء الاصطناعي**. + - المطالبة: + ``` + صنّف هذه الملاحظات ضمن فئة واحدة فقط: + بلاغ عن خلل، أو طلب ميزة، أو ملاحظات عامة. + + أجب باسم الفئة فقط. + + الملاحظات: <أدرج حقل الملاحظات عبر +> + ``` + - نوع المخرجات: **نص** +5. **أضف إجراءً** ← **تحديث سجل**. + - معرّف السجل: معرّف سجل المشغّل (عبر **+**) + - حقل الفئة ← مخرجات الإنشاء بالذكاء الاصطناعي (عبر **+**) +6. اختبر كل خطوة، ثم **فعّل** سير العمل. + +## نصائح + +- للحصول على تصنيف أدق، زد عدد الفئات في المطالبة. +- استخدم نوع مخرجات **JSON** إذا أردت أن يعيد الذكاء الاصطناعي عدة حقول (مثل الفئة + المشاعر + الملخص) في استدعاء واحد. diff --git a/ar/basic/automation/examples/ai-email-digest.mdx b/ar/basic/automation/examples/ai-email-digest.mdx new file mode 100644 index 00000000..477b6066 --- /dev/null +++ b/ar/basic/automation/examples/ai-email-digest.mdx @@ -0,0 +1,40 @@ +--- +title: "إنشاء ملخص يومي وإرساله عبر البريد بالذكاء الاصطناعي" +description: "استخدم مشغّلًا مجدولًا مع الإنشاء بالذكاء الاصطناعي لتلخيص نشاط اليوم وإرساله إلى فريقك" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"ابحث يوميًا في الساعة 6 مساءً عن جميع المهام المكتملة اليوم، ولخّصها في تقرير موجز، ثم أرسله إلى team@yourcompany.com"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## الإعداد اليدوي + +1. **أنشئ سير عمل** باستخدام المشغّل **في وقت مجدول** — يوميًا الساعة 18:00. +2. **أضف إجراءً** ← **جلب السجلات**. + - الجدول: **المهام** + - عامل التصفية: `الحالة` **تساوي** `مكتملة` AND ‏`اكتملت في` **يساوي** `اليوم` +3. **أضف إجراءً** ← **الإنشاء بالذكاء الاصطناعي**. + - المطالبة: + ``` + لخّص هذه المهام المكتملة في تقرير يومي موجز. + اجمعها حسب الفئة عند انطباق ذلك. اجعل التقرير أقل من 200 كلمة. + + المهام: <أدرج مخرجات جلب السجلات عبر +> + ``` + - نوع المخرجات: **نص** +4. **أضف إجراءً** ← **إرسال بريد إلكتروني**. + - إلى: `team@yourcompany.com` + - الموضوع: `تقرير المهام اليومي` + - النص: أدرج مخرجات الإنشاء بالذكاء الاصطناعي (عبر **+**) +5. اختبر كل خطوة، ثم **فعّل** سير العمل. + +## صيغ بديلة + +- **ملخص أسبوعي:** غيّر الجدول الزمني إلى أيام الجمعة، وعامل التصفية إلى "آخر 7 أيام". +- **ملخص نشاط العملاء:** استعلم من جدول CRM عن التفاعلات الجديدة ولخّصها. diff --git a/ar/basic/automation/examples/api-automation.mdx b/ar/basic/automation/examples/api-automation.mdx new file mode 100644 index 00000000..b49a0a79 --- /dev/null +++ b/ar/basic/automation/examples/api-automation.mdx @@ -0,0 +1,80 @@ +--- +title: "إنشاء عمليات الأتمتة برمجيًا باستخدام API" +description: "أنشئ تدفقات العمل وهيّئها باستخدام واجهة Teable API وJavaScript" +--- + +{/* mintlify-resync: 2026-05-14 */} +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"أنشئ أتمتة تراقب تغيرات حالة الطلب وترسل إشعار خطاف ويب عند شحنه"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## المتطلبات الأساسية + +- رمز وصول شخصي (PAT). راجع [رمز الوصول](/ar/api-doc/token). +- معرّف قاعدة البيانات ومعرّف الجدول ومعرّفات الحقول. راجع [الحصول على المعرّفات](/ar/api-doc/get-id). + +## الدوال المساعدة + +```javascript +const baseUrl = "https://app.teable.ai/api"; +const token = process.env.TEABLE_TOKEN; +const baseId = "bserxxxxxx"; + +const headers = { + Authorization: `Bearer ${token}`, + "Content-Type": "application/json", +}; + +async function api(method, path, body) { + const res = await fetch(`${baseUrl}${path}`, { + method, + headers, + body: body ? JSON.stringify(body) : undefined, + }); + if (!res.ok) throw new Error(`${method} ${path} → ${res.status}`); + return res.json(); +} +``` + +## إنشاء سير العمل + +```javascript +// 1. إنشاء سير عمل +const wf = await api("POST", `/base/${baseId}/workflow`, { + name: "الإشعار عند الشحن", + description: "إرسال خطاف ويب عندما تصبح حالة الطلب تم الشحن", +}); + +// 2. إضافة مشغّل +const trigger = await api("POST", `/base/${baseId}/workflow/${wf.id}/trigger`, { + type: "recordUpdated", + config: { tableId: "tblOrders", watchFieldIds: ["fldStatus"] }, +}); + +// 3. اختبار المشغّل +await api("POST", `/base/${baseId}/workflow/${wf.id}/test/${trigger.id}`); + +// 4. إضافة إجراء طلب HTTP +const action = await api("POST", `/base/${baseId}/workflow/${wf.id}/action`, { + type: "httpRequest", + parentNodeId: trigger.id, +}); + +// 5. التمكين +await api("PUT", `/base/${baseId}/workflow/${wf.id}/active`, { + method: "activate", +}); +``` + +## أفضل الممارسات + +- استخدم رمز PAT بأقل قدر من الصلاحيات، واقصره على المساحات وقواعد البيانات التي يحتاج إليها. +- خزّن الرموز في متغيرات البيئة، ولا تثبتها أبدًا في الشيفرة. +- استخدم **اختبار العقدة** للتحقق قبل التمكين. +- راجع [مرجع API الكامل للأتمتة](/ar/api-reference/automation/put-base-workflow-action). diff --git a/ar/basic/automation/examples/batch-loop.mdx b/ar/basic/automation/examples/batch-loop.mdx new file mode 100644 index 00000000..0c211b09 --- /dev/null +++ b/ar/basic/automation/examples/batch-loop.mdx @@ -0,0 +1,33 @@ +--- +title: "معالجة السجلات دفعة واحدة باستخدام الحلقة" +description: "استخدم جلب السجلات + الحلقة لمعالجة عدة سجلات في تشغيل واحد لسير العمل" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"ابحث يوميًا في الساعة 8 صباحًا عن جميع المهام التي انقضى تاريخ استحقاقها ولا تساوي حالتها متأخرة، ثم حدّث حالتها إلى متأخرة"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## الإعداد اليدوي + +1. **أنشئ سير عمل** باستخدام المشغّل **في وقت مجدول** — يوميًا الساعة 08:00. +2. **أضف إجراءً** ← **جلب السجلات**. + - الجدول: **المهام** + - عامل التصفية: `تاريخ الاستحقاق` **قبل** `اليوم` AND ‏`الحالة` **لا تساوي** `متأخرة` +3. انقر على **اختبار** لرؤية السجلات المطابقة. +4. **أضف إجراءً** ← **تحديث سجل**. +5. انقر على **تشغيل الحلقة** أسفل منتقي الجدول. +6. اختر مخرجات المصفوفة من خطوة جلب السجلات. +7. اربط: + - معرّف السجل ← معرّف سجل العنصر الحالي (عبر **+**) + - الحالة ← `متأخرة` +8. انقر على **اختبار**، ثم **فعّل** سير العمل. + +## آلية العمل + +تعيد خطوة جلب السجلات مصفوفة. وتتكرر خطوة تحديث السجل مع تمكين الحلقة على كل عنصر وتحدّثه على حدة وبالترتيب. diff --git a/ar/basic/automation/examples/conditional-actions.mdx b/ar/basic/automation/examples/conditional-actions.mdx new file mode 100644 index 00000000..4ea3287c --- /dev/null +++ b/ar/basic/automation/examples/conditional-actions.mdx @@ -0,0 +1,37 @@ +--- +title: "تشغيل إجراءات مختلفة بحسب قيم السجل" +description: "استخدم المنطق الشرطي لتفريع سير العمل وتنفيذ إجراءات مختلفة حسب قيم الحقول" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"عند إنشاء تذكرة جديدة، تحقق من حقل الأولوية. إذا كانت عاجلة، فأرسل رسالة إلى فريق المناوبة. وإلا فأرسل رسالة إلى قائمة انتظار الدعم العام"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## الإعداد اليدوي + +1. **أنشئ سير عمل** باستخدام المشغّل **عند إنشاء سجل**. +2. اختر جدول **التذاكر**. +3. انقر على **اختبار** للحصول على سجل نموذجي. +4. **أضف عقدة شرط**. +5. اضبط القاعدة: **الأولوية** `تساوي` **عاجلة**. +6. انقر على **اختبار**. +7. **في المسار الصحيح** ← أضف إجراء **إرسال بريد إلكتروني**: + - إلى: `oncall@yourcompany.com` + - الموضوع: `تذكرة عاجلة: ` + عنوان التذكرة (عبر **+**) + - النص: وصف التذكرة (عبر **+**) +8. **في المسار الخطأ** ← أضف إجراء **إرسال بريد إلكتروني**: + - إلى: `support@yourcompany.com` + - الموضوع: `تذكرة جديدة: ` + عنوان التذكرة + - النص: وصف التذكرة +9. اختبر المسارين، ثم **فعّل** سير العمل. + +## نصائح + +- يمكنك تداخل الشروط: أضف شرطًا آخر داخل المسار الخطأ للفصل بين الأولوية "العالية" و"المنخفضة". +- ادمج القواعد باستخدام AND/OR، مثل `الأولوية تساوي عاجلة AND المكلّف فارغ`. diff --git a/ar/basic/automation/examples/cross-base-sync.mdx b/ar/basic/automation/examples/cross-base-sync.mdx new file mode 100644 index 00000000..db421ba9 --- /dev/null +++ b/ar/basic/automation/examples/cross-base-sync.mdx @@ -0,0 +1,36 @@ +--- +title: "مزامنة السجلات عبر عدة قواعد بيانات" +description: "انسخ السجلات الجديدة أو المحدّثة تلقائيًا إلى قاعدة بيانات أخرى باستخدام الوصول عبر قواعد البيانات" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"عند إنشاء طلب جديد في قاعدة بيانات المبيعات، أنشئ سجلًا مطابقًا في قاعدة بيانات التنفيذ يتضمن معرّف الطلب واسم العميل والمبلغ، واضبط الحالة على بانتظار التنفيذ"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## الإعداد اليدوي + +1. **أنشئ سير عمل** في قاعدة بيانات **المبيعات** باستخدام المشغّل **عند إنشاء سجل**. +2. اختر جدول **الطلبات**. +3. انقر على **اختبار**. +4. **أضف إجراءً** ← **إنشاء سجل**. +5. انقر على **الوصول عبر قواعد البيانات** بجوار منتقي الجدول. +6. انتقل إلى قاعدة بيانات **التنفيذ** واختر جدول **الطلبات**. +7. اربط الحقول: + - معرّف الطلب ← معرّف الطلب من المشغّل (عبر **+**) + - العميل ← العميل من المشغّل + - المبلغ ← المبلغ من المشغّل + - الحالة ← `بانتظار التنفيذ` +8. انقر على **اختبار**، ثم **فعّل** سير العمل. + +## المزامنة ثنائية الاتجاه + +لمزامنة التحديثات في الاتجاهين: +1. أنشئ سير عمل ثانيًا في قاعدة بيانات **التنفيذ**. +2. استخدم **عند تحديث سجل** ← **تحديث سجل** مع توجيه الوصول عبر قواعد البيانات إلى قاعدة بيانات المبيعات. +3. استخدم عامل تصفية لتجنب الحلقات اللانهائية، مثل التشغيل فقط عند تغير حقول محددة، والتحقق من اختلاف القيمة فعلًا قبل التحديث. diff --git a/ar/basic/automation/examples/deadline-reminders.mdx b/ar/basic/automation/examples/deadline-reminders.mdx new file mode 100644 index 00000000..fe6df773 --- /dev/null +++ b/ar/basic/automation/examples/deadline-reminders.mdx @@ -0,0 +1,34 @@ +--- +title: "إرسال تذكيرات بالمواعيد النهائية قبل استحقاق المهام" +description: "أرسل رسائل تلقائية إلى المكلّفين بشأن المهام التي سيحين موعدها قريبًا" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"ابحث كل صباح في الساعة 8 عن المهام المستحقة خلال اليومين التاليين وغير المكتملة، وأرسل إلى كل مكلّف رسالة تذكير"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## الإعداد اليدوي + +1. **أنشئ سير عمل** باستخدام المشغّل **في وقت مجدول** — يوميًا الساعة 08:00. +2. **أضف إجراءً** ← **جلب السجلات**. + - الجدول: **المهام** + - عامل التصفية: `تاريخ الاستحقاق` **ضمن** `اليومين التاليين` AND ‏`الحالة` **لا تساوي** `مكتملة` +3. انقر على **اختبار** لرؤية السجلات المطابقة. +4. **أضف إجراءً** ← **إرسال بريد إلكتروني** مع تمكين **الحلقة**. +5. اختر المصفوفة من خطوة جلب السجلات مصدرًا للحلقة. +6. اربط: + - إلى ← بريد المكلّف الإلكتروني (عبر **+**، بالإشارة إلى عنصر الحلقة الحالي) + - الموضوع: `تذكير: "<عنوان المهمة>" مستحقة قريبًا` + - النص: `مهمتك "<عنوان المهمة>" مستحقة في <تاريخ الاستحقاق>. يُرجى تحديث الحالة عند إكمالها.` +7. انقر على **اختبار**، ثم **فعّل** سير العمل. + +## نصائح + +- عدّل نطاق عامل التصفية ("اليومان التاليان" أو "الأيام السبعة التالية") بحسب مدى إلحاح المهام عادةً. +- أضف شرطًا لإرسال الرسائل فقط للمهام التي لا يكون حقل المكلّف فيها فارغًا. diff --git a/ar/basic/automation/examples/prevent-unwanted-triggers.mdx b/ar/basic/automation/examples/prevent-unwanted-triggers.mdx new file mode 100644 index 00000000..32c20fd6 --- /dev/null +++ b/ar/basic/automation/examples/prevent-unwanted-triggers.mdx @@ -0,0 +1,45 @@ +--- +title: "تجنب المشغّلات غير المرغوبة باستخدام عوامل التصفية والحقول المراقبة" +description: "امنع عمليات الأتمتة من العمل عندما لا ينبغي لها ذلك" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"عندما يتغير حقل الحالة إلى موافق عليه، أرسل رسالة إشعار إلى المكلّف. لا تشغّل الأتمتة إلا عند تغير الحالة، وتجاهل تعديلات الحقول الأخرى"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +يهدر سير العمل الذي يعمل أكثر من اللازم عمليات التشغيل، ويرسل رسائل غير مرغوبة، ويحدث ضوضاء. إليك كيفية ضبط المشغّلات بدقة. + +## استخدام الحقول المراقبة + +عند استخدام **عند تحديث سجل**، اختر دائمًا حقولًا محددة بدلًا من "جميع الحقول". + +**المشكلة:** يرسل سير عمل إشعارًا عند تغير حقل الحالة. وعند اختيار "جميع الحقول"، يعمل أيضًا عندما يحرر شخص الوصف أو يضيف تعليقًا. + +**الحل:** اضبط الحقول المراقبة على **الحالة** فقط. سيتجاهل سير العمل الآن جميع التغييرات الأخرى. + +## استخدام عوامل التصفية + +أضف عامل تصفية إلى أي مشغّل سجلات لتضييق نطاق السجلات التي تنشّط سير العمل. + +**المشكلة:** يعالج سير عمل جميع السجلات الجديدة، لكن بعضها إدخالات اختبار. + +**الحل:** أضف عامل تصفية: `النوع` **لا يساوي** `اختبار`. لن تشغّل سير العمل سوى السجلات الحقيقية. + +## الجمع بينهما + +لأقصى قدر من التحكم، استخدم الحقول المراقبة **مع** عامل تصفية: + +- الحقول المراقبة: `الحالة` +- عامل التصفية: `الحالة` **تساوي** `موافق عليه` + +وهذا يعني: لا يعمل المشغّل إلا عندما يتغير حقل الحالة **وتكون** القيمة الجديدة "موافق عليه". + +## استخدام «عند مطابقة السجل للشروط» لتغيرات الحالة + +إذا أردت التشغيل **عند الانتقال فقط** (مثلًا من "معلّق" إلى "موافق عليه")، فاستخدم المشغّل **عند مطابقة السجل للشروط** بدلًا من ذلك. يعمل مرة واحدة عندما يبدأ السجل في مطابقة الشروط، لا عند كل تعديل لاحق. diff --git a/ar/basic/automation/examples/push-notifications.mdx b/ar/basic/automation/examples/push-notifications.mdx new file mode 100644 index 00000000..1fc86081 --- /dev/null +++ b/ar/basic/automation/examples/push-notifications.mdx @@ -0,0 +1,70 @@ +--- +title: "إرسال إشعارات إلى Slack أو Discord أو Teams" +description: "أرسل رسالة إلى قناة دردشة عند حدوث شيء في جدولك" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"عند إنشاء تذكرة جديدة عالية الأولوية، أرسل رسالة إلى قناة #support في Slack تتضمن عنوان التذكرة ووصفها"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## المتطلبات الأساسية + +تحتاج إلى عنوان URL لخطاف ويب من منصة الدردشة: +- **Slack:** أنشئ [خطاف ويب واردًا](https://api.slack.com/messaging/webhooks) +- **Discord:** إعدادات الخادم ← عمليات التكامل ← خطافات الويب ← خطاف ويب جديد +- **Teams:** القناة ← الموصلات ← خطاف ويب وارد + +## الإعداد اليدوي + +1. **أنشئ سير عمل** باستخدام المشغّل **عند إنشاء سجل**. +2. اختر جدول **التذاكر**. +3. أضف عامل تصفية: `الأولوية` **تساوي** `عالية`. +4. انقر على **اختبار**. +5. **أضف إجراءً** ← **طلب HTTP**. +6. هيّئ الإعدادات: + - الطريقة: **POST** + - عنوان URL: عنوان خطاف الويب لديك + - Content-Type: `application/json` + - النص (لـ Slack): + ```json + { + "text": "تذكرة جديدة عالية الأولوية: <عنوان التذكرة>" + } + ``` + - استخدم زر **+** لإدراج عنوان التذكرة ديناميكيًا. +7. انقر على **اختبار**، ثم **فعّل** سير العمل. + +## التكييف مع Discord + +يستخدم Discord المفتاح `"content"` بدلًا من `"text"`: + +```json +{ + "content": "تذكرة جديدة عالية الأولوية: <عنوان التذكرة>" +} +``` + +## التكييف مع Teams + +يستخدم Teams تنسيق Adaptive Card: + +```json +{ + "type": "message", + "attachments": [{ + "contentType": "application/vnd.microsoft.card.adaptive", + "content": { + "type": "AdaptiveCard", + "body": [{ "type": "TextBlock", "text": "تذكرة جديدة عالية الأولوية: <عنوان التذكرة>" }], + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.2" + } + }] +} +``` diff --git a/ar/basic/automation/examples/recurring-records.mdx b/ar/basic/automation/examples/recurring-records.mdx new file mode 100644 index 00000000..0e3af628 --- /dev/null +++ b/ar/basic/automation/examples/recurring-records.mdx @@ -0,0 +1,38 @@ +--- +title: "إنشاء سجلات تلقائيًا وفق جدول زمني متكرر" +description: "استخدم مشغّلًا مجدولًا لإنشاء سجلات تلقائيًا على فترات منتظمة" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"أنشئ كل اثنين في الساعة 9 صباحًا مهمة مراجعة أسبوعية جديدة في جدول المهام، واضبط حالتها على مطلوب تنفيذها"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## الإعداد اليدوي + +1. **أنشئ سير عمل** واختر المشغّل **في وقت مجدول**. +2. هيّئ الجدول الزمني: + - التكرار: **أسابيع**، كل **1** أسبوع + - أيام الأسبوع: **الاثنين** + - وقت التشغيل: **09:00** + - المنطقة الزمنية: منطقتك الزمنية المحلية +3. انقر على **اختبار** للتحقق من وقت التشغيل التالي. +4. **أضف إجراءً** ← **إنشاء سجل**. +5. اختر جدول **المهام**. +6. اربط الحقول: + - العنوان ← `المراجعة الأسبوعية` + - تاريخ الاستحقاق ← استخدم زر **+** لإدراج الطابع الزمني للمشغّل + - الحالة ← `مطلوب التنفيذ` +7. انقر على **التشغيل وفق التهيئة** للاختبار. +8. **فعّل** سير العمل. + +## صيغ بديلة + +- **تذكير بالاجتماع اليومي:** اضبط التكرار على أيام، كل يوم واحد، الساعة 09:00. +- **فاتورة شهرية:** اضبط التكرار على أشهر، في اليوم الأول، لإنشاء سجل فوترة في بداية كل شهر. +- **حدث لمرة واحدة:** اضبط التكرار على مرة واحدة لتاريخ مستقبلي واحد. diff --git a/ar/basic/automation/examples/timestamp-status.mdx b/ar/basic/automation/examples/timestamp-status.mdx new file mode 100644 index 00000000..c4dc2d91 --- /dev/null +++ b/ar/basic/automation/examples/timestamp-status.mdx @@ -0,0 +1,36 @@ +--- +title: "تسجيل وقت تغيّر الحالة تلقائيًا" +description: "اكتب طابعًا زمنيًا تلقائيًا عندما تتغير حالة سجل إلى قيمة محددة" +--- + +نوصي بإنشاء أمثلة الأتمتة مباشرةً في دردشة الذكاء الاصطناعي. ما عليك سوى وصف سير العمل الذي تريده، وسيتولى الذكاء الاصطناعي الإعداد كاملًا، بما في ذلك المشغّل والإجراءات والبرنامج النصي والتهيئة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وأخبره بما تريده. يمكنك مثلًا أن تقول: + +*"عندما تتغير حالة مهمة إلى مكتملة، اكتب التاريخ والوقت الحاليين في حقل اكتملت في"* + +سينشئ الذكاء الاصطناعي سير العمل كاملًا تلقائيًا. يمكنك مراجعة البرنامج النصي الذي أنشأه، واختباره ببيانات حقيقية، وتمكين سير العمل عندما يصبح جاهزًا. + +## الإعداد اليدوي + +1. **أنشئ سير عمل** باستخدام المشغّل **عند مطابقة السجل للشروط**. +2. اختر جدول **المهام**. +3. اضبط عامل التصفية: `الحالة` **تساوي** `مكتملة`. +4. انقر على **اختبار**. +5. **أضف إجراءً** ← **تحديث سجل**. +6. اربط: + - معرّف السجل ← معرّف سجل المشغّل (عبر **+**) + - اكتملت في ← استخدم تعبيرًا أو اضبطه على الطابع الزمني للمشغّل +7. انقر على **اختبار**، ثم **فعّل** سير العمل. + +## لماذا نستخدم «عند مطابقة السجل للشروط»؟ + +يعمل هذا المشغّل **مرة واحدة**، في اللحظة التي ينتقل فيها السجل إلى حالة المطابقة. وإذا عدّل شخص الوصف لاحقًا (بينما تظل الحالة "مكتملة")، **فلن يعمل** سير العمل مجددًا. يمنع ذلك استبدال الطابع الزمني. + +## صيغ بديلة + +- **"بدأت في"** — شغّل الأتمتة عندما تصبح الحالة "قيد التنفيذ". +- **"صُعّدت في"** — شغّل الأتمتة عندما تصبح الأولوية "عاجلة". +- **"تمت الموافقة في"** — شغّل الأتمتة عندما تصبح الموافقة "نعم". diff --git a/ar/basic/automation/trigger/email/email-received-overview.mdx b/ar/basic/automation/trigger/email/email-received-overview.mdx new file mode 100644 index 00000000..3155099e --- /dev/null +++ b/ar/basic/automation/trigger/email/email-received-overview.mdx @@ -0,0 +1,114 @@ +--- +title: "نظرة عامة على «عند استلام بريد إلكتروني»" +description: "شغّل سير عمل عند وصول رسالة جديدة إلى صندوق بريد مراقب" +--- + +{/* mintlify-resync: 2026-05-14 */} +ملاحظة: يمكن إعداد جميع المشغّلات في دردشة الذكاء الاصطناعي. أخبره بما تريد أن يفعله سير العمل، وسيتولى الباقي. + +يعمل هذا المشغّل عند وصول رسالة جديدة غير مقروءة إلى صندوق بريد مراقب. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويربط الحقول ذات الصلة، ويُعد جميع الإجراءات تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"عندما أتلقى رسالة دعم، أنشئ تذكرة وصنّفها."* + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| نوع الاتصال | نعم | IMAP أو Gmail أو Outlook | +| فاصل الاستطلاع | نعم | معدل التحقق من الرسائل الجديدة: من 10 إلى 60 دقيقة (الافتراضي 10) | + +## تفاصيل أنواع الاتصال + +### IMAP + +يعمل IMAP مع أي موفر بريد يدعم بروتوكول IMAP، بما في ذلك خوادم البريد ذاتية الاستضافة وبريد الشركات وموفرو الخدمات مثل Yahoo وZoho. + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| المضيف | نعم | عنوان خادم IMAP (مثل `imap.gmail.com` و`imap.mail.yahoo.com`) | +| المنفذ | نعم | عادةً 993 ‏(SSL/TLS) أو 143 (غير مشفّر، ولا يوصى به) | +| اسم المستخدم | نعم | عنوان بريدك الإلكتروني أو اسم مستخدم الحساب | +| كلمة المرور | نعم | كلمة مرور التطبيق (ملاحظة: ليست كلمة مرور بريدك الإلكتروني) | +| صندوق البريد | لا | المجلد المطلوب مراقبته (الافتراضي `INBOX`) | + +### Gmail ‏(OAuth) + +يتصل عبر تدفق OAuth من Google. لا حاجة إلى كلمة مرور؛ إذ تفوّض Teable للوصول إلى حساب Gmail. + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| حساب Google | نعم | التفويض عبر OAuth — يطلب Teable وصولًا للقراءة فقط | +| التسمية | لا | اختر تسمية Gmail لمراقبتها (الافتراضي البريد الوارد) | + +### Outlook ‏(OAuth) + +يتصل عبر تدفق OAuth من Microsoft لصناديق بريد Outlook وMicrosoft 365. + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| حساب Microsoft | نعم | التفويض عبر OAuth — يطلب Teable وصولًا للقراءة فقط | +| المجلد | لا | اختر مجلد Outlook لمراقبته (الافتراضي البريد الوارد) | + +## بيانات البريد المتاحة للخطوات التالية + +عند عمل المشغّل، تصبح البيانات التالية من الرسالة متاحة بوصفها متغيرات في خطوات الإجراءات: + +| البيانات | الوصف | +|---|---| +| **من** | عنوان بريد المرسل | +| **الموضوع** | سطر موضوع الرسالة | +| **النص (نص عادي)** | النسخة النصية العادية من نص الرسالة | +| **النص (HTML)** | نسخة HTML من نص الرسالة (إن توفرت) | +| **التاريخ** | وقت إرسال الرسالة | +| **المرفقات** | الملفات المرفقة بالرسالة | + +يمكنك الإشارة إلى أي منها بالنقر على **+** في حقول الإجراءات. + +## كيفية الإعداد (مثال IMAP) + +1. افتح الأتمتة وأضف مشغّلًا جديدًا. +2. اختر **عند استلام بريد إلكتروني**. +3. اختر **IMAP** نوعًا للاتصال. +4. أدخل تفاصيل خادم IMAP: المضيف والمنفذ واسم المستخدم وكلمة المرور. +5. (اختياري) غيّر **صندوق البريد** إذا أردت مراقبة مجلد غير INBOX. +6. اضبط **فاصل الاستطلاع**، أي معدل التحقق من الرسائل الجديدة. يعني الفاصل الأقصر استجابة أسرع، لكنه يزيد مرات التحقق من الخادم. +7. انقر على **اختبار** للتحقق من الاتصال. سيحاول Teable الاتصال بصندوق بريدك ويبلغك بالنجاح أو الفشل. +8. احفظ الأتمتة وفعّلها. +9. أضف خطوات الإجراءات، واستخدم بيانات الرسالة (من والموضوع والنص، إلخ) بوصفها متغيرات. + +## حالات الاستخدام + +- **إنشاء سجل لكل رسالة دعم واردة.** حلّل الموضوع والنص لملء حقول جدول تذاكر الدعم تلقائيًا. +- **استخراج بيانات الفواتير من الرسائل بالذكاء الاصطناعي.** استخدم إجراء الإنشاء بالذكاء الاصطناعي لقراءة نص الرسالة أو مرفقها واستخراج المبالغ والتواريخ وأسماء المورّدين. +- **توجيه استفسارات العملاء إلى الفريق المناسب.** حدّث حقل "الفريق" أو أرسل إشعارات إلى أشخاص محددين استنادًا إلى الكلمات المفتاحية في الموضوع أو النص. +- **أرشفة الرسائل المهمة بوصفها سجلات.** سجّل تلقائيًا الرسائل من مرسلين محددين أو ذات موضوعات معينة في جدول Teable لتسهيل البحث والتتبع. +- **معالجة تأكيدات الطلبات.** عند وصول رسالة تأكيد طلب، استخرج رقم الطلب وتفاصيله لتحديث جدول الطلبات. + +## استكشاف الأخطاء وإصلاحها + +- **فشل الاتصال (IMAP):** تحقق مجددًا من المضيف والمنفذ واسم المستخدم وكلمة المرور. وتأكد من أن موفر بريدك يسمح بالوصول عبر IMAP، إذ يعطله بعض الموفرين افتراضيًا. +- **Gmail: خطأ "تطبيق أقل أمانًا":** لا يسمح Gmail بتسجيل الدخول بكلمة مرور عادية. استخدم **كلمة مرور تطبيق** بدلًا منها. راجع [إعداد Gmail IMAP](/ar/basic/automation/trigger/email/gmail-imap) للاطلاع على التعليمات. +- **عدم التقاط الرسائل:** تحقق من فاصل الاستطلاع، وتأكد أيضًا من وصول الرسائل إلى المجلد أو التسمية المراقبة. قد تفوت الرسائل الموجودة في مجلدات فرعية أو تسميات مفلترة إذا اخترت صندوق البريد الخطأ. +- **المعالجة المكررة:** يتتبع المشغّل الرسائل التي عالجها بالفعل. ومع ذلك، قد يعيد معالجة الرسائل الحديثة إذا عطّلت الأتمتة ثم أعدت تفعيلها. ضع علامة مقروءة على الرسائل في صندوق الوارد عند الحاجة. +- **انتهاء صلاحية رمز OAuth:** بالنسبة إلى Gmail أو Outlook، أعد تفويض الاتصال إذا انتهت صلاحية رمز OAuth. يحدث ذلك عادةً بعد عدة أشهر أو إذا ألغيت أذونات التطبيق. + +## نصائح + +- يعني فاصل الاستطلاع الأقصر استجابة أسرع للرسائل، لكنه لا يضمن التسليم الفوري. للمعالجة الفورية فعلًا، فكّر في نهج قائم على خطاف الويب إذا كان موفر بريدك يدعمه. +- استخدم عوامل تصفية عميل البريد لتوجيه الرسائل ذات الصلة إلى تسمية أو مجلد محدد، ثم اجعل Teable يراقب ذلك الموضع فقط. يقلل هذا الضوضاء. +- لصناديق البريد ذات الحجم الكبير، فكّر في زيادة فاصل الاستطلاع والمعالجة على دفعات لتجنب إرهاق سير العمل. + +## موضوعات ذات صلة + +- [إعداد Gmail IMAP](/ar/basic/automation/trigger/email/gmail-imap) — تعليمات مفصلة لربط Gmail +- [إجراء الإنشاء بالذكاء الاصطناعي](/ar/basic/automation/actions/ai/ai-generate) — مفيد لاستخراج بيانات منظّمة من محتوى البريد +- [إجراء إنشاء سجل](/ar/basic/automation/actions/records/create-record) — يُقرن عادةً بمشغّلات البريد لتسجيل الرسائل كسجلات +- [إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) diff --git a/ar/basic/automation/trigger/email/gmail-imap.mdx b/ar/basic/automation/trigger/email/gmail-imap.mdx new file mode 100644 index 00000000..d01705d7 --- /dev/null +++ b/ar/basic/automation/trigger/email/gmail-imap.mdx @@ -0,0 +1,50 @@ +--- +title: "إعداد Gmail IMAP" +description: "كيفية تمكين Gmail IMAP وإنشاء كلمة مرور تطبيق لـ Teable" +--- + +# كيفية تمكين Gmail IMAP وإنشاء كلمة مرور تطبيق + +يوضح هذا الدليل كيفية إعداد حساب Gmail كي يتمكن Teable من التقاط الرسائل الواردة تلقائيًا. + + +## تمكين IMAP في Gmail + +1. افتح Gmail في متصفح ويب. +2. انقر على **الإعدادات ← عرض جميع الإعدادات**. +3. انتقل إلى علامة تبويب **إعادة التوجيه وPOP/IMAP**. +4. مرّر إلى **الوصول عبر IMAP**. +5. اختر **تمكين IMAP**. +6. اختياري: اترك **تشغيل الحذف التلقائي** و**عدم تقييد حجم المجلد** على قيمتيهما الافتراضيتين. +7. انقر على **حفظ التغييرات**. + +**مثال من لقطة شاشة:** +![تمكين IMAP](https://dxshyegpql0u3hra.public.blob.vercel-storage.com/9a53be669002acaefbae6ab98d57405b.png) + +## تمكين التحقق بخطوتين + +1. انتقل إلى **https://myaccount.google.com/** وسجّل الدخول. +2. اختر **الأمان ← التحقق بخطوتين**. +3. اتبع الخطوات لتمكين المصادقة الثنائية (رسالة SMS أو تطبيق مصادقة أو مفتاح أمان). + +**مثال من لقطة شاشة:** +![إعداد المصادقة الثنائية](https://dxshyegpql0u3hra.public.blob.vercel-storage.com/00047fb62cbf7ca042a4edeb7c511f0a.png) + +## إنشاء كلمة مرور تطبيق + +1. بعد تمكين التحقق بخطوتين، انتقل إلى **كلمات مرور التطبيقات**: + - الرابط المباشر: [https://myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords) +2. في **اختيار التطبيق**، اختر `البريد`. +3. في **اختيار الجهاز**، اختر `غير ذلك` وسمّه `Teable IMAP`. +4. انقر على **إنشاء**. +5. انسخ **كلمة المرور المكوّنة من 16 حرفًا** (ستحتاج إليها في Teable). + +**مثال من لقطة شاشة:** +![كلمة مرور التطبيق](https://dxshyegpql0u3hra.public.blob.vercel-storage.com/f6a7753ef8d3d99901495d4ea79758f2.png) + + +## ملاحظات + +- استخدم **كلمة مرور التطبيق** المنشأة، لا كلمة مرور Gmail الرئيسية، في Teable. +- لا تشغّل الأتمتة إلا الرسائل الجديدة وغير المقروءة. +- احتفظ بكلمة مرور التطبيق في مكان آمن؛ فلن تراها إلا مرة واحدة. diff --git a/ar/basic/automation/trigger/external/scheduled-time.mdx b/ar/basic/automation/trigger/external/scheduled-time.mdx new file mode 100644 index 00000000..744c168d --- /dev/null +++ b/ar/basic/automation/trigger/external/scheduled-time.mdx @@ -0,0 +1,98 @@ +--- +title: "في وقت مجدول" +description: "شغّل سير عمل وفق جدول زمني متكرر أو لمرة واحدة" +--- + +{/* mintlify-resync: 2026-05-14 */} +ملاحظة: يمكن إعداد جميع المشغّلات في دردشة الذكاء الاصطناعي. أخبره بما تريد أن يفعله سير العمل، وسيتولى الباقي. + +يعمل هذا المشغّل وفق جدول زمني تحدده، من مرة كل بضع دقائق إلى مرة شهريًا، أو تشغيل واحد لمرة واحدة. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويربط الحقول ذات الصلة، ويُعد جميع الإجراءات تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"أرسل إليّ كل اثنين في الساعة 9 صباحًا قائمة بالمهام المتأخرة."* + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| وقت البدء | نعم | موعد بدء الجدول الزمني | +| وقت الانتهاء | لا | موعد توقف الجدول الزمني (اتركه فارغًا للتشغيل دون نهاية) | +| المنطقة الزمنية | نعم | القيمة الافتراضية هي منطقتك الزمنية الحالية. تُفسّر جميع الأوقات وفق هذه المنطقة | +| التكرار | نعم | معدل عمل المشغّل؛ راجع الخيارات أدناه | + +## خيارات التكرار + +| التكرار | الفاصل | إعدادات إضافية | +|---|---|---| +| دقائق | كل 10–60 دقيقة | — | +| ساعات | كل 1–24 ساعة | — | +| أيام | كل 1–31 يومًا | وقت التشغيل (الساعة + الدقيقة) | +| أسابيع | كل 1–52 أسبوعًا | أيام الأسبوع (الاثنين–الأحد) + وقت التشغيل | +| أشهر | كل 1–12 شهرًا | أيام الشهر + وقت التشغيل | +| مرة واحدة | — | يعمل مرة واحدة في الوقت المحدد، ثم يتعطل تلقائيًا | + +استخدم **-1** كيوم الشهر لاستهداف آخر يوم من الشهر، سواء كان يتكون من 28 أو 30 أو 31 يومًا. + +## كيفية الإعداد + +1. افتح الأتمتة وأضف مشغّلًا جديدًا. +2. اختر **في وقت مجدول**. +3. اضبط **المنطقة الزمنية**. وهذا مهم خصوصًا إذا كان فريقك يعمل في عدة مناطق زمنية، إذ يعمل الجدول الزمني وفق المنطقة التي تختارها هنا. +4. اختر **التكرار**. مثلًا، للتشغيل كل اثنين الساعة 9:00 صباحًا: + - اضبط التكرار على **أسابيع**. + - اضبط الفاصل على **1** (كل أسبوع واحد). + - حدد **الاثنين** في منتقي أيام الأسبوع. + - اضبط وقت التشغيل على **09:00**. +5. اضبط **وقت البدء** (موعد تنشيط الجدول الزمني). +6. (اختياري) اضبط **وقت الانتهاء** إذا أردت انتهاء الجدول الزمني. +7. احفظ الأتمتة وفعّلها. +8. نظرًا إلى عدم وجود بيانات سجل، سيكون الإجراء الأول عادةً خطوة **جلب السجلات** لتحميل البيانات المطلوبة. + +## مثال عملي: تقرير صباح الاثنين الأسبوعي + +الهدف: جلب جميع المهام المستحقة هذا الأسبوع وإرسال رسالة ملخص كل اثنين الساعة 9:00 صباحًا. + +1. **المشغّل:** في وقت مجدول — أسابيع، كل أسبوع واحد، الاثنين، 09:00، منطقتك الزمنية. +2. **الإجراء 1:** جلب السجلات — من جدول المهام، عامل التصفية: تاريخ الاستحقاق ضمن هذا الأسبوع. +3. **الإجراء 2:** إرسال بريد إلكتروني — إلى فريقك، مع إدراج المهام المستردة في النص. + +## الجداول الزمنية لمرة واحدة + +عند اختيار التكرار **مرة واحدة**، تعمل الأتمتة مرة واحدة في التاريخ والوقت المحددين ثم تعطل نفسها تلقائيًا. يفيد ذلك في: + +- تذكير بالمتابعة في تاريخ محدد. +- إجراء مؤجل يجب تنفيذه مرة واحدة (مثل إرسال إعلان إطلاق في تاريخ مستقبلي). +- حملة محدودة المدة تعمل مرة واحدة فقط. + +بعد عمل مشغّل لمرة واحدة، سترى الأتمتة موسومة بأنها غير نشطة. ويمكنك إعادة تفعيلها بوقت جديد عند الحاجة. + +## حالات الاستخدام + +- **إنشاء تقرير ملخص يومي.** شغّله يوميًا الساعة 8:00 صباحًا، واجلب جميع السجلات المحدّثة أمس، وأرسل ملخصًا. +- **إنشاء مهام متكررة كل اثنين.** شغّله أسبوعيًا وأنشئ سجلات في جدول المهام للأسبوع الجديد. +- **إرسال تذكيرات شهرية بالفواتير.** شغّله في اليوم الأول من كل شهر، وابحث عن الفواتير غير المدفوعة، وأرسل رسائل تذكير. +- **تنظيف السجلات القديمة.** شغّله يوميًا، وابحث عن السجلات الأقدم من 90 يومًا ذات حالة "مسودة"، ثم أرشفها أو احذفها. +- **مزامنة البيانات وفق جدول زمني.** شغّله كل ساعة لدفع السجلات المحدّثة إلى واجهة API خارجية. + +لا ترتبط مشغّلات الجدولة بأي سجل، ولذلك لا تتوفر بيانات سجل للخطوات اللاحقة. إذا كنت تحتاج إلى معالجة سجلات، فأضف إجراء جلب السجلات بوصفه الخطوة الأولى، واستخدم عوامل التصفية لاختيار السجلات المطلوبة. + +## نصائح + +- بما أن مشغّلات الجدولة لا تتضمن "سجلًا حاليًا"، فلا يمكنك الإشارة إلى بيانات المشغّل في الإجراءات كما تفعل مع المشغّلات المستندة إلى السجلات. ابدأ دائمًا بإجراء **جلب السجلات** إذا كنت تحتاج إلى بيانات. +- انتبه إلى المناطق الزمنية، ولا سيما للفرق التي تعمل عبر مناطق مختلفة. يحدد إعداد المنطقة الزمنية في المشغّل وقت عمله، لا الوقت المحلي للمشاهد. +- للجداول الزمنية عالية التكرار (كل بضع دقائق)، اجعل سير العمل خفيفًا لتجنب تداخل عمليات التشغيل. +- إذا كانت الأتمتة حساسة للوقت (مثل وجوب تشغيلها قبل اجتماع يومي)، فاضبطها قبل الموعد ببضع دقائق لإتاحة وقت المعالجة. +- تفيد حيلة يوم الشهر **-1** في تقارير أو عمليات نهاية الشهر. تعني -1 "آخر يوم من الشهر"، ولذلك تعمل بصورة صحيحة في 31 يناير و28 فبراير (أو 29) و31 مارس، وهكذا. + +## موضوعات ذات صلة + +- [إجراء جلب السجلات](/ar/basic/automation/actions/records/get-records) — الخطوة الأولى المعتادة بعد مشغّل الجدولة +- [إجراء إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) — يُقرن عادةً بالجداول الزمنية للإشعارات الدورية +- [إجراء الحلقة (دفعة)](/ar/basic/automation/actions/logic/loop-run) — مفيد لمعالجة مصفوفة السجلات التي يعيدها جلب السجلات diff --git a/ar/basic/automation/trigger/external/webhook-received.mdx b/ar/basic/automation/trigger/external/webhook-received.mdx new file mode 100644 index 00000000..b2c11503 --- /dev/null +++ b/ar/basic/automation/trigger/external/webhook-received.mdx @@ -0,0 +1,155 @@ +--- +title: "عند استلام خطاف ويب" +description: "شغّل سير عمل باستلام طلب HTTP من أي نظام خارجي" +--- + +{/* mintlify-resync: 2026-05-14 */} +ملاحظة: يمكن إعداد جميع المشغّلات في دردشة الذكاء الاصطناعي. أخبره بما تريد أن يفعله سير العمل، وسيتولى الباقي. + +ينشئ هذا المشغّل عنوان URL فريدًا. وعندما يرسل نظام خارجي طلب HTTP POST إليه، يعمل سير العمل. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويربط الحقول ذات الصلة، ويُعد جميع الإجراءات تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"عندما أتلقى خطاف ويب لدفعة Stripe، أنشئ سجل طلب."* + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| التفويض | لا | **بلا** (عام — يمكن لأي شخص يملك عنوان URL تشغيله) أو **رمز Bearer** (يتطلب الطلب رمزًا منشأ تلقائيًا في الترويسة) | +| الاستجابة | لا | **افتراضية** (يعيد Teable إقرارًا خاصًا به) أو **مخصصة** (تحدد رمز الحالة ونوع المحتوى والنص) | + +## كيفية الإعداد + +1. افتح الأتمتة وأضف مشغّلًا جديدًا. +2. اختر **عند استلام خطاف ويب**. +3. ينشئ المشغّل فورًا **عنوان URL لخطاف ويب** فريدًا. انسخ هذا العنوان؛ فستحتاج إليه في النظام الخارجي. +4. (اختياري لكن موصى به) انقر على **إنشاء رمز** لتمكين التفويض برمز Bearer. يؤدي ذلك إلى إنشاء رمز يجب تضمينه في ترويسة `Authorization` للطلبات الواردة. +5. احفظ الأتمتة وفعّلها. +6. هيّئ النظام الخارجي لإرسال طلب POST إلى عنوان خطاف الويب. ضمّن الرمز في الترويسة إذا فعّلت التفويض. +7. أرسل طلب اختبار (راجع الأمثلة أدناه). تحقق من سجل تشغيل الأتمتة للتأكد من استلام البيانات بصورة صحيحة. +8. أضف خطوات الإجراءات. انقر على **+** في أي حقل إجراء للإشارة إلى قيم من نص JSON لخطاف الويب. + +## البيانات المتاحة للخطوات التالية + +يتاح نص JSON الكامل لطلب POST الوارد بوصفه متغيرات. على سبيل المثال، إذا أرسلت: + +```json +{ + "order_id": "12345", + "customer": "أليس", + "amount": 99.95 +} +``` + +يمكنك بعد ذلك الإشارة في الإجراءات إلى `order_id` و`customer` و`amount` كلًا على حدة بالنقر على **+** والانتقال إلى حقول مخرجات المشغّل. + +يحلل Teable ملف JSON تلقائيًا وينشئ متغيرات مسماة لكل مفتاح في المستوى الأعلى. ويمكن أيضًا الوصول إلى الكائنات المتداخلة. + +## تخصيص الاستجابة + +يرد Teable افتراضيًا على كل طلب وارد بإقرار خاص به. لا تقبل بعض المنصات ذلك؛ فهي تتحقق من عنوان URL للاشتراك بإرسال طلب فحص، وتشترط أن تعيد نقطة النهاية أحد حقوله. يعمل Slack بهذه الطريقة، ولذلك لا تصل أحداثه إلى الأتمتة إلا بعد أن يجيب خطاف الويب على المصافحة. + +في لوحة المشغّل، غيّر **الاستجابة** من **افتراضية** إلى **مخصصة**: + +| الحقل | الوصف | +|---|---| +| **رمز الحالة** | أي رمز من 200 إلى 299. القيمة الافتراضية 200. | +| **نوع المحتوى** | **JSON** أو **نص أولي**. القيمة الافتراضية JSON. | +| **نص الاستجابة** | النص المطلوب إعادته. استخدم `{{body.}}` لإدراج قيم من الطلب الوارد. | + +يؤدي التبديل إلى **مخصصة** إلى ملء النص مسبقًا باستجابة المصافحة التي يحتاج إليها معظم المستدعين: + +```json +{"challenge":"{{body.challenge}}"} +``` + +المسارات داخل `{{ }}` هي نفسها التي يعرضها المشغّل بوصفها متغيرات مخرجات، لذا يمكنك نسخ مسار مباشرةً من حمولة سبق أن رأيتها في تشغيل اختبار. تعمل القيم المتداخلة أيضًا، مثل `{{body.event.type}}`. في نص JSON، يُعرض المسار غير الموجود في الطلب بالقيمة `null`، فتظل الاستجابة JSON صالحة. + +لا يستطيع Slack إرسال ترويسة `Authorization`، لذا أبقِ **التفويض** مضبوطًا على **بلا** عند ربطه. تعرض لوحة المشغّل تحذيرًا إذا كان الخياران مفعّلين معًا. + +أعد **الاستجابة** إلى **افتراضية** في أي وقت للعودة إلى إقرار Teable. ولا تتأثر عمليات الأتمتة التي لم تستخدم هذا الإعداد قط. + +## اختبار خطاف الويب + +أسهل طريقة للاختبار هي استخدام `curl` من سطر الأوامر. انسخ عنوان URL الحقيقي من لوحة المشغّل بدلًا من كتابته؛ فهو يتضمن معرّفي قاعدة البيانات وسير العمل. + +**دون تفويض:** + +```bash +curl -X POST https://your-teable-instance.com/api/webhook/base/bseXXXXXXXXXXXX/workflow/wflXXXXXXXXXXXX \ + -H "Content-Type: application/json" \ + -d '{"test": true, "message": "مرحبًا من curl"}' +``` + +**مع تفويض رمز Bearer:** + +```bash +curl -X POST https://your-teable-instance.com/api/webhook/base/bseXXXXXXXXXXXX/workflow/wflXXXXXXXXXXXX \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer your-generated-token" \ + -d '{"order_id": "12345", "status": "paid"}' +``` + +**إرسال بيانات أكثر تعقيدًا:** + +```bash +curl -X POST https://your-teable-instance.com/api/webhook/base/bseXXXXXXXXXXXX/workflow/wflXXXXXXXXXXXX \ + -H "Content-Type: application/json" \ + -H "Authorization: Bearer your-generated-token" \ + -d '{ + "event": "invoice.paid", + "data": { + "invoice_id": "INV-001", + "amount": 250.00, + "currency": "USD", + "customer_email": "alice@example.com" + } + }' +``` + +بعد إرسال طلب اختبار، تحقق من سجل تشغيل الأتمتة للتأكد من استلام البيانات وتحليلها بصورة صحيحة. + +## حدود المعدل + +| النطاق | الحد | +|---|---| +| لكل قاعدة بيانات | 50 طلبًا / ثانية | +| لكل سير عمل | طلبان / ثانية | + +ستتلقى الطلبات التي تتجاوز حد المعدل استجابة HTTP 429. وإذا كان نظامك الخارجي يرسل دفعات مفاجئة من الطلبات، ففكّر في تنفيذ منطق لإعادة المحاولة مع تراجع أُسّي. + +## أفضل ممارسات الأمان + +- **استخدم دائمًا تفويض رمز Bearer** لخطافات ويب في الإنتاج. يستطيع أي شخص يعثر على عنوان URL عام لخطاف الويب تشغيله. +- **حافظ على خصوصية عنوان خطاف الويب.** عامله ككلمة مرور. لا تُودعه في مستودعات عامة أو تشاركه في قنوات مفتوحة. +- **أعد إنشاء الرمز** إذا اشتبهت في تعرضه للاختراق. يمكنك إنشاء رمز جديد من لوحة المشغّل في أي وقت. +- **تحقق من البيانات في سير العمل.** لا تفترض أن البيانات الواردة سليمة البنية. استخدم عوامل التصفية أو خطوات البرامج النصية للتحقق من وجود الحقول المطلوبة قبل المعالجة. +- **راقب سجل التشغيل.** راجع بانتظام سجلات تشغيل الأتمتة لاكتشاف الطلبات غير المتوقعة أو غير المصرح بها. + +## حالات الاستخدام + +- **استلام أحداث الدفع من Stripe أو PayPal.** هيّئ خطاف Stripe لإرسال أحداث `invoice.paid` إلى أتمتة Teable، وإنشاء سجلات الطلبات أو تحديثها تلقائيًا. +- **قبول عمليات إرسال النماذج من موقعك.** وجّه نموذج الاتصال أو التسجيل في موقعك إلى عنوان خطاف الويب لإنشاء سجلات مباشرةً في Teable. +- **إدخال بيانات من أجهزة إنترنت الأشياء.** تستطيع أجهزة الاستشعار أو الأجهزة القادرة على إرسال طلبات HTTP دفع البيانات إلى Teable للمراقبة والتنبيه. +- **ربط مسارات CI/CD.** شغّل تدفقات العمل عند نجاح بناء أو فشله؛ لإنشاء سجلات أو إرسال إشعارات أو تحديث حالة المشروع. +- **استلام أحداث من أي أداة SaaS.** تدعم أدوات كثيرة (GitHub وJira وShopify وTwilio وغيرها) إشعارات خطافات الويب. وجّهها إلى خطاف Teable لأتمتة تدفقات العمل بين الأدوات. + +## نصائح + +- لا يقبل خطاف الويب إلا طلبات **POST**. ولن تشغّل طلبات GET أو PUT أو الطرق الأخرى الأتمتة. +- أرسل دائمًا ترويسة `Content-Type: application/json`. وإذا لم يكن النص JSON صالحًا، فقد لا يحلل المشغّل البيانات بصورة صحيحة. +- إذا أردت إرسال بيانات من نظام لا يدعم الترويسات المخصصة (لمصادقة Bearer)، ففكّر في استخدام الوضع العام مع إضافة مفتاح سري إلى نص JSON يتحقق منه سير العمل بعامل تصفية أو برنامج نصي. +- لتصحيح الأخطاء، يمكنك استخدام خدمات مثل [webhook.site](https://webhook.site) لفحص ما يرسله نظامك الخارجي فعلًا قبل توجيهه إلى Teable. + +## موضوعات ذات صلة + +- [إجراء طلب HTTP](/ar/basic/automation/actions/logic/http-request) — النظير الصادر: استدعاء واجهات API خارجية من سير العمل +- [تشغيل برنامج نصي](/ar/basic/automation/ai/scripting/runscript) — للمعالجة المتقدمة لحمولات خطاف الويب +- [إجراء الحلقة (دفعة)](/ar/basic/automation/actions/logic/loop-run) — معالجة المصفوفات في حمولات خطاف الويب diff --git a/ar/basic/automation/trigger/forms/button-click.mdx b/ar/basic/automation/trigger/forms/button-click.mdx new file mode 100644 index 00000000..40373780 --- /dev/null +++ b/ar/basic/automation/trigger/forms/button-click.mdx @@ -0,0 +1,78 @@ +--- +title: "عند نقر زر" +description: "شغّل سير عمل عند نقر حقل زر" +--- + +{/* mintlify-resync: 2026-05-14 */} +ملاحظة: يمكن إعداد جميع المشغّلات في دردشة الذكاء الاصطناعي. أخبره بما تريد أن يفعله سير العمل، وسيتولى الباقي. + +يعمل هذا المشغّل عندما ينقر مستخدم حقل زر في صف جدول. ويتلقى سير العمل بيانات ذلك الصف. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويربط الحقول ذات الصلة، ويُعد جميع الإجراءات تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"عندما أنقر على زر الموافقة، حدّث الحالة وأبلغ الفريق."* + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| الجدول | نعم | الجدول الذي يحتوي على حقل الزر | +| الحقول المراقبة | نعم | حقول الأزرار المطلوب مراقبة نقرها | +| عامل التصفية | لا | لا يعمل المشغّل إلا إذا طابق السجل هذه الشروط عند نقر الزر | + +## كيفية إنشاء حقل زر + +قبل استخدام هذا المشغّل، تحتاج إلى حقل زر في جدولك: + +1. افتح الجدول الذي تريد إضافة الزر إليه. +2. انقر على **+** لإضافة حقل جديد. +3. في قائمة أنواع الحقول، انتقل إلى **متقدم** واختر **زر**. +4. امنح الحقل اسمًا (مثل "موافقة" أو "إرسال الفاتورة" أو "تصدير"). +5. احفظ الحقل. سيظهر الآن زر قابل للنقر في كل صف من ذلك العمود. + +## كيفية الإعداد + +1. افتح الأتمتة وأضف مشغّلًا جديدًا. +2. اختر **عند نقر زر**. +3. اختر **الجدول** الذي يحتوي على حقل الزر. +4. في **الحقول المراقبة**، اختر حقل الزر المطلوب مراقبته. ويمكنك اختيار عدة حقول أزرار عند الحاجة. +5. (اختياري) أضف **عامل تصفية** لتقييد الصفوف التي يمكنها تشغيل الأتمتة. مثلًا، يمنع الشرط `الحالة` لا تساوي `مكتملة` تشغيل الزر في السجلات المكتملة بالفعل. +6. احفظ الأتمتة وفعّلها. +7. أضف خطوات الإجراءات. انقر على **+** في أي حقل إجراء لإدراج بيانات من الصف الذي نُقر فيه الزر. + +## البيانات المتاحة للخطوات التالية + +عند نقر زر، يوفر المشغّل: + +- **معرّف السجل** — المعرّف الفريد للصف الذي نُقر فيه الزر. +- **جميع قيم الحقول** — يتاح كل حقل في الصف المنقور بوصفه متغيرًا، بما في ذلك النصوص والأرقام والتواريخ والسجلات المرتبطة والمرفقات وغيرها. + +يعني ذلك أنه يمكنك استخدام بيانات الصف لملء الرسائل أو تحديث سجلات أخرى أو إرسال البيانات إلى واجهات API خارجية، وكل ذلك وفق الصف المحدد الذي نقره المستخدم. + +## حالات الاستخدام + +- **تدفقات موافقة بنقرة واحدة.** أضف زر "موافقة" إلى كل صف. وعند نقره، حدّث الحالة إلى "موافق عليه" وأرسل إشعارًا إلى مقدم الطلب. +- **إنشاء تقرير أو مستند عند الطلب.** يشغّل زر "إنشاء تقرير" إجراء ذكاء اصطناعي أو طلب HTTP لإنشاء ملف PDF أو ملخص لذلك السجل تحديدًا. +- **دفع سجل إلى نظام خارجي.** يرسل زر "المزامنة مع CRM" بيانات الصف إلى Salesforce أو HubSpot أو منصة أخرى عبر طلب HTTP. +- **إرسال رسالة مخصصة.** ينشئ زر "إرسال تذكير" رسالة ويرسلها باستخدام معلومات الاتصال والتفاصيل ذات الصلة في الصف. +- **تشغيل خطوة مراجعة يدوية.** يضع زر "تمييز للمراجعة" علامة على السجل ويبلغ المدير، مما يمنح الأشخاص تحكمًا صريحًا في العناصر التي تُصعّد. + +## نصائح + +- لا يخزن حقل الزر بيانات؛ فهو آلية تشغيل فقط. لن ترى قيمة في الخلية، بل زرًا قابلًا للنقر. +- إذا كانت لديك عدة حقول أزرار في جدول، فيمكنك إنشاء أتمتة منفصلة لكل منها، أو استخدام أتمتة واحدة تراقب عدة أزرار وتستخدم منطقًا شرطيًا. +- يُقيّم عامل التصفية لحظة نقر الزر. وإذا لم يطابق السجل العامل، فلن تعمل الأتمتة ببساطة، ولن يرى المستخدم خطأً. +- تناسب مشغّلات الأزرار تدفقات العمل التي تريد فيها حكمًا بشريًا قبل اتخاذ إجراء، بدلًا من المعالجة الآلية بالكامل. + +## موضوعات ذات صلة + +- [عند إرسال نموذج](/ar/basic/automation/trigger/forms/form-submitted) — يعمل عند إرسال النماذج بدلًا من نقر الأزرار +- [عند تحديث سجل](/ar/basic/automation/trigger/records/record-updated) — يعمل تلقائيًا عند تغير الحقول دون حاجة إلى إجراء من المستخدم +- [إجراء تحديث سجل](/ar/basic/automation/actions/records/update-record) — يُقرن عادةً بنقر الأزرار لتغيير حالة الصف +- [إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) diff --git a/ar/basic/automation/trigger/forms/form-submitted.mdx b/ar/basic/automation/trigger/forms/form-submitted.mdx new file mode 100644 index 00000000..db5a458b --- /dev/null +++ b/ar/basic/automation/trigger/forms/form-submitted.mdx @@ -0,0 +1,75 @@ +--- +title: "عند إرسال نموذج" +description: "شغّل سير عمل عند إرسال طريقة عرض نموذج" +--- + +{/* mintlify-resync: 2026-05-14 */} +ملاحظة: يمكن إعداد جميع المشغّلات في دردشة الذكاء الاصطناعي. أخبره بما تريد أن يفعله سير العمل، وسيتولى الباقي. + +يعمل هذا المشغّل عندما يرسل شخص طريقة عرض نموذج محددة. وتتاح جميع الحقول المرسلة للخطوات التالية. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويربط الحقول ذات الصلة، ويُعد جميع الإجراءات تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"عندما يرسل شخص نموذج الاتصال، أرسل رسالة تأكيد."* + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| الجدول | نعم | الجدول الذي ينتمي إليه النموذج | +| النموذج | نعم | طريقة عرض النموذج المحددة المطلوب مراقبة عمليات إرسالها | + +## كيفية الإعداد + +1. تأكد من وجود طريقة عرض نموذج في جدولك. إذا لم توجد، فأنشئ واحدة بالنقر على **+** في شريط طرق العرض واختيار **نموذج**. +2. افتح الأتمتة وأضف مشغّلًا جديدًا. +3. اختر **عند إرسال نموذج**. +4. اختر **الجدول** الذي يحتوي على النموذج. +5. اختر طريقة عرض **النموذج** المطلوب مراقبتها. +6. احفظ الأتمتة وفعّلها. +7. أضف خطوات الإجراءات. انقر على **+** في أي حقل إجراء للإشارة إلى البيانات المرسلة؛ فجميع حقول النموذج متاحة. + +## البيانات المتاحة للخطوات التالية + +عند إرسال نموذج، تُمرر البيانات التالية إلى سير العمل: + +- **معرّف السجل** — المعرّف الفريد للسجل المنشأ حديثًا. +- **جميع قيم الحقول المرسلة** — يمكن الإشارة إلى كل حقل مضمن في النموذج (نص أو بريد إلكتروني أو أرقام أو تواريخ أو تحديدات أو مرفقات، إلخ) بالنقر على **+** في الإجراءات اللاحقة. + +لن تحتوي الحقول غير المدرجة في النموذج (الحقول المخفية) على قيم من عملية الإرسال، لكنها قد تحمل قيمًا افتراضية مضبوطة في الجدول. + +## يؤدي إرسال النموذج أيضًا إلى إنشاء سجل + +من المهم فهم أن إرسال نموذج وإنشاء سجل هما الحدث نفسه على مستوى البيانات. فعندما يرسل شخص نموذجًا، يُضاف سجل جديد إلى الجدول. وهذا يعني: + +- إذا كانت لديك أيضًا أتمتة **عند إنشاء سجل** في الجدول نفسه، فستعمل *كلتا* الأتمتتين عند إرسال النموذج. +- لتجنب المعالجة المكررة، استخدم مشغّل إرسال النموذج وحده، أو أضف عامل تصفية إلى مشغّل إنشاء السجل يستبعد السجلات الواردة من النماذج. + +إرسال النموذج هو في جوهره إنشاء سجل. وإذا كان الجدول نفسه يتضمن أيضًا مشغّل "عند إنشاء سجل" مهيأً، فسيعمل سيرا العمل كلاهما. + +## حالات الاستخدام + +- **إرسال رسالة تأكيد بعد الإرسال.** عندما يملأ عميل نموذج اتصال، أرسل إليه تلقائيًا رسالة "شكرًا لك" تتضمن تفاصيل إرساله. +- **تصنيف تذاكر الدعم الجديدة تلقائيًا بالذكاء الاصطناعي.** استخدم إجراء الإنشاء بالذكاء الاصطناعي لتصنيف التذكرة استنادًا إلى الوصف الذي أرسله المستخدم. +- **إبلاغ فريقك بالطلبات الواردة.** عندما يرسل شخص نموذج طلب وظيفة، انشر إشعارًا في Slack أو أرسل رسالة إلى فريق التوظيف. +- **إنشاء سجلات مرتبطة في جداول أخرى.** عند إرسال نموذج طلب، أنشئ تلقائيًا سجلات في جدول "عناصر الطلب" أو جدول "الشحنات". +- **التحقق من عمليات الإرسال وتمييزها.** تحقق من اكتمال المعلومات المطلوبة ومن وقوع القيم ضمن نطاقها، وحدّث حقل الحالة إلى "تحتاج إلى مراجعة" إذا وجدت مشكلة. + +## نصائح + +- يعمل هذا المشغّل مرة واحدة لكل إرسال. وإذا أرسل الشخص نفسه النموذج مرتين، فسيعمل مرتين. +- إذا أردت التشغيل عند جميع السجلات الجديدة بصرف النظر عن مصدرها (إدخال يدوي أو API أو نموذج)، فاستخدم [عند إنشاء سجل](/ar/basic/automation/trigger/records/record-created) بدلًا منه. +- يمكنك إنشاء عدة عمليات أتمتة تراقب النموذج نفسه. مثلًا، ترسل إحداها رسالة تأكيد بينما تنشئ أخرى مهمة مرتبطة. +- تحترم طرق عرض النماذج إعدادات رؤية الحقول. لا تُملأ من الإرسال إلا الحقول المرئية في النموذج، بينما تحتفظ الحقول المخفية بقيمها الافتراضية أو تظل فارغة. + +## موضوعات ذات صلة + +- [عند إنشاء سجل](/ar/basic/automation/trigger/records/record-created) — يعمل عند إنشاء أي سجل جديد، لا عند إرسال النماذج فقط +- [عند نقر زر](/ar/basic/automation/trigger/forms/button-click) — يعمل عندما ينقر مستخدم حقل زر في صف موجود +- [إجراء إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) — يُقرن عادةً بإرسال النماذج لإرسال رسائل التأكيد diff --git a/ar/basic/automation/trigger/records/record-created.mdx b/ar/basic/automation/trigger/records/record-created.mdx new file mode 100644 index 00000000..ea9bcd3d --- /dev/null +++ b/ar/basic/automation/trigger/records/record-created.mdx @@ -0,0 +1,77 @@ +--- +title: "عند إنشاء سجل" +description: "شغّل سير عمل عند إضافة سجل جديد إلى جدول" +--- + +{/* mintlify-resync: 2026-05-14 */} +ملاحظة: يمكن إعداد جميع المشغّلات في دردشة الذكاء الاصطناعي. أخبره بما تريد أن يفعله سير العمل، وسيتولى الباقي. + +يعمل هذا المشغّل عند إضافة سجل جديد إلى الجدول، بصرف النظر عن طريقة إنشائه. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويربط الحقول ذات الصلة، ويُعد جميع الإجراءات تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"عند إنشاء طلب جديد، أبلغ الفريق عبر Slack."* + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| الجدول | نعم | الجدول المطلوب مراقبته بحثًا عن سجلات جديدة | +| عامل التصفية | لا | لا يعمل المشغّل إلا إذا طابق السجل الجديد هذه الشروط. يستخدم منشئ عوامل التصفية نفسه المستخدم في طرق العرض | + +## كيفية الإعداد + +1. افتح الأتمتة وأضف مشغّلًا جديدًا. +2. اختر **عند إنشاء سجل**. +3. اختر **الجدول** المطلوب مراقبته. +4. (اختياري) أضف **عامل تصفية** إذا كنت تريد التفاعل مع سجلات جديدة معينة فقط. مثلًا، يتجاهل الشرط `الأولوية` تساوي `عالية` السجلات الجديدة ذات قيم الأولوية الأخرى. +5. احفظ الأتمتة وفعّلها. +6. أضف خطوات الإجراءات. انقر في كل إجراء على زر **+** في أي حقل لإدراج قيم من المشغّل؛ وسترى جميع حقول السجل الجديد مدرجة. + +## البيانات المتاحة للخطوات التالية + +عند عمل هذا المشغّل، تصبح جميع حقول السجل المنشأ حديثًا متاحة بوصفها متغيرات في الخطوات اللاحقة: + +- **معرّف السجل** — المعرّف الفريد للسجل الجديد +- **جميع قيم الحقول** — يمكن الإشارة إلى كل حقل في الجدول (نص أو رقم أو تاريخ أو مرفقات أو سجلات مرتبطة، إلخ) بالنقر على **+** في ربط حقول أي إجراء + +يعني ذلك أنه إذا كان جدولك يحتوي على حقول مثل الاسم والبريد الإلكتروني والحالة وتاريخ الإنشاء، فستكون القيم الأربع كلها جاهزة للاستخدام في الإجراءات دون أي تهيئة إضافية. + +## آلية عمل عامل التصفية + +يتيح لك عامل التصفية الاختياري تضييق نطاق السجلات الجديدة التي تشغّل الأتمتة فعليًا: + +- إذا لم يُضبط **عامل تصفية**، فكل سجل جديد يشغّل الأتمتة. +- إذا ضُبط **عامل تصفية**، فلا يعمل المشغّل إلا عندما يطابق السجل الجديد جميع الشروط. وتُتجاهل السجلات غير المطابقة دون إشعار. + +يفيد ذلك عندما تريد اتخاذ إجراء على مجموعة فرعية من السجلات الجديدة فقط، مثل المهام عالية الأولوية أو السجلات المسندة إلى فريق محدد أو الطلبات التي تتجاوز مبلغًا معينًا. + +يُقيّم عامل التصفية استنادًا إلى قيم الحقول وقت إنشاء السجل. وإذا كان أحد الحقول فارغًا عند الإنشاء ثم مُلئ لاحقًا، فلن تعمل الأتمتة بأثر رجعي. + +## حالات الاستخدام + +- **إرسال رسالة ترحيب إلى جهة اتصال جديدة.** عند إضافة جهة اتصال إلى جدول CRM، أرسل إليها تلقائيًا رسالة ترحيب مخصصة باستخدام اسمها وعنوان بريدها. +- **إنشاء مهمة مرتبطة عند إضافة مشروع جديد.** عند إنشاء سجل مشروع، أنشئ تلقائيًا مجموعة مهام افتراضية في جدول مهام مرتبط بالمشروع الجديد. +- **إبلاغ فريقك بالطلبات الجديدة.** انشر رسالة في Slack أو أرسل رسالة إلى فريق المبيعات عند ورود طلب جديد. +- **تصنيف السجلات الواردة تلقائيًا بالذكاء الاصطناعي.** عند إنشاء تذكرة دعم، استخدم إجراء الإنشاء بالذكاء الاصطناعي لتصنيفها وفق حقل الوصف. +- **تسجيل السجلات الجديدة في نظام خارجي.** استخدم إجراء طلب HTTP لدفع بيانات السجل الجديد إلى CRM أو ERP أو مستودع بيانات. + +## نصائح + +- يعمل هذا المشغّل مع السجلات المنشأة *بأي* طريقة، بما فيها عمليات الأتمتة الأخرى. فإذا كانت لديك أتمتة تنشئ سجلات في الجدول نفسه، فاحذر من الحلقات اللانهائية. استخدم عامل تصفية لاستبعاد السجلات التي أنشأتها الأتمتة (مثل التحقق من حقل علامة). +- يعمل المشغّل مرة واحدة لكل سجل. فإذا استُوردت 10 سجلات دفعة واحدة، فسيعمل 10 مرات منفصلة. +- إذا كنت تحتاج إلى التفاعل فقط مع السجلات المنشأة عبر نموذج معين، فاستخدم مشغّل [عند إرسال نموذج](/ar/basic/automation/trigger/forms/form-submitted) بدلًا منه، فهو يمنحك تحكمًا أدق. +- ستظل الحقول الفارغة عند إنشاء السجل متاحة بوصفها متغيرات، لكن قيمها ستكون فارغة. تأكد من أن إجراءاتك تعالج القيم الفارغة بسلاسة. + +## موضوعات ذات صلة + +- [عند إرسال نموذج](/ar/basic/automation/trigger/forms/form-submitted) — يعمل عند إرسال النماذج فقط، لا عند جميع طرق إنشاء السجلات +- [عند تحديث سجل](/ar/basic/automation/trigger/records/record-updated) — يعمل عندما تتغير السجلات الموجودة +- [إجراء إنشاء سجل](/ar/basic/automation/actions/records/create-record) — الإجراء المقابل لإنشاء سجلات داخل تدفقات العمل +- [إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) diff --git a/ar/basic/automation/trigger/records/record-matches-conditions.mdx b/ar/basic/automation/trigger/records/record-matches-conditions.mdx new file mode 100644 index 00000000..057e5f1f --- /dev/null +++ b/ar/basic/automation/trigger/records/record-matches-conditions.mdx @@ -0,0 +1,75 @@ +--- +title: "عند مطابقة السجل للشروط" +description: "شغّل سير عمل عندما يبدأ سجل في مطابقة شروط محددة" +--- + +{/* mintlify-resync: 2026-05-14 */} +ملاحظة: يمكن إعداد جميع المشغّلات في دردشة الذكاء الاصطناعي. أخبره بما تريد أن يفعله سير العمل، وسيتولى الباقي. + +يُستخدم هذا المشغّل عندما ينبغي تشغيل سير عمل بعد أن يبدأ سجل في مطابقة شروط معينة. + +يمكن أن يعمل في حالتين شائعتين: + +- إنشاء سجل جديد يطابق عامل التصفية بالفعل. +- تحرير سجل موجود وانتقاله من عدم مطابقة عامل التصفية إلى مطابقته. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويربط الحقول ذات الصلة، ويُعد جميع الإجراءات تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"عندما تصبح مهمة متأخرة، أرسل إليّ رسالة."* + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| الجدول | نعم | الجدول المطلوب مراقبته بحثًا عن تغييرات | +| عامل التصفية | **نعم** | الشروط التي يجب أن يطابقها السجل. يستخدم منشئ عوامل التصفية نفسه المستخدم في طرق العرض، ويدعم مقارنات الحقول ومجموعات AND/OR والقيم الديناميكية | + +## كيفية الإعداد + +1. افتح الأتمتة وأضف مشغّلًا جديدًا. +2. اختر **عند مطابقة السجل للشروط**. +3. اختر **الجدول** المطلوب مراقبته. +4. انقر على **إضافة عامل تصفية** لتحديد الشروط. مثلًا: `الحالة` تساوي `متأخرة`، أو `المبلغ` أكبر من `10000`. +5. يمكنك دمج عدة شروط بمنطق AND/OR، تمامًا مثل عوامل تصفية طرق العرض. +6. احفظ الأتمتة وفعّلها. +7. اختبرها بإنشاء سجل مطابق، أو بتحرير سجل موجود لينتقل من *غير مطابق* إلى *مطابق* لعامل التصفية. ينبغي أن تعمل الأتمتة مرة واحدة. + +بعد عمل المشغّل، تستطيع الخطوات اللاحقة استخدام جميع بيانات حقول السجل المطابق، بما فيها أحدث القيم وقت الانتقال. + +## ما الفرق بينه وبين «عند تحديث سجل»؟ + +يسهل الخلط بين هذين المشغّلين. وهذا هو الفرق الأساسي: + +- يعمل **عند تحديث سجل** كلما تغير حقل مراقب، بصرف النظر عن القيمة الجديدة. فإذا كنت تراقب حقل "الحالة"، فسيعمل سواء تغيرت إلى "قيد التنفيذ" أو "مكتملة" أو أي قيمة أخرى. +- لا يعمل **عند مطابقة السجل للشروط** إلا عندما يعبر السجل من "غير مطابق" إلى "مطابق" لعامل التصفية. ولا يعمل عند كل تعديل، بل عند الانتقال فقط. + +استخدم **عند تحديث سجل** عندما تحتاج إلى التفاعل مع أي تغيير. واستخدم **عند مطابقة السجل للشروط** عندما تهتم فقط بالوصول إلى حالة محددة. + +إذا أردت تشغيل إجراء كلما حُرر سجل، فاستخدم مشغّل [عند تحديث سجل](/ar/basic/automation/trigger/records/record-updated). وإذا أردت تشغيل إجراء مرة واحدة فقط عندما يصل سجل إلى شرط محدد لأول مرة، فاستخدم هذا المشغّل. + +## حالات الاستخدام + +- **التنبيه عندما يصبح طلب متأخرًا.** اضبط عامل التصفية على `تاريخ الاستحقاق` قبل اليوم و`الحالة` لا تساوي `تم الشحن`. تعمل الأتمتة مرة واحدة عند أول مطابقة للطلب. +- **تصعيد تذكرة دعم عندما تصبح الأولوية عاجلة.** عامل التصفية: `الأولوية` تساوي `عاجلة`. لا يعمل إلا عندما تصبح التذكرة عاجلة لأول مرة، لا عند التعديلات اللاحقة. +- **إبلاغ مدير عندما تتجاوز صفقة حدًا للإيرادات.** عامل التصفية: `قيمة الصفقة` أكبر من `50000`. يعمل مرة واحدة عندما تتجاوز الصفقة ذلك الحد. +- **تمييز السجلات التي تصبح غير مكتملة.** عامل التصفية: `الحقل المطلوب` فارغ. يعمل عندما يفقد سجل كان مكتملًا قيمته. +- **تشغيل خطوات الإعداد عندما تتغير حالة جهة اتصال إلى "نشطة".** عامل التصفية: `الحالة` تساوي `نشطة`. لا يعمل إلا مرة واحدة لكل تفعيل. + +## نصائح + +- **يجب** تحديد شرط عامل تصفية واحد على الأقل. من دونه، لن يجد المشغّل ما يقيّمه. +- يتحقق المشغّل من الانتقال لحظة حفظ السجل. ولا يعمل بأثر رجعي للسجلات التي كانت مطابقة بالفعل قبل إنشاء الأتمتة. +- تُفحص أيضًا السجلات المنشأة بعد التفعيل وفق عامل التصفية. فإذا طابقت القيم الأولية، فقد يعمل سير العمل فورًا. +- ادمج هذا المشغّل مع إجراء **إرسال بريد إلكتروني** أو **تحديث سجل** لإنشاء تدفقات عمل قوية لتغيرات الحالة دون كتابة شيفرة. + +## موضوعات ذات صلة + +- [عند تحديث سجل](/ar/basic/automation/trigger/records/record-updated) — يعمل عند أي تغيير في الحقول، لا عند الانتقالات فقط +- [عند إنشاء سجل](/ar/basic/automation/trigger/records/record-created) — يعمل عند إضافة سجلات جديدة +- [إرسال بريد إلكتروني](/ar/basic/automation/actions/communication/send-email-overview) diff --git a/ar/basic/automation/trigger/records/record-updated.mdx b/ar/basic/automation/trigger/records/record-updated.mdx new file mode 100644 index 00000000..3310b0ae --- /dev/null +++ b/ar/basic/automation/trigger/records/record-updated.mdx @@ -0,0 +1,96 @@ +--- +title: "عند تحديث سجل" +description: "شغّل سير عمل عند تعديل سجل موجود" +--- + +ملاحظة: يمكن إعداد جميع المشغّلات في دردشة الذكاء الاصطناعي. أخبره بما تريد أن يفعله سير العمل، وسيتولى الباقي. + +يعمل هذا المشغّل عند تعديل سجل موجود. ولا يعمل عند الإنشاء. + +## الإنشاء بالذكاء الاصطناعي + +افتح دردشة الذكاء الاصطناعي في الشريط الجانبي الأيمن للجدول وصِف ما تريده. + +يتولى الذكاء الاصطناعي كل شيء: يختار المشغّل المناسب، ويربط الحقول ذات الصلة، ويُعد جميع الإجراءات تلقائيًا. + +صِف الهدف مرة واحدة، وسيصبح سير العمل جاهزًا دون الحاجة إلى إعداد يدوي. + +**مثال:** *"عندما يتغير حقل الحالة، أرسل رسالة إلى المكلّف."* + +## التهيئة + +| الإعداد | مطلوب | الوصف | +|---|---|---| +| الجدول | نعم | الجدول المطلوب مراقبته بحثًا عن تغييرات | +| الحقول المراقبة | نعم | اختر حقولًا محددة لمراقبتها، أو اختر "جميع الحقول" للتشغيل عند أي تغيير | +| عامل التصفية | لا | لا يعمل المشغّل إلا إذا طابق السجل المحدّث هذه الشروط بعد التغيير | + +## كيفية الإعداد + +1. افتح الأتمتة وأضف مشغّلًا جديدًا. +2. اختر **عند تحديث سجل**. +3. اختر **الجدول** المطلوب مراقبته. +4. في **الحقول المراقبة**، اختر حقلًا محددًا أو أكثر. مثلًا، اختر "الحالة" فقط إذا أردت التفاعل مع تغيرات الحالة. +5. (اختياري) أضف **عامل تصفية** لتضييق نطاق التحديثات التي تشغّل المشغّل. مثلًا، لا يعمل الشرط `الحالة` تساوي `مكتملة` إلا عندما تتغير حالة سجل إلى "مكتملة". +6. احفظ الأتمتة وفعّلها. +7. أضف خطوات الإجراءات. انقر على **+** في أي حقل إجراء لإدراج قيم من السجل المحدّث. + +## فهم الحقول المراقبة + +إعداد الحقول المراقبة هو أهم جزء في هذا المشغّل: + +- **حقول محددة (موصى به):** اختر الحقول التي تهمك فقط. لا يعمل المشغّل إلا عند تغير أحدها، ويتجاهل جميع التعديلات الأخرى في السجل. +- **جميع الحقول:** يعمل المشغّل عند تغير *أي* حقل في السجل، بما في ذلك الحقول المحسوبة والطوابع الزمنية لآخر تعديل والتعديلات البسيطة التي قد لا تهمك. + +**لماذا تكون الحقول المحددة أفضل في معظم الحالات؟** + +- عمليات تشغيل غير ضرورية أقل، مما يعني هدر عدد أقل من عمليات الأتمتة. +- منع الحلقات غير المقصودة (راجع أدناه). +- توضيح غرض الأتمتة لكل من يقرأها. + +لا تختر "جميع الحقول" إلا عندما تحتاج فعلًا إلى التفاعل مع كل تغيير محتمل، مثل إنشاء سجل تدقيق كامل. + +يوصى بشدة باختيار حقول مراقبة محددة. قد يؤدي اختيار "جميع الحقول" إلى تشغيل سير العمل عند تعديلات غير مرتبطة، وإهدار عمليات الأتمتة، والتسبب في سلوك غير متوقع. + +### الحقول المحسوبة + +تأتي قيم [الصيغة](/ar/basic/field/formula) و[البحث](/ar/basic/field/lookup) و[التجميع](/ar/basic/field/rollup) و[البحث الشرطي](/ar/basic/field/conditional-lookup) و[التجميع الشرطي](/ar/basic/field/conditional-rollup) من حسابات Teable نفسه لا من الكتابة، ولا تشغّل إعادة الحساب هذا المشغّل إلا إذا عيّنت الحقل المحسوب ضمن **الحقول المراقبة**. تتصرف الأنواع الخمسة بالطريقة نفسها. + +يتيح لك ذلك التفاعل مع نتيجة مشتقة بدلًا من المدخلات الأولية وراءها. راقب حقل صيغة `إجمالي المبلغ`، وسيعمل سير العمل كلما تغير الإجمالي فعليًا بصرف النظر عن الحقل الأساسي الذي تغير. وراقب حقل تجميع للمهام المرتبطة، وسيعمل سير العمل عندما تتغير القيمة المجمّعة، بما في ذلك التغيير الناتج من تعديل في الجدول المرتبط. + +## خطأ شائع: حلقات التحديث + +إذا تضمن سير العمل إجراء تحديث سجل يكتب في الجدول نفسه ويحدّث حقلًا مراقبًا، فسيعمل المشغّل مجددًا، مما ينشئ حلقة لا نهائية. + +إذا كانت الأتمتة تُشغّل بتحديثات جدول وتتضمن أيضًا إجراء **تحديث سجل** يكتب في *الجدول نفسه*، فقد تنشئ حلقة لا نهائية: + +1. يتغير حقل ← يعمل المشغّل. +2. تحدّث الأتمتة حقلًا آخر في السجل نفسه ← يعمل المشغّل مجددًا. +3. يتكرر ذلك بلا نهاية. + +**كيفية تجنب ذلك:** + +- راقب حقولًا محددة فقط، وتأكد من أن إجراء تحديث السجل يكتب في حقول *مختلفة* عن الحقول المراقبة. +- استخدم شرط تصفية لإيقاف الحلقة. مثلًا، لا تعمل إلا عندما لا تساوي `الحالة` القيمة `تمت المعالجة`، واجعل الإجراء يضبط `الحالة` على `تمت المعالجة`. +- إذا كان يجب على الإجراء تحديث الحقل نفسه، ففكّر في استخدام مشغّل [عند مطابقة السجل للشروط](/ar/basic/automation/trigger/records/record-matches-conditions) بدلًا منه، إذ لا يعمل إلا عند الانتقالات. + +## حالات الاستخدام + +- **مزامنة تغيرات الأسعار مع نظام خارجي.** راقب حقل "السعر"، وعندما يتغير أرسل طلب HTTP لتحديث السعر في منصة التجارة الإلكترونية. +- **إرسال إشعار عند تغير حالة مهمة.** راقب حقل "الحالة". وعندما تنتقل مهمة إلى "محظورة" أو "مكتملة"، أبلغ المكلّف أو المدير. +- **تسجيل تغيرات الحقول للتدقيق.** راقب "جميع الحقول" وأنشئ سجلًا في جدول سجل التدقيق يتضمن القيم القديمة والجديدة. +- **تحديث سجل مرتبط عند تغير السجل الأصل.** راقب الحقول الأساسية في سجل مشروع. وعندما يتغير موعد المشروع النهائي، حدّث جميع المهام المرتبطة. +- **تشغيل إعادة حساب في نظام آخر.** راقب حقولًا رقمية مثل "الكمية" أو "سعر الوحدة". وعندما تتغير، استدعِ واجهة API لإعادة حساب الإجماليات. + +## نصائح + +- ابدأ بحقول مراقبة محددة. ويمكنك دائمًا إضافة المزيد لاحقًا إذا وجدت أنك تفوّت أحداثًا. +- يُقيّم عامل التصفية *بعد* التحديث. وهذا يعني أنه يتحقق من قيم السجل الجديدة، لا القديمة. +- لا يخبرك هذا المشغّل بالقيمة السابقة، بل بحالة السجل الآن فقط. إذا احتجت إلى مقارنة ما قبل التغيير وما بعده، ففكّر في الاحتفاظ بحقل "القيمة السابقة" تحدّثه الأتمتة. +- يعمل المشغّل مرة واحدة لكل عملية حفظ، حتى إذا تغيرت عدة حقول مراقبة في التعديل نفسه. + +## موضوعات ذات صلة + +- [عند مطابقة السجل للشروط](/ar/basic/automation/trigger/records/record-matches-conditions) — يعمل عند انتقالات الحالة فقط، لا عند كل تعديل +- [عند إنشاء سجل](/ar/basic/automation/trigger/records/record-created) — يعمل عند إنشاء سجلات جديدة، لا تحديثها +- [إجراء تحديث سجل](/ar/basic/automation/actions/records/update-record) — الإجراء المقابل لتعديل السجلات في تدفقات العمل diff --git a/ar/basic/base.mdx b/ar/basic/base.mdx new file mode 100644 index 00000000..f3995920 --- /dev/null +++ b/ar/basic/base.mdx @@ -0,0 +1,167 @@ +--- +title: "نظرة عامة" +description: "أنشئ قواعد البيانات وأدرها واستوردها وصدّرها. انقل البيانات بين مساحات Teable Cloud أو رحّلها بين النسخ السحابية وذاتية الاستضافة باستخدام ملفات .tea." +--- + +{/* mintlify-resync: 2026-05-26 */} +قاعدة البيانات أداة لتخزين جميع معلومات مشروع محدد ومعالجتها. يمكن أن تضم كل مساحة عدة قواعد بيانات، وأن تعمل كل قاعدة بصورة مستقلة، مما يوفر بنية معلومات واضحة لمشاريع أو مجموعات جداول محددة. + +إذا لم تكن معتادًا على قواعد البيانات، فيمكنك تصورها كمصنفات Excel، حيث قد يحتوي كل مصنف على عدة أوراق. + +## إنشاء قواعد البيانات وإدارتها + +### إضافة قاعدة بيانات + +1. ادخل إلى مساحة +2. انقر على "إنشاء قاعدة بيانات" في الزاوية العلوية اليمنى + +إنشاء قاعدة بيانات + +### إعادة تسمية قاعدة بيانات أو حذفها + +1. ادخل إلى مساحة +2. مرّر فوق قاعدة بيانات +3. انقر على زر "···" لفتح القائمة +4. انقر على "إعادة تسمية" أو "حذف" + +إعادة تسمية قاعدة بيانات أو حذفها + +### تنظيم الموارد في قاعدة بيانات + +بعد الدخول إلى قاعدة بيانات، يعرض الشريط الجانبي الأيسر مواردها، مثل الجداول والتطبيقات وعمليات الأتمتة. يمكنك استخدام المجلدات لتنظيم هذه الموارد وتسهيل تصفح قواعد البيانات الكبيرة. + +تشمل العمليات الشائعة: + +- **إنشاء المجلدات**: أنشئ مجلدات في الشريط الجانبي الأيسر لتجميع الموارد ذات الصلة. +- **نقل الموارد**: اسحب الجداول أو التطبيقات أو عمليات الأتمتة إلى المجلدات، أو اسحبها لإعادة ترتيبها. +- **تنظيم التسلسل الهرمي**: يمكن أن تحتوي المجلدات على عقد فرعية. حافظ على تسلسل هرمي بسيط بما يكفي لسهولة التنقل. +- **إضافة أوصاف**: بالنسبة إلى الجداول والتطبيقات وعمليات الأتمتة، انقر على **إضافة وصف** أسفل اسم المورد في الرأس. استخدم الأوصاف لتسجيل الغرض أو المالك أو ملاحظات التسليم أو قواعد الاستخدام. يفتح Teable الوصف عند فتح مورده لأول مرة، ومرة أخرى بعد تغييره. +- **التحقق من معلومات العقدة**: افتح قائمة `...` للمورد واختر **معلومات العقدة** لعرض معرّف المجلد أو الجدول أو الأتمتة أو التطبيق، إلى جانب معلومات الإنشاء والتعديل. + +### تكرار قاعدة بيانات إلى مساحة أخرى {#duplicate-a-base-to-another-space} + +الخطوة 1: اختر في المساحة قاعدة البيانات التي تريد تكرارها؛ + +الخطوة 2: انقر على أيقونة القائمة واختر خيار نسخ قاعدة البيانات؛ + +الخطوة 3: اختر المساحة المستهدفة في النافذة المنبثقة. تحتاج إلى صلاحيات المنشئ في تلك المساحة. + +بالنسبة إلى قواعد البيانات الكبيرة، يعرض Teable التقدم في مربع حوار التكرار أثناء نسخ بنية قاعدة البيانات وسجلاتها ومرفقاتها. أبقِ مربع الحوار مفتوحًا حتى يكتمل النسخ. ولا يُنسخ سجل المراجعات أو المتعاونون. + +إذا كانت قاعدة البيانات تحتوي على حقول رابط أو بحث أو تجميع أو بحث شرطي أو تجميع شرطي تشير إلى مساحة أخرى، يعرض Teable الحقول المتأثرة قبل التكرار. وإذا تابعت، يحوّل Teable تلك الحقول إلى **نص من سطر واحد** في قاعدة البيانات المكررة. + +تكرار قاعدة بيانات إلى مساحة أخرى + +### نقل قاعدة بيانات بين المساحات + +إذا كنت تملك صلاحيات المساحة المطلوبة، فيمكنك نقل قاعدة بيانات إلى مساحة أخرى. وإذا كان النقل سيترك حقولًا قائمة على العلاقات تشير عبر المساحات، يحذّرك Teable ويسرد الحقول المتأثرة. وعند التأكيد، يحوّل Teable تلك الحقول إلى **نص من سطر واحد** ضمن عملية النقل. + +## استيراد قواعد البيانات وتصديرها + + + استخدم دردشة الذكاء الاصطناعي لترحيل Airtable وBaserow وNocoDB وSmartSuite وأنظمة أخرى إلى Teable. + + +### استيراد قاعدة بيانات (ترحيل البيانات) + +يستورد تنسيق ملف `.tea` قاعدة بيانات كاملة بجميع جداولها وحقولها وبياناتها وتهيئاتها. يفيد ذلك في: +- **ترحيل البيانات**: نقل قواعد البيانات بين نسخ Teable المختلفة (مثلًا من السحابة إلى الاستضافة الذاتية) +- **استعادة النسخ الاحتياطية**: استعادة قاعدة بيانات سبق تصديرها +- **مشاركة القوالب**: مشاركة بنى قواعد بيانات كاملة مع فرق أخرى + +**الخطوات:** +1. ادخل إلى المساحة +2. انقر على زر 「···」 في الزاوية العلوية اليمنى من المساحة لفتح القائمة +3. انقر على 「استيراد」 +4. اختر **استيراد من ملف** وارفع ملف `.tea`. + +استيراد قاعدة بيانات من ملف .tea + +إذا أردت إنشاء قاعدة بيانات من Airtable، فاختر **استيراد من Airtable** في مربع حوار الاستيراد نفسه. + +### تصدير قاعدة بيانات (النسخ الاحتياطي والترحيل) {#export-base-backup-&-migration} + +صدّر قاعدة بياناتك إلى ملف `.tea` لأغراض النسخ الاحتياطي أو الترحيل. يحتوي الملف المصدّر على جميع الجداول والحقول والبيانات وطرق العرض والتهيئات. + +**الخطوات:** +1. ادخل إلى المساحة +2. مرّر مؤشر الفأرة فوق قاعدة البيانات المطلوب تصديرها +3. انقر على زر 「···」 لفتح القائمة +4. انقر على 「تصدير」 +5. أبقِ **تضمين السجلات** مفعّلًا لتصدير بيانات السجلات. عطّله لتصدير البنية والتهيئة فقط. +6. انقر على **بدء التصدير** وانتظر اكتماله. +7. انقر على **تنزيل** في مربع حوار التصدير لحفظ ملف `.tea`. + +تصدير قاعدة بيانات إلى ملف .tea + + +- لترحيل البيانات بين نسخ Teable، صدّر قاعدة البيانات من النسخة المصدر، ثم استورد ملف `.tea` إلى النسخة المستهدفة. ستُحفظ جميع البيانات والتهيئات. +- يحوّل Teable حقول العلاقات العابرة لقواعد البيانات إلى حقول **نص من سطر واحد** في الملف المصدّر. +- عند تكرار قاعدة بيانات أو نقلها بين المساحات، تُحوّل حقول العلاقات العابرة للمساحات إلى **نص من سطر واحد**. + + +## مشاركة قاعدة بيانات + +يمكن مشاركة قواعد البيانات عبر روابط عامة. وقد يكون نطاق المشاركة قاعدة البيانات كاملةً أو العنصر المحدد حاليًا. + +1. ادخل إلى قاعدة البيانات المستهدفة +2. افتح قائمة المشاركة لقاعدة البيانات أو العنصر المحدد +3. فعّل **المشاركة على الويب** +4. انسخ رابط المشاركة أو رمز QR + +فتح مشاركة قاعدة البيانات + +تشمل نطاقات المشاركة: + +| النطاق | الوصف | +|------|------| +| **مشاركة قاعدة البيانات كاملةً** | يشارك جميع العناصر في قاعدة البيانات الحالية. وتُضمّن تلقائيًا الجداول والمجلدات الجديدة المضافة لاحقًا. | +| **مشاركة العنصر المحدد** | يشارك العنصر المحدد حاليًا. وعند مشاركة مجلد، تُضمّن عناصره الفرعية. | + +في إعدادات المشاركة، يمكنك تهيئة صلاحيات الرابط، و**السماح للمشاهدين بنسخ البيانات**، والوصول بكلمة مرور، وإعادة إنشاء الرابط، وحذف رابط المشاركة، أو نسخ تهيئة التضمين. + +إعدادات مشاركة قاعدة البيانات + +إذا تضمن نطاق المشاركة تطبيقًا، فيجب نشر التطبيق قبل أن يمكن الوصول إليه عبر الرابط العام. + +## الميزات داخل قاعدة بيانات + +يمكن أن تحتوي قاعدة البيانات على عدة جداول لتسجيل المعلومات المتعلقة بالعمل أو الأعمال وتنظيمها. + +مثلًا، قد تتضمن قاعدة بيانات إدارة العملاء جداول منفصلة لـ"شركات العملاء" و"جهات اتصال العملاء" و"سجلات متابعة العملاء"، بينما قد تتضمن قاعدة بيانات إدارة غرف الاجتماعات جداول منفصلة لـ"إدارة غرف الاجتماعات" و"معدات غرف الاجتماعات" و"حجوزات غرف الاجتماعات". + +لذلك، ترتبط معظم الميزات داخل قاعدة البيانات بالجداول: + +* **إنشاء الجداول**: تتيح قواعد البيانات للمستخدمين إنشاء جداول جديدة وفق احتياجات المشروع، مع تحديد بنية الجدول وحقوله وأنواع بياناته. +* **تحرير الجداول**: يمكن للمستخدمين تحرير الجداول الموجودة داخل قاعدة البيانات، بما في ذلك إضافة السجلات وحذفها وتعديلها. +* **تصدير البيانات واستيرادها**: تدعم قواعد البيانات تصدير البيانات إلى CSV واستيرادها بتنسيقي CSV وXLSX. + +راجع [قسم الجداول](/ar/basic/table) لمزيد من المعلومات عنها. diff --git a/ar/basic/field.mdx b/ar/basic/field.mdx new file mode 100644 index 00000000..18c6fef4 --- /dev/null +++ b/ar/basic/field.mdx @@ -0,0 +1,74 @@ +--- +title: "نظرة عامة" +description: "الحقول هي أعمدة الجدول. وبدمج أنواع مختلفة من الحقول، يمكنك إنشاء بنية تناسب سير عملك." +--- + +{/* mintlify-resync: 2026-05-14 */} + +## أنواع الحقول + +يوفر Teable حاليًا أنواع الحقول التالية: + +| الفئة | أنواع الحقول | +| --- | --- | +| الحقول الأساسية | [نص من سطر واحد](/ar/basic/field/single-line-text)، [نص طويل](/ar/basic/field/long-text)، [رقم](/ar/basic/field/number)، [تحديد فردي](/ar/basic/field/single-select)، [تحديد متعدد](/ar/basic/field/multiple-select)، [مستخدم](/ar/basic/field/user)، [تاريخ](/ar/basic/field/date)، [تقييم](/ar/basic/field/rating)، [مربع اختيار](/ar/basic/field/checkbox)، [مرفق](/ar/basic/field/attachment) | +| الحقول المتقدمة | [صيغة](/ar/basic/field/formula)، [رابط إلى سجل](/ar/basic/field/link)، [بحث](/ar/basic/field/lookup)، [تجميع](/ar/basic/field/rollup)، [بحث شرطي](/ar/basic/field/conditional-lookup)، [تجميع شرطي](/ar/basic/field/conditional-rollup)، [زر](/ar/basic/field/button)، [ترقيم تلقائي](/ar/basic/field/auto-number) | +| حقول النظام | [وقت الإنشاء](/ar/basic/field/created-time)، [وقت آخر تعديل](/ar/basic/field/last-modified-time)، [أنشأه](/ar/basic/field/created-by)، [آخر تعديل بواسطة](/ar/basic/field/last-modified-by) | + +## إضافة الحقول + +اتبع الخطوات التالية لإضافة حقل جديد في طريقة عرض الجدول: + +1. ادخل إلى طريقة عرض الجدول +2. مرّر الجدول إلى أقصى اليمين +3. انقر على أيقونة + في أقصى يمين شريط الحقول + +إضافة حقل + +4. حرّر الحقل في مربع الحوار المنبثق +5. انقر على حفظ + +## تحرير الحقول + +يمكن للمستخدمين تحرير الحقول عند إضافتها أو تحرير الحقول الموجودة عند الحاجة. لتحرير حقل موجود، اتبع الخطوات التالية: +1. انقر بزر الفأرة الأيمن على الحقل المطلوب تحريره + +إجراءات قائمة الحقل + +2. انقر على خيار تحرير الحقل في القائمة الموسعة +3. حرّر الحقل في مربع حوار تحرير الحقل +4. انقر على حفظ + + + قد يؤدي تحرير الحقول إلى تحويل نوع الحقل. يمكن للمستخدمين تغيير الحقل الحالي إلى نوع جديد، مثل تحويل حقل نص من سطر واحد إلى حقل تحديد فردي. ومع ذلك، قد تؤدي بعض التحويلات في حالات معينة إلى فقدان البيانات. فمثلًا، يؤدي تحويل حقل نصي إلى حقل مرفقات إلى فقدان جميع المعلومات النصية، لأن قيم النص العادي لا يمكن تحويلها إلى مرفقات. + + إذا وجدت أن بعض قيم الخلايا فُقدت أثناء التحويل، فيمكنك استخدام اختصار لوحة المفاتيح `Ctrl+Z`، أو `⌘ + Z` على Mac، للتراجع عن التحويل واستعادة حالة الحقل السابقة وأي بيانات فُقدت بسببه. + + للحصول على معلومات مفصلة عن كل نوع حقل وخيارات تخصيصه، راجع وثائق نوع الحقل المعني. + + +## حذف الحقول + +1. انقر بزر الفأرة الأيمن على الحقل المطلوب تحريره +2. انقر على خيار حذف الحقل في القائمة الموسعة +3. انقر على تأكيد في مربع حوار التأكيد + +## إخفاء الحقول + +يمكن للمستخدمين إخفاء الحقول عبر قائمة النقر بزر الفأرة الأيمن أو أداة الإخفاء. ولا تظهر الحقول المخفية في طريقة عرض الجدول. ويمكن التحكم في ظهور الحقول في أي وقت باستخدام أداة الإخفاء. للتصفية والفرز والتجميع وإمكانات شريط الأدوات الأخرى، راجع [شريط أدوات طريقة العرض](/ar/basic/view/toolbar). + +في أداة الإخفاء، انقر على اسم حقل ظاهر للتمرير بالشبكة إلى ذلك العمود وتمييزه لوقت وجيز. واستخدم مفتاح التبديل بجوار كل حقل لإظهاره أو إخفائه. + +أداة إخفاء الحقول diff --git a/ar/basic/field/ai/ai-field.mdx b/ar/basic/field/ai/ai-field.mdx new file mode 100644 index 00000000..a5e464d3 --- /dev/null +++ b/ar/basic/field/ai/ai-field.mdx @@ -0,0 +1,154 @@ +--- +title: "حقول الذكاء الاصطناعي" +description: "يمكن لحقول الذكاء الاصطناعي تلخيص النصوص، وتصنيف الوسوم، وإنشاء الدرجات، أو تحويل المحتوى إلى صور." +--- + +متاحة في جميع خطط Cloud. تتطلب عمليات النشر ذاتية الاستضافة خطة Business أو أعلى. + +## حالات الاستخدام الرئيسية + +تنشئ حقول الذكاء الاصطناعي قيمة الحقل الحالي انطلاقًا من حقول أخرى في الصف نفسه. استخدمها لتحويل المحتوى الخام إلى ملخصات أو ترجمات أو تفاصيل مستخرجة أو فئات أو درجات أو تواريخ أو صور. + + + + لخّص المعلومات أو ترجمها أو استخرجها، أو حسّن الكتابة، أو خصّص المخرجات. وهو الأنسب لتحويل النصوص الطويلة إلى محتوى قابل للاستخدام. + + + صنّف بذكاء أو خصّص المخرجات. وهو الأنسب لمطابقة المحتوى مع فئة واحدة موجودة. + + + أضف وسومًا بذكاء أو خصّص المخرجات. وهو الأنسب لمطابقة المحتوى مع وسم واحد أو أكثر من الوسوم الموجودة. + + + قيّم أو خصّص المخرجات. وهو الأنسب لإنشاء درجات أو نتائج رقمية من المحتوى المصدر. + + + استخرج المعلومات أو خصّص المخرجات. وهو الأنسب لاستخراج التواريخ أو الأوقات من المحتوى. + + + أنشئ صورًا أو خصّص المخرجات. وهو الأنسب لإنشاء صور من نصوص أو مرفقات. + + + +إذا لم تكن متأكدًا من الإجراء الذي ينبغي استخدامه، فابدأ من هنا: + + + + - **تلخيص**: ينشئ ملخصًا من الحقل المصدر. + - **ترجمة**: يترجم الحقل المصدر إلى اللغة الهدف. + - **استخراج المعلومات**: يستخرج معلومات محددة من النص. ويمكن لحقول التاريخ استخدامه أيضًا لاستخراج التواريخ أو الأوقات. + + + - **تحسين الكتابة**: يعيد كتابة المحتوى وفقًا لمتطلباتك الإضافية. + - **التصنيف الذكي**: يطابق حقل اختيار فردي مع خيار موجود. + - **إضافة الوسوم الذكية**: يطابق حقل اختيار متعدد مع الخيارات الموجودة. + + + - **تقييم**: ينشئ درجة أو قيمة رقمية من المحتوى المصدر. + - **إنشاء صورة**: ينشئ صورًا في حقل مرفقات. تدعم بعض النماذج استخدام حقل مرفقات كصورة مرجعية. + + + استخدم مطالبة مخصصة عندما لا تغطي الإجراءات الافتراضية حالتك. يمكن للمطالبات المخصصة الإشارة إلى حقول من الصف نفسه. + + + +## سير العمل + + + + أنشئ حقلًا، واختر نوع الحقل، ثم وسّع **إعدادات الذكاء الاصطناعي**. يعرض كل نوع حقل إجراءات الذكاء الاصطناعي التي يدعمها. + + + اختر **نوع إجراء الذكاء الاصطناعي** و**نموذج الذكاء الاصطناعي**. يحدد الإجراء المهمة، بينما يحدد النموذج أي نموذج ذكاء اصطناعي ينشئ النتيجة. + + + اختر الحقل الذي ينبغي للذكاء الاصطناعي قراءته كمدخل. ينشئ حقل الذكاء الاصطناعي قيمته من الحقول المصدر في الصف نفسه. + + + بحسب الإجراء، املأ **المتطلبات الإضافية** أو **اللغة الهدف** أو **مطالبة مخصصة**. ولإنشاء الصور في حقول المرفقات، استخدم **الإعدادات المتقدمة** لضبط حجم الصورة وجودتها وعددها ونسبة أبعادها ودقتها أو الصور المرجعية. تعتمد الإعدادات المتاحة على النموذج المحدد. + + + +إنشاء حقل ذكاء اصطناعي + +عند تحرير حقل ذكاء اصطناعي، يمكنك تغيير نوع الإجراء والنموذج والحقول المصدر والمتطلبات الإضافية والمطالبة المخصصة وإعداد التحديث التلقائي. بعد الحفظ، يُطبّق الإعداد الجديد على عمليات الإنشاء المستقبلية. وإذا كانت نتيجة موجودة لا تناسبك، فأعد إنشاءها. + +تحرير حقل ذكاء اصطناعي + +## التحديث التلقائي والإنشاء المجمع + +عند تمكين **التحديث التلقائي**، يُحدّث حقل الذكاء الاصطناعي وفق الإعداد الحالي كلما تغيّر محتوى الحقل المصدر أو إعداد الذكاء الاصطناعي. استخدمه عندما ينبغي أن تبقى النتيجة متزامنة مع المحتوى المصدر، مثل الفئات أو الملخصات أو الدرجات أو الوسوم المنشأة من الملاحظات. + +بعد إنشاء حقل أو تغيير إعداد الذكاء الاصطناعي الخاص به، يمكنك اختيار ما إذا كنت تريد معالجة السجلات في طريقة العرض الحالية فورًا: + + + + أنشئ محتوى للخلايا الفارغة فقط. لا تُستبدل القيم الموجودة. + + + أعد إنشاء النتائج للسجلات في طريقة العرض الحالية. تُستبدل القيم الموجودة. + + + احفظ إعداد الحقل من دون كتابة قيم في الخلايا. + + + +خيارات حفظ حقل الذكاء الاصطناعي + +بعد اختيار أحد خيارات الإنشاء، يعرض Teable حالة المهمة أثناء معالجة السجلات. + +حالة إنشاء حقل الذكاء الاصطناعي + +لتشغيل الإنشاء لاحقًا، استخدم قائمة الحقل بدلًا من حفظ الإعداد مرة أخرى. + +يمكنك أيضًا النقر بزر الماوس الأيمن على الحقل واختيار **إنشاء** لتشغيل الإنشاء المجمع لطريقة العرض الحالية. يعتمد التوفر على طريقة العرض الحالية وصلاحياتك. + +قائمة إنشاء حقل الذكاء الاصطناعي + +## الأسئلة الشائعة + + + + بعد إنشاء حقل أو تغيير إعداد الذكاء الاصطناعي الخاص به، يمكنك اختيار **ملء الخلايا الفارغة فقط** أو **إنشاء العمود بالكامل** أو **حفظ الإعداد فقط**. ويمكنك أيضًا إجراء إنشاء مجمع لاحقًا من قائمة النقر بزر الماوس الأيمن للحقل عبر اختيار **إنشاء**. + + + + مكّن **التحديث التلقائي** إذا أردت تحديث حقل الذكاء الاصطناعي عند تغيّر محتوى الحقل المصدر. وإذا أردت التحكم في وقت تشغيل الإنشاء، فاتركه معطلًا واستخدم **إنشاء** عند الحاجة. + + + + تعتمد إجراءات الذكاء الاصطناعي على نوع الحقل. تناسب الحقول النصية التلخيص والترجمة واستخراج المعلومات. وتناسب حقول الاختيار الفردي التصنيف الذكي، بينما تناسب حقول الاختيار المتعدد إضافة الوسوم الذكية، وتناسب حقول المرفقات إنشاء الصور. + + + + تأتي قائمة النماذج من النماذج التي يوفرها Teable ونماذج الذكاء الاصطناعي المُعدّة في المساحة الحالية. لاستخدام نموذج تابع لجهة خارجية، أضف أولًا نموذج ذكاء اصطناعي مخصصًا في إعدادات المساحة. + + + + تعتمد خيارات حجم الصورة وجودتها وعددها ونسبة أبعادها ودقتها والصورة المرجعية على النموذج المحدد. + + + + تفرض بعض نماذج الصور حدًا لإجمالي عدد وحدات البكسل. عند اختيار دقة عالية مثل **4K**، يستخدم Teable أكبر حجم متوافق مع نسبة الأبعاد المحددة، ولذلك قد يختلف العرض والارتفاع الفعليان. + + diff --git a/ar/basic/field/attachment.mdx b/ar/basic/field/attachment.mdx new file mode 100644 index 00000000..11eac6d9 --- /dev/null +++ b/ar/basic/field/attachment.mdx @@ -0,0 +1,75 @@ +--- +title: "مرفق" +description: "خزّن الصور وملفات PDF والمستندات والملفات الأخرى في السجلات، مع دعم المعاينة والتنزيل والتنزيل المجمع." +--- + +{/* mintlify-resync: 2026-05-14 */} +يخزّن حقل **مرفق** ملفًا واحدًا أو أكثر في السجل. تشمل حالات الاستخدام الشائعة العقود والصور والفواتير وملفات التصميم والسير الذاتية والتقارير والصور التي تنشئها حقول الذكاء الاصطناعي. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| أرشيف الملفات | العقود والفواتير والتقارير والسير الذاتية وملفات الأعمال الأخرى | +| إدارة الصور والأصول | صور المنتجات وأصول الحملات وملفات التصميم ولقطات الشاشة | +| جمع الملفات عبر النماذج | السير الذاتية وإيصالات استرداد المصروفات والملفات التي يرسلها العملاء | +| مخرجات صور الذكاء الاصطناعي | نتائج الصور التي تنشئها حقول الذكاء الاصطناعي | + +## الإنشاء والتهيئة + + + + في أحد الجداول، انقر على `+` لإضافة حقل، ثم اختر **مرفق**. + + + أدخل اسمًا للحقل، مثل "الملفات" أو "الصور" أو "مرفقات العقد". + + + بعد الحفظ، يمكن لكل سجل رفع ملف واحد أو أكثر في هذا الحقل. + + + +## الرفع والعرض + +يمكن لحقول المرفقات تخزين الصور وملفات PDF والمستندات والأرشيفات وأنواع الملفات الأخرى. + +- **رفع الملفات**: انقر على منطقة المرفقات في خلية أو في تفاصيل السجل، ثم اختر الملفات المحلية المطلوب رفعها. +- **تخزين عدة مرفقات**: يمكن لخلية مرفقات واحدة أن تحتوي على عدة ملفات. +- **معاينة الملفات**: يمكن معاينة الصور وبعض أنواع الملفات في الخلية أو في تفاصيل السجل. +- **تنزيل مرفق واحد أو حذفه**: افتح مرفقًا لتنزيل الملف. وإذا كان بإمكانك تحرير الحقل، توفر المعاينة أيضًا خيار **حذف**، ثم تنتقل إلى الملف التالي في السجل. + + +تخزّن حقول المرفقات ملفات، لا نصوصًا عادية. عند تحويل حقل نصي إلى حقل مرفقات، لا يستطيع Teable تحويل النص الأصلي إلى ملفات. تحقق مما إذا كانت البيانات تحتاج إلى نسخة احتياطية قبل تحويل الحقل. + + +## تنزيل المرفقات بشكل مجمع + +من قائمة حقل المرفقات، يمكنك تنزيل مرفقات الحقل الحالي في ملف ZIP. يتبع نطاق التنزيل نتائج البحث الحالية في الجدول: + +- إذا لم يكن هناك بحث نشط، ينزّل Teable المرفقات القابلة للتنزيل في حقل المرفقات هذا. +- إذا كان البحث جاريًا في الجدول ويخفي الصفوف غير المطابقة، فلا ينزّل Teable إلا مرفقات السجلات المطابقة. + +عند تنزيل ملف ZIP، يمكنك اختيار بادئة لاسم ملف المرفق: + +| خيار البادئة | الوصف | +| --- | --- | +| **الفهرس الافتراضي** | يستخدم فهرسًا ينشئه النظام كبادئة، ما يساعد على إبقاء ترتيب الملفات واضحًا | +| **تحديد حقل كبادئة** | يستخدم قيمة حقل آخر كبادئة لاسم الملف، وهو مفيد لتنظيم الملفات حسب المعرّف أو اسم العميل أو اسم المشروع | +| **بلا بادئة** | يحتفظ باسم الملف الأصلي متى أمكن | + +إذا ظهرت أسماء ملفات مكررة في ملف ZIP، يضيف Teable لواحق لكي يظل كل اسم ملف فريدًا. + +## الاستخدام مع حقول الذكاء الاصطناعي + +يمكن لحقول الذكاء الاصطناعي قراءة المرفقات وكتابة الصور المنشأة في حقول المرفقات. + +- **قراءة المرفقات**: في إعدادات حقل الذكاء الاصطناعي، أضف حقل المرفقات كحقل إدخال. تعتمد قدرة حقل الذكاء الاصطناعي على التعرّف على محتوى الصورة أو الملف على النموذج المحدد. +- **حفظ الصور**: اضبط مخرجات حقل الذكاء الاصطناعي على حقل مرفقات. تُحفظ الصور المنشأة في ذلك الحقل. + +لمزيد من المعلومات، راجع [حقل الذكاء الاصطناعي](/ar/basic/field/ai/ai-field). + +## رفع المرفقات عبر واجهة API + +تدعم واجهة API لرفع المرفقات رفع الملفات المحلية والرفع المستند إلى عنوان URL. تُضاف المرفقات الجديدة إلى نهاية حقل المرفقات المستهدف في السجل المحدد. + +راجع [واجهة API لرفع المرفقات](/ar/api-doc/record/upload-attachment). diff --git a/ar/basic/field/auto-number.mdx b/ar/basic/field/auto-number.mdx new file mode 100644 index 00000000..9c93d3d6 --- /dev/null +++ b/ar/basic/field/auto-number.mdx @@ -0,0 +1,39 @@ +--- +title: "الترقيم التلقائي" +description: "أنشئ أرقامًا متزايدة عند إنشاء السجلات. وهو مفيد لأرقام التذاكر وتسلسلات الطلبات والمعرّفات الداخلية." +--- + +ينشئ حقل **الترقيم التلقائي** رقمًا متزايدًا تلقائيًا لكل سجل. بعد إنشاء الحقل، يملأ Teable السجلات الحالية والمستقبلية بالأرقام، فلا يحتاج المستخدمون إلى صيانتها يدويًا. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| أرقام التذاكر | إنشاء معرّفات قصيرة للمشكلات أو الملاحظات أو طلبات الدعم | +| تسلسلات الطلبات والعقود | إنشاء أرقام تسلسلية داخلية للطلبات أو العقود أو الطلبات المقدمة | +| معرّفات الأعضاء أو المرشحين | تعيين معرّفات أساسية للأعضاء أو المرشحين أو الموظفين | +| مراجع المحادثات | الإشارة إلى السجلات بأرقام مثل `#45` في الرسائل أو التعليقات | + +## الإنشاء والتهيئة + + + + انقر على أيقونة `+` في الجانب الأيمن من رأس الجدول، ثم اختر **الترقيم التلقائي** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "معرّف الطلب" أو "معرّف العضو" أو "رقم التذكرة". + + + بعد إنشاء الحقل، يملأ Teable الأرقام التسلسلية للسجلات الحالية والمستقبلية. + + + +## سلوك الحقل + +- **تزايد تلقائي**: يتلقى كل سجل جديد الرقم التالي في التسلسل. +- **للقراءة فقط**: الأرقام التلقائية بيانات وصفية للسجل. ولا يمكن للمستخدمين تحرير قيم محددة يدويًا. +- **ثابت عبر طرق العرض**: بعد إنشاء الرقم، يبقى مرتبطًا بالسجل. ولا يؤدي الفرز أو التصفية أو تبديل طرق العرض إلى تغييره. + +## ملاحظات + +- تتحرك الأرقام التلقائية إلى الأمام فقط. فإذا حُذف السجل `3`، فلن يعيد Teable استخدام ذلك الرقم. ويواصل السجل الجديد التالي برقم لاحق. وقد تظهر فجوات في التسلسل لكي تظل الإشارات إلى السجلات التاريخية ثابتة. diff --git a/ar/basic/field/button-practical-guide.mdx b/ar/basic/field/button-practical-guide.mdx new file mode 100644 index 00000000..71f4d659 --- /dev/null +++ b/ar/basic/field/button-practical-guide.mdx @@ -0,0 +1,109 @@ +--- +title: "دليل عملي لحقل الزر" +description: "استخدم حقل الزر لتشغيل عمليات الأتمتة وتحويل مهام سير العمل الثابتة، مثل تحويل العملاء المحتملين أو تذكيرات المهام، إلى نقرة واحدة." +--- + +تفيد حقول الأزرار في مهام سير العمل الثابتة والمتكررة التي ينبغي تشغيلها بعد أن يؤكد شخص الإجراء. تشمل الأمثلة الشائعة تحويل عميل محتمل إلى فرصة، أو جدولة محتوى معتمد، أو إرسال تذكيرات بالمهام، أو مزامنة السجل الحالي مع نظام خارجي. + +يستخدم هذا الدليل تحويل عميل محتمل مثالًا رئيسيًا، ويوضح كيفية ربط زر بعملية أتمتة. + +## حالات الاستخدام + +| السيناريو | ما يمكن للزر فعله | +| --- | --- | +| تحويل عميل محتمل | إنشاء سجل في جدول الفرص ووضع علامة على العميل المحتمل الأصلي بأنه قد حُوّل | +| جدولة المحتوى | إنشاء جدول زمني للنشر وإشعار عضو الفريق المسؤول عن النشر | +| تذكيرات المهام | إرسال بريد إلكتروني أو رسالة فريق إلى المكلّف بالمهمة | +| مزامنة نظام خارجي | إرسال السجل الحالي إلى نظام آخر عبر طلب HTTP | + +## مثال: تحويل عميل محتمل إلى فرصة + +في جدول CRM، ينقر مندوب المبيعات على زر "تحويل إلى فرصة" بعد أن يقرر أن العميل المحتمل جاهز. تُكمل الأتمتة إجراءين: + +- إنشاء سجل جديد في جدول الفرص يتضمن معلومات أساسية مثل الشركة وجهة الاتصال. +- تحديث حالة العميل المحتمل الأصلي في جدول العملاء المحتملين إلى "تم التحويل". + +### إعداد الجداول + +يستخدم هذا المثال جدولين: + +| الجدول | الغرض | أمثلة للحقول | +| --- | --- | --- | +| جدول العملاء المحتملين | يخزّن العملاء المحتملين المطلوب متابعتهم. وفيه يُنشأ حقل الزر | اسم الشركة، جهة الاتصال، المالك، الحالة | +| جدول الفرص | يخزّن الفرص المحوّلة | اسم الفرصة، العميل المرتبط، المالك، العميل المحتمل المصدر | + +### إنشاء حقل الزر + +أضف حقل زر في جدول العملاء المحتملين: + + + + أنشئ حقلًا واختر **زر** بوصفه نوع الحقل. + + + عيّن نص الزر إلى "تحويل إلى فرصة" واختر لونًا يسهل التعرّف عليه. + + + لتجنب النقرات العرضية، مكّن **التأكيد قبل النقر** واملأ عنوان مربع الحوار والرسالة ونص زر التأكيد. + + + +### إعداد إجراءات الأتمتة + +بعد إنشاء حقل الزر، أعدّ الأتمتة التي تُشغّل عند النقر على الزر. + + + + في إعدادات حقل الزر، انقر على **أتمتة مخصصة** وأنشئ سير عمل. + + + أضف إجراء **إنشاء سجل** واختر جدول الفرص بوصفه الجدول المستهدف. + + + اكتب حقول العميل المحتمل الأساسية في الفرصة الجديدة. على سبيل المثال: + - `اسم الفرصة` = `اسم الشركة` من السجل المشغِّل + - `العميل المرتبط` = `جهة الاتصال` من السجل المشغِّل + - `المالك` = `المالك` من السجل المشغِّل + + + أضف إجراء **تحديث سجل**. اختر جدول العملاء المحتملين بوصفه الجدول المستهدف، واستخدم معرّف السجل المشغِّل بوصفه معرّف السجل، ثم حدّث `الحالة` إلى "تم التحويل". + + + +بعد حفظ الأتمتة، يمكن لمندوب المبيعات النقر على "تحويل إلى فرصة" لإنشاء الفرصة وتحديث حالة العميل المحتمل الأصلي. + +### إضافة الإشعارات + +إذا كان مدير المبيعات أو مالك الفرصة بحاجة إلى إشعار بعد التحويل، فأضف إجراء **إرسال بريد إلكتروني** أو إجراء رسالة فريق إلى الأتمتة. + +الإعدادات الشائعة: + +- **المستلم**: عنوان بريد إلكتروني ثابت، أو حقل مستخدم من السجل الحالي. +- **الموضوع والنص**: أدرج قيم الحقول من السجل المشغِّل، مثل اسم الشركة أو المالك أو مصدر العميل المحتمل. + +مثال لنص البريد الإلكتروني: + +> تم تحويل فرصة جديدة: حوّل [المالك] [اسم الشركة]. يُرجى المتابعة. + +### ربط الأنظمة الخارجية + +إذا كانت الفرص المحوّلة تحتاج أيضًا إلى المزامنة مع نظام CRM أو نظام مالي أو أداة داخلية، فأضف إجراء طلب HTTP إلى الأتمتة. + +تعمل طلبات HTTP على أفضل وجه عندما يكون للنظام المستهدف واجهة API مستقرة. قبل إعداد الإجراء، تأكد من نقطة النهاية وطريقة الطلب وطريقة المصادقة وتنسيق الحقول. + +### الحد من النقرات المكررة + +ينبغي عادةً ألا يحدث تحويل العميل المحتمل أكثر من مرة للعميل المحتمل نفسه. مكّن **تحديد عدد النقرات** في حقل الزر: + +| الإعداد | التوصية | +| --- | --- | +| الحد الأقصى للنقرات | اضبطه على `1` | +| السماح بإعادة التعيين | اتركه معطلًا عادةً لتجنب الفرص المكررة | + +بعد بلوغ حد النقرات، يصبح الزر في ذلك السجل معطلًا. + +## ملاحظات + +- يعتمد نجاح تشغيل نقرة الزر على تمكين الأتمتة المرتبطة وعملها بصورة صحيحة. +- يُحتسب كل تشغيل ناجح للأتمتة ضمن حصة تشغيل عمليات الأتمتة في مساحة العمل. +- إذا كان الزر يغيّر بيانات مهمة، فمكّن تأكيد النقر وحدد عدد النقرات. diff --git a/ar/basic/field/button.mdx b/ar/basic/field/button.mdx new file mode 100644 index 00000000..1f4e2529 --- /dev/null +++ b/ar/basic/field/button.mdx @@ -0,0 +1,54 @@ +--- +title: "الزر" +description: "أضف زرًا قابلًا للنقر إلى كل سجل واستخدمه لتشغيل أتمتة." +--- + +يضيف حقل الزر زرًا قابلًا للنقر إلى كل سجل. عندما ينقر شخص على الزر، يمكن لـTeable تشغيل أتمتة مُعدّة، مثل تحديث سجل أو إنشاء سجل أو إرسال رسالة أو استدعاء نظام خارجي. + +## حالات الاستخدام + +| السيناريو | الإجراءات المناسبة | +| --- | --- | +| سير عمل الحالة | بدء العمل أو إكمال مهمة أو الإرسال للموافقة أو أرشفة سجل | +| سير عمل البيانات | تحويل عميل محتمل إلى فرصة أو إنشاء مهمة من طلب أو كتابة السجل الحالي في جدول آخر | +| الإشعارات | إرسال بريد إلكتروني أو رسائل فريق أو إشعارات تذكير | +| عمليات التكامل الخارجية | الاتصال بأنظمة خارجية عبر إجراء HTTP في أتمتة | + +## الإنشاء والتهيئة + + + + أنشئ حقلًا في الجدول واختر النوع **زر**. + + + خصّص نص الزر ولونه، مثل "إرسال بريد إلكتروني" أو "إرسال للموافقة" أو "إنشاء تقرير". + + + مكّن **تحديد عدد النقرات** أو **التأكيد قبل النقر** عند الحاجة. + + + انقر على **أتمتة مخصصة** وحدد الإجراءات التي ينبغي تشغيلها بعد النقر على الزر. + + + +## الإعدادات + +| الإعداد | الوصف | +| --- | --- | +| نص الزر ولونه | يتحكم في كيفية ظهور الزر في الخلية | +| تحديد عدد النقرات | يحدد الحد الأقصى لعدد النقرات لكل سجل، مع إعداد اختياري لإعادة التعيين | +| التأكيد قبل النقر | يعرض مربع حوار للتأكيد قبل تشغيل إجراء الزر | +| أتمتة مخصصة | تعدّ الأتمتة التي يشغّلها الزر | + +## الاستخدامات الشائعة + +- **سير عمل الحالة**: انقر على "إكمال المهمة" لتحديث حالة السجل الحالي إلى "مكتملة". +- **تحويل عميل محتمل**: انقر على "تحويل إلى فرصة" لإنشاء سجل في جدول الفرص وتحديث حالة العميل المحتمل. +- **إرسال التذكيرات**: انقر على "إرسال تذكير" لإرسال بريد إلكتروني أو رسالة فريق. +- **التكامل مع نظام خارجي**: استخدم إجراء HTTP في الأتمتة لمزامنة السجل الحالي مع نظام آخر. + +## ملاحظات + +- تُحتسب كل نقرة ناجحة على الزر تشغّل أتمتة ضمن حصة تشغيل عمليات الأتمتة في مساحة العمل. +- صلاحية النقر على زر منفصلة عن صلاحية تحرير سجل. إذا كان بإمكان المستخدمين رؤية الزر، فقد يتمكنون من النقر عليه وتشغيل سير العمل، ويشمل ذلك المستخدمين ذوي صلاحية القراءة فقط أو الزوار الذين يستخدمون رابطًا مشتركًا. +- لا ينفذ الزر إجراءات من تلقاء نفسه؛ بل يعتمد على الأتمتة المرتبطة. إذا كانت الأتمتة معطلة أو محذوفة، فلن يكون للنقر على الزر أي تأثير. diff --git a/ar/basic/field/checkbox.mdx b/ar/basic/field/checkbox.mdx new file mode 100644 index 00000000..4246fbe6 --- /dev/null +++ b/ar/basic/field/checkbox.mdx @@ -0,0 +1,56 @@ +--- +title: "مربع الاختيار" +description: "خزّن حالات ثنائية مثل نعم/لا أو مكتمل/غير مكتمل." +--- + +يسجّل حقل **مربع الاختيار** حالة ثنائية، مثل نعم/لا أو تشغيل/إيقاف أو مكتمل/غير مكتمل. يمكن للمستخدمين النقر على خلية للتبديل بين محدد وغير محدد. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| إكمال المهام | مكتملة، تمت معالجتها، مؤرشفة | +| العلامات السريعة | عميل مهم، محظور، يحتاج إلى إعادة تخزين | +| نقاط تحقق العملية | رُفعت الصورة، روجعت النسخة، تمت الموافقة | +| مشغّلات الأتمتة | إرسال إشعار أو تحديث حالة أو بدء الخطوة التالية بعد تحديد مربع | + +## الإنشاء والتهيئة + + + + انقر على `+` في الجانب الأيمن من رأس الجدول، ثم اختر **مربع الاختيار** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "مكتملة" أو "عميل مهم" أو "معتمدة". + + + اختر ما إذا كان ينبغي أن تكون السجلات الجديدة محددة أم غير محددة افتراضيًا. + + + بعد الحفظ، يمكن للمستخدمين النقر على الخلايا لتبديل الحالة. + + + +## الاستخدامات الشائعة + +- **حالة المهمة**: استخدم حقل "مكتملة" في جدول مهام، ثم أنشئ طريقة عرض "المهام غير المكتملة" لا تعرض سوى السجلات غير المحددة. +- **العلامات السريعة**: ضع علامة "عميل مهم" في جدول العملاء أو "يحتاج إلى إعادة تخزين" في جدول المخزون. +- **نقاط تحقق العملية**: أضف حقولًا مثل "رُفعت الصورة" أو "روُجعت النسخة" في تقويم المحتوى كي يتمكن المتعاونون من رؤية الخطوات المكتملة. + +## استخدام قيم مربع الاختيار في الصيغ + +يمكن استخدام حقول مربع الاختيار كقيم منطقية في الصيغ. على سبيل المثال، أرجع نصًا مختلفًا بناءً على حالة الإكمال: + +```js +IF({مكتملة}, "مكتملة", "قيد التنفيذ") +``` + +## الإحصاءات والأتمتة + +- **تتبّع الإكمال**: استخدم شريط الملخص لحساب القيم المحددة. وباستخدام الأعداد، يمكنك حساب معدلات الإكمال. +- **تشغيل الأتمتة**: عند تحديد "معتمدة"، يمكن للأتمتة إرسال بريد إلكتروني أو تحديث حقول أخرى. + +## ملاحظات + +- لا يمثل حقل مربع الاختيار سوى حالتين. إذا كنت تحتاج إلى عدة حالات، مثل "لم تبدأ" و"قيد التنفيذ" و"مكتملة"، فاستخدم حقل **اختيار فردي**. +- استخدم حقول مربع الاختيار لمفاتيح تبديل واضحة. ولا تستخدمها للملاحظات أو الأسباب أو التفسيرات. diff --git a/ar/basic/field/common/formatter.mdx b/ar/basic/field/common/formatter.mdx new file mode 100644 index 00000000..2aac7993 --- /dev/null +++ b/ar/basic/field/common/formatter.mdx @@ -0,0 +1,66 @@ +--- +title: "التنسيق" +description: "تحكّم في كيفية ظهور قيم الحقول، مثل المنازل العشرية والنسب المئوية ورموز العملات وتنسيقات التاريخ والوقت." +--- + +يتحكم التنسيق في كيفية ظهور قيم الحقول. ولا يغيّر البيانات الخام للحقل، بل يغيّر فقط ما يراه المستخدمون في الجدول، مثل المنازل العشرية والنسب المئوية ورموز العملات وتنسيقات التاريخ والوقت. + +## تنسيق الأرقام + +يمكن لحقول الأرقام استخدام تنسيقات عرض تناسب عملك: + +| التنسيق | الوصف | +| --- | --- | +| عشري | تعيين عدد المنازل العشرية المطلوب عرضها | +| نسبة مئوية | عرض رقم كنسبة مئوية، مثل عرض `0.25` بالشكل `25%` | +| عملة | إضافة رمز عملة وتعيين المنازل العشرية | + +## تنسيق التاريخ والوقت + +يمكن لحقول التاريخ والوقت تعيين تنسيق التاريخ وتنسيق الوقت والمنطقة الزمنية. + +| الإعداد | المثال | +| --- | --- | +| النمط الأمريكي | `12/31/2023` | +| النمط الأوروبي | `31/12/2023` | +| النمط الآسيوي | `2023/12/31` | +| معيار ISO | `2023-12-31` | +| السنة والشهر فقط | `2023-12` | +| الشهر واليوم فقط | `12-31` | +| السنة فقط | `2023` | +| الشهر فقط | `12` | +| اليوم فقط | `31` | + +تدعم تنسيقات الوقت نظام 24 ساعة أو نظام 12 ساعة أو عدم عرض الوقت. ويمكن للمناطق الزمنية استخدام منطقة زمنية ثابتة أو اتباع موقع المشاهد. + +## أنواع البيانات الأساسية للحقول + +| نوع حقل Teable | نوع البيانات الأساسي | يدعم التنسيق | علامة النوع الديناميكي | +| --- | --- | --- | --- | +| نص من سطر واحد | نص | لا | لا | +| نص طويل | نص | لا | لا | +| مستخدم | نص | لا | لا | +| مرفق | نص | لا | لا | +| مربع اختيار | منطقي | لا | لا | +| اختيار متعدد | نص | لا | لا | +| اختيار فردي | نص | لا | لا | +| تاريخ | تاريخ | نعم | لا | +| رقم | رقم | نعم | لا | +| مدة | رقم | نعم | لا | +| تقييم | رقم | لا* | لا | +| صيغة* | ديناميكي | نعم* | نعم | +| تجميع* | ديناميكي | نعم* | نعم | +| عدد | رقم | نعم | لا | +| ربط | نص | لا | لا | +| وقت الإنشاء | تاريخ | نعم | لا | +| وقت آخر تعديل | تاريخ | نعم | لا | +| أنشأه | نص | لا | لا | +| آخر تعديل بواسطة | نص | لا | لا | +| ترقيم تلقائي | رقم | نعم | لا | +| زر | نص | لا | لا | + +## ملاحظات + +- تعرض حقول التقييم شريط تقييم تفاعليًا. وهي لا تستخدم تنسيق الأرقام، لكنها تظل حقول أرقام ويمكن استخدامها في العمليات الحسابية الرقمية. +- يعتمد تنسيق الصيغ والتجميعات على نوع المخرجات. إذا كانت النتيجة تاريخًا أو رقمًا، فيمكن تنسيقها. وإذا كانت النتيجة نصًا أو قيمة منطقية، فلا ينطبق التنسيق. +- تظل الحقول المشار إليها متبعة لنوع القيمة الأساسي للحقل الأصلي. diff --git a/ar/basic/field/common/is-multiple-value.mdx b/ar/basic/field/common/is-multiple-value.mdx new file mode 100644 index 00000000..60e7b4a5 --- /dev/null +++ b/ar/basic/field/common/is-multiple-value.mdx @@ -0,0 +1,62 @@ +--- +title: "القيمة المفردة والقيم المتعددة" +description: "يوضح ما إذا كانت خلية الحقل تخزّن قيمة واحدة أم مجموعة من القيم." +--- + +تصف القيمة المفردة والقيم المتعددة ما إذا كانت الخلية تخزّن قيمة واحدة أم مجموعة من القيم. وبعد فهم هذا المفهوم، يصبح من الأسهل إدراك سبب إرجاع الارتباطات وعمليات البحث والتجميعات والصيغ نتائج متعددة أحيانًا. + +## المفاهيم الأساسية + +| النوع | الوصف | المثال | +| --- | --- | --- | +| قيمة مفردة | معلومة واحدة محددة | "تاريخ اليوم"، "رقم هاتف جون" | +| قيم متعددة | مجموعة من القيم، تُفهم أيضًا على أنها مصفوفة | "جميع تواريخ هذا الشهر"، "جميع أرقام هواتف جون" | + +## الحالات الافتراضية للقيم المفردة والمتعددة + +| نوع الحقل | الحالة الافتراضية | +| --- | --- | +| نص من سطر واحد، نص طويل | مفردة | +| اختيار فردي، مربع اختيار، تاريخ، رقم، تقييم | مفردة | +| وقت الإنشاء، وقت آخر تعديل، أنشأه، آخر تعديل بواسطة، الترقيم التلقائي، الزر | مفردة | +| اختيار متعدد، مرفق | متعددة | +| مستخدم | اختيارية | +| ربط | اختيارية | +| صيغة، تجميع | ديناميكية | + +تعني "الحالة الافتراضية" هنا الحالة الشائعة للحقل بمفرده. وتعني **اختيارية** أنه يمكنك تحديد ما إذا كان الحقل أحادي القيمة أو متعدد القيم عبر إعدادات الحقل. وتعني **ديناميكية** أن النتيجة تعتمد على منطق الصيغة ودوال التجميع وما إذا كانت الحقول المشار إليها متعددة القيم. وبعد مرور قيمة عبر ربط أو بحث أو تجميع أو مرجع صيغة، قد تتغير حالتها. + +## تغير الحالات بسبب عمليات الربط والمراجع + +- **حقول الربط**: إذا كان حقل الربط متعدد القيم، فقد تصبح الحقول المشار إليها عبر ذلك الربط متعددة القيم أيضًا. على سبيل المثال، إذا أمكن إسناد مهمة واحدة إلى عدة موظفين، فقد يؤدي البحث عن أرقام هواتف الموظفين عبر ذلك الربط إلى إرجاع عدة أرقام هواتف. +- **الصيغ والتجميعات**: غالبًا ما تكون الصيغ والتجميعات أحادية القيمة، لكنها قد تصبح متعددة القيم عندما تشير إلى حقول متعددة القيم. + +### مثال + +لنفترض أنك تدير شركة في Teable باستخدام جدولين: `معلومات الموظفين` و`مهام المشروع`. + +**جدول معلومات الموظفين** + +| الاسم | الهاتف | البريد الإلكتروني | المهام | +| --- | --- | --- | --- | +| جون | 123456 | john@company.com | المهمة 1، المهمة 2 | +| ماري | 789012 | mary@company.com | المهمة 3 | + +**جدول مهام المشروع** + +| اسم المهمة | المكلّف | تاريخ الاستحقاق | التقدم | +| --- | --- | --- | --- | +| المهمة 1 | جون | 2023-11-20 | 50% | +| المهمة 2 | جون | 2023-12-01 | 30% | +| المهمة 3 | ماري | 2023-11-15 | 80% | + +في هذا المثال: + +- حقل "المهام" في جدول **معلومات الموظفين** متعدد القيم لأن الموظف الواحد قد يكون مسؤولًا عن عدة مهام. +- حقل "المكلّف" في جدول **مهام المشروع** أحادي القيمة لأن لكل مهمة مكلّفًا واحدًا. + +عند إنشاء مهمة جديدة في جدول "مهام المشروع" وإسنادها إلى موظف، يُحدّث حقل "المهام" لذلك الموظف في جدول "معلومات الموظفين" ليشمل جميع المهام المسندة إليه. + +### المخططات المصغرة للأرقام + +تعرض حقول الأرقام أحيانًا عدة خطوط أو أشرطة بدلًا من رقم واحد. ويعني ذلك عادةً أن الحقل أصبح متعدد القيم، وغالبًا ما يحدث هذا عبر ربط أو بحث أو تجميع أو مرجع صيغة. diff --git a/ar/basic/field/common/show-as.mdx b/ar/basic/field/common/show-as.mdx new file mode 100644 index 00000000..8dc90dcd --- /dev/null +++ b/ar/basic/field/common/show-as.mdx @@ -0,0 +1,37 @@ +--- +title: "العرض التفاعلي" +description: "غيّر عرض قيمة الحقل وسلوك النقر، مثل عناوين URL ورسائل البريد الإلكتروني وأرقام الهواتف ومخططات الأرقام." +--- + +يغيّر العرض التفاعلي كيفية ظهور قيم الحقول وتصرفها عند النقر عليها. ولا يغيّر نوع الحقل، بل يغيّر فقط كيفية عرض المستخدمين لمحتوى الحقل وتفاعلهم معه. + +## العرض التفاعلي للحقول النصية + +| العرض | الوصف | +| --- | --- | +| عنوان URL | يعرض النص كعنوان ويب. ويؤدي النقر عليه إلى فتح الرابط في متصفح | +| بريد إلكتروني | يعرض النص كعنوان بريد إلكتروني. ويؤدي النقر عليه إلى فتح تطبيق البريد الافتراضي | +| هاتف | يعرض النص كرقم هاتف. ويؤدي النقر عليه إلى بدء إجراء اتصال، بحسب دعم الجهاز | + +## العرض التفاعلي لحقول الأرقام + +يمكن لحقول الأرقام عرض الحالة الرقمية في صورة مخططات. + +### حقول الأرقام أحادية القيمة + +| العرض | الوصف | +| --- | --- | +| شريط | يعرض القيمة بطول شريط. ويمكنك تعيين اللون، وتحديد ما إذا كانت القيمة ستُعرض، وتعيين القيمة المستهدفة التي تمثل 100% | +| حلقة | يعرض القيمة كتقدم حلقي. ويمكنك تعيين اللون، وتحديد ما إذا كانت القيمة ستُعرض، وتعيين القيمة المستهدفة التي تمثل 100% | + +### حقول الأرقام متعددة القيم + +| العرض | الوصف | +| --- | --- | +| شريط | يعرض عدة قيم رقمية في صورة أشرطة متجاورة | +| خط | يعرض عدة قيم رقمية في صورة مخطط خطي | + +## ملاحظات + +- القيمة المستهدفة مرجع للعرض، ولا تضع حدًا أقصى صارمًا. +- يمكن أن ينطبق العرض التفاعلي أيضًا على بعض نتائج الصيغ والتجميعات وعمليات البحث. وتعتمد الخيارات المتاحة على نوع النتيجة. diff --git a/ar/basic/field/conditional-lookup.mdx b/ar/basic/field/conditional-lookup.mdx new file mode 100644 index 00000000..7459f2fc --- /dev/null +++ b/ar/basic/field/conditional-lookup.mdx @@ -0,0 +1,118 @@ +--- +title: "البحث الشرطي" +description: "ابحث عن البيانات عبر الجداول باستخدام شروط التصفية وأرجع قيم السجلات المطابقة." +--- + +يمكن للبحث الشرطي جلب البيانات المطابقة من جدول مستهدف من دون إنشاء علاقة ارتباط أولًا. ويفيد عندما ينبغي أن يتغير البحث بناءً على قيم الحقول في السجل الحالي، مثل العثور على المنتج الأعلى مبيعًا في الفئة نفسها أو البحث عن بيانات فترة مطابقة. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| تحليل الفئات | العثور على المنتج الأعلى مبيعًا في الفئة نفسها | +| مقارنة الفترات | البحث عن مبلغ مبيعات الفترة السابقة لإجراء حسابات المقارنة بين الفترات | +| مطابقة العملاء | العثور على تفاصيل العميل باستخدام رقم الهاتف أو البريد الإلكتروني أو معرّف العميل | +| البحث عن التفاصيل | إرجاع سجلات التفاصيل المطابقة بناءً على شروط من السجل الحالي | + +## الإجراء + + + + انقر على أيقونة `+` في الجانب الأيمن من اسم الحقل، واختر **البحث الشرطي**، ثم أدخل عنوانًا للحقل، مثل "الطلبات المرتبطة". + + + في القائمة المنسدلة للجدول المستهدف، اختر الجدول المطلوب الاستعلام عنه. + + + اختر الحقل المطلوب استخراجه وأكد نوع البيانات المُرجعة. + + + أضف شروط التصفية، واختر الحقل ونوع الشرط وقيمة المقارنة. ويمكن أن تكون قيمة المقارنة قيمة ثابتة أو حقلًا من الجدول الحالي. + + + عيّن حقل الفرز واتجاه الفرز وعدد السجلات المطلوب عرضها عند الحاجة. + + + +يلزم شرط تصفية واحد على الأقل. وللشروط المتعددة، اختر "استيفاء جميع الشروط (AND)" أو "استيفاء أي شرط (OR)". + +## تطبيقات عملية + +### تحليل بيانات المبيعات مقارنةً بالفترة السابقة + +**الجداول** + +- جدول ملخص مبيعات الفترات، ويتضمن حقولًا مثل الفترة وتاريخ البدء وتاريخ الانتهاء ومبلغ المبيعات +- جدول تفاصيل المبيعات، ويتضمن حقولًا مثل مبلغ المبيعات وتاريخ البيع + +في جدول ملخص مبيعات الفترات، احسب النمو مقارنةً بالفترة السابقة لكل فترة. استخدم أولًا التجميع الشرطي لحساب مبيعات الفترة الحالية، ثم استخدم البحث الشرطي لجلب مبيعات الفترة السابقة، وأخيرًا استخدم حقل صيغة لحساب معدل النمو. + +**الخطوات** + +**إنشاء حقل تجميع شرطي لمبيعات الفترة الحالية** + +1. في جدول ملخص مبيعات الفترات، أنشئ حقل تجميع شرطي باسم "مبيعات الفترة الحالية" +2. الجدول المستهدف: جدول تفاصيل المبيعات +3. حقل التجميع: مبلغ المبيعات +4. شروط التصفية: + - الحقل: تاريخ البيع -> الشرط: قبل أو يساوي -> القيمة: حقل تاريخ الانتهاء من الجدول الحالي + - الحقل: تاريخ البيع -> الشرط: بعد أو يساوي -> القيمة: حقل تاريخ البدء من الجدول الحالي +5. دالة التجميع: المجموع + +**إنشاء حقل بحث شرطي لمبيعات الفترة السابقة** + +1. أنشئ حقل بحث شرطي باسم "مبيعات الفترة السابقة" +2. الجدول المستهدف: جدول ملخص مبيعات الفترات (هذا الجدول) +3. الحقل: مبيعات الفترة الحالية +4. شرط التصفية: + - الحقل: تاريخ الانتهاء -> الشرط: يساوي -> القيمة: حقل تاريخ انتهاء الفترة السابقة من الجدول الحالي +5. دالة التجميع: المجموع + +**إنشاء حقل صيغة للنمو مقارنةً بالفترة السابقة** + +1. أنشئ حقل صيغة باسم "معدل النمو مقارنةً بالفترة السابقة" +2. اضبط الصيغة على `(مبيعات الفترة الحالية - مبيعات الفترة السابقة) / مبيعات الفترة السابقة * 100` +3. نسّقها كنسبة مئوية بمنزلتين عشريتين + +### تحليل بيانات مبيعات المنتجات + +**الجداول** + +- جدول المنتجات، ويتضمن حقولًا مثل معرّف الفئة واسم المنتج وحجم المبيعات +- جدول الفئات، ويتضمن حقولًا مثل معرّف الفئة واسم الفئة + +في جدول الفئات، ابحث عن المنتج الأعلى مبيعًا في كل فئة لتحديد المنتج الرئيسي في كل فئة. + +**الخطوات** + +**المنتج الأعلى مبيعًا** + +1. في جدول الفئات، أنشئ حقل بحث شرطي باسم "المنتج الأعلى مبيعًا" +2. الجدول المستهدف: جدول المنتجات +3. حقل البحث: اسم المنتج +4. شرط التصفية: + - الحقل: معرّف الفئة -> الشرط: يساوي -> القيمة: حقل معرّف الفئة من الجدول الحالي +5. الفرز: حقل حجم المبيعات -> تنازلي +6. حد العرض: سجل واحد + +**حجم المبيعات** + +1. أنشئ حقل بحث شرطي آخر باسم "حجم المبيعات" +2. الجدول المستهدف: جدول المنتجات +3. حقل البحث: حجم المبيعات +4. شرط التصفية: + - الحقل: معرّف الفئة -> الشرط: يساوي -> القيمة: حقل معرّف الفئة من الجدول الحالي +5. الفرز: حقل حجم المبيعات -> تنازلي +6. حد العرض: سجل واحد + +## الأسئلة الشائعة + + + + قد لا تدعم بعض أنواع الحقول المعقدة، مثل الصور والمرفقات، شروط التصفية. + + + + يتطلب حقل البحث العادي إنشاء حقل ارتباط أولًا، بينما يمكن للبحث الشرطي مطابقة البيانات في الجدول المستهدف مباشرةً باستخدام شروط التصفية. + + diff --git a/ar/basic/field/conditional-rollup.mdx b/ar/basic/field/conditional-rollup.mdx new file mode 100644 index 00000000..87607636 --- /dev/null +++ b/ar/basic/field/conditional-rollup.mdx @@ -0,0 +1,95 @@ +--- +title: "التجميع الشرطي" +description: "احسب إحصاءات عبر الجداول باستخدام شروط التصفية وأرجع قيمة مجمعة واحدة." +--- + +يصفّي التجميع الشرطي السجلات المطابقة من جدول مستهدف من دون إنشاء علاقة ارتباط أولًا، ثم يحسب إحصاءات لحقل محدد. ويفيد في حساب الأعداد والمجاميع والمتوسطات وغيرها من النتائج بناءً على قيم الحقول في السجل الحالي. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| إحصاءات مهام الموظفين | حساب المهام قيد التنفيذ والمهام المكتملة للمكلّف | +| إحصاءات مبيعات الفترات | حساب مبلغ المبيعات أو عدد الطلبات أو متوسط قيمة الطلب بحسب النطاق الزمني | +| التحقق من البيانات المكررة | حساب الأسماء أو أرقام الهواتف أو المعرّفات المكررة | +| التقارير الإقليمية | تجميع بيانات الأعمال بحسب المنطقة أو المتجر أو القناة | + +## الإجراء + + + + انقر على أيقونة `+` في الجانب الأيمن من اسم الحقل، واختر **التجميع الشرطي**، ثم أدخل عنوانًا للحقل، مثل "إجمالي مبلغ المبيعات". + + + في القائمة المنسدلة للجدول المستهدف، اختر الجدول المطلوب الاستعلام عنه. + + + اختر الحقل المطلوب حسابه وأكد نوع الحقل. + + + أضف شروط التصفية، واختر الحقل ونوع الشرط وقيمة المقارنة. ويمكن أن تكون قيمة المقارنة قيمة ثابتة أو حقلًا من الجدول الحالي. + + + اختر طريقة حساب بناءً على نوع البيانات، مثل القيمة الأصلية أو القيم الفريدة أو عدد القيم الفريدة أو المجموع أو العدد أو المتوسط أو القيمة القصوى أو القيمة الدنيا. + + + +## تطبيقات عملية + +### إحصاءات حجم مهام الفريق + +**الجداول** + +- جدول المهام +- جدول الإحصاءات + +يحتاج مسؤول الفريق إلى حساب المهام ذات الحالات المختلفة لكل موظف، مثل المهام قيد التنفيذ والمكتملة، لفهم توزيع عبء العمل وتقدم الإكمال. + +**المهام قيد التنفيذ** + +1. في جدول معلومات الموظفين، أنشئ حقل تجميع شرطي باسم "المهام قيد التنفيذ" +2. الجدول المستهدف: جدول إسنادات المهام +3. حقل التجميع: معرّف المهمة +4. شروط التصفية: + - الحقل: المكلّف -> الشرط: يساوي -> القيمة: حقل الموظف من الجدول الحالي + - الحقل: حالة المهمة -> الشرط: يساوي -> القيمة: "قيد التنفيذ" +5. دالة التجميع: عدّ الكل + +**المهام المكتملة** + +1. أنشئ حقل تجميع شرطي آخر باسم "المهام المكتملة" +2. الجدول المستهدف: جدول إسنادات المهام +3. حقل التجميع: معرّف المهمة +4. شروط التصفية: + - الحقل: المكلّف -> الشرط: يساوي -> القيمة: حقل الموظف من الجدول الحالي + - الحقل: حالة المهمة -> الشرط: يساوي -> القيمة: "مكتملة" +5. دالة التجميع: عدّ الكل + +### العثور على القيم المكررة + +**الجداول** + +- جدول العملاء، ويتضمن حقولًا مثل اسم العميل ورقم الهاتف + +في جدول العملاء، ابحث عن أسماء العملاء المكررة قبل دمج ملفات تعريف العملاء. + +**الخطوات** + +1. في جدول العملاء، أنشئ حقل تجميع شرطي باسم "عدد تكرارات اسم العميل" +2. الجدول المستهدف: جدول العملاء (هذا الجدول) +3. حقل التجميع: اسم العميل +4. شرط التصفية: + - الحقل: اسم العميل -> الشرط: يساوي -> القيمة: حقل اسم العميل من الجدول الحالي +5. دالة التجميع: عدّ الكل +6. أنشئ حقل صيغة باسم "علامة التكرار" +7. اضبط الصيغة على `IF(عدد تكرارات اسم العميل > 1, "مكرر", BLANK())` + +يعرض جدول العملاء عدد مرات ظهور كل اسم عميل، ويضع علامة "مكرر" على السجلات المكررة، بحيث يمكنك تصفيتها ومعالجتها لاحقًا. + +## الأسئلة الشائعة + + + + يعيد التجميع الشرطي قيمة محسوبة واحدة، وهو مناسب للإجماليات والأعداد والمتوسطات. أما البحث الشرطي فيعيد قائمة بالقيم الخام المطابقة، وهو مناسب لعرض البيانات التفصيلية. + + diff --git a/ar/basic/field/created-by.mdx b/ar/basic/field/created-by.mdx new file mode 100644 index 00000000..654bd62a --- /dev/null +++ b/ar/basic/field/created-by.mdx @@ -0,0 +1,41 @@ +--- +title: "أنشأه" +description: "سجّل تلقائيًا من أنشأ كل سجل." +--- + +يسجّل حقل **أنشأه** تلقائيًا الشخص الذي أنشأ كل سجل أول مرة. ينشئ Teable القيمة، ولذلك يناسب تتبع المصدر وتحليل عبء العمل وطرق العرض الشخصية. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| تتبع المصدر | معرفة العضو الذي أنشأ السجل أول مرة | +| إحصاءات عبء العمل | التجميع حسب حقل أنشأه وحساب عدد السجلات التي أضافها كل عضو | +| طرق العرض الشخصية | تصفية السجلات التي أنشأها المستخدم الحالي | +| المساءلة | العثور على المصدر الأصلي عندما تبدو البيانات غير صحيحة | + +## الإنشاء والتهيئة + + + + انقر على أيقونة `+` في الجانب الأيمن من رأس الجدول، ثم اختر **أنشأه** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "مقدّم الطلب" أو "المسجّل بواسطة". + + + بعد إضافة الحقل، يعرض تلقائيًا الصورة الرمزية والاسم للمنشئ الأصلي. + + + +## الاستخدامات الشائعة + +- **إحصاءات عبء العمل**: جمّع حسب حقل أنشأه لمعرفة عدد السجلات التي أنشأها كل عضو. +- **تتبّع المشكلات**: عندما تبدو البيانات غير صحيحة، تحقق من حقل أنشأه للعثور على المصدر الأصلي. +- **مساحة العمل الشخصية**: عيّن عامل تصفية مثل `أنشأه` `هو` `المستخدم الحالي`. + +## ملاحظات + +- يسجّل حقل أنشأه الشخص الذي أنشأ السجل **أول مرة**. ولا تؤدي التعديلات اللاحقة التي يجريها أعضاء آخرون إلى تغيير هذا الحقل. +- لتتبع آخر شخص عدّل سجلًا، استخدم **آخر تعديل بواسطة**. +- بالنسبة إلى السجلات المستوردة من Excel أو CSV، يسجّل حقل أنشأه عادةً المستخدم الذي نفّذ الاستيراد. diff --git a/ar/basic/field/created-time.mdx b/ar/basic/field/created-time.mdx new file mode 100644 index 00000000..29ba3e70 --- /dev/null +++ b/ar/basic/field/created-time.mdx @@ -0,0 +1,48 @@ +--- +title: "وقت الإنشاء" +description: "سجّل تلقائيًا وقت إنشاء كل سجل أول مرة." +--- + +يسجّل حقل **وقت الإنشاء** تلقائيًا وقت إنشاء كل سجل أول مرة. يكتب Teable القيمة، ولذلك يناسب الفرز والتصفية وإعداد التقارير حسب وقت الإنشاء. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| تتبع السجلات الجديدة | معرفة وقت إنشاء كل سجل | +| فرز أحدث السجلات | الفرز حسب وقت الإنشاء تنازليًا لمعالجة أحدث البيانات أولًا | +| تقارير الفترات | تصفية البيانات المنشأة هذا الأسبوع أو هذا الشهر أو ضمن نطاق زمني مخصص | +| طابع زمني للقراءة فقط | تخزين وقت إنشاء لا يستطيع المستخدمون تحريره يدويًا | + +## الإنشاء والتهيئة + + + + انقر على أيقونة `+` في الجانب الأيمن من رأس الجدول، ثم اختر **وقت الإنشاء** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "وقت التقديم" أو "تاريخ التسجيل". + + + بعد إضافة الحقل، يملأ Teable وقت الإنشاء للسجلات الحالية والمستقبلية. + + + +## تنسيق العرض + +| الإعداد | الوصف | +| --- | --- | +| تنسيق التاريخ | يتحكم في كيفية عرض التواريخ بما يلائم تنسيق عملك | +| تنسيق الوقت | يعرض الوقت أو يخفيه، ويدعم نظام 12 ساعة أو 24 ساعة | +| المنطقة الزمنية | تتبع المنطقة الزمنية لنظام المشاهد أو تستخدم منطقة زمنية ثابتة | + +## الاستخدامات الشائعة + +- **عرض أحدث الأنشطة أولًا**: افرز حسب وقت الإنشاء تنازليًا لتظهر السجلات المنشأة حديثًا في الأعلى. +- **إعداد تقرير حسب الفترة**: عيّن عامل تصفية مثل `وقت الإنشاء` `هو` `هذا الشهر` لعرض السجلات الجديدة للشهر. + +## ملاحظات + +- حقل وقت الإنشاء للقراءة فقط ولا يمكن تحريره يدويًا. +- عند استيراد السجلات من Excel أو CSV، يكون وقت الإنشاء عادةً هو وقت الاستيراد. +- إذا كنت بحاجة إلى تسجيل تاريخ عمل يدويًا، فاستخدم حقل **تاريخ**. diff --git a/ar/basic/field/date.mdx b/ar/basic/field/date.mdx new file mode 100644 index 00000000..20e0b550 --- /dev/null +++ b/ar/basic/field/date.mdx @@ -0,0 +1,57 @@ +--- +title: "التاريخ" +description: "خزّن التواريخ والأوقات، مع دعم تنسيق التاريخ وتنسيق الوقت والمنطقة الزمنية والملء التلقائي بالوقت الحالي." +--- + +يخزّن حقل **التاريخ** تاريخًا محددًا أو نقطة زمنية، مثل الموعد النهائي لمشروع أو وقت اجتماع أو تاريخ بدء موظف. ويمكنه عرض التاريخ فقط، أو تضمين وقت مثل `2025-11-03 14:30`. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| جدولة المشاريع | تواريخ بدء المهام والمواعيد النهائية وتواريخ المراحل الرئيسية | +| تخطيط الفعاليات | الاجتماعات والفعاليات والمواعيد وخطط الإصدارات | +| سجلات الأشخاص والعقود | تواريخ البدء وتواريخ التوقيع وتواريخ انتهاء الصلاحية | +| تقارير الفترات | تصفية البيانات وإعداد تقارير عنها حسب الأسبوع أو الشهر أو ربع السنة | + +## الإنشاء والتهيئة + + + + في طريقة عرض الجدول، أضف حقلًا واختر **التاريخ**. + + + أدخل اسمًا للحقل، مثل "تاريخ الاستحقاق" أو "وقت الاجتماع" أو "تاريخ البدء". + + + عيّن تنسيق التاريخ، وما إذا كان الوقت سيُضمّن، وتنسيق الوقت، والمنطقة الزمنية بحسب الحاجة. + + + إذا كان ينبغي أن تستخدم السجلات الجديدة الوقت الحالي تلقائيًا، فمكّن الملء التلقائي بالوقت الحالي. + + + +## خيارات حقل التاريخ + +| الخيار | الوصف | +| --- | --- | +| تضمين الوقت | تخزين وقت محدد بالإضافة إلى التاريخ | +| تنسيق التاريخ | يتحكم في عرض التاريخ، مثل `YYYY-MM-DD` أو `DD/MM/YYYY` أو `MM/DD/YYYY` أو `D MMM YYYY` | +| تنسيق الوقت | يتحكم في عرض الوقت وفي استخدام نظام 12 ساعة أو 24 ساعة | +| المنطقة الزمنية | تعيّن المنطقة الزمنية المستخدمة للتواريخ والأوقات، وهو أمر مفيد للفرق المنتشرة عبر المناطق | +| الملء التلقائي بالوقت الحالي | يملأ السجلات الجديدة بالوقت الحالي عند إنشائها | + +لمزيد من التنسيقات، راجع [التنسيق](/ar/basic/field/common/formatter). + +## الاستخدامات الشائعة + +- **جدولة المهام**: سجّل تواريخ البدء وتواريخ الاستحقاق، ثم افرز أو صفِّ حسب تاريخ الاستحقاق. +- **تخطيط الفعاليات**: سجّل أوقات الاجتماعات والفعاليات لتسهيل تتبع التواريخ المهمة. +- **تقارير الفترات**: صفِّ البيانات لهذا الأسبوع أو هذا الشهر أو لنطاق زمني مخصص. +- **حسابات التاريخ**: أشر إلى حقول التاريخ في حقول الصيغ لحساب الفواصل الزمنية بين التواريخ. + +## ملاحظات + + +إذا كنت بحاجة إلى تسجيل وقت إنشاء سجل وإبقاء تلك القيمة للقراءة فقط، فاستخدم **[وقت الإنشاء](/ar/basic/field/created-time)**. + diff --git a/ar/basic/field/formula.mdx b/ar/basic/field/formula.mdx new file mode 100644 index 00000000..c0a4ef21 --- /dev/null +++ b/ar/basic/field/formula.mdx @@ -0,0 +1,93 @@ +--- +title: "الصيغة" +description: "أشر إلى حقول أخرى واحسب النصوص والأرقام والتواريخ والشروط المنطقية باستخدام الصيغ." +--- + +تحسب حقول الصيغ النتائج من حقول أخرى في السجل نفسه. ويمكنها معالجة العمليات الحسابية وضم النصوص وحسابات التاريخ والمنطق الشرطي. استخدمها لتحويل قواعد الحساب المتكررة إلى حقول. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| الحساب التلقائي | حساب السعر الإجمالي أو الربح أو الدرجة من الكمية وسعر الوحدة والخصم والحقول الأخرى | +| معالجة النصوص | ضم النصوص أو استخراج المحتوى أو تحليل المعلومات حسب فاصل | +| معالجة التاريخ | حساب فروق التواريخ أو التحقق من النطاقات الزمنية أو إنشاء تواريخ مستقبلية | +| المنطق الشرطي | إرجاع نتائج مختلفة بناءً على الشروط، مثل الحالة أو التلميحات أو الفئات | + +## أساسيات الصيغ + +### أنواع البيانات + +قبل كتابة صيغة، تأكد من أنواع الحقول المستخدمة في الحساب. تدعم الأنواع المختلفة عمليات ودوال مختلفة. + +| النوع | الوصف | الاستخدامات الشائعة | +| --- | --- | --- | +| رقم | أعداد صحيحة أو عشرية | العمليات الحسابية والتجميعات والمقارنات | +| نص | قيم نصية | الضم والاستخراج والاستبدال والتقسيم | +| تاريخ | قيم تاريخ أو تاريخ ووقت | حساب الفواصل ومقارنة التواريخ | +| منطقي | `TRUE` أو `FALSE` | الشروط والعمليات المنطقية | + +### الإشارة إلى الحقول + +في الصيغة، أشر إلى حقل آخر باسم الحقل. ضع اسم الحقل بين `{}` واجعله مطابقًا لاسم الحقل الفعلي: + +```js +{سعر الوحدة} * {الكمية} +``` + +### العوامل + +| العامل | الاستخدام | +| --- | --- | +| `+` | يحسب مجموع الأرقام أو يضم السلاسل النصية | +| `-` | يحسب الفرق بين الأرقام | +| `*` | يحسب حاصل ضرب الأرقام | +| `/` | يحسب حاصل قسمة الأرقام | +| `%` | يحسب باقي القسمة | + +## الدوال والتعبيرات + +### الدوال الشائعة + +تنفذ الدوال عمليات محددة. على سبيل المثال، تحسب `SUM` المجموع، وتستخرج `LEFT` الأحرف من بداية النص، وتستخرج `TEXTBEFORE` النص السابق لفاصل، وتقسّم `TEXTSPLIT` النص حسب فاصل. + +راجع [ورقة الصيغ المرجعية](/ar/basic/field/formula/cheat-sheet) لمزيد من الدوال. + +### معالجة النصوص + +| العملية | أمثلة للدوال | الوصف | +| --- | --- | --- | +| ضم النصوص | `&`، `CONCATENATE` | يضم قيمتين نصيتين أو أكثر | +| استخراج النص | `LEFT`، `RIGHT`، `MID`، `TEXTBEFORE` | يستخرج جزءًا من سلسلة نصية | +| تقسيم النص | `TEXTSPLIT` | يقسّم النص إلى قيم متعددة حسب فاصل | + +### الشروط المنطقية + +استخدم الدالة `IF` لإرجاع قيم مختلفة بناءً على شرط: + +```js +IF(condition, value_if_true, value_if_false) +``` + +عند التحقق مما إذا كان حقل فارغًا، قارنه مع `BLANK()`. على سبيل المثال، تُرجع `IF({الوزن}=BLANK(), 1, 2)` القيمة `1` عندما يكون حقل رقمي فارغًا، وتُرجع `2` خلاف ذلك. + +### التعبيرات المعقدة + +يمكن أن تتضمن الصيغة المعقدة عدة دوال ومراجع حقول وعوامل. استخدم الأقواس للتحكم في ترتيب العمليات الحسابية: + +```js +({سعر الوحدة} * {الكمية}) * (1 - {الخصم}) +``` + +## عرض النتائج وصيانتها + +### التنسيق والعرض التفاعلي + +يمكن لنتائج الصيغ أيضًا استخدام إعدادات [التنسيق](/ar/basic/field/common/formatter) و[العرض التفاعلي](/ar/basic/field/common/show-as)، مثل النسبة المئوية أو شريط التقدم أو أنماط الأيقونات. وتعتمد الخيارات المتاحة على نوع نتيجة الصيغة. + +### تصحيح الأخطاء والتحسين + +- **التحقق من أنواع البيانات**: تأكد من أن العمليات والدوال تستخدم أنواع البيانات الصحيحة. +- **التحقق من مراجع الحقول**: تأكد من كتابة أسماء الحقول بصورة صحيحة. +- **الاختبار خطوة بخطوة**: قسّم الصيغ المعقدة إلى أجزاء أصغر واختبرها بصورة منفصلة. +- **تجنب العمليات الحسابية المتكررة**: إذا كان الحساب نفسه يُستخدم في عدة مواضع، ففكر في تخزين النتيجة في حقل منفصل. diff --git a/ar/basic/field/formula/cheat-sheet.mdx b/ar/basic/field/formula/cheat-sheet.mdx new file mode 100644 index 00000000..f76bf26f --- /dev/null +++ b/ar/basic/field/formula/cheat-sheet.mdx @@ -0,0 +1,113 @@ +--- +title: "ورقة الصيغ المرجعية" +description: "اعثر بسرعة على دوال الصيغ ومعاملاتها وأنواع مخرجاتها وأمثلتها الأساسية." +mode: "wide" +--- + +تساعدك ورقة الصيغ المرجعية في العثور على الدوال المتاحة ومعاملاتها وأنواع مخرجاتها وأمثلتها. عند كتابة صيغة، استخدم فئة الدالة للعثور على الدالة التي تحتاج إليها. + +## الدوال الرقمية + +تتعامل الدوال الرقمية مع العمليات الحسابية والحسابات الإحصائية وتنسيق الأرقام. + +| اسم الدالة | الوصف | المدخلات | المخرجات | مثال | +| ------------ | ----------- | ----- | ------ | ------- | +| SUM | تجمع الأرقام معًا. تكافئ number1 + number2 + ... | `number1, [number2, ...]` | رقم | `SUM(100, 200, 300) => 600` | +| AVERAGE | تعيد متوسط الأرقام. | `number1, [number2, ...]` | رقم | `AVERAGE(100, 200, 300) => 200` | +| MAX | تعيد أكبر قيمة من بين الأرقام المعطاة. | `number1, [number2, ...]` | رقم | `MAX(100, 200, 300) => 300` | +| MIN | تعيد أصغر قيمة من بين الأرقام المعطاة. | `number1, [number2, ...]` | رقم | `MIN(100, 200, 300) => 100` | +| ROUND | تقرّب قيمة إلى عدد المنازل العشرية المحدد بواسطة "precision". | `value, [precision]` | رقم | `ROUND(1.99, 0) => 2` `ROUND(16.8, -1) => 20` | +| ROUNDUP | تقرّب دائمًا إلى الأعلى، بعيدًا عن الصفر. | `value, [precision]` | رقم | `ROUNDUP(1.1, 0) => 2` `ROUNDUP(-1.1, 0) => -2` | +| ROUNDDOWN | تقرّب دائمًا إلى الأسفل، باتجاه الصفر. | `value, [precision]` | رقم | `ROUNDDOWN(1.9, 0) => 1` `ROUNDDOWN(-1.9, 0) => -1` | +| CEILING | تعيد أقرب مضاعف صحيح أكبر من القيمة أو يساويها. | `value, [significance]` | رقم | `CEILING(2.49) => 3` `CEILING(2.49, 1) => 2.5` | +| FLOOR | تعيد أقرب مضاعف صحيح أصغر من القيمة أو يساويها. | `value, [significance]` | رقم | `FLOOR(2.49) => 2` `FLOOR(2.49, 1) => 2.4` | +| EVEN | تعيد أصغر عدد زوجي أكبر من القيمة المحددة أو يساويها. | `value` | رقم | `EVEN(0.1) => 2` `EVEN(-0.1) => -2` | +| ODD | تقرّب القيم الموجبة إلى الأعلى لأقرب عدد فردي، والقيم السالبة إلى الأسفل لأقرب عدد فردي. | `value` | رقم | `ODD(0.1) => 1` `ODD(-0.1) => -1` | +| INT | تعيد الجزء الصحيح من رقم. | `value` | رقم | `INT(1.9) => 1` `INT(-1.9) => -2` | +| ABS | تعيد القيمة المطلقة. | `value` | رقم | `ABS(-1) => 1` | +| SQRT | تعيد الجذر التربيعي لعدد غير سالب. | `value` | رقم | `SQRT(4) => 2` | +| POWER | تحسب الأساس المحدد مرفوعًا إلى القوة المحددة. | `base, exponent` | رقم | `POWER(2, 2) => 4` | +| EXP | تحسب عدد أويلر (e) مرفوعًا إلى القوة المحددة. | `value` | رقم | `EXP(0) => 1` `EXP(1) => 2.718` | +| LOG | تحسب لوغاريتم قيمة بالأساس المقدّم. وإذا لم يُحدد، فالقيمة الافتراضية للأساس هي 10. | `value, [base=10]` | رقم | `LOG(100) => 2` `LOG(1024, 2) => 10` | +| MOD | تعيد الباقي بعد قسمة المعامل الأول على الثاني. | `value, divisor` | رقم | `MOD(9, 2) => 1` `MOD(9, 3) => 0` | +| VALUE | تحوّل سلسلة نصية إلى رقم. | `text` | رقم | `VALUE("$1,000,000") => 1000000` | + +## الدوال النصية + +تتعامل الدوال النصية مع ربط السلاسل النصية والبحث فيها واستبدالها واستخراجها وتقسيمها. + +| اسم الدالة | الوصف | المدخلات | المخرجات | مثال | +| ------------ | ----------- | ----- | ------ | ------- | +| CONCATENATE | تضم عدة معاملات من أنواع قيم مختلفة في قيمة نصية واحدة. | `text1, [text2, ...]` | نص | `CONCATENATE("مرحبًا ", "Teable") => مرحبًا Teable` | +| FIND | تعثر على موضع سلسلة نصية فرعية في نص محدد. تعيد 0 إذا لم يُعثر على السلسلة الفرعية. | `stringToFind, whereToSearch, [startFromPosition]` | رقم | `FIND("Teable", "مرحبا Teable") => 7` | +| SEARCH | تعثر على موضع سلسلة نصية فرعية في نص محدد. تعيد قيمة فارغة إذا لم يُعثر على السلسلة الفرعية. تشبه FIND، لكنها تعيد قيمة فارغة بدلًا من 0. | `stringToFind, whereToSearch, [startFromPosition]` | نص أو فارغ | `SEARCH("Teable", "مرحبا Teable") => 7` | +| MID | تستخرج عددًا محددًا من المحارف من سلسلة نصية بدءًا من موضع محدد. | `text, whereToStart, count` | نص | `MID("مرحبا Teable", 6, 6) => "Teable"` | +| LEFT | تستخرج عددًا محددًا من المحارف من بداية سلسلة نصية. | `text, count` | نص | `LEFT("2023-09-06", 4) => "2023"` | +| RIGHT | تستخرج عددًا محددًا من المحارف من نهاية سلسلة نصية. | `text, count` | نص | `RIGHT("2023-09-06", 5) => "09-06"` | +| REPLACE | تستبدل عددًا محددًا من المحارف، بدءًا من موضع محدد، بنص بديل. | `text, whereToStart, count, replacement` | نص | `REPLACE("مرحبا جدول", 7, 4, "Teable") => "مرحبا Teable"` | +| REGEXP_REPLACE | تستبدل جميع السلاسل النصية الفرعية المطابقة لتعبير نمطي بنص بديل. | `text, regular_expression, replacement` | نص | `REGEXP_REPLACE("مرحبا جدول", "م.* ", "") => "Teable"` | +| SUBSTITUTE | تستبدل النص القديم بنص جديد. ويمكن تحديد فهرس لاستبدال تكرار بعينه من النص القديم. وإذا لم يُحدد فهرس، فتستبدل جميع التكرارات. | `text, oldText, newText, [index]` | نص | `SUBSTITUTE("مرحبا جدول", "جدول", "Teable") => "مرحبا Teable"` | +| TEXTBEFORE | تعيد النص السابق للفاصل المحدد. | `text, delimiter` | نص | `TEXTBEFORE("20, 04, 79", ",") => "20"` | +| TEXTSPLIT | تقسّم النص حسب الفاصل المحدد وتعيد عدة قيم نصية. | `text, delimiter` | مصفوفة | `TEXTSPLIT("20, 04, 79", ",") => ["20", " 04", " 79"]` | +| LOWER | تحوّل السلسلة النصية إلى أحرف صغيرة. | `text` | نص | `LOWER("Teable") => "teable"` | +| UPPER | تحوّل السلسلة النصية إلى أحرف كبيرة. | `text` | نص | `UPPER("Teable") => "TEABLE"` | +| REPT | تكرر النص عددًا محددًا من المرات. | `text, number` | نص | `REPT("مرحبًا!", 3) => "مرحبًا!مرحبًا!مرحبًا!"` | +| TRIM | تزيل محارف المسافات البيضاء من بداية سلسلة نصية ونهايتها. | `text` | نص | `TRIM(" مرحبًا ") => "مرحبًا"` | +| LEN | تحسب عدد المحارف في سلسلة نصية. | `text` | رقم | `LEN("مرحبا") => 5` | +| T | تعيد المعامل إذا كان نصًا، وإلا فتعيد قيمة فارغة. | `value` | نص أو فارغ | `T("مرحبًا") => "مرحبًا"` `T(100) => null` | +| ENCODE_URL_COMPONENT | تستبدل بعض المحارف بمكافئاتها المرمّزة لإنشاء عناوين URL أو URI. لا ترمّز: - _ . ~ | `value` | نص | `ENCODE_URL_COMPONENT("مرحبا Teable") => "%D9%85%D8%B1%D8%AD%D8%A8%D8%A7%20Teable"` | + +## الدوال المنطقية + +تتعامل الدوال المنطقية مع الشروط والعمليات المنطقية، مثل `IF` و`AND` و`OR`. + +| اسم الدالة | الوصف | المدخلات | المخرجات | مثال | +| ------------ | ----------- | ----- | ------ | ------- | +| IF | تعيد value1 إذا كان المعامل المنطقي true، وإلا فتعيد value2. ويمكن استخدامها لعبارات IF المتداخلة والتحقق مما إذا كانت الخلايا فارغة. | `logical, value1, value2` | سلسلة نصية \| رقم \| قيمة منطقية \| تاريخ ووقت | `IF(2 > 1, "أ", "ب") => "أ"` `IF(2 > 1, TRUE, FALSE) => TRUE` | +| SWITCH | تطابق تعبير إدخال مع سلسلة من القيم وتعيد النتيجة المقابلة. ويمكنها إعادة قيمة افتراضية إذا لم يُعثر على تطابق. وغالبًا ما يمكن أن تحل محل صيغ IF() المتداخلة. | `expression, [pattern, result]..., [default]` | سلسلة نصية \| رقم \| قيمة منطقية \| تاريخ ووقت | `SWITCH("ب", "أ", "القيمة أ", "ب", "القيمة ب", "القيمة الافتراضية") => "القيمة ب"` | +| AND | تعيد true إذا كانت جميع المعاملات true؛ وإلا فتعيد false. | `logical1, [logical2, ...]` | قيمة منطقية | `AND(1 < 2, 5 > 3) => true` `AND(1 < 2, 5 < 3) => false` | +| OR | تعيد true إذا كان أي معامل يساوي true. | `logical1, [logical2, ...]` | قيمة منطقية | `OR(1 < 2, 5 < 3) => true` `OR(1 > 2, 5 < 3) => false` | +| XOR | تعيد true إذا كان عدد المعاملات التي تساوي true فرديًا. | `logical1, [logical2, ...]` | قيمة منطقية | `XOR(1 < 2, 5 < 3, 8 < 10) => false` `XOR(1 > 2, 5 < 3, 8 < 10) => true` | +| NOT | تعكس القيمة المنطقية لمعاملها. | `boolean` | قيمة منطقية | `NOT(1 < 2) => false` `NOT(1 > 2) => true` | +| BLANK | تعيد قيمة null. ويمكن استخدامها أيضًا لاختبار ما إذا كان أحد الحقول فارغًا. | `-` | null | `BLANK() => null` `IF({الوزن}=BLANK(), 1, 2) => 1` | +| ERROR | تعيد قيمة خطأ. | `message` | خطأ | `IF(2 > 3, "نعم", ERROR("الحساب")) => "#ERROR: الحساب"` | +| IS_ERROR | تعيد true إذا تسبب التعبير في خطأ. | `expr` | قيمة منطقية | `IS_ERROR(ERROR()) => true` | + +## دوال التاريخ + +تتعامل دوال التاريخ مع قيم التاريخ والوقت وتحولها، مثل الحصول على التاريخ الحالي، وحساب فروق التواريخ، ومقارنة التواريخ. + +| اسم الدالة | الوصف | المدخلات | المخرجات | مثال | +| ------------ | ----------- | ----- | ------ | ------- | +| TODAY | تعيد التاريخ الحالي. | `-` | تاريخ ووقت | `TODAY() => "2023-09-08 00:00"` | +| NOW | تعيد التاريخ والوقت الحاليين. | `-` | تاريخ ووقت | `NOW() => "2023-09-08 16:50"` | +| YEAR | تعيد السنة المكوّنة من أربعة أرقام لأحد التواريخ. | `date` | رقم | `YEAR("2023-09-08") => 2023` | +| MONTH | تعيد شهر أحد التواريخ كرقم بين 1 (يناير) و12 (ديسمبر). | `date` | رقم | `MONTH("2023-09-08") => 9` | +| WEEKNUM | تعيد رقم الأسبوع من السنة. | `date` | رقم | `WEEKNUM("2023-09-08") => 36` | +| WEEKDAY | تعيد يوم الأسبوع كعدد صحيح بين 0 و6. ويمكنك اختياريًا تقديم معامل ثانٍ ("Sunday" أو "Monday") لبدء الأسبوع في ذلك اليوم. | `date, [startDayOfWeek]` | رقم | `WEEKDAY("2023-09-08", "Monday") => 5` | +| DAY | تعيد يوم الشهر كرقم بين 1 و31. | `date` | رقم | `DAY("2023-09-08") => 8` | +| HOUR | تعيد ساعة أحد التواريخ كرقم بين 0 (12:00 صباحًا) و23 (11:00 مساءً). | `date` | رقم | `HOUR("2023-09-08 16:50") => 16` | +| MINUTE | تعيد دقيقة أحد التواريخ كعدد صحيح بين 0 و59. | `date` | رقم | `MINUTE("2023-09-08 16:50") => 50` | +| SECOND | تعيد ثواني أحد التواريخ كعدد صحيح بين 0 و59. | `date` | رقم | `SECOND("2023-09-08 16:50:30") => 30` | +| FROMNOW | تحسب عدد الأيام بين التاريخ الحالي وتاريخ آخر. | `date, unit` | رقم | `FROMNOW({التاريخ}, "day") => 25` | +| TONOW | تحسب عدد الأيام بين التاريخ الحالي وتاريخ آخر. | `date, unit` | رقم | `TONOW({التاريخ}, "day") => 25` | +| DATETIME_DIFF | تعيد الفرق بين تاريخين ووقتين بالوحدات المحددة. الوحدة الافتراضية هي الثواني. (راجع قائمة محددات الوحدات.) | `date1, date2, [unit]` | رقم | `DATETIME_DIFF("2022-08-01", "2023-09-08", "day") => 403` | +| WORKDAY | تعيد تاريخ يوم العمل المزاح عن تاريخ البدء، مع استبعاد العطلات المحددة | `date, count, [holidayStr]` | تاريخ ووقت | `WORKDAY("2023-09-08", 200) => "2024-06-14 00:00:00"` | +| WORKDAY_DIFF | تعيد عدد أيام العمل بين date1 وdate2. تستبعد أيام العمل عطلات نهاية الأسبوع وقائمة اختيارية من العطلات منسقة كسلسلة نصية لتواريخ بتنسيق ISO مفصولة بفواصل. | `date1, date2, [holidayStr]` | رقم | `WORKDAY_DIFF("2023-06-18", "2023-10-01") => 75` | +| IS_SAME | تقارن تاريخين وفق وحدة وتحدد ما إذا كانا متساويين. تعيد true إذا كانا كذلك، وإلا فتعيد false. | `date1, date2, [unit]` | قيمة منطقية | `IS_SAME("2023-09-08", "2023-09-10") => false` | +| IS_AFTER | تحدد ما إذا كان date1 لاحقًا لـ date2. تعيد true إذا كان كذلك، وإلا فتعيد false. | `date1, date2, [unit]` | قيمة منطقية | `IS_AFTER("2023-09-10", "2023-09-08") => true` `IS_AFTER("2023-09-10", "2023-09-08", "month") => false` | + +## دوال المصفوفات والدوال الأخرى + +تتعامل دوال المصفوفات والدوال الأخرى مع مصفوفات التجميع، وإزالة التكرار، والربط، وتنظيف القيم الفارغة، ومعرّفات السجلات. + +| اسم الدالة | الوصف | المدخلات | المخرجات | مثال | +| ------------ | ----------- | ----- | ------ | ------- | +| COUNTALL | تعيد عدد جميع العناصر، بما فيها النصوص والقيم الفارغة. | `value1, [value2, ...]` | رقم | `COUNTALL(100, 200, "", "Teable", TRUE()) => 5` | +| COUNTA | تعيد عدد القيم غير الفارغة. تحسب هذه الدالة القيم الرقمية والنصية معًا. | `value1, [value2, ...]` | رقم | `COUNTA(100, 200, 300, "", "Teable", TRUE) => 4` | +| COUNT | تعيد عدد العناصر الرقمية. | `value1, [value2, ...]` | رقم | `COUNT(100, 200, 300, "", "Teable", TRUE) => 3` | +| ARRAY_JOIN | تضم مصفوفة من عناصر التجميع في سلسلة نصية باستخدام فاصل. | `array, [separator]` | سلسلة نصية | `ARRAY_JOIN(["توم", "جيري", "مايك"], "; ") => "توم; جيري; مايك"` | +| ARRAY_UNIQUE | تعيد العناصر الفريدة فقط في مصفوفة. | `array` | مصفوفة | `ARRAY_UNIQUE([1, 2, 3, 2, 1]) => [1, 2, 3]` | +| ARRAY_FLATTEN | تسطّح مصفوفة بإزالة أي تداخل للمصفوفات. وتصبح جميع العناصر عناصر في مصفوفة واحدة. | `array` | مصفوفة | `ARRAY_FLATTEN([1, 2, " ", 3, true], ["ABC"]) => [1, 2, 3, " ", true, "ABC"]` | +| ARRAY_COMPACT | تزيل السلاسل النصية الفارغة وقيم null من مصفوفة. وتحتفظ بـ "false" والسلاسل النصية التي تحتوي على محرف واحد أو أكثر من المسافات البيضاء. | `array` | مصفوفة | `ARRAY_COMPACT([1, 2, 3, "", null, "ABC"]) => [1, 2, 3, "ABC"]` | +| RECORD_ID | تعيد معرّف السجل الحالي. | `-` | سلسلة نصية | `RECORD_ID() => "recxxxxxx"` | diff --git a/ar/basic/field/formula/grammar.mdx b/ar/basic/field/formula/grammar.mdx new file mode 100644 index 00000000..cce14337 --- /dev/null +++ b/ar/basic/field/formula/grammar.mdx @@ -0,0 +1,39 @@ +--- +title: "قواعد كتابة الصيغ" +--- + +تتكوّن قواعد كتابة الصيغ من القيم الأساسية، ومراجع الحقول، والعوامل، والدوال، والأقواس. وبعد فهم هذه العناصر، يمكنك كتابة صيغ لإجراء العمليات الحسابية، وتحديد الشروط، ومعالجة النصوص. + +## العناصر الأساسية + +| العنصر | الصياغة | الوصف | +| --- | --- | --- | +| سلسلة نصية | `'مرحبًا'` أو `"العالم"` | نص محاط بعلامات اقتباس مفردة أو مزدوجة | +| عدد صحيح | `123`، `-456` | عدد من دون فاصلة عشرية | +| عدد عشري | `12.34`، `-45.67` | عدد يحتوي على فاصلة عشرية | +| قيمة منطقية | `TRUE`، `FALSE` | قيمة صواب أو خطأ | +| مرجع حقل | `{العمر}` | اسم حقل محاط بـ `{}`. يجب أن يطابق الاسم اسم الحقل الفعلي | + +## العوامل + +تُستخدم العوامل في الصيغ لربط القيم أو مقارنتها: + +| النوع | العوامل | +| --- | --- | +| حسابية | `+`، `-`، `*`، `/`، `%` | +| مقارنة | `>`، `<`، `>=`، `<=`، `=`، `!=` | +| منطقية | `&&`، `||` | + +## استدعاءات الدوال + +يمكنك استدعاء الدوال داخل الصيغ. يتكوّن استدعاء الدالة من اسم الدالة، وزوج من الأقواس، ومعاملات داخل الأقواس. وتُفصل المعاملات بفواصل. + +على سبيل المثال، تستدعي `sum(1, 2, 3)` الدالة `sum` بثلاثة معاملات: 1 و2 و3. + +## بُنى أخرى + +| البنية | الوصف | +| --- | --- | +| الأقواس | تغيّر أولوية العمليات، مثل `(1 + 2) * 3` | +| التعليقات | تضيف سياقًا. تستخدم تعليقات الكتلة `/* */`، وتستخدم تعليقات السطر `//` | +| المسافات البيضاء وفواصل الأسطر | تُتجاهل عادةً، لكنها قد تجعل الصيغ أسهل قراءةً | diff --git a/ar/basic/field/last-modified-by.mdx b/ar/basic/field/last-modified-by.mdx new file mode 100644 index 00000000..d6ed2da5 --- /dev/null +++ b/ar/basic/field/last-modified-by.mdx @@ -0,0 +1,41 @@ +--- +title: "آخر تعديل بواسطة" +description: "سجّل تلقائيًا المستخدم الذي أجرى آخر تعديل على سجل." +--- + +يسجّل حقل **آخر تعديل بواسطة** تلقائيًا المستخدم الذي أجرى آخر تعديل على سجل. ويساعد على تتبّع تغييرات التعاون. وعند استخدامه مع وقت آخر تعديل، فإنه يوضّح من أجرى آخر تحديث ومتى أجراه. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| تتبّع التعاون | معرفة العضو الذي أجرى آخر تحديث على سجل | +| المساءلة | العثور على أحدث محرّر عندما يبدو سجل غير صحيح | +| المراجعة الشخصية | تصفية السجلات التي حدّثتها مؤخرًا | +| الاستخدام مع وقت آخر تعديل | الاطلاع على آخر محرّر ووقت آخر تعديل معًا | + +## الإنشاء والتهيئة + + + + انقر على أيقونة `+` في الجانب الأيمن من رأس الجدول، ثم اختر **آخر تعديل بواسطة** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "آخر محرّر" أو "تم التحديث بواسطة". + + + بعد إنشاء الحقل، تتحدّث قيمته إلى المستخدم الحالي عند تعديل السجل. + + + +## الاستخدامات الشائعة + +- **تتبّع مسؤولية التعاون**: إذا تغيّرت حالة مهمة إلى "ملغاة"، فتحقّق من حقل آخر تعديل بواسطة لمعرفة من أجرى التغيير الأخير. +- **مراجعة العمل الأخير**: عيّن عامل تصفية مثل `آخر تعديل بواسطة` `هو` `المستخدم الحالي` لعرض السجلات التي عالجتها مؤخرًا. +- **الاستخدام مع وقت آخر تعديل**: اعرض **آخر تعديل بواسطة** و**وقت آخر تعديل** معًا للتأكد من وقت إجراء أحدث تحديث ومن أجراه. + +## ملاحظات + +- يتحدّث حقل آخر تعديل بواسطة تلقائيًا عند تغيّر محتوى السجل. +- هذا الحقل للقراءة فقط. ولا يمكن للمستخدمين اختيار القيمة أو تعديلها يدويًا. +- إذا كنت تحتاج فقط إلى تسجيل المنشئ الأصلي، فاستخدم **أنشأه**. diff --git a/ar/basic/field/last-modified-time.mdx b/ar/basic/field/last-modified-time.mdx new file mode 100644 index 00000000..6e6c57bc --- /dev/null +++ b/ar/basic/field/last-modified-time.mdx @@ -0,0 +1,59 @@ +--- +title: "وقت آخر تعديل" +description: "سجّل تلقائيًا وقت آخر تعديل على سجل." +--- + +يسجّل حقل **وقت آخر تعديل** تلقائيًا وقت آخر تعديل على سجل. ويمكنه تتبّع جميع الحقول أو الحقول المحددة فقط، ما يجعله مفيدًا لمتابعة التحديثات الأخيرة، وتنظيف البيانات غير النشطة، ومراجعة التعاون. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| التحديثات الأخيرة | الفرز حسب وقت آخر تعديل للاطلاع على السجلات التي تغيّرت مؤخرًا | +| تتبّع حقول محددة | تحديث الوقت عند تغيّر الحقول الرئيسية فقط، ما يقلّل الضوضاء الناتجة عن تعديلات غير مرتبطة | +| تنظيف البيانات غير النشطة | تصفية السجلات التي لم تُحدّث منذ مدة طويلة | +| مراجعة التعاون | الاستخدام مع آخر تعديل بواسطة للاطلاع على وقت أحدث تعديل ومحرّره | + +## الإنشاء والتهيئة + + + + انقر على أيقونة `+` في الجانب الأيمن من رأس الجدول، ثم اختر **وقت آخر تعديل** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "وقت آخر تحديث" أو "آخر صيانة". + + + اختر ما إذا كنت تريد تتبّع جميع الحقول أم الحقول المحددة فقط. + + + اضبط تنسيق التاريخ، وتنسيق الوقت، والمنطقة الزمنية حسب الحاجة. + + + +## خيارات التتبّع + +| الخيار | الوصف | +| --- | --- | +| تتبّع جميع الحقول | يحدّث وقت آخر تعديل عند تغيّر أي حقل في السجل | +| تتبّع الحقول المحددة | يحدّث وقت آخر تعديل فقط عند تغيّر الحقول المحددة | + +## تنسيق العرض + +| الإعداد | الوصف | +| --- | --- | +| تنسيق التاريخ | اختر طريقة عرض التواريخ، مثل `2024-01-30` أو `30 يناير 2024` | +| تنسيق الوقت | يتحكم في عرض وقت محدد وفي استخدام نظام 12 ساعة أو 24 ساعة | +| المنطقة الزمنية | يستخدم منطقة زمنية ثابتة أو يتبع المنطقة الزمنية لنظام العارض | + +## الاستخدامات الشائعة + +- **العثور على المهام المحدّثة مؤخرًا**: افرز حسب وقت آخر تعديل ترتيبًا تنازليًا لتظهر السجلات المتغيّرة في الأعلى. +- **تتبّع تغييرات المحتوى الرئيسية**: اختر **تتبّع الحقول المحددة**، ثم حدّد الحقول الرئيسية مثل "العنوان" و"الحالة". +- **تنظيف البيانات غير النشطة**: عيّن عامل تصفية مثل `وقت آخر تعديل` `قبل` `90 يومًا` للعثور على السجلات التي لم تخضع للصيانة. + +## ملاحظات + +- حقل وقت آخر تعديل للقراءة فقط ولا يمكن تعديله يدويًا. +- إذا كان تتبّع الحقول المحددة مفعّلًا، فلن تؤدي التغييرات في الحقول غير المحددة إلى تحديث الوقت. +- إذا كنت تحتاج إلى تسجيل وقت إنشاء سجل لأول مرة، فاستخدم **وقت الإنشاء**. diff --git a/ar/basic/field/link.mdx b/ar/basic/field/link.mdx new file mode 100644 index 00000000..e3ea5f52 --- /dev/null +++ b/ar/basic/field/link.mdx @@ -0,0 +1,63 @@ +--- +title: "الارتباط" +description: "أنشئ علاقات بين الجداول وحدد سجلات من جدول آخر في السجل الحالي." +--- + +{/* mintlify-resync: 2026-05-26 */} +يربط حقل الارتباط بين جدولين. باستخدام حقل الارتباط، يمكنك تحديد سجلات من جدول آخر داخل الجدول الحالي وفتح السجلات المرتبطة عند الحاجة. كما يلزم وجود حقول الارتباط قبل أن تتمكن من استخدام حقلي **البحث** و**التجميع**. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| العملاء والطلبات | ربط العملاء في جدول الطلبات، وعرض الطلبات ذات الصلة من جدول العملاء | +| المشاريع والمهام | ربط مهمة بمشروعها، وعرض جميع المهام التابعة لمشروع | +| الطلاب والمقررات | تتبّع التسجيل في المقررات، أو أعضاء المشاريع، أو غير ذلك من علاقات متعدد إلى متعدد | +| بنود الطلب والسجلات الأصلية | ربط بنود الطلب بطلب، ثم البحث عن الأسعار أو تجميع الإجماليات | + +## الإنشاء والتهيئة + + + + في الجدول الحالي، انقر على إضافة حقل واختر **الارتباط**. + + + في مربع حوار التهيئة، اختر الجدول المراد الربط به، مثل ربط جدول الطلبات بجدول العملاء. + + + اختر ارتباطًا أحادي الاتجاه أو ثنائي الاتجاه حسب الحاجة. + + + استخدم **السماح بالتحديد المتعدد** و**السماح بالقيم المكررة** لتهيئة علاقات واحد إلى واحد، أو واحد إلى متعدد، أو متعدد إلى واحد، أو متعدد إلى متعدد. + + + +## الروابط أحادية الاتجاه وثنائية الاتجاه + +| الوضع | الوصف | الأنسب لـ | +| --- | --- | --- | +| ارتباط ثنائي الاتجاه | مفعّل افتراضيًا. عند إنشاء حقل ارتباط، ينشئ Teable حقل ارتباط مقابلًا في الجدول المستهدف، ويظل الجانبان متزامنين | العلاقات التي يلزم عرضها من كلا الجدولين، مثل الطلبات والعملاء أو المشاريع والمهام | +| ارتباط أحادي الاتجاه | عند إيقاف خيار ثنائي الاتجاه، يعرض الجدول الحالي وحده السجلات المرتبطة. ولا يحصل الجدول المستهدف على حقل عكسي | الحالات التي تحتاج فيها فقط إلى الإشارة إلى جدول آخر ولا تريد تغيير بنية الجدول المستهدف | + +## أنواع العلاقات + +استخدم **السماح بالتحديد المتعدد** و**السماح بالقيم المكررة** معًا لتحديد أربعة أنواع شائعة من العلاقات: + +| العلاقة | مثال عملي | التهيئة | +| :--- | :--- | :--- | +| **واحد إلى واحد (1:1)** | **الموظف - الملف الشخصي**
لكل موظف ملف شخصي واحد، وكل ملف شخصي يخص موظفًا واحدًا | ☐ السماح بالتحديد المتعدد
☐ السماح بالقيم المكررة
*(كلا الخيارين متوقف)* | +| **واحد إلى متعدد (1:N)** | **القسم - الموظف**
يضم القسم عدة موظفين، لكن كل موظف يتبع قسمًا واحدًا | ☑ السماح بالتحديد المتعدد
☐ السماح بالقيم المكررة
*(السماح بالتحديد المتعدد فقط)* | +| **متعدد إلى واحد (N:1)** | **المهمة - المشروع**
تنتمي عدة مهام إلى مشروع واحد، لكن كل مهمة تنتمي إلى مشروع واحد فقط | ☐ السماح بالتحديد المتعدد
☑ السماح بالقيم المكررة
*(السماح بالقيم المكررة فقط)* | +| **متعدد إلى متعدد (N:N)** | **الطالب - المقرر**
يمكن للطالب دراسة عدة مقررات، ويمكن أن يضم المقرر عدة طلاب | ☑ السماح بالتحديد المتعدد
☑ السماح بالقيم المكررة
*(كلا الخيارين مفعّل)* | + +## الاستخدامات الشائعة + +- **إدارة العملاء في CRM**: في جدول `الشركات`، أنشئ حقل ارتباط بجدول `جهات الاتصال` كي تتمكن الشركة الواحدة من الارتباط بعدة جهات اتصال. +- **إسناد مهام المشروع**: في جدول `المهام`، أنشئ حقل ارتباط بجدول `المشاريع` كي تنتمي كل مهمة إلى مشروع واحد، بينما يستطيع جدول المشاريع عرض المهام ذات الصلة. +- **بنود الطلب**: في جدول `الطلبات`، اربطه بجدول `المنتجات`، ثم استخدم حقول البحث لعرض الأسعار وحقول التجميع لحساب إجماليات الطلبات. + +## ملاحظات + +- **قيود علاقة واحد إلى متعدد**: في علاقة واحد إلى متعدد صارمة، عندما يكون التحديد المتعدد متوقفًا في جانب الجدول B، لا يمكن لسجلات أخرى من الجدول A تحديد سجل من الجدول B مرتبط بسجل واحد من الجدول A. يناسب ذلك البيانات التي لا ينبغي إعادة استخدامها، مثل أرقام الهوية أو الملفات الشخصية للموظفين. + +لا يمكن لحقول الارتباط سوى توصيل الجداول الموجودة في مساحة واحدة. كما تحتاج حقول البحث، والتجميع، والبحث الشرطي، والتجميع الشرطي إلى بيانات مصدر موجودة في المساحة نفسها. diff --git a/ar/basic/field/long-text.mdx b/ar/basic/field/long-text.mdx new file mode 100644 index 00000000..f25e3d82 --- /dev/null +++ b/ar/basic/field/long-text.mdx @@ -0,0 +1,50 @@ +--- +title: "نص طويل" +description: "خزّن نصوصًا طويلة تتضمن فواصل أسطر، مع دعم عرض النص العادي وMarkdown." +--- + +حقل **نص طويل** مخصص للمحتوى الأطول الذي يحتاج إلى فواصل أسطر، مثل الملاحظات، والتعليمات، والسجلات، وملاحظات الاجتماعات، والأوصاف التفصيلية. بخلاف حقل نص أحادي السطر، يحتفظ حقل نص طويل ببنية الفقرات ويمكن عرضه بصيغة Markdown. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| الأوصاف التفصيلية | تفاصيل المهام، وأوصاف المنتجات، وخطوات إعادة إنتاج الأخطاء | +| ملاحظات العمليات | متابعات العملاء، والملخصات اليومية، وملاحظات الاجتماعات | +| السياق الداعم | الملاحظات أو الشروحات التي لا ينبغي تقسيمها إلى حقول منفصلة | +| مسودات المحتوى | النصوص، والإعلانات، ومقتطفات قاعدة المعرفة | + +## الإنشاء والتهيئة + + + + في جدول، انقر على `+`، ثم اختر **نص طويل**. + + + أدخل اسمًا للحقل، مثل "الوصف" أو "الملاحظات" أو "التفاصيل". + + + اضبط **القيمة الافتراضية**، و**وضع العرض**، و**وصف الحقل** حسب الحاجة. + + + بعد الحفظ، يمكن للمستخدمين إدخال محتوى متعدد الأسطر في الخلايا. + + + +## وضع العرض + +| وضع العرض | مناسب لـ | الوصف | +| --- | --- | --- | +| نص عادي | الملاحظات، والسجلات، والتعليمات | يحتفظ بفواصل الأسطر ويلائم التحرير والقراءة المباشرين | +| Markdown | مقتطفات المستندات، وقوائم التحقق، والروابط | يعرض المحتوى بتنسيق Markdown | + +## الاستخدامات الشائعة + +- **فواصل الأسطر اليدوية**: اضغط على `Shift + Enter` أثناء التحرير لإدراج فاصل أسطر. +- **الالتفاف التلقائي**: تلتف محتويات الخلايا وفقًا لعرض العمود، ما يسهّل قراءة النص الطويل. +- **النص الافتراضي**: إذا كان كل سجل جديد يحتاج إلى الملاحظة نفسها، فعيّن قيمة افتراضية. + +## ملاحظات + +- لا يدعم حقل نص طويل العرض التفاعلي لعناوين URL أو البريد الإلكتروني أو الهاتف. فهو يدعم النص العادي وMarkdown فقط. +- إذا كان المحتوى لا يحتاج إلى فواصل أسطر وينبغي أن يستخدم عرض URL أو البريد الإلكتروني أو الهاتف، فاستخدم حقل **نص أحادي السطر**. diff --git a/ar/basic/field/lookup.mdx b/ar/basic/field/lookup.mdx new file mode 100644 index 00000000..200f0685 --- /dev/null +++ b/ar/basic/field/lookup.mdx @@ -0,0 +1,51 @@ +--- +title: "البحث" +description: "ارجع إلى قيم الحقول من جدول مرتبط عبر علاقة ارتباط موجودة، وحافظ على مزامنة البيانات." +--- + +تعتمد حقول البحث على حقول **الارتباط**. يشير حقل البحث إلى حقل محدد من جدول مرتبط، بحيث يستطيع الجدول الحالي عرض بيانات من جدول آخر من دون إدخالها مرة أخرى. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| بنود الطلب | بعد ربط منتج، عرض سعره أو رمز SKU أو فئته | +| معالجة التذاكر | بعد ربط عميل، عرض رقم الهاتف أو فئة العميل أو المسؤول | +| إدارة الكتب | عرض تاريخ ميلاد المؤلف أو جنسيته أو سيرته في جدول الكتب | +| إدارة المشاريع | عرض المكلّف أو تاريخ الاستحقاق أو الحالة من المهام المرتبطة | + +## الإنشاء والتهيئة + + + + قبل استخدام حقل البحث، أنشئ حقل **ارتباط** بين الجدولين. + + + في طريقة عرض الجدول، انقر على `+` لإضافة حقل واختر **البحث**. + + + اختر حقل ارتباط موجودًا في الجدول الحالي ليكون مسار البحث. + + + اختر الحقل المراد قراءته من جدول المصدر، مثل تاريخ ميلاد مؤلف، أو رقم هاتف عميل، أو سعر منتج. + + + +## المزامنة التلقائية + +بعد الإعداد، يملأ Teable نتيجة البحث استنادًا إلى علاقة الارتباط الموجودة: + +- إذا تغيّر السجل المرتبط، مثل اختيار مؤلف مختلف، فتتحدّث قيمة البحث. +- إذا تغيّرت بيانات المصدر، مثل تعديل تاريخ ميلاد مؤلف، فتُحدّث قيمة البحث. + +## الاستخدامات الشائعة + +- **إدارة الكتب**: في جدول `الكتب`، استخدم حقل ارتباط `المؤلف` للبحث عن `تاريخ الميلاد` من جدول تفاصيل المؤلفين. +- **حساب الطلب**: في جدول `بنود الطلب`، ابحث عن سعر المنتج ثم استخدم صيغة لحساب الإجمالي. +- **مزامنة معلومات العملاء**: في جدول التذاكر، اربط عميلًا وابحث عن رقم هاتفه أو بريده الإلكتروني أو فئته. + +## ملاحظات + +- **حقل للقراءة فقط**: حقول البحث **للقراءة فقط**. لا يمكنك تعديل القيمة التي جرى البحث عنها من الجدول الحالي. لتغيير القيمة، عدّل الحقل الأصلي في جدول المصدر. +- **القيمة المفردة والقيم المتعددة**: إذا كانت علاقة الارتباط واحدًا إلى واحد، فستكون نتيجة البحث قيمة مفردة. وإذا كانت العلاقة واحدًا إلى متعدد، فتصبح نتيجة البحث مصفوفة متعددة القيم وتعرض القيم مفصولة بفواصل. +- **تبعيات البيانات**: تعتمد حقول البحث على حقل الارتباط وحقل المصدر. إذا حُذف حقل الارتباط أو الحقل المستهدف في جدول المصدر، يتوقف حقل البحث عن العمل. diff --git a/ar/basic/field/multiple-select.mdx b/ar/basic/field/multiple-select.mdx new file mode 100644 index 00000000..45853eae --- /dev/null +++ b/ar/basic/field/multiple-select.mdx @@ -0,0 +1,61 @@ +--- +title: "تحديد متعدد" +description: "اختر قيمة واحدة أو أكثر من قائمة محددة مسبقًا. مفيد للوسوم والفئات والتصفية متعددة الأبعاد." +--- + +يتيح حقل **تحديد متعدد** للمستخدمين اختيار قيمة واحدة أو أكثر من خيارات محددة مسبقًا. وهو ملائم للوسوم، والموضوعات، والمهارات، والأقسام، وغيرها من الفئات التي يمكن تطبيقها في الوقت نفسه. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| الوسوم والموضوعات | وسوم متعددة للمقالات أو مقاطع الفيديو أو العملاء أو المهام | +| المهارات والقدرات | عدة مهارات أو مجالات خبرة لعضو | +| العمل العابر للفرق | الأقسام المشاركة في مشروع، مثل المبيعات والهندسة والمالية | +| الفئات متعددة الأبعاد | السجلات التي تنتمي إلى عدة موضوعات أو قنوات أو خطوط أعمال | + +## الإنشاء والتهيئة + + + + انقر على أيقونة `+` في الجانب الأيمن من رأس الجدول، ثم اختر **تحديد متعدد** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "الموضوعات" أو "المهارات" أو "الأقسام". + + + أدخل اسم خيار في لوحة الإعداد واضغط على **Enter** لإضافته بسرعة. + + + عيّن القيم الافتراضية حسب الحاجة، واختر ما إذا كان يمكن للمستخدمين إنشاء خيارات جديدة أثناء التحرير. + + + +## إدارة الخيارات + +| الإعداد | الوصف | +| --- | --- | +| اللون | يعيّن Teable الألوان تلقائيًا. ويمكنك أيضًا النقر على النقطة الموجودة في الجانب الأيسر من أحد الخيارات لتغيير لونه | +| الترتيب | اسحب الأيقونة الموجودة في الجانب الأيسر من أحد الخيارات لإعادة ترتيب القائمة | +| القيمة الافتراضية | يمكن أن تبدأ السجلات الجديدة بمجموعة شائعة من الوسوم | +| السماح بإنشاء خيارات جديدة | عند إيقافه، لا يستطيع المستخدمون سوى اختيار الخيارات الموجودة أثناء تحرير الخلايا | + +## التصفية حسب قيم التحديد المتعدد + +| نوع عامل التصفية | الوصف | +| --- | --- | +| يحتوي على أي من | يعرض السجلات التي تتضمن خيارًا محددًا واحدًا على الأقل | +| يحتوي على جميع | يعرض السجلات التي تتضمن كل خيار محدد | +| يساوي تمامًا | يجب أن تتطابق الخيارات المحددة تمامًا، من دون خيارات إضافية أو مفقودة | + +## الاستخدامات الشائعة + +- **وسوم المحتوى**: أضف موضوعات مثل "التقنية" و"التصميم" و"التسويق" إلى سجلات المحتوى. +- **مهارات الأشخاص**: سجّل عدة مهارات لكل عضو، ثم صفِّ حسب مجموعات المهارات. +- **أقسام المشروع**: سجّل الأقسام المشاركة في المشاريع العابرة للفرق بغرض التجميع وإعداد التقارير. + +## ملاحظات + +- يسمح حقل تحديد متعدد بعدد قيم من **1 إلى N**. ويسمح حقل تحديد أحادي بقيمة **1** لكل سجل. +- تساعد الألوان على تمييز الفئات، لكن لا تعتمد على اللون وحده للدلالة على المعاني الأساسية. +- إذا وجب أن تكون القيمة حصرية، فاستخدم حقل **تحديد أحادي**. diff --git a/ar/basic/field/number.mdx b/ar/basic/field/number.mdx new file mode 100644 index 00000000..d32c2b83 --- /dev/null +++ b/ar/basic/field/number.mdx @@ -0,0 +1,67 @@ +--- +title: "رقم" +description: "خزّن بيانات رقمية مثل الأسعار والمخزون والكميات والنسب. يدعم الكسور العشرية والعملات والنسب المئوية والعروض المرئية." +--- + +يخزّن حقل **رقم** قيمًا يمكن إجراء عمليات حسابية عليها، مثل الأسعار، والمخزون، والكميات، والدرجات، والنسب. ويدعم تنسيقات الأرقام والعملات والنسب المئوية، ويمكنه عرض القيم على هيئة أشرطة أو حلقات أو خطوط. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| المبالغ والتكاليف | مبالغ العقود، وأسعار المنتجات، والميزانيات، والتكاليف | +| الكميات والمخزون | أعداد المخزون، وكميات الطلبات، وساعات العمل، والأعداد | +| النسب والتقدّم | معدل الإنجاز، ومعدل التحويل، ومعدل الإكمال | +| الدرجات والمقاييس | الدرجات، والأوزان، ومؤشرات السلامة، ومؤشرات المخاطر | + +## الإنشاء والتهيئة + + + + انقر على `+` في الجانب الأيمن من رأس الجدول، ثم اختر **رقم** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "سعر المنتج" أو "المخزون" أو "معدل الإنجاز". + + + اختر **رقم** أو **عملة** أو **نسبة مئوية** بناءً على البيانات. + + + عيّن عدد المنازل العشرية، وأضف قيمة افتراضية للسجلات الجديدة عند الحاجة. + + + +## تنسيقات الأرقام + +| التنسيق | مناسب لـ | مثال | +| --- | --- | --- | +| رقم | الأعداد، والكميات، والدرجات | `100`، `2.5` | +| عملة | المبالغ، والتكاليف، والميزانيات | `$100.00` | +| نسبة مئوية | النسب، والتقدّم، ومعدلات التحويل | `50%` | + +تتحكم الدقة في عدد المنازل العشرية المعروضة. وبعد تعيين الدقة، يقرّب Teable القيم المعروضة وفقًا لها. + +## إعدادات العرض + +يمكن لحقول الأرقام عرض القيم بصريًا بالإضافة إلى النص العادي. + +| وضع العرض | مناسب لـ | الوصف | +| --- | --- | --- | +| افتراضي | الأرقام ذات القيمة المفردة والمتعددة القيم | يعرض الرقم مباشرةً | +| شريط | الأرقام ذات القيمة المفردة والمتعددة القيم | يستخدم طول الشريط لإظهار حجم القيمة | +| حلقة | الأرقام ذات القيمة المفردة | يستخدم مؤشر تقدّم حلقيًا لإظهار النسبة | +| خط | الأرقام المتعددة القيم | يستخدم خطًا لإظهار التغيّرات عبر القيم | + +لعرض الشريط والحلقة، يمكنك تعيين قيمة مستهدفة ولون وتحديد ما إذا كنت تريد إظهار الرقم. القيمة المستهدفة هي القيمة التي تملأ العرض المرئي. على سبيل المثال، إذا كانت الدرجة الكاملة `100`، فعيّن القيمة المستهدفة على `100`. + +## الاستخدامات الشائعة + +- **مبالغ العقود**: أنشئ حقل "مبلغ العقد"، واختر **عملة**، وحدد `$`، واضبط الدقة على منزلتين عشريتين. +- **معدل إنجاز المبيعات**: أنشئ حقل "معدل الإنجاز"، واختر **نسبة مئوية**، واضبط وضع العرض على **شريط**، وعيّن القيمة المستهدفة على `1`. +- **إدارة المخزون**: أنشئ حقل "المخزون"، واختر **رقم**، ثم استخدمه للفرز والتصفية والملخصات. + +## ملاحظات + +- لا تقبل حقول الأرقام سوى الأعداد الصحيحة والعشرية، مثل `12` و`3.14`. +- تُخزّن النسب المئوية كأعداد عشرية. يؤدي إدخال `100%` إلى تخزين `1`، ويؤدي إدخال `50%` إلى تخزين `0.5`. +- إذا كانت نتائج الصيغة أو التجميع أو البحث رقمية، فيمكنها استخدام تنسيق حقل الرقم وأوضاع عرضه. diff --git a/ar/basic/field/rating.mdx b/ar/basic/field/rating.mdx new file mode 100644 index 00000000..3fa3188f --- /dev/null +++ b/ar/basic/field/rating.mdx @@ -0,0 +1,52 @@ +--- +title: "التقييم" +description: "أضف تقييمات رقمية مرئية إلى السجلات. مفيد للجودة والأولوية والرضا ونتائج التقييم." +--- + +يستخدم حقل **التقييم** أيقونات لإظهار درجة. وهو ملائم لرضا العملاء، وتقييمات المنتجات، والأولوية، وتقييم الأفكار، ومراجعات الأداء. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| تقييم المنتج | تقييمات المنتجات أو الميزات أو المحتوى | +| ملاحظات الخدمة | تقييمات رضا العملاء وجودة الخدمة | +| مراجعة الأداء | درجات الموظفين أو المشاريع أو المورّدين | +| تقدير الأولوية | مدى الإلحاح أو القيمة أو المخاطر | + +## الإنشاء والتهيئة + + + + انقر على أيقونة `+` في الجانب الأيمن من رأس الجدول، ثم اختر **التقييم** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "رضا العملاء" أو "درجة التوصية" أو "الأولوية". + + + القيمة القصوى الافتراضية هي **5**. ويمكنك تغييرها إلى **10** أو حد آخر لتعيين نطاق التقييم المتاح. + + + تستخدم التقييمات النجوم افتراضيًا. ويمكنك اختيار أيقونة أخرى تتوافق مع معنى الحقل. + + + +## الإعدادات + +| الإعداد | الوصف | +| --- | --- | +| القيمة القصوى | تتحكم في حد التقييم، مثل مقياس من 5 نقاط أو 10 نقاط | +| نمط الأيقونة | يتحكم في رمز التقييم، مثل النجمة أو القلب أو الإعجاب أو المصباح | + +## الاستخدامات الشائعة + +- **إدارة مراجعات المنتجات**: سجّل تقييمات المنتجات، ثم صفِّ المنتجات ذات التقييم المرتفع. +- **ملاحظات الخدمة**: اجمع رضا العملاء في سجلات الدعم وراجع جودة الخدمة. +- **مراجعة أداء الموظفين**: قيّم عدة مجالات للقدرات في جدول لمراجعة الموارد البشرية. +- **التقييم مع تعليق**: استخدمه مع حقل **نص طويل** لتسجيل درجة وملاحظات مكتوبة معًا. + +## ملاحظات + +- يمكن لحقول **الصيغة** الرجوع إلى قيم التقييم لحساب المتوسطات أو الإجماليات. +- قبل تعيين القيمة القصوى، اتفق مع الفريق على معنى كل درجة. +- إذا خفّضت القيمة القصوى لاحقًا، مثل تغييرها من 10 إلى 5، فقد لا تُعرض الدرجات الحالية التي تتجاوز الحد الجديد بصورة صحيحة. تحقّق من البيانات التاريخية قبل تغييرها. diff --git a/ar/basic/field/rollup.mdx b/ar/basic/field/rollup.mdx new file mode 100644 index 00000000..28be9cd0 --- /dev/null +++ b/ar/basic/field/rollup.mdx @@ -0,0 +1,72 @@ +--- +title: "التجميع" +description: "اجمع القيم من السجلات المرتبطة، مثل المجموع والعدد والمتوسط والقيمة القصوى والقيمة الدنيا." +--- + +{/* mintlify-resync: 2026-05-14 */} +تحسب حقول التجميع إحصاءات من عدة سجلات مرتبطة. يبدأ حقل التجميع عادةً من حقل **ارتباط** موجود، ويحدد حقلًا مستهدفًا من السجلات المرتبطة، ثم يحسب النتيجة باستخدام دالة مختارة. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| مبلغ الطلب | تجميع الأسعار من بنود الطلب لحساب إجمالي الطلب | +| تقدّم المهام | حساب عدد المهام المرتبطة أو المهام المكتملة أو متوسط التقييمات | +| قيمة العميل | تجميع إجمالي الإنفاق أو عدد الطلبات من طلبات العميل | +| تنظيف الوسوم | دمج الوسوم أو المشاركين أو قنوات المصدر من السجلات المرتبطة | + +## الإنشاء والتهيئة + + + + قبل إنشاء حقل تجميع، أنشئ حقل **ارتباط**. + + + انقر على `+` في رأس الجدول لإضافة حقل واختر **التجميع**. + + + اختر حقل الارتباط الذي يوفر مصدر البيانات، ثم اختر الحقل المستهدف المراد حسابه. + + + اختر دالة بناءً على نوع الحقل المستهدف، مثل المجموع أو العدد أو المتوسط أو القيمة القصوى أو القيمة الدنيا. + + + +## التنسيق والعرض + +يمكن لنتائج التجميع عادةً استخدام إعدادات التنسيق والعرض التفاعلي: + +- **التنسيق**: اضبط الدقة العشرية أو رموز العملات أو النسب المئوية. +- **العرض التفاعلي**: اعرض النتائج الرقمية على هيئة أشرطة أو حلقات أو أنماط عرض أخرى. + +راجع [التنسيق](/ar/basic/field/common/formatter) و[العرض التفاعلي](/ar/basic/field/common/show-as) للاطلاع على التفاصيل. + +## الاستخدامات الشائعة + +- **إجماليات طلبات متجر الكتب**: في جدول `الطلبات`، استخدم حقل الارتباط `الكتب المحددة` لتجميع حقل `السعر` من جدول `الكتب`. اختر **SUM** لحساب إجمالي الطلب. +- **إحصاءات مهام المشروع**: في جدول `المشاريع`، احسب عدد المهام المرتبطة أو معدل إكمال المهام. +- **إجماليات إنفاق العملاء**: في جدول `العملاء`، اجمع مبالغ الطلبات ذات الصلة للاطلاع على إجمالي إنفاق كل عميل. + +## صيغ التجميع المدعومة + +| اسم الصيغة | الشرح | +| --- | --- | +| COUNTALL | يحسب جميع القيم، بما فيها القيم النصية والقيم الفارغة | +| COUNTA | يحسب القيم غير الفارغة | +| COUNT | يحسب العناصر الرقمية | +| SUM | يحسب مجموع كل القيم الرقمية | +| MAX | يعيد أكبر قيمة رقمية | +| MIN | يعيد أصغر قيمة رقمية | +| AND | يعيد true إذا كانت جميع القيم true | +| OR | يعيد true إذا كانت أي قيمة true | +| XOR | يعيد true إذا كان عدد القيم التي تساوي true فرديًا | +| ARRAY_JOIN | يربط جميع القيم في مصفوفة لتكوين سلسلة نصية | +| ARRAY_UNIQUE | يزيل القيم المكررة ويعيد مصفوفة ذات قيم فريدة | +| ARRAY_COMPACT | يزيل القيم الفارغة ويعيد مصفوفة جديدة | +| CONCATENATE | يربط عدة قيم لتكوين سلسلة نصية | + +## ملاحظات + +- **التحديثات الديناميكية**: تحسب حقول التجميع في الوقت الفعلي. وإذا تغيّرت بيانات المصدر أو علاقات الارتباط، فتُحدّث نتيجة التجميع. +- **قيود أنواع البيانات**: لا تعمل بعض الدوال إلا مع أنواع حقول محددة. على سبيل المثال، لا تعمل **SUM** إلا مع حقول الأرقام. وإذا اخترت حقلًا نصيًا، فلن يتيح Teable المجموع كخيار. +- **الأداء**: قد يؤثر وجود عدد كبير من حقول التجميع في الأداء، ولا سيما عندما تتضمن سجلات كثيرة. خطط لعلاقات الارتباط بعناية وراجع إعدادات التجميع من حين إلى آخر. diff --git a/ar/basic/field/single-line-text.mdx b/ar/basic/field/single-line-text.mdx new file mode 100644 index 00000000..6f335acb --- /dev/null +++ b/ar/basic/field/single-line-text.mdx @@ -0,0 +1,57 @@ +--- +title: "نص أحادي السطر" +description: "خزّن نصوصًا قصيرة مثل الأسماء والعناوين والمعرّفات وعناوين URL وعناوين البريد الإلكتروني وأرقام الهاتف." +--- + +يخزّن حقل **نص أحادي السطر** محتوى قصيرًا لا يحتاج إلى فواصل أسطر، مثل أسماء العملاء، وعناوين المهام، ومعرّفات الطلبات، ورموز SKU، وعناوين URL، وعناوين البريد الإلكتروني، وأرقام الهاتف. ويمكن فرز القيم وتصفيتها، كما يمكن لدوال الصيغ الرجوع إليها للاستخراج والضم وتنسيق النص. + +بالنسبة إلى الملاحظات أو الملخصات أو الأوصاف التي تحتاج إلى فواصل أسطر، استخدم **[نص طويل](/ar/basic/field/long-text)**. وبالنسبة إلى القيم الثابتة مثل الحالة أو الفئة أو الأولوية، فعادةً ما يكون **[تحديد أحادي](/ar/basic/field/single-select)** أو **[تحديد متعدد](/ar/basic/field/multiple-select)** أنسب. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| أسماء السجلات أو عناوينها | أسماء العملاء، وعناوين المهام، وأسماء المنتجات، وأسماء المشاريع | +| المعرّفات أو الرموز | معرّفات الطلبات، ومعرّفات العقود، ورموز SKU، ومعرّفات الأنظمة الخارجية | +| تفاصيل الاتصال أو الوصول | مواقع الشركات، وعناوين البريد الإلكتروني، وأرقام الهاتف | +| نص حر قصير | ملاحظات أو تسميات أو معرّفات قصيرة لا يمكن إدراجها كخيارات ثابتة | + +## الإنشاء والتهيئة + + + + انقر على أيقونة **+** في الجانب الأيمن من رأس الجدول، ثم اختر **نص أحادي السطر** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "اسم العميل" أو "معرّف الطلب" أو "موقع الشركة". + + + إذا كانت السجلات الجديدة تبدأ عادةً بالنص نفسه، فأدخل **قيمة افتراضية**، مثل "بانتظار المراجعة" أو "جديد". لا تُملأ القيمة الافتراضية إلا عند إنشاء سجل جديد، ويظل من الممكن تعديلها لاحقًا. + + + +## وضع العرض + +يدعم حقل نص أحادي السطر أربعة أوضاع عرض: + +| وضع العرض | مناسب لـ | السلوك عند النقر | +| --- | --- | --- | +| افتراضي | الأسماء، والعناوين، والمعرّفات، وغيرها من النصوص العادية | لا يوجد سلوك إضافي عند النقر | +| URL | عناوين الويب | يفتح عنوان URL في المتصفح الافتراضي | +| البريد الإلكتروني | عناوين البريد الإلكتروني | يفتح تطبيق البريد الإلكتروني الافتراضي | +| الهاتف | أرقام الهاتف | يفتح تطبيق الاتصال على الجهاز. وعلى الهاتف المحمول، يمكن للمستخدمين الاتصال بالرقم مباشرةً | + +يغيّر وضع العرض كيفية ظهور القيمة وسلوكها عند النقر عليها. ولا يغيّر نوع الحقل. ويمكن أيضًا استخدام العرض التفاعلي لحقول الصيغة والتجميع والبحث. للاطلاع على التفاصيل، راجع [العرض التفاعلي](/ar/basic/field/common/show-as). + +## الاستخدامات الشائعة + +- **إدارة معلومات اتصال العملاء**: أنشئ حقل "موقع الشركة" واضبطه على **URL** لفتح الموقع عند النقر عليه. وأنشئ حقل "الهاتف" واضبطه على **الهاتف** كي يتمكن مستخدمو الأجهزة المحمولة من الاتصال بنقرة واحدة. +- **إدارة الطلبات أو العقود**: أنشئ حقل "معرّف الطلب" أو "معرّف العقد" للبحث والتصفية والمطابقة مع الأنظمة الخارجية. +- **الحالة الأولية للتذكرة**: أنشئ حقل "المرحلة الحالية" وعيّن القيمة الافتراضية على "جديد". وإذا كانت المرحلة تأتي من سير عمل ثابت، فاستخدم حقل **تحديد أحادي** بدلًا منه. +- **استخراج النص وربطه**: ارجع إلى حقل نص أحادي السطر في الصيغ لاستخراج أجزاء المعرّف، أو ربط أسماء العرض، أو توحيد تنسيق النص. + +## ملاحظات + +- حقل نص أحادي السطر مخصص للمحتوى القصير. وعادةً ما يؤكد مفتاح Enter الإدخال. استخدم **نص طويل** للملاحظات وملخصات المقالات وغيرها من المحتويات الطويلة. +- URL والبريد الإلكتروني والهاتف هي أوضاع عرض. ويظل نوع الحقل نصًا أحادي السطر ويمكن الاستمرار في فرزه وتصفيته ومعالجته بدوال النص. +- لا يقيّد حقل نص أحادي السطر القيم بخيارات محددة مسبقًا. استخدم **تحديد أحادي** أو **تحديد متعدد** للحالات والفئات والأولويات التي تحتاج إلى قيم متسقة. diff --git a/ar/basic/field/single-select.mdx b/ar/basic/field/single-select.mdx new file mode 100644 index 00000000..c1cb1c7f --- /dev/null +++ b/ar/basic/field/single-select.mdx @@ -0,0 +1,60 @@ +--- +title: "تحديد أحادي" +description: "اختر خيارًا واحدًا من قائمة محددة مسبقًا. مفيد للحالات والفئات والأولويات." +--- + +يتيح حقل **تحديد أحادي** للمستخدمين اختيار قيمة واحدة من خيارات محددة مسبقًا. وهو ملائم للحالات المتنافية، مثل مرحلة المهمة، أو فئة العميل، أو الأولوية، أو نتيجة الموافقة. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| تدفق الحالة | لم تبدأ، وقيد التنفيذ، ومكتملة، وغيرها من المراحل المتنافية | +| إدارة الفئات | فئة العميل، ومصدر العميل المحتمل، ونوع المحتوى | +| إدارة الأولويات | مرتفعة، ومتوسطة، ومنخفضة، وغيرها من الأولويات الثابتة | +| نتيجة الموافقة | موافق عليه، ومرفوض، ويحتاج إلى مزيد من المعلومات | + +## الإنشاء والتهيئة + + + + انقر على أيقونة `+` في الجانب الأيمن من رأس الجدول، ثم اختر **تحديد أحادي** من قائمة أنواع الحقول. + + + أدخل اسمًا للحقل، مثل "حالة المهمة" أو "الأولوية" أو "فئة العميل". + + + أدخل اسم خيار في مربع الإدخال واضغط على **Enter** لإنشائه بسرعة. + + + إذا كانت السجلات الجديدة تستخدم الخيار نفسه عادةً، فعيّنه كقيمة افتراضية. + + + +## إدارة الخيارات + +| الإعداد | الوصف | +| --- | --- | +| اللون | انقر على النقطة الموجودة في الجانب الأيسر من اسم الخيار لاختيار لون من لوحة الألوان | +| الترتيب | اسحب الأيقونة الموجودة في الجانب الأيسر من أحد الخيارات لتغيير ترتيبه في القائمة المنسدلة | +| تعديل | عدّل اسم خيار مباشرةً. وتتحدّث السجلات الموجودة بالاسم الجديد | +| حذف | انقر على أيقونة سلة المهملات في الجانب الأيمن من أحد الخيارات لحذفه | +| السماح بإنشاء خيارات جديدة | عند إيقافه، لا يستطيع المستخدمون سوى اختيار الخيارات الموجودة أثناء تحرير الخلايا | + +## الاستخدامات الشائعة + +- **إدارة تقدّم المشروع**: أنشئ حقل "حالة المهمة" بخيارات مثل "لم تبدأ" و"قيد التنفيذ" و"مكتملة"، ثم أنشئ **طريقة عرض كانبان** استنادًا إلى ذلك الحقل. +- **إدارة فئات العملاء**: أنشئ حقل "فئة العميل" بخيارات مثل "مرتفعة" و"متوسطة" و"منخفضة"، ثم جمّع العملاء حسب الفئة. + +## التحديد الأحادي مقابل التحديد المتعدد + +| نوع الحقل | عدد القيم | مناسب لـ | +| --- | --- | --- | +| تحديد أحادي | يمكن لكل سجل اختيار قيمة واحدة فقط | الحالة، والمرحلة، والفئة، والأولوية | +| تحديد متعدد | يمكن لكل سجل اختيار عدة قيم | الوسوم، والمهارات، والموضوعات، والأقسام | + +## ملاحظات + +- يسمح حقل تحديد أحادي بقيمة **1** فقط لكل سجل، لذا فهو مناسب للحالات المتنافية. +- إذا كان السجل يحتاج إلى عدة وسوم، فاستخدم حقل **تحديد متعدد**. +- قبل تحويل حقل تحديد متعدد إلى تحديد أحادي، تحقّق من البيانات. إذا كان السجل يتضمن عدة خيارات، فعادةً ما يحتفظ Teable بالخيار الأول فقط، ما قد يؤدي إلى فقدان البيانات. diff --git a/ar/basic/field/user.mdx b/ar/basic/field/user.mdx new file mode 100644 index 00000000..646691f0 --- /dev/null +++ b/ar/basic/field/user.mdx @@ -0,0 +1,51 @@ +--- +title: "المستخدم" +description: "حدد أعضاء المساحة في السجلات. مفيد للمكلّفين والمشاركين والموافقين والمتعاونين." +--- + +يحدد حقل **المستخدم** أعضاء المساحة في سجل. وهو ملائم للمكلّفين بالمهام، والمشاركين في المشاريع، والموافقين، والمتعاونين. ويمكن استخدامه أيضًا مع عوامل التصفية والتجميع وطرق عرض كانبان لإنشاء مساحات عمل شخصية. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| مسؤول المهمة | إسناد مسؤول واحد إلى كل مهمة | +| التعاون بين عدة أشخاص | تحديد عدة أعضاء في سجل واحد لإظهار المشاركة المشتركة | +| الموافقة والتسليم | تسجيل الموافقين أو المراجعين أو مسؤولي التسليم | +| مساحة العمل الشخصية | تصفية السجلات المسندة إلى المستخدم الحالي | + +## الإنشاء والتهيئة + + + + انقر على `+` في رأس الجدول لإضافة حقل، ثم اختر **المستخدم**. + + + أدخل اسمًا للحقل، مثل "المسؤول" أو "المكلّف" أو "الموافق". + + + عند تمكينه، يمكن لسجل واحد تحديد عدة أعضاء. وعند تعطيله، لا يمكن لسجل واحد تحديد أكثر من عضو واحد. + + + فعّل **إشعار المستخدمين عند تحديدهم** عند الحاجة. وسيتلقى الأعضاء المحددون إشعارًا. + + + +## الإعدادات + +| الإعداد | الوصف | مناسب لـ | +| --- | --- | --- | +| السماح بعدة مستخدمين | يمكن لسجل واحد تحديد عدة أعضاء | المهام التعاونية، والمشاركة بين عدة أشخاص | +| عدم السماح بعدة مستخدمين | لا يمكن لسجل واحد تحديد أكثر من عضو واحد | الملكية الواضحة، وموافق واحد | +| إشعار المستخدمين عند تحديدهم | يتلقى الأعضاء المحددون إشعارًا | إسناد المهام، وتذكيرات الموافقة | + +## الاستخدامات الشائعة + +- **إسناد المهام وإدارة كانبان**: أنشئ حقل "المسؤول"، مع إيقاف السماح بعدة مستخدمين عادةً، ثم أنشئ طريقة عرض كانبان مجمّعة حسب المسؤول. +- **مساحة عملي**: في جدول أو طريقة عرض كانبان، عيّن عامل تصفية مثل `المسؤول` `هو` `المستخدم الحالي` كي يرى كل عضو مهامه. + +## ملاحظات + +- إذا كان **السماح بعدة مستخدمين** مفعّلًا، فقد يظهر سجل واحد تحت مجموعات عدة أعضاء في طرق العرض المجمّعة أو طرق عرض كانبان. على سبيل المثال، إذا أُسندت مهمة إلى A وB، فستظهر في عمود A وعمود B. +- يغطي خيار **إشعار المستخدمين عند تحديدهم** عمليات الإسناد الجديدة فقط: عندما يحدد شخص عضوًا أثناء تحرير السجلات، أو عندما يملأ إرسال نموذج الحقل. أما العمليات التي تنقل الإسنادات الحالية معها، مثل استيراد البيانات، أو تكرار جدول أو سجل، أو استعادة سجلات من سلة المهملات، أو التراجع أو الإعادة، فلا ترسل إشعارات. +- عندما يُسند شخص واحد أعضاء عبر عدة سجلات في الجدول نفسه خلال بضع ثوانٍ، يتلقى كل عضو إشعارًا مجمّعًا واحدًا بدلًا من إشعار لكل سجل. diff --git a/ar/basic/organization-panel/settings.mdx b/ar/basic/organization-panel/settings.mdx new file mode 100644 index 00000000..2a98ea6f --- /dev/null +++ b/ar/basic/organization-panel/settings.mdx @@ -0,0 +1,110 @@ +--- +title: "إعدادات لوحة المؤسسة" +description: "أعد تسمية مؤسسة، وهيئ الوصول التلقائي إلى المساحات للمستخدمين الجدد، وتحكم في ظهور الأقسام." +hidden: true +noindex: true +--- + +متاحة لخطة Enterprise ذاتية الاستضافة + +استخدم **إعدادات النسخة** في لوحة المؤسسة لتغيير اسم المؤسسة والوصول التلقائي إلى المساحات ونطاق الأقسام. + +## فتح إعدادات النسخة + +1. افتح مبدّل المساحات في الزاوية العلوية اليسرى. +2. اختر **لوحة المؤسسة**. +3. افتح **إعدادات النسخة** من شريط التنقل الأيسر. + +لا يمكن فتح لوحة المؤسسة وتغيير هذه الإعدادات إلا لمسؤولي المؤسسة. + +لا تنطبق **إعدادات النسخة** في لوحة المؤسسة إلا على المؤسسة الحالية، ولا تغير نسخة Teable بأكملها أو المؤسسات الأخرى. + +لإنشاء مستأجري المؤسسات أو تعيين مسؤوليهم أو حذفهم في نسخة، راجع [إدارة مستأجري المؤسسات](/ar/basic/admin-panel/multitenancy). + +## نظرة عامة على الإعدادات + +| الإعداد | الغرض | التأثير الرئيسي | +| --- | --- | --- | +| **اسم المؤسسة** | تغيير الاسم المعروض للمؤسسة الحالية | يغير اسم العرض من دون تغيير المساحات أو الأعضاء أو الأذونات | +| **الانضمام التلقائي إلى المساحات** | اختيار المساحات التي ينضم إليها مستخدمو المؤسسة الجدد تلقائيًا | يُطبق عند انضمام مستخدم إلى المؤسسة ولا يحدّث الأعضاء الحاليين | +| **نطاق الأقسام** | التحكم في الأقسام التي يمكن للأعضاء تصفحها والبحث فيها | يؤثر في شجرة المؤسسة وأدوات تحديد الأقسام | + +## اسم المؤسسة + +يظهر الاسم الحالي ضمن **اسم المؤسسة**. لإعادة تسميتها: + +1. اختر **إعادة تسمية**. +2. أدخل اسم المؤسسة الجديد. +3. اختر **إعادة تسمية** مجددًا للتأكيد. + +يظهر الاسم الجديد في لوحة المؤسسة ومبدّلات المؤسسات. ولا يتغير الأعضاء أو الأقسام أو المساحات أو البيانات. + +## الانضمام التلقائي إلى المساحات + +يحدد **الانضمام التلقائي إلى المساحات** المساحات التي يصبح المستخدم عضوًا فيها تلقائيًا عند انضمامه إلى المؤسسة الحالية. + +| الإعداد | النتيجة عند انضمام مستخدم | الاستخدام المعتاد | +| --- | --- | --- | +| **الكل** | الانضمام إلى كل مساحة موجودة حاليًا في المؤسسة | إتاحة كل مساحات المؤسسة لجميع الأعضاء | +| **محددة** | الانضمام إلى المساحات التي يحددها المسؤول فقط | مساحات العمل المشتركة أو أدلة الموظفين أو الموارد العامة | +| **لا شيء** | عدم الانضمام إلى أي مساحة تلقائيًا | تتطلب كل مساحة دعوة أو موافقة منفصلة | + +ينضم المستخدمون المضافون تلقائيًا إلى المساحة بصفتهم **محررين**. + +### تحديد مساحات بعينها + +1. اختر **محددة**. +2. اختر **تحديد المساحات**. +3. ابحث عن المساحات التي ينبغي للمستخدمين الجدد الانضمام إليها وحددها. +4. اختر **حفظ**. + +تظهر المساحات المحددة أسفل الإعداد. استخدم زر الإزالة بجوار اسم مساحة لإزالتها من قائمة الانضمام التلقائي. + +لا ينطبق هذا الإعداد إلا على المستخدمين الذين ينضمون إلى المؤسسة لاحقًا. ولا يغير وصول الأعضاء الحاليين إلى المساحات أو يضيفهم إلى مساحات تُنشأ لاحقًا. أدر الأعضاء الحاليين من إعدادات أعضاء كل مساحة. + +## نطاق الأقسام + +يتحكم **نطاق الأقسام** في الأقسام التي يمكن للأعضاء العاديين عرضها. يستطيع مسؤولو المؤسسة دائمًا إدارة بنية الأقسام كاملة ولا يقيّدهم هذا الإعداد. + +| الإعداد | تصفح بنية الأقسام | البحث في الأقسام | +| --- | --- | --- | +| **جميع الأقسام** | تصفح شجرة الأقسام كاملة | البحث في جميع الأقسام | +| **الأقسام ذات الصلة** | تصفح فروع الأقسام ذات الصلة فقط | البحث افتراضيًا في الأقسام ذات الصلة | + +اختر **جميع الأقسام** عندما يمكن لكل عضو عرض بنية المؤسسة كاملة. واختر **الأقسام ذات الصلة** للفصل بين فروع الأقسام في وحدات الأعمال. + +### السماح بالبحث في جميع الأقسام + +عند اختيار **الأقسام ذات الصلة**، يتاح مفتاح **السماح بالبحث في جميع الأقسام**. + +عند تمكينه، يمكن للأعضاء العثور على أقسام غير مرتبطة بإدخال مصطلح بحث. يدعم ذلك التحديد عبر الأقسام من دون كشف شجرة المؤسسة كاملة. يوسع الإعداد نتائج البحث، لكنه لا يوسع صلاحية التصفح: + +| الإجراء | النتيجة عند التمكين | +| --- | --- | +| توسيع شجرة الأقسام أو تصفحها | تظل الأقسام ذات الصلة وحدها ظاهرة | +| البحث حسب اسم القسم | قد تظهر أقسام أخرى في المؤسسة الحالية | +| فتح قسم غير مرتبط من نتيجة بحث | غير مسموح؛ لا يصبح القسم فرعًا قابلًا للتصفح | + +يشير «البحث» هنا إلى البحث في الأقسام وأدوات تحديدها في Teable، لا إلى بحث مركز المساعدة أو المتصفح. + +## أمثلة على التهيئة + +| متطلب المؤسسة | الإعداد الموصى به | +| --- | --- | +| يستطيع كل عضو عرض بنية المؤسسة كاملة | **جميع الأقسام** | +| يستطيع الأعضاء عرض بنية أقسامهم فقط | **الأقسام ذات الصلة**، مع تعطيل **السماح بالبحث في جميع الأقسام** | +| إخفاء البنية الكاملة مع السماح بالتحديد عبر الأقسام | **الأقسام ذات الصلة**، مع تمكين **السماح بالبحث في جميع الأقسام** | + +## الأسئلة الشائعة + + + + لا يظهر المفتاح إلا عند اختيار **الأقسام ذات الصلة**. ومع **جميع الأقسام**، يستطيع الأعضاء بالفعل تصفح كل قسم والبحث فيه. + + + لا. لا يمكن للأعضاء العثور على الأقسام الأخرى إلا بإدخال مصطلح بحث. ويظل التصفح العادي مقصورًا على الأقسام ذات الصلة. + + + تعمل قاعدة الانضمام التلقائي عند انضمام مستخدم إلى المؤسسة، ولا تُطبق بأثر رجعي على أعضائها الحاليين. أضف هؤلاء الأعضاء أو أزلهم من إعدادات أعضاء المساحة المعنية. + + diff --git a/ar/basic/record.mdx b/ar/basic/record.mdx new file mode 100644 index 00000000..854a3f78 --- /dev/null +++ b/ar/basic/record.mdx @@ -0,0 +1,79 @@ +--- +title: "نظرة عامة" +description: "السجلات هي وحدات البيانات الأساسية المخزنة في جدول. وفي طريقة عرض الجدول، يمثل كل صف عادةً سجلًا واحدًا." +--- + +تخزن السجلات إدخالات بيانات كاملة. ويتكون كل سجل من عدة حقول. فمثلًا، قد يتضمن سجل العميل الاسم ورقم الهاتف والمالك وحالة المتابعة. وقد يتضمن سجل الطلب رقم الطلب والعميل والمبلغ وتاريخ التسليم. + +## المفاهيم الأساسية + +| المفهوم | الوصف | +| --- | --- | +| السجل | صف بيانات في جدول | +| الحقل | سمة في سجل تقابل عمودًا في الجدول | +| الخلية | قيمة سجل واحد في حقل واحد | +| الحقل الأساسي | اسم العرض الرئيسي للسجل، ويُستخدم غالبًا في قوائم الهاتف ومنتقيات السجلات المرتبطة | + +## إنشاء السجلات + +يمكنك إنشاء السجلات بالطرق التالية: + +إنشاء سجلات من قائمة سياق الصف + +| موضع الإدخال | الإجراء | +| --- | --- | +| أسفل الجدول | انقر على زر `+` أسفل طريقة عرض الجدول لإضافة سجل في النهاية | +| شريط الأدوات العلوي | انقر على `+ إضافة سجل` في الجانب الأيسر من شريط الأدوات | +| قائمة السياق | انقر بزر الفأرة الأيمن على سجل موجود وأدرج سجلًا أعلاه أو أدناه | + +## تحرير السجلات + +- **تحرير خلية**: انقر على أي خلية وأدخل محتواها أو غيّره. +- **مسح المحتوى**: اختر خلية واحدة أو أكثر، ثم اضغط `Delete` أو `Backspace`. +- **التحديد الجماعي**: اسحب بالفأرة لتحديد عدة خلايا أو سجلات، ثم حرّرها أو احذفها أو انسخها. +- **النسخ واللصق**: انسخ خلية واحدة أو أكثر والصقها. وإذا كانت البيانات الملصقة تتضمن صفوفًا أكثر من الجدول الحالي، يضيف Teable صفوفًا جديدة تلقائيًا. + +## حذف السجلات + +قائمة حذف السجلات جماعيًا + +حدد سجلًا واحدًا أو أكثر، ثم انقر بزر الفأرة الأيمن واختر **حذف السجل**. للحذف الجماعي، يمكنك تحديد مربعات الاختيار في بداية الصفوف قبل حذفها. + +تنتقل السجلات المحذوفة إلى سلة مهملات الجدول، حيث يمكنك مراجعتها واستعادتها. وإذا أردت إخراج السجلات من الجدول مع إبقائها متاحة، فأرشفها بدلًا من حذفها. راجع [الأرشيف وسلة المهملات](/ar/basic/record/archive-trash). + +إذا كان جدول آخر يرتبط بالسجل عبر حقل [رابط](/ar/basic/field/link) **مطلوب**، يرفض Teable الحذف ويذكر الجدول والحقل اللذين سيُتركان فارغين. وجّه الرابط إلى سجل آخر، أو ألغِ إعداد **مطلوب** للحقل، أو احذف السجلات المرتبطة مع هذا السجل. + +## تفاصيل السجل + +فتح مدخل تفاصيل السجل + +انقر على أيقونة التوسيع في بداية صف السجل، أو حدد سجلًا واضغط مفتاح المسافة، لفتح بطاقة تفاصيل السجل. + +تفيد بطاقة التفاصيل للسجلات ذات الحقول الكثيرة. يمكنك تصفح الحقول رأسيًا في صفحة واحدة، وتقليل التمرير الأفقي، وتحرير الحقول، وعرض التعليقات، والتحقق من سجل تغييرات السجل. + +## التعاون والتتبع + +| الميزة | الوصف | +| --- | --- | +| التعليقات | لكل سجل منطقة تعليقات خاصة لمناقشة بيانات محددة، أو الإشارة إلى الزملاء باستخدام @، أو إضافة سياق. راجع [التعليقات](/ar/basic/record/comment). | +| سجل تغييرات السجل | يسجل Teable تغييرات السجل كي تتمكن من تتبع التحديثات. راجع [سجل تغييرات السجل](/ar/basic/record/record-history). | +| الأرشيف وسلة المهملات | أخرج السجلات المكتملة من الجدول أو استعد السجلات المحذوفة. راجع [الأرشيف وسلة المهملات](/ar/basic/record/archive-trash). | +| السجلات المرتبطة | استخدم حقل **رابط** لربط السجلات عبر الجداول. راجع [حقل الرابط](/ar/basic/field/link). | + +## ملاحظات + +- يُستخدم الحقل الأساسي اسمَ العرض الرئيسي للسجل. ضع فيه معلومات يسهل التعرف إليها، مثل اسم أو عنوان مهمة أو رقم طلب، بدلًا من محتوى يشبه الملاحظات. +- لكل سجل معرّف فريد. بعد فتح بطاقة تفاصيل السجل، تكون السلسلة التي تبدأ بـ `rec` في عنوان URL للمتصفح هي معرّف السجل. +- إذا تعذر عليك تحرير بعض السجلات، فربما قيّد المسؤول نطاق التحرير عبر **مصفوفة الصلاحيات**. راجع [مصفوفة الصلاحيات](/ar/basic/authority-matrix). diff --git a/ar/basic/record/archive-trash.mdx b/ar/basic/record/archive-trash.mdx new file mode 100644 index 00000000..e0bc79d6 --- /dev/null +++ b/ar/basic/record/archive-trash.mdx @@ -0,0 +1,64 @@ +--- +title: "الأرشيف وسلة المهملات" +description: "أرشف السجلات لإخراجها من جدول دون فقدانها، واستعد السجلات المحذوفة من سلة مهملات الجدول." +--- + +تنتهي السجلات التي تغادر الشبكة في أحد موضعين. يحتفظ **الأرشيف** بالسجلات التي أخرجتها من العمل اليومي لكنك ما زلت تحتاج إليها، بينما تحتفظ **سلة المهملات** بالسجلات التي حذفتها كي تتمكن من إعادتها. + +يفتح كلاهما من الموضع نفسه: انقر على زر **...** بجوار الجدول، ثم اختر **السجل** > **الأرشيف** أو **السجل** > **سلة المهملات**. + +## أرشفة السجلات + +متاحة في خطة الأعمال وما فوقها + +تُخرج الأرشفة السجلات من طريقة عرض الجدول ومن عدد سجلات مساحتك، مع الاحتفاظ بقيم حقولها ومرفقاتها ومعلومات منشئها. استخدمها للمشاريع المكتملة أو الصفقات المغلقة أو المواسم الماضية التي تريد إبعادها دون حذفها. + +لأرشفة السجلات، حدد صفًا واحدًا أو أكثر في الشبكة، وانقر بزر الفأرة الأيمن، واختر **أرشفة السجل** أو **أرشفة جميع السجلات المحددة**. يعرض مربع التأكيد عدد السجلات التي ستُؤرشف. وإذا أرشفت صفوفًا خطأً، فاستخدم `Ctrl/Cmd + Z` للتراجع عن الإجراء وإعادتها. + +### مراجعة الأرشيف + +يفتح الأرشيف بوصفه شبكة للقراءة فقط تتضمن عمودين إضافيين، **وقت الأرشفة** و**أرشفه**، قبل حقول الجدول. انقر على أيقونة التوسيع في صف لفتح **تفاصيل السجل** وقراءة السجل كاملًا. + +استخدم شريط الأدوات للعثور على السجلات المطلوبة: + +| عنصر التحكم | وظيفته | +| --- | --- | +| منتقي الفرز | الترتيب حسب **وقت الأرشفة** أو **وقت الإنشاء** أو **وقت آخر تعديل** | +| **جميع المنشئين** | إظهار السجلات التي أنشأها المتعاونون المحددون فقط | +| **وقت الأرشفة** | قصر القائمة على نطاق زمني | +| **مسح عامل التصفية** | العودة إلى الأرشيف كاملًا | +| **تصدير CSV** | تنزيل السجلات المؤرشفة المعروضة حاليًا | + +### الاستعادة أو الحذف نهائيًا + +حدد صفوفًا في الأرشيف، ثم استخدم **استعادة** أو **حذف نهائي** في شريط الأدوات. يعرض كلا الزرين عدد السجلات المحددة. + +تعيد الاستعادة السجلات إلى الجدول بقيمها الأصلية، وتُحتسب مجددًا ضمن حد سجلات المساحة. وإذا كانت المساحة قد بلغت حد السجلات، تفشل الاستعادة حتى تفرغ بعض الصفوف أو ترفع الحد. + +يؤدي **الحذف النهائي** إلى إزالة السجلات المؤرشفة بلا رجعة، ولا يمكن التراجع عنه. + +يمكن للمالكين والمنشئين الأرشفة والاستعادة والحذف نهائيًا. ويستطيع المحررون أرشفة السجلات وفتح الأرشيف، لكنهم لا يستطيعون الاستعادة أو الحذف منه. ولا يملك المعلّقون والمشاهدون حق الوصول. + +## سلة مهملات الجدول + +تسرد سلة المهملات السجلات والحقول وطرق العرض المحذوفة من الجدول، إلى جانب من حذفها ووقت الحذف. صفِّ القائمة حسب النوع أو المستخدم الذي حذف العنصر أو وقت الحذف، واستخدم **مسح عامل التصفية** للعودة إلى القائمة كاملةً. + +لمعرفة ما احتواه الحذف فعليًا، انقر على الإدخال في عمود **المورد المحذوف** لصف سجل. تعرض **السجلات المحذوفة** تلك الصفوف في شبكة، حيث يمكنك التصفية حسب المنشئ أو وقت الإنشاء وتوسيع صف لعرض **تفاصيل السجل**. تحقق من الدفعة هنا قبل استعادتها. + +انقر على **استعادة** في إدخال بسلة المهملات لإعادة المورد المحذوف. وكما في الأرشيف، تشغل استعادة السجلات حصة الصفوف مجددًا، ولذلك يجب على المساحة التي بلغت حد السجلات إفراغ بعض الصفوف أولًا. + +### مدة ظهور السجلات المحذوفة + +تعتمد المدة التي تعرضها سلة المهملات من سجل الحذف على خطتك: + +| الخطة | مدة ظهور سجل سلة المهملات | +| --- | --- | +| المجانية | 14 يومًا | +| الاحترافية | سنة واحدة | +| الأعمال | 3 سنوات | + +## موضوعات ذات صلة + +- [سجل تغييرات السجل](/ar/basic/record/record-history): تتبع من غيّر قيمة ووقت تغييرها +- [نظرة عامة على السجلات](/ar/basic/record): إنشاء السجلات وتحريرها وحذفها +- [الفوترة والخطط](/ar/basic/space/billing): مقارنة حدود الخطط وتغيير اشتراكك diff --git a/ar/basic/record/comment.mdx b/ar/basic/record/comment.mdx new file mode 100644 index 00000000..5964f8d5 --- /dev/null +++ b/ar/basic/record/comment.mdx @@ -0,0 +1,68 @@ +--- +title: "التعليقات" +description: "ابدأ مناقشات في السجلات، وأشِر إلى زملائك باستخدام @، وأضف سياقًا إلى بيانات محددة." +--- + +تنتمي التعليقات إلى سجلات محددة. ويمكن لأعضاء الفريق مناقشة المشكلات وإضافة المواد وتوضيح سبب إجراء تغيير، وإبقاء السياق مع البيانات بدلًا من توزيعه على أدوات الدردشة. + +## استخدام التعليقات {#key-features} + +### فتح التعليقات + +مدخل التعليقات في بطاقة تفاصيل السجل + +افتح بطاقة تفاصيل أي سجل، ثم انقر على أيقونة **التعليقات** في الزاوية العلوية اليمنى لفتح لوحة التعليقات الجانبية. + +مدخل إضافة تعليق في قائمة سياق السجل + +يمكنك أيضًا النقر بزر الفأرة الأيمن على سجل في طريقة عرض الجدول واختيار **إضافة تعليق**. + +### إرسال التعليقات + +أدخل المحتوى في مربع التعليق وأرسله. تدعم التعليقات الصور والروابط الملصقة، مما يفيد في إضافة لقطات شاشة أو مراجع أو سياق خارجي. + +محرر التعليقات + +### الإشارة إلى الزملاء + +اكتب `@`، ثم اختر زميلًا من القائمة المنسدلة. يتلقى العضو المشار إليه إشعارًا ويمكنه الانتقال مباشرةً إلى السجل ذي الصلة. + +### الرد والتفاعل + +| الإجراء | الوصف | +| --- | --- | +| رد | انقر على **رد** أسفل تعليق لمتابعة المناقشة تحته | +| تفاعل | انقر على أيقونة الرموز التعبيرية بجوار تعليق للاستجابة بسرعة | +| تحرير | مرّر فوق تعليق أرسلته، ثم انقر على زر الإجراء لتحريره | +| حذف | مرّر فوق تعليق أرسلته، ثم انقر على زر الإجراء لحذفه | + +تعرض التعليقات المحررة تسمية "محرر". + +## الإشعارات والاشتراكات + +تُرسل الإشعارات افتراضيًا فقط عندما: + +- يشير إليك شخص باستخدام `@`. +- يرد شخص على تعليقك. + +إذا أردت متابعة سجل عن كثب، فانقر على أيقونة الجرس في الزاوية العلوية اليمنى من لوحة التعليقات وانتقل إلى إشعارات جميع التعليقات. + +تظهر إشعارات التعليقات الجديدة عادةً في مركز الإشعارات في الزاوية السفلية اليسرى من الواجهة. ويؤدي النقر على إشعار إلى فتح السجل المرتبط وتحديد التعليق ذي الصلة. + +## سيناريوهات شائعة + +- **توضيح مهمة**: أشِر إلى زميل باستخدام @ أسفل سجل متطلب أو مهمة لتأكيد التفاصيل، مع حفظ المناقشة داخل السجل. +- **ملاحظات الموافقة**: اترك ملاحظات المراجعة أسفل سجلات التعويض أو العقود أو مراجعة المحتوى كي يتمكن مقدم الطلب من التعامل معها مباشرةً. +- **ملاحظات التغيير**: أضف سببًا بعد تغيير الحقول المهمة ليظل السياق متاحًا لاحقًا. diff --git a/ar/basic/record/record-history.mdx b/ar/basic/record/record-history.mdx new file mode 100644 index 00000000..c8837e0b --- /dev/null +++ b/ar/basic/record/record-history.mdx @@ -0,0 +1,62 @@ +--- +title: "سجل تغييرات السجل" +description: "اعرض سجل التغييرات على مستوى الجدول أو السجل الفردي، وتتبع من غيّر البيانات ووقت تغييرها." +--- + +يُستخدم سجل تغييرات السجل لعرض تغيرات البيانات. يمكنك عرض التغييرات عبر عدة سجلات من مستوى الجدول، أو فتح سجل واحد لعرض سجل تغييراته كاملًا. + +## سجل تغييرات سجلات الجدول + +يعرض سجل تغييرات سجلات الجدول التغييرات عبر السجلات في الجدول الحالي. ويفيد في التحقق من السجلات المعدّلة من منظور الجدول العام، كما يمكنه المساعدة في العثور على السجلات المحذوفة بالخطأ. + +مدخل سجل تغييرات الجدول + +انقر على زر **...** في الزاوية العلوية اليمنى من الجدول، ثم اختر **السجل** > **سجل تغييرات سجلات الجدول**. + +مربع حوار سجل تغييرات سجلات الجدول + +في مربع حوار سجل الجدول، انقر على **عرض السجل** بجوار إدخال في السجل للانتقال إلى السجل المقابل. + +استخدم عوامل التصفية أعلى مربع الحوار لتضييق السجل حسب الحقل والمستخدم والنطاق الزمني. وبعد التصفية، استخدم **مسح عوامل التصفية** للعودة إلى القائمة كاملةً. + +عندما لا تكون **مصفوفة الصلاحيات** مفعّلة، يستطيع المستخدمون الذين يملكون صلاحية تحرير الجدول عرض سجل تغييرات سجلات الجدول. وعندما تكون مفعّلة، لا يستطيع عرضه سوى المسؤولين. + +## سجل تغييرات سجل فردي + +لا يعرض سجل تغييرات السجل الفردي إلا تغييرات السجل الحالي. ويفيد في التحقق من وقت تغيير حقل في سجل واحد وما تغيّر قبل التحديث وبعده. + +مدخل سجل التغييرات في بطاقة تفاصيل السجل + +افتح بطاقة تفاصيل السجل، ثم انقر على أيقونة سجل التغييرات في الزاوية العلوية اليمنى. + +مدخل سجل التغييرات في قائمة سياق السجل + +يمكنك أيضًا النقر بزر الفأرة الأيمن على سجل في طريقة عرض الجدول واختيار **إظهار سجل تغييرات السجل**. + +في سجل تغييرات السجل الفردي، يمكنك استخدام عوامل التصفية نفسها للتركيز على حقل أو معدّل أو نطاق زمني لذلك السجل. + +لا يحتاج المستخدم إلا إلى صلاحية تحرير سجل محدد لعرض سجل تغييراته. + +## ملاحظات + +- يخزن سجل تغييرات السجل التغييرات على مستوى الخلية. +- قد تنشئ عمليات اللصق والتحديث الجماعي إدخالات كثيرة في السجل. +- لا تنشئ السجلات المضافة عبر الاستيراد أو تكرار جدول إدخالات في سجل التغييرات. وتُسجل التغييرات اللاحقة لتلك السجلات كالمعتاد. +- تظهر إجراءات حقول الأزرار بوصفها إدخالات **تم النقر على الزر**. +- إذا لم تتمكن من رؤية مدخل سجل التغييرات، فتحقق أولًا من امتلاكك صلاحية تحرير السجل أو الجدول المقابل. diff --git a/ar/basic/security.mdx b/ar/basic/security.mdx new file mode 100644 index 00000000..130618f7 --- /dev/null +++ b/ar/basic/security.mdx @@ -0,0 +1,184 @@ +--- +title: "الأمان" +description: "تعرّف إلى بنية أمان Teable وحماية البيانات وإجراءات الامتثال" +--- + + + + AES-256 وTLS + + + معتمد + + + غرب الولايات المتحدة، أوريغون + + + بروتوكول OIDC + + + + +يلتزم Teable بالحفاظ على أمان بياناتك وخصوصيتها. صُممت ممارساتنا الأمنية لحماية معلوماتك مع منحك تحكمًا كاملًا في مساحة عملك. + + +## تشفير البيانات + +### التشفير أثناء النقل + +تُحمى جميع البيانات المنقولة بين متصفحك وخوادم Teable باستخدام **تشفير SSL/TLS‏ 256 بت**. ونفرض HTTPS لجميع الاتصالات مع إعادة توجيه تلقائية من HTTP إلى HTTPS. + +### التشفير أثناء التخزين + + + + تُشفّر جميع البيانات المخزنة في قواعد بياناتنا باستخدام **تشفير AES-256** عبر بنية AWS التحتية. ويشمل ذلك: + - تخزين قاعدة البيانات (PostgreSQL على AWS RDS) + - مرفقات الملفات + - النسخ الاحتياطية + + + لديك تحكم كامل في تهيئة التشفير وفق متطلبات بنيتك التحتية. نوصي بما يلي: + - تمكين التشفير على مستوى قاعدة البيانات + - استخدام وحدات تخزين مشفرة + - تطبيق تشفير النسخ الاحتياطية + + + +## أمان البنية التحتية + +تُستضاف Teable السحابية على **Amazon Web Services (AWS)** في منطقة غرب الولايات المتحدة (أوريغون)، مستفيدةً من بنية AWS الأمنية المخصصة للمؤسسات. + + + + تطبيق Helmet وسياسة أمان المحتوى (CSP) لمنع ثغرات الويب الشائعة، مثل XSS واختطاف النقرات. + + + تكامل Cloudflare Turnstile لمنع الهجمات الآلية وعمليات التسجيل المزعجة. + + + حماية من هجمات القوة الغاشمة على محاولات تسجيل الدخول عبر قفل الحساب، وتقييد معدل عمليات التحقق من البريد وإعادة تعيين كلمة المرور. + + + تُجزّأ جميع كلمات المرور باستخدام خوارزمية bcrypt مع أملاح فريدة، ما يجعلها مقاومة لهجمات جداول قوس قزح. + + + +## ضوابط الوصول + +### الأذونات المستندة إلى الأدوار + +يوفر Teable تحكمًا دقيقًا في الوصول حسب الأدوار عبر خمسة مستويات للأذونات: + +| الدور | الإمكانات | +|------|-------------| +| **المالك** | تحكم كامل في مساحة العمل، بما في ذلك الفوترة والحذف | +| **المنشئ** | يمكنه إنشاء الجداول وطرق العرض وإدارة بنية مساحة العمل | +| **المحرر** | يمكنه تحرير السجلات وقيم الحقول | +| **المعلّق** | يمكنه عرض المحتوى وإضافة التعليقات | +| **المشاهد** | وصول للقراءة فقط إلى المحتوى | + +### مصفوفة الصلاحيات + + +تتيح مصفوفة الصلاحيات تحكمًا دقيقًا في الأذونات على مستوى الحقول والسجلات وطرق العرض، بما يمكّنك من تحديد ما يمكن لكل مستخدم أو دور رؤيته وتعديله بدقة. + + +تفيد هذه الميزة خصوصًا في: +- تقييد الحقول الحساسة (مثل الراتب والمعلومات الشخصية) +- تقييد الوصول إلى السجلات حسب الملكية أو القسم +- إنشاء طرق عرض مخصصة بمجموعات أذونات مختلفة + +### حماية روابط المشاركة + +احمِ طرق العرض المشتركة بالمصادقة بكلمة مرور. عند تمكينها، يجب على المستلمين إدخال كلمة المرور الصحيحة قبل الوصول إلى المحتوى المشترك. + +## إدارة البيانات + +### سجل السجلات + +تتبع جميع التغييرات التي أُجريت على سجلاتك عبر سجل مراجعات شامل: +- معرفة من أجرى التغييرات ووقتها +- عرض القيم السابقة قبل التعديلات +- فهم دورة حياة بياناتك كاملة + +### سلة المهملات والاسترداد + +تُنقل العناصر المحذوفة إلى سلة المهملات ويمكن استردادها خلال مدة الاحتفاظ، ما يوفر حماية من فقدان البيانات غير المقصود. + +### النسخ الاحتياطي للبيانات وتصديرها + +يوفر Teable خيارات متعددة لنسخ بياناتك احتياطيًا: + +| الطريقة | الوصف | حالة الاستخدام | +|--------|-------------|----------| +| **[تصدير قاعدة البيانات](/ar/basic/base#export-base-backup-&-migration)** | تنزيل قاعدة البيانات كاملة كملف `.tea` (البنية والبيانات وعمليات الأتمتة) | النسخ الاحتياطي الكامل والترحيل | +| **[تكرار قاعدة البيانات](/ar/basic/base#duplicate-a-base-to-another-space)** | إنشاء نسخة من قاعدة البيانات داخل Teable | لقطة سريعة | +| **[تصدير CSV](/ar/basic/table/export)** | تصدير بيانات جدول منفرد | قابلية نقل البيانات | +| **[التصدير عبر API](/ar/api-doc/record/get)** | تصدير السجلات برمجيًا عبر REST API | النسخ الاحتياطية المؤتمتة | + + +يمكنك نسخ قواعد بياناتك احتياطيًا يدويًا بتصدير قاعدة البيانات كاملة كملف `.tea`، أو تصدير الجداول منفردة كملفات CSV، أو جلب بياناتك عبر Teable API. + + +## تسجيل الدخول الموحّد (SSO) + +يدعم Teable تسجيل الدخول الموحّد للمؤسسات عبر بروتوكول **OIDC (OpenID Connect)** المتوافق مع أبرز موفّري الهوية: + + + + + + + + + + +## الامتثال + + + حصلت Teable السحابية على شهادة ISO 27001، ما يثبت التزامنا بأفضل ممارسات إدارة أمن المعلومات. + + +## النشر ذاتي الاستضافة + +تقدم Teable خيارات نشر ذاتي الاستضافة للمؤسسات ذات المتطلبات الصارمة للأمان أو الامتثال: + + + + احتفظ بجميع البيانات داخل بنيتك التحتية وحدودك الجغرافية + + + انشر داخل VPC لديك مع قواعد جدار حماية وسياسات شبكة مخصصة + + + ادمج منظومة الأمان الحالية وأدوات SIEM والمراقبة لديك + + + طبّق إجراءاتك الخاصة للنسخ الاحتياطي والتعافي من الكوارث + + + +## أفضل ممارسات الأمان + +نوصي بالممارسات التالية لتعزيز أمان مساحة عملك: + + + + أنشئ كلمات مرور تجمع بين الأحرف الإنجليزية الكبيرة والصغيرة والأرقام والرموز. وفكّر في استخدام مدير كلمات مرور. + + + يوفر تسجيل الدخول الموحّد إدارة مركزية للمصادقة وضوابط أمان إضافية. + + + دقّق دوريًا أعضاء مساحة العمل ومستويات أذوناتهم لضمان الوصول بأقل قدر من الصلاحيات. + + + عند مشاركة طرق العرض خارجيًا، مكّن دائمًا الحماية بكلمة مرور للبيانات الحساسة. + + + +## التواصل + +للاستفسارات المتعلقة بالأمان أو للإبلاغ عن ثغرة، تواصل معنا على **support@teable.ai** + diff --git a/ar/basic/space.mdx b/ar/basic/space.mdx new file mode 100644 index 00000000..bca8ef98 --- /dev/null +++ b/ar/basic/space.mdx @@ -0,0 +1,110 @@ +--- +title: "نظرة عامة" +description: "أنشئ المساحات في Teable وأعد تسميتها واحذفها وأدرها." +--- + +{/* mintlify-resync: 2026-05-14 */} +## إنشاء مساحة جديدة + +بعد تسجيل الدخول إلى Teable، أنشئ مساحة من مبدّل المساحات: + + +يمكن لكل مستخدم امتلاك مساحتين مجانيتين كحد أقصى. إذا كنت تملك مساحتين مجانيتين بالفعل، فلن تتمكن من إنشاء مساحة مجانية أخرى. + + +1. انقر على اسم المساحة الحالية في الزاوية العلوية اليسرى +2. انقر على **إنشاء مساحة** +3. أدخل اسم المساحة وأكّد + +إنشاء مساحة من مبدّل المساحات + +## إعادة تسمية مساحة + +يمكن للمستخدمين تغيير اسم المساحة من إعدادات المساحة: + +1. انقر على **الإعدادات** في الشريط الجانبي للمساحة +2. افتح **عام** ضمن **المساحة** +3. حرّر **اسم المساحة** + +إعادة تسمية مساحة في إعدادات المساحة + +## إضافة صورة رمزية للمساحة + +1. انقر على **الإعدادات** في الشريط الجانبي للمساحة +2. افتح **عام** ضمن **المساحة** +3. مرّر فوق الصورة الرمزية واختر صورة + +يجب أن تكون الصورة ملف JPEG أو PNG أو WebP لا يزيد حجمه على 3 ميغابايت. + +## حذف مساحة + +يمكنك أيضًا حذف مساحة عند الحاجة: + +1. انقر على **الإعدادات** في الشريط الجانبي للمساحة +2. افتح **عام** ضمن **المساحة** +3. انقر على **حذف المساحة** + +## مهملات المساحة + +تنتقل المساحات المحذوفة إلى المهملات، حيث يمكنك إفراغ المهملات لحذف البيانات نهائيًا أو استعادة المساحات + +فتح مهملات المساحة من مبدّل المساحات + +## تمت مشاركتها معي + +عندما يشارك شخص قاعدة بيانات معك بصفتك متعاونًا، تظهر قاعدة البيانات ضمن **تمت مشاركتها معي** في الشريط الجانبي للمساحة. + +تختلف قواعد البيانات التي تمت مشاركتها معك عن قواعد البيانات الموجودة في مساحاتك: + +- يتحكم المشارك في الوصول. +- تعتمد الإجراءات المتاحة على صلاحية قاعدة البيانات التي مُنحت لك. +- إذا أزال المشارك وصولك، فلن تعود قاعدة البيانات ظاهرة. + +لمشاركة قاعدة بيانات علنًا، راجع [قاعدة البيانات](/ar/basic/base). + +## إعدادات المساحة + +* انقر على زر "···" في الزاوية العلوية اليمنى من المساحة لفتح قائمة المساحة +* انقر على إعدادات المساحة + +تفتح إعدادات المساحة الآن في مربع الإعدادات نفسه الذي يضم الإعدادات الشخصية. استخدم قسم **المساحة** في الشريط الجانبي للإعداد على مستوى المساحة. + +**عام** + +في صفحة عام، يمكنك تغيير الصورة الرمزية للمساحة، وتحرير **اسم المساحة**، وعرض معرّف المساحة. + +**المتعاونون** + +في صفحة المتعاونين، يمكنك إدارة المتعاونين وإرسال الدعوات وإزالة الأعضاء وضبط الصلاحيات. + +**إعدادات الذكاء الاصطناعي** + +في صفحة إعدادات الذكاء الاصطناعي، يستطيع مالكو المساحة إعداد موفّري نماذج مخصصة لميزات الذكاء الاصطناعي في المساحة الحالية. لتفاصيل الإعداد، راجع [نماذج الذكاء الاصطناعي المخصصة](/ar/basic/ai/custom-model). + +**الدردشة في المراسلة الفورية** + +في صفحة **الدردشة في المراسلة الفورية**، يستطيع مسؤولو المساحة إنشاء روبوتات وإعداد نموذجها وقواعد البيانات والمهارات والملفات المتاحة لها وتكامل المراسلة الفورية. + +**الخطة** + +في صفحة الخطة، يمكنك عرض إمكانات الخطة المتاحة للمساحة الحالية. + +**الفوترة (الإصدار السحابي فقط)** + +في صفحة الفوترة، يمكنك عرض خطة اشتراكك الحالية وإحصاءات الاستخدام. + +**المصادقة** + +في صفحة المصادقة، يمكنك إعداد موفّري تسجيل الدخول الأحادي للمساحة وإدارة **تسجيل الدخول عبر عنوان URL** و**تسجيل الدخول عبر زر**. راجع [تسجيل الدخول الأحادي (SSO)](/ar/basic/sso/overview). diff --git a/ar/basic/space/ai-setting.mdx b/ar/basic/space/ai-setting.mdx new file mode 100644 index 00000000..62378cbf --- /dev/null +++ b/ar/basic/space/ai-setting.mdx @@ -0,0 +1,12 @@ +--- +title: "إعدادات الذكاء الاصطناعي" +description: "نُقلت هذه الصفحة." +--- + +أُوقفت هذه الصفحة. لإعداد النموذج على مستوى المساحة، راجع [نموذج الذكاء الاصطناعي المخصص](/ar/basic/ai/custom-model). + +إذا أردت ربط موفّر النماذج الخاص بك ضمن مساحة، أو تهيئة الموفّرين، أو إدخال أسماء النماذج، أو استكشاف أخطاء اختبارات النماذج وإصلاحها، فانتقل مباشرةً إلى [نموذج الذكاء الاصطناعي المخصص](/ar/basic/ai/custom-model). + + +إذا كنت تستخدم الاستضافة الذاتية وتحتاج إلى إعدادات الذكاء الاصطناعي على مستوى النسخة، أو بيئة تشغيل محادثة الذكاء الاصطناعي، أو إعداد منشئ التطبيقات، فراجع [إعدادات الذكاء الاصطناعي](/ar/basic/admin-panel/ai-setting). + diff --git a/ar/basic/space/base-invite.mdx b/ar/basic/space/base-invite.mdx new file mode 100644 index 00000000..d6faef4d --- /dev/null +++ b/ar/basic/space/base-invite.mdx @@ -0,0 +1,56 @@ +--- +title: "دعوة إلى قاعدة بيانات" +description: "أدِر الصلاحيات على مستوى قاعدة البيانات. ادعُ الأعضاء إلى قاعدة بيانات محددة دون منحهم الوصول إلى المساحة كاملة، لتعاون أدق وأكثر أمانًا على البيانات." +--- + +## ما المتعاون في قاعدة البيانات؟ + +المتعاون في قاعدة البيانات هو عضو مدعو إلى قاعدة بيانات محددة فقط. وبخلاف المتعاونين في المساحة، لا يمكنه الوصول إلا إلى قواعد البيانات التي دُعي إليها، ولا يستطيع رؤية قواعد البيانات الأخرى في المساحة. + +## إضافة متعاونين إلى قاعدة البيانات + +ادخل إلى أي قاعدة بيانات وانقر على زر `دعوة` في الزاوية العلوية اليمنى. تتوفر طريقتان: + +- **الدعوة عبر البريد الإلكتروني**: أدخل عنوان البريد الإلكتروني للمستلم، وحدّد مستوى صلاحية قاعدة البيانات (مثل "المنشئ")، ثم انقر على **إرسال الدعوة**. +- **الدعوة عبر رابط**: انتقل إلى علامة تبويب "الدعوة عبر رابط" لإنشاء رابط دعوة مخصص. انسخ الرابط وشاركه، ويمكن للمستلمين الانضمام بالنقر عليه. + +بعد إرسال دعوة بالبريد الإلكتروني، يمكنك نسخ رابط قاعدة البيانات المباشر الظاهر في اللوحة وإرساله منفصلًا. ويتلقى المدعو أيضًا إشعارًا داخل التطبيق يفتح قاعدة البيانات. + +طرق الدعوة إلى قاعدة البيانات + +يمكنك في لوحة الدعوة عرض جميع المستخدمين الذين يمكنهم حاليًا الوصول إلى قاعدة البيانات: + +- **المتعاونون في قاعدة البيانات**: أعضاء مدعوون مباشرةً إلى قاعدة البيانات هذه فقط. +- **المتعاونون في المساحة**: تظهر شارة "المساحة" بجوار أسمائهم، ما يدل على أنهم أعضاء على مستوى المساحة ويرثون تلقائيًا إمكانية الوصول إلى قاعدة البيانات هذه. + +قائمة المتعاونين في قاعدة البيانات + +توفر قاعدة البيانات أربعة أدوار للصلاحيات لدعم مستويات مختلفة من التعاون. لمقارنة الصلاحيات بالتفصيل، راجع [تفاصيل الصلاحيات](/ar/basic/space/space-permission). + +للتحكم بدقة أكبر على مستوى الجدول أو الحقل أو السجل، استخدم ميزة [مصفوفة الصلاحيات](/ar/basic/authority-matrix). + +| الدور | الوصف | +| ---- | ----------- | +| المنشئ | يستطيع تنفيذ إجراءات الإنشاء، وتعديل بنية الجدول، وتحرير عمليات الأتمتة، وتفعيل مصفوفة الصلاحيات. | +| المحرر | يستطيع تعديل البيانات. | +| المعلّق | يستطيع التعليق على السجلات، لكنه لا يستطيع تعديل البيانات. | +| المشاهد | يستطيع العرض، لكنه لا يستطيع التعليق. | + +## حالات الاستخدام + +صُممت الدعوة إلى قاعدة البيانات للمتعاونين الخارجيين. فعلى سبيل المثال، يمكن دعوة مصمم مستقل استُعين به لتنظيم مكتبة أصول إلى قاعدة البيانات تلك وحدها بصلاحية **المحرر**، دون أن يرى أي قواعد بيانات أخرى في المساحة. + +## ملاحظات + +- **توريث الصلاحيات**: يتمتع مدير المساحة تلقائيًا بوصول كامل إلى جميع قواعد البيانات في تلك المساحة، ولا يمكن خفض صلاحيته على مستوى قاعدة البيانات. +- **أمان الرابط**: يمكن لأي شخص يحصل على رابط دعوة محاولة الانضمام إلى قاعدة البيانات. وإذا تسرّب الرابط، يمكنك إبطاله بالنقر على علامة X المجاورة له في لوحة الدعوة. + +عند استخدام [مصفوفة الصلاحيات](/ar/basic/authority-matrix) و[تفاصيل الصلاحيات](/ar/basic/space/space-permission) معًا، لا يُعفى من قيود مصفوفة الصلاحيات إلا المستخدمون من فئة **المدير**. ويخضع لها جميع المستخدمين الآخرين. diff --git a/ar/basic/space/billing.mdx b/ar/basic/space/billing.mdx new file mode 100644 index 00000000..a7cbd70d --- /dev/null +++ b/ar/basic/space/billing.mdx @@ -0,0 +1,273 @@ +--- +title: "الفوترة والاشتراك" +description: "تعرّف على كيفية إدارة اشتراكك وعرض تفاصيل الفوترة ومراقبة الاستخدام وتنزيل الفواتير." +--- + +{/* mintlify-resync: 2026-05-14 */} +لا تتوفر الفوترة إلا في الإصدار السحابي من Teable. ينبغي لمستخدمي الاستضافة الذاتية الرجوع إلى وثائق [تفعيل الترخيص](/ar/deploy/activate). + +## الوصول إلى إعدادات الفوترة + +لا يستطيع الوصول إلى إعدادات الفوترة إلا **مالكو المساحة**. للوصول إليها: + +1. انقر على **الإعدادات** في الشريط الجانبي للمساحة +2. اختر **الفوترة** ضمن **المساحة** + +نظرة عامة على إعدادات الفوترة + +## نظرة عامة على صفحة الفوترة + +تعرض صفحة الفوترة المعلومات التالية: + +### الخطة الحالية + +تعرض حالة اشتراكك الحالية، بما في ذلك: + +- **مستوى الاشتراك** (Free أو Pro أو Business) +- **السعر لكل مقعد** (شهريًا أو سنويًا) +- **عدد المقاعد** التي اشتريتها +- **تاريخ التجديد**، أو تاريخ الإلغاء عندما يكون الاشتراك مضبوطًا على الإلغاء +- تغيير في الخطة مجدول بالفعل لنهاية الفترة الحالية + +انقر على **تغيير الخطة** لفتح صفحة الخطة، حيث يمكنك تغيير مستوى الخطة وعدد المقاعد وفئة الرصيد. + +### إحصاءات الاستخدام + +راقب استهلاك موارد مساحتك باستخدام هذه المقاييس: + +| المقياس | الوصف | +|--------|-------------| +| **إجمالي المتعاونين** | عدد المتعاونين الخاضعين للفوترة في المساحة الحالية وقواعد بياناتها | +| **الحد الأقصى لعمليات تشغيل الأتمتة شهريًا** | حصة تشغيل الأتمتة الشهرية. تستهلك كل عملية تشغيل حصة تشغيل واحدة | +| **إجمالي السجلات** | إجمالي عدد الصفوف في جميع جداول المساحة | +| **مساحة تخزين المرفقات** | إجمالي مساحة التخزين التي تستخدمها المرفقات المرفوعة | +| **إجمالي رسائل البريد الإلكتروني** | رسائل البريد الإلكتروني المرسلة عبر الأتمتة باستخدام خدمة بريد Teable الإلكتروني | + +تُحتسب البيانات الموجودة في مهملات المساحة ومهملات قاعدة البيانات ضمن إحصاءات إجمالي السجلات. لتقليل إجمالي عدد السجلات، نظّف البيانات في "المساحة ← المهملات" أو "قاعدة البيانات ← المهملات". + +انقر على **التفاصيل** في بطاقة **إجمالي السجلات** لعرض استخدام السجلات حسب قاعدة البيانات. يعرض مربع الحوار السجلات النشطة وسجلات المهملات وإجمالي السجلات لكل قاعدة بيانات. ويمكنك فتح صفحة مهملات قاعدة بيانات من مربع الحوار، أو حذف قاعدة بيانات موجودة بالفعل في المهملات نهائيًا. + +### عند بلوغ حد + +عندما تبلغ المساحة حدًا من حدود الخطة، يوقف Teable الإجراء قبل تشغيله ويفتح مربع حوار الترقية، الذي يذكر الحد الذي بلغته ويوضح مقدار ما استخدمته منه ويربط بتفاصيل الاستخدام لكل قاعدة بيانات. ينطبق ذلك على اللصق والتعبئة وتكرار الصفوف وإنشاء السجلات جماعيًا والاستيراد ورفع المرفقات. + +للمتابعة، رقّ الخطة أو وفّر مساحة بحذف سجلات أو مرفقات. + +### الأرصدة + +الأرصدة هي وحدات الاستخدام في Teable للميزات المدعومة بالذكاء الاصطناعي. يعتمد الاستهلاك على رموز الذكاء الاصطناعي التي تستخدمها نماذج اللغة الأساسية، ويمكنك مراجعة التفاصيل في صفحة الفوترة. تُعاد تهيئة الأرصدة في كل فترة فوترة ولا تُرحّل. + +في الخطط المدفوعة، تُشترى الأرصدة لكل مقعد. تحمل كل بطاقة خطة فئة **أرصدة/مقعد/شهر**، وتساوي أرصدة المساحة الشهرية عدد المقاعد المشتراة مضروبًا في تلك الفئة، ويتشاركها كل من في المساحة. + +| الخطة | الأرصدة الشهرية | +|------|-----------------| +| **Free** | 200 رصيد للمساحة | +| **Pro** | من 2,000 إلى 6,000 رصيد لكل مقعد | +| **Business** | من 3,000 إلى 1,000,000 رصيد لكل مقعد | + +للحصول على مزيد من الأرصدة، اشترِ مقاعد إضافية أو اختر فئة رصيد أعلى في بطاقة الخطة. وكلما كبرت الفئة، انخفضت تكلفة الرصيد الواحد. + +**ما يحدث عند نفاد الأرصدة:** بعد استنفاد أرصدتك الشهرية، ستُقيّد ميزات الذكاء الاصطناعي حتى دورة الفوترة التالية أو حتى ترفع فئة الرصيد. + +لا تنطبق الأرصدة إلا على Teable Cloud؛ لا تستهلك إصدارات الاستضافة الذاتية أرصدة Teable Cloud، بل تحدها بنيتك التحتية وأي موفّري ذكاء اصطناعي خارجيين تستخدمهم. + +تعرض بطاقة الأرصدة إجمالي أرصدتك والأرصدة الإضافية المشمولة وتاريخ إعادة التهيئة والاستخدام الحالي. انقر على **التفاصيل** لفتح **ملخص استخدام الأرصدة**، حيث يمكنك التصفية حسب النطاق الزمني والنوع، وعرض مخططات الاستخدام، والتحقق من سجلات الاستخدام حسب الاسم والنوع والنموذج والأرصدة والعضو والتاريخ. + +### تفاصيل الفوترة + +تعرض معلومات الفوترة: +- **الاسم**: اسم حساب الفوترة +- **البريد الإلكتروني**: عنوان البريد الإلكتروني للفوترة + +انقر على **إدارة المعلومات** لفتح بوابة الدفع، حيث يمكنك: +- تحديث طريقة الدفع +- تغيير عنوان الفوترة +- عرض سجل المدفوعات + +يفتح زر "إدارة المعلومات" بوابة عملاء Stripe في علامة تبويب جديدة. + +### الفواتير + +اعرض فواتيرك ونزّلها: + +1. مرّر إلى قسم **الفواتير** أسفل الصفحة +2. ابحث عن الفاتورة المطلوبة في الجدول +3. انقر على أيقونة التنزيل للحصول على نسخة PDF + +يعرض جدول الفواتير: +- **المرجع**: رقم الفاتورة +- **الضريبة**: المبلغ الإجمالي شاملًا الضريبة +- **الحالة**: حالة الدفع (مثل مدفوعة) +- **التاريخ**: تاريخ الفاتورة +- **تنزيل**: زر تنزيل PDF + +## تغيير خطة اشتراكك + +لترقية خطتك أو خفضها أو تعديلها: + +1. انتقل إلى **الإعدادات** ← **الخطة** +2. اختر فترة الفوترة (شهريًا أو سنويًا) أعلى الصفحة +3. في بطاقة الخطة التي تريدها، اختر فئة **أرصدة/مقعد/شهر** وحدّد عدد المقاعد. تعرض البطاقة الأرصدة الشهرية الناتجة والسعر الإجمالي +4. انقر على **اشتراك**، أو **تعديل الاشتراك** في خطتك الحالية +5. أكمل الدفع أو التأكيد + +الفوترة السنوية أقل تكلفة من الشهرية. تعرض صفحة الخطة مقدار التوفير الحالي في علامة تبويب سنوي. + +يمر تغيير اشتراك قائم عبر صفحة تأكيد في بوابة الفوترة، ثم يعيدك إلى صفحة الفوترة. تسري الترقية فورًا وتُحسب بالتناسب، بينما يُجدول خفض الخطة لنهاية فترة الفوترة الحالية. ويظهر التغيير المجدول أو الإلغاء المعلّق في لافتة أعلى بطاقات الخطط، مع خيار **تراجع** للإبقاء على الاشتراك كما هو. + +### الخطط المتاحة + +| الخطة | الأنسب لـ | +|------|----------| +| **Free** | الأفراد | +| **Pro** | الفرق الصغيرة والمحترفين | +| **Business** | الشركات المتنامية | + +### المقاعد + +تُشترى المقاعد مقدمًا، ولا بأس بشراء عدد يتجاوز حجم فريقك الحالي. يشغل المقعد المتعاونون ذوو دور **المالك** أو **المنشئ** أو **المحرر** في المساحة وقواعد بياناتها. أما **المعلّق** و**المشاهد** فمجانيان. + +في الخطط السحابية، يمثل عدد المقاعد المشتراة حدًا صارمًا. يحظر Teable أي إجراء قد يتجاوز بالمساحة هذا الحد ويعرض إضافة مقاعد. يشمل ذلك دعوات البريد الإلكتروني، وإنشاء رابط دعوة بدور خاضع للفوترة أو تحويل الرابط إلى هذا الدور، والانضمام عبر هذا الرابط، وإضافة المتعاونين مباشرةً، وترقية شخص إلى دور خاضع للفوترة. ويمكن لمن يشغل مقعدًا بالفعل الانضمام إلى قاعدة بيانات أخرى أو تغيير دوره دون شغل مقعد جديد. + +للمتابعة، أضف مقاعد في صفحة الخطة، أو امنح الشخص دور المعلّق أو المشاهد المجاني. لا يستطيع شراء المقاعد إلا مالك المساحة. + +### اشتراكات الاستخدام الإضافية + +في علامة تبويب **الخطة**، يتيح لك قسم **اشتراكات الاستخدام الإضافية** شراء استخدام إضافي دون تغيير الخطة الرئيسية. تشمل الإضافات المتاحة: + +- **الأتمتة** +- **السجلات** +- **مساحة تخزين المرفقات** + +## إلغاء اشتراكك + +يتبع Teable سياسة إلغاء تقوم على "استخدم ما دفعت ثمنه". عند إلغاء اشتراك، لا تطلب إنهاء الخدمة فورًا أو استرداد المبلغ، بل تختار عدم التجديد في نهاية فترة الفوترة الحالية. + +لإلغاء اشتراكك: + +1. انتقل إلى **إعدادات المساحة** ← **الفوترة** +2. انقر على **تغيير الخطة** للانتقال إلى صفحة الخطة +3. ابحث عن خطتك الحالية وانقر على خيار الإلغاء +4. أكّد الإلغاء + + +بعد الإلغاء: +- يظل اشتراكك نشطًا حتى نهاية فترة الفوترة الحالية +- سيظهر إشعار "سيُلغى في [التاريخ]" +- سيُحتفظ ببياناتك، لكن الميزات المتميزة ستصبح غير متاحة بعد انتهاء الفترة +- يمكنك إعادة الاشتراك في أي وقت لاستعادة الوصول إلى الميزات المتميزة +- لا تُرد أي مبالغ عن الوقت غير المستخدم + + +## الأسئلة الشائعة + + + + لا يستطيع الوصول إلى إعدادات الفوترة إلا مالك المساحة. ولا يمكن للمتعاونين الآخرين (المنشئون والمحررون والمعلّقون والمشاهدون) عرض معلومات الفوترة أو تعديلها. + + + + تُحتسب المقاعد بناءً على المتعاونين ذوي دور **المحرر** أو أعلى (المالك والمنشئ والمحرر). ولا تترتب رسوم على المتعاونين ذوي دور **المعلّق** أو **المشاهد** (للقراءة فقط). + + - **الإصدار السحابي**: تُفوْتر خطط Teable Cloud لكل مقعد على مستوى المساحة، وتُشترى المقاعد مقدمًا للمساحة كاملة. تُحسب الرسوم بالتناسب: إذا اشتريت مقاعد في منتصف فترة الفوترة، فلا تدفع إلا عن الوقت المتبقي في تلك الفترة. ولا يمكن أن يتجاوز عدد المتعاونين المقاعد المشتراة. + - **إصدار الاستضافة الذاتية**: يعتمد التسعير على ترخيص مقاعد مدفوع مقدمًا شهريًا أو سنويًا، دون حدود للتخزين أو الصفوف أو غير ذلك من الاستخدام. تُحتسب المقاعد على مستوى المثيل كاملًا. وإذا تجاوز عدد المستخدمين حد الترخيص، فستحتاج إلى ترقية خطتك لإضافة مقاعد. راجع [تفعيل الترخيص](/ar/deploy/activate) للتفاصيل. + + في خطط Business المفعّل فيها مصفوفة الصلاحيات، يُحتسب المستخدمون المعيّنون عبر مصفوفة الصلاحيات ضمن المستخدمين الخاضعين للفوترة. + + ألديك مزيد من الأسئلة عن المنتجات أو الأسعار؟ [تواصل مع المبيعات](https://contact.teable.ai/). + + + + في الخطط السحابية، يمثل عدد المقاعد المشتراة حدًا صارمًا. تُرفض الدعوة أو رابط الدعوة أو تغيير الدور الذي يحتاج إلى مقعد لم تشتره، ويعرض Teable إضافة مقاعد. اشترِ المقاعد في صفحة الخطة، أو امنح الشخص دور المعلّق أو المشاهد المجاني. ولا تترتب تكلفة إضافية أو حاجة إلى تأكيد عند دعوة شخص ضمن المقاعد التي تملكها بالفعل. لكن إضافة عضو عبر مصفوفة الصلاحيات تظل تطلب التأكيد، لأن هذا المسار يفوتر تلقائيًا. + + + + نعم، حتى يدخل حيز التنفيذ. تذكر اللافتة أعلى بطاقات الخطط التغيير المعلّق وتاريخ تطبيقه. انقر على **تراجع**، وسيظل الاشتراك يتجدد كما هو. + + + + تُفحص الإجراءات الجماعية مقارنةً بعدد السجلات التي ستضيفها، بدلًا من مواصلة الكتابة حتى نفاد الحصة. ويُرفض أي إجراء قد يتجاوز الحد بالكامل، حتى لا يترك أبدًا بيانات مكتوبة جزئيًا في جدولك. + + + + **إجمالي السجلات** و**مساحة تخزين المرفقات** مقياسان متغيران للاستخدام. يحسبهما Teable تلقائيًا، لكن قد تستغرق الصفحة بعض الوقت لتتحدّث بعد عمليات الاستيراد الكبيرة أو الحذف أو تنظيف المهملات أو رفع المرفقات أو حذفها. + + إذا ظل **إجمالي السجلات** متأخرًا، فافتح **التفاصيل** في تلك البطاقة واستخدم **المعايرة** لإعادة عد السجلات في جميع جداول المساحة. وإذا بدت **مساحة تخزين المرفقات** غير دقيقة، فاستخدم **المعايرة** في تلك البطاقة لإعادة حساب مساحة التخزين للمساحة الحالية. وقد تستغرق الصفحة قليلًا من الوقت لتتحدّث بعد المعايرة. + + + + ستُحصّل منك الرسوم فور الاشتراك، ثم في تاريخ التجديد لكل دورة فوترة (شهريًا أو سنويًا). + + + + انقر على زر **إدارة المعلومات** في قسم تفاصيل الفوترة. يفتح ذلك بوابة عملاء Stripe حيث يمكنك تحديث بطاقتك أو إضافة طرق دفع بديلة. + + + + يتبع Teable سياسة إلغاء تقوم على "استخدم ما دفعت ثمنه". وعند الإلغاء، تختار عدم التجديد في نهاية فترة الفوترة الحالية، ولا تطلب إنهاء الخدمة فورًا. + + لا يقدم Teable مبالغ مستردة للاشتراكات الملغاة (السحابية والمستضافة ذاتيًا)، لأن خدمتك تستمر حتى نهاية الفترة المدفوعة مقدمًا. وتحصل على القيمة الكاملة لدفعتك بالحفاظ على الوصول إلى الميزات المدفوعة حتى انتهاء اشتراكك طبيعيًا. + + وبالنسبة إلى تراخيص الاستضافة الذاتية تحديدًا، لا يمكن تعديل مفتاح الترخيص أو خفضه أو استرداد قيمته بعد إصداره. والسبب أن تراخيص الاستضافة الذاتية تصدر كتصاريح مدفوعة مقدمًا ومحددة المدة مع تحقق مشفر لا يمكن إبطاله بعد التسليم. وإذا احتجت إلى عدد مختلف من المقاعد، فستحتاج إلى شراء ترخيص جديد عند انتهاء الترخيص الحالي. + + بالنسبة إلى مدفوعات الفوترة السنوية، لا يمكن استرداد الدفعة السنوية المقدمة ولا كل دفعة سنوية إضافية للمستخدم ولا مدفوعات التسوية الشهرية أو ربع السنوية. نقدم هذا السعر المخفض لتشجيع الاستثمار طويل الأجل في Teable، ما يساعدنا على توظيف مزيد من الأشخاص وتحسين المنتج وتجربة العملاء ودعم المشروع مفتوح المصدر. وإذا لم تكن مستعدًا للالتزام، فلا بأس؛ التزم بالفوترة الشهرية. + + + + إذا فشلت عملية دفع، فسنخطرك عبر البريد الإلكتروني. وستحصل على فترة سماح لتحديث طريقة الدفع قبل تعليق اشتراكك. + + + + تستخدم الميزات المدعومة بالذكاء الاصطناعي في Teable الأرصدة. راجع تفاصيل استخدام الأرصدة في صفحة الفوترة لمعرفة الاستخدام المحدد. تحصل المساحات المجانية على 200 رصيد شهريًا. وفي خطتي Pro وBusiness، تختار فئة أرصدة/مقعد/شهر عند الاشتراك، وتساوي أرصدة المساحة الشهرية تلك الفئة مضروبة في المقاعد المشتراة. + + + + **هل يمكنني التراجع عن مطالبة لاستعادة أرصدتي؟** + + لا يمكن إرجاع الأرصدة بعد معالجة المطالبة. وفي منشئ التطبيقات، يمكنك الرجوع بتطبيقك إلى إصدار سابق للتراجع عن التغييرات غير المرغوب فيها، لكن الأرصدة المستخدمة لتلك المطالبة لن تُستعاد. + + **استُخدمت الأرصدة في إجراء فاشل. هل يمكنني استعادتها؟** + + تُستهلك الأرصدة بمجرد معالجة مطالبتك، حتى إذا لم تكن النتيجة كما توقعت. وإذا انقطع وكيل الذكاء الاصطناعي على نحو غير متوقع، يعيد Teable الأرصدة المستخدمة في الخطوة الأخيرة الفاشلة. وإذا اعتقدت أن العطل سببه مشكلة من جانب Teable، فتواصل مع الدعم لنراجعها. + + **فقدت أرصدة بسبب أخطاء متكررة لم تصلح المشكلة.** + + نتفهم الإحباط. بالنسبة إلى منشئ التطبيقات، اتبع [الدليل العملي لمنشئ التطبيقات](/ar/basic/ai/app-builder-practical-guide) قبل إرسال مطالبات إصلاح متكررة. + + **أجرى الذكاء الاصطناعي تغييرات لم أطلبها واستخدم أرصدتي.** + + إذا أجرى وكيل الذكاء الاصطناعي تغييرات غير مرغوب فيها في منشئ التطبيقات، فيمكنك الرجوع إلى إصدار سابق. ولا تُرد أرصدة المطالبات المعالجة تلقائيًا ما لم ينقطع وكيل الذكاء الاصطناعي على نحو غير متوقع، لكن إذا بدا السلوك عيبًا في المنتج فيمكننا مراجعته. + + إذا كنت تعتقد أن الأرصدة استُهلكت دون إنصاف بسبب مشكلة من جانب Teable، فأرسل [بلاغًا عن مشكلة في الأرصدة](https://app.teable.ai/share/shrmBIyArdkWm999klP/view) يتضمن تفاصيل الاستخدام ذات الصلة. + + + + يمكن أن تتضمن عملية تشغيل واحدة في دردشة الذكاء الاصطناعي أو منشئ التطبيقات عدة خطوات معالجة. تعرض المحادثة وصفحة الفوترة إجمالي الأرصدة لذلك التشغيل. ويظل العمل الذي أكمله Cuppy وحفظه قابلًا للاستخدام. وإذا انقطعت الخطوة الأخيرة بسبب خطأ غير متوقع، فتُرد أرصدة تلك الخطوة تلقائيًا. ويمكنك متابعة العمل في المحادثة نفسها. + + + + في Teable Cloud، يرسل Teable إشعارات استخدام أرصدة الذكاء الاصطناعي إلى مالكي المساحة عندما تقترب مساحة من حصة أرصدتها أو تتجاوزها، أو عندما يرتفع استخدام الأرصدة بشدة خلال فترة قصيرة. + + بالنسبة إلى تذكيرات الحصة، يرسل Teable إشعارًا عندما يصل استهلاك فترة الفوترة الحالية إلى 80% أو 90% من الأرصدة المتاحة. + + قد يرسل Teable Cloud أيضًا إشعارات مهمة بشأن الاستخدام غير المعتاد، مثل زيادة يومية كبيرة أو طفرة مفاجئة خلال فترة قصيرة. يستخدم النظام أنماط الاستخدام اليومية والساعية الحديثة، وقد تتغير الحدود الدقيقة. + + يفتح الإشعار **إعدادات المساحة** ← **الفوترة**. وعند توفرها، يعرض المصادر الرئيسية لاستخدام الأرصدة. + + إذا كان الاستخدام متوقعًا، ففكر في رفع فئة الرصيد أو تغيير خطتك. وإذا كان غير متوقع، فراجع أكبر مساهم واضبط مسار العمل أو التطبيق أو ميزة الذكاء الاصطناعي ذات الصلة أو أوقفها مؤقتًا. + + + + تتبع الأرصدة المقاعد التي اشتريتها، لا عدد الأشخاص الذين يستخدمونها. ولا يؤدي شغل مقعد تملكه بالفعل إلى أي تغيير. للحصول على مزيد من الأرصدة، اشترِ مقاعد أو ارفع فئة الرصيد في صفحة الخطة. + + + +## هل تحتاج إلى مساعدة؟ + +إذا كانت لديك أسئلة أو مشكلات تتعلق بالفوترة: +- راسلنا عبر البريد الإلكتروني على **support@teable.ai** +- أدرج اسم مساحتك وبريد الفوترة الإلكتروني للحصول على مساعدة أسرع diff --git a/ar/basic/space/space-invite.mdx b/ar/basic/space/space-invite.mdx new file mode 100644 index 00000000..267ac654 --- /dev/null +++ b/ar/basic/space/space-invite.mdx @@ -0,0 +1,75 @@ +--- +title: "دعوة إلى المساحة" +description: "ادعُ الآخرين ليصبحوا متعاونين في المساحة عبر البريد الإلكتروني أو رابط" +--- + +## ما المتعاون في المساحة؟ + +عندما تشارك مساحة مع مستخدم آخر، يصبح متعاونًا في المساحة ويتمتع بالوصول إلى جميع قواعد البيانات داخلها. + +## إضافة متعاونين إلى المساحة + +يتطلب إنشاء رابط دعوة صلاحية المدير أو المنشئ في المساحة. + +1. انقر على المساحة التي تريد إضافة المتعاونين إليها في الشريط الجانبي الأيسر. +2. انقر على زر "دعوة" بالقرب من أعلى المساحة. +3. يؤدي ذلك إلى فتح نافذة دعوة المساحة، حيث تظهر خيارات الدعوة عبر البريد الإلكتروني أو الرابط. كما ستجد "روابط الدعوة" التي أُعدت سابقًا و"المتعاونين في المساحة" الحاليين في القسم المخصص لكل منهما. +4. **الدعوة عبر البريد الإلكتروني**: أدخل عنوان بريد إلكتروني أو عدة عناوين (مفصولة بفواصل). ثم حدّد مستوى الصلاحية الذي تريد منحه للمستخدمين في جميع قواعد البيانات في المساحة. وأخيرًا، انقر على إرسال البريد الإلكتروني لدعوة المستخدمين إلى التعاون. + + بعد إرسال دعوة بالبريد الإلكتروني، يمكنك نسخ رابط المساحة المباشر الظاهر في اللوحة وإرساله منفصلًا. ويتلقى المدعو أيضًا إشعارًا داخل التطبيق يفتح المساحة. + +دعوة المتعاونين إلى المساحة عبر البريد الإلكتروني + +5. **الدعوة عبر رابط**: انقر على خيار "الدعوة عبر رابط". ثم حدّد مستوى الصلاحية الذي سيمنحه رابط الدعوة لجميع قواعد البيانات في المساحة. وأخيرًا، انقر على إنشاء رابط. ويمكنك الآن النقر على أيقونة الحافظة بجوار الرابط المنشأ لمشاركته بالطريقة التي تناسبك. + +دعوة المتعاونين إلى المساحة عبر رابط + +يمكن للمتعاونين في المساحة الوصول إلى جميع قواعد البيانات فيها. وإذا كان شخص ما يحتاج إلى العمل على قواعد بيانات محددة فقط، ففكر في إضافته ضمن [المتعاونين في قاعدة البيانات](/ar/basic/space/base-invite). + +## حذف روابط الدعوة + +لحذف رابط دعوة، انقر على علامة X في الجانب الأيمن من الرابط. سيؤدي ذلك إلى إبطال الرابط، ولن يتمكن أي شخص يحاول استخدام الرابط القديم من الوصول إلى المساحة. + +حذف رابط دعوة إلى المساحة + +## إزالة المتعاونين من المساحة + +يمكنك إزالة المتعاونين من نافذة مشاركة المساحة. انقر على علامة X بجوار المستخدم الذي تريد إزالته. إليك بعض النقاط المهمة: + +إزالة متعاون من المساحة + +* **قيد الصلاحية**: لا يستطيع إزالة المتعاونين الآخرين إلا المستخدمون الذين لديهم صلاحية المدير أو المنشئ. +* **إزالة وصولك بنفسك**: يمكنك إزالة وصولك إذا كان في المساحة مدير آخر واحد على الأقل. +* **النطاق**: لا تؤدي إزالة شخص من المساحة إلى إزالة الصلاحيات التي يحملها في قواعد بيانات منفردة. + +عند إضافة مستخدمين جدد إلى مساحة، يمكنك تعيين الأدوار التالية (راجع [تفاصيل الصلاحيات](/ar/basic/space/space-permission)): + +| الدور | الوصف | +| ---- | ----------- | +| المدير | مسؤول عن الإدارة، ويتمتع بصلاحيات كاملة تشمل إدارة المستخدمين والجداول وعمليات الأتمتة وتفعيل مصفوفة الصلاحيات. | +| المنشئ | يستطيع تنفيذ إجراءات الإنشاء، وتعديل بنية الجدول، وتحرير عمليات الأتمتة، وتفعيل مصفوفة الصلاحيات. | +| المحرر | يستطيع تعديل البيانات. | +| المعلّق | يستطيع التعليق على السجلات، لكنه لا يستطيع تعديل البيانات. | +| المشاهد | يستطيع العرض، لكنه لا يستطيع التعليق. | + +## مراجعة الوصول إلى قواعد البيانات + +يظهر كل شخص أو قسم مرة واحدة في قائمة المتعاونين في المساحة، حتى عندما يحمل أيضًا صلاحيات في قواعد بيانات منفردة. وتبيّن شارة **صلاحيات قواعد البيانات** بجوار الدور عدد قواعد البيانات التي دُعي إليها. ويُدرج الشخص الذي لم يُضف قط إلى المساحة نفسها بوصفه **لديه وصول إلى قواعد بيانات محددة فقط**. + +وسّع صفًا لرؤية قواعد البيانات تلك والدور الذي يحمله في كل منها. ومن هناك، يسحب خيار **إزالة الوصول إلى قاعدة البيانات** صلاحية قاعدة بيانات واحدة، بينما يسحب خيار **إزالة المتعاون** في صف خاص بقواعد البيانات فقط جميع صلاحيات قواعد البيانات التي يحملها ذلك الشخص في هذه المساحة. diff --git a/ar/basic/space/space-permission.mdx b/ar/basic/space/space-permission.mdx new file mode 100644 index 00000000..4b0ef0e5 --- /dev/null +++ b/ar/basic/space/space-permission.mdx @@ -0,0 +1,63 @@ +--- +title: "تفاصيل صلاحيات التعاون" +description: "يوضح هذا القسم نطاق العمليات لأربعة مستويات مختلفة من الصلاحيات في المساحات وقواعد البيانات." +--- +يوفر Teable تحكمًا أدق في الصلاحيات على مستوى الجدول والحقل والسجل. يُرجى الرجوع إلى قسم [مصفوفة الصلاحيات](/ar/basic/authority-matrix). + +### عمليات قاعدة البيانات + +| الوصف | المنشئ/المدير | المحرر | المعلّق | المشاهد | +| ----------- | :------------: | :----: | :-------: | :----: | +| عرض البيانات داخل قاعدة البيانات | ✅ | ✅ | ✅ | ✅ | +| دعوة مستخدمين بصلاحيات مساوية أو أدنى | ✅ | ✅ | ✅ | ✅ | +| إنشاء روابط مشاركة طريقة العرض أو حذفها | ✅ | ✅ | | | +| إنشاء عمليات الأتمتة وتحريرها | ✅ | | | | +| تفعيل مصفوفة الصلاحيات | ✅ | | | | +| إنشاء روابط دعوة للتعاون في قاعدة البيانات أو حذفها | ✅ | | | | +| إعادة تسمية قاعدة البيانات | ✅ | | | | + +### عمليات السجلات + +| الوصف | المنشئ/المدير | المحرر | المعلّق | المشاهد | +| ----------- | :------------: | :----: | :-------: | :----: | +| التعليق على السجلات | ✅ | ✅ | ✅ | | +| إضافة السجلات أو حذفها أو تعديلها | ✅ | ✅ | | | + +### عمليات طرق العرض + +| الوصف | المنشئ/المدير | المحرر | المعلّق | المشاهد | +| ----------- | :------------: | :----: | :-------: | :----: | +| تنزيل طريقة العرض بصيغة CSV | ✅ | ✅ | ✅ | ✅ | +| طباعة طريقة العرض | ✅ | ✅ | ✅ | ✅ | +| نسخ البيانات من طريقة العرض | ✅ | ✅ | ✅ | ✅ | +| إضافة طرق العرض أو حذفها أو تعديلها | ✅ | ✅ | ✅ *طرق العرض الشخصية فقط | | +| قفل طرق العرض وفتح قفلها | ✅ | | | | +| حذف طرق العرض الشخصية الخاصة بمتعاونين آخرين | ✅ | | | | + +### عمليات الحقول + +| الوصف | المنشئ/المدير | المحرر | المعلّق | المشاهد | +| ----------- | :------------: | :----: | :-------: | :----: | +| إضافة الحقول وحذفها وتكرارها وإعادة تسميتها وتحريرها | ✅ | | | | + +### عمليات الجداول + +| الوصف | المنشئ/المدير | المحرر | المعلّق | المشاهد | +| ----------- | :------------: | :----: | :-------: | :----: | +| إضافة الجداول وحذفها وتكرارها وإعادة تسميتها | ✅ | | | | +| استيراد CSV كجدول جديد | ✅ | | | | + +### عمليات المساحة + +| الوصف | المدير | المنشئ | المحرر | المعلّق | المشاهد | +| ----------- | :-----: | :-----: | :----: | :-------: | :----: | +| الوصول إلى جميع قواعد البيانات في المساحة | ✅ | ✅ | ✅ | ✅ | ✅ | +| دعوة مستخدمين بصلاحيات مساوية أو أدنى | ✅ | ✅ | ✅ | ✅ | ✅ | +| إعادة تسمية المساحة | ✅ | ✅ | | | | +| إضافة قواعد البيانات وإزالتها في المساحة | ✅ | ✅ | | | | +| إعادة ترتيب قواعد البيانات داخل المساحة | ✅ | ✅ | | | | +| نقل قواعد البيانات بين المساحات | ✅ | ✅ | | | | +| ضبط إعدادات الفوترة وترقية المساحة | ✅ | | | | | +| منح صلاحيات المدير | ✅ | | | | | + +بعد تفعيل مصفوفة الصلاحيات، لا يُعفى من قيودها إلا المستخدمون الذين لديهم صلاحية "المدير". أما في مستويات الصلاحية الأدنى من "المدير" (مثل "المنشئ" وما دونه)، فيخضع جميع الأعضاء، باستثناء مسؤولي مصفوفة الصلاحيات، للتحكم الموحد للمصفوفة. diff --git a/ar/basic/sso/auth0.mdx b/ar/basic/sso/auth0.mdx new file mode 100644 index 00000000..e60f7f7d --- /dev/null +++ b/ar/basic/sso/auth0.mdx @@ -0,0 +1,139 @@ +--- +title: "تسجيل الدخول الأحادي عبر Auth0" +description: "إعداد Auth0 بوصفه موفّر مصادقة تسجيل الدخول الأحادي في Teable" +--- + +{/* mintlify-resync: 2026-05-14 */} +متاح في خطة Business والخطط الأعلى + +## الخطوة 1: إنشاء موفّر مصادقة في Teable + +1. انتقل إلى إعدادات تسجيل الدخول الأحادي في Teable +2. أنشئ موفّر مصادقة جديدًا، وسمّه **Auth0**، ثم اختر **OpenID Connect** + +## الخطوة 2: الوصول إلى لوحة معلومات Auth0 + +1. سجّل الدخول إلى [لوحة معلومات Auth0](https://manage.auth0.com) +2. اختر مستأجر Auth0 الخاص بك +3. انتقل إلى **التطبيقات** ← **التطبيقات** من القائمة اليسرى + +## الخطوة 3: إنشاء تطبيق جديد + +1. انقر على **إنشاء تطبيق** +2. أدخل تفاصيل التطبيق: + - **الاسم**: تسجيل الدخول الأحادي في Teable + - **نوع التطبيق**: اختر **تطبيقات ويب عادية** +3. انقر على **إنشاء** + +## الخطوة 4: ضبط إعدادات التطبيق + +بعد إنشاء التطبيق، انتقل إلى علامة تبويب **الإعدادات**: + +### المعلومات الأساسية + +1. انسخ **النطاق** الخاص بك (مثل `your-tenant.auth0.com` أو `your-tenant.us.auth0.com`) +2. انسخ **معرّف العميل** +3. انسخ **سر العميل** +4. الصق هذه القيم في إعداد تسجيل الدخول الأحادي في Teable + +### معرّفات URI للتطبيق + +مرّر إلى قسم **معرّفات URI للتطبيق**: + +1. **عناوين URL المسموح بها لرد الاتصال**: الصق **عنوان URL لرد الاتصال** من Teable +2. **عناوين URL المسموح بها لتسجيل الخروج**: (اختياري) `https://app.teable.ai` +3. **أصول الويب المسموح بها**: (اختياري) `https://app.teable.ai` +4. انقر على **حفظ التغييرات** أسفل الصفحة + +احرص على حفظ تغييراتك قبل مغادرة الصفحة. + +## الخطوة 5: إعداد نقاط نهاية OAuth + +في Teable، املأ نقاط نهاية OAuth التالية باستخدام نطاق Auth0 الخاص بك: + +- **عنوان URL للتفويض**: `https://{yourDomain}/authorize` +- **عنوان URL للرمز المميز**: `https://{yourDomain}/oauth/token` +- **عنوان URL لمعلومات المستخدم**: `https://{yourDomain}/userinfo` +- **جهة الإصدار**: `https://{yourDomain}/` + +استبدل `{yourDomain}` بنطاق Auth0 الفعلي من الخطوة 4. + +## الخطوة 6: إعداد الاتصالات (اختياري) + +يتيح لك Auth0 تفعيل عدة موفّري هوية. لإعداد طرق تسجيل الدخول المتاحة: + +1. في إعدادات تطبيقك، انتقل إلى علامة تبويب **الاتصالات** +2. فعّل طرق المصادقة التي تريد دعمها: + - **قاعدة البيانات**: المصادقة باسم المستخدم وكلمة المرور + - **اجتماعي**: Google وMicrosoft وGitHub وغيرها + - **المؤسسات**: SAML وActive Directory وغيرها +3. اضبط كل اتصال حسب الحاجة + +## الخطوة 7: تخصيص تجربة تسجيل الدخول (اختياري) + +### صفحة تسجيل الدخول العامة + +1. انتقل إلى **العلامة التجارية** ← **تسجيل الدخول العام** في لوحة معلومات Auth0 +2. خصّص مظهر صفحة تسجيل الدخول +3. أضف شعار شركتك وألوان علامتها التجارية + +### قوالب البريد الإلكتروني + +1. انتقل إلى **العلامة التجارية** ← **قوالب البريد الإلكتروني** +2. خصّص قوالب البريد الإلكتروني للتحقق وإعادة تعيين كلمة المرور وغير ذلك + +## الخطوة 8: إعداد صلاحيات المستخدمين + +### تحديد النطاقات + +1. انتقل إلى **التطبيقات** ← **واجهات API** في لوحة معلومات Auth0 +2. اختر **Auth0 Management API** أو أنشئ واجهة API مخصصة +3. حدّد النطاقات والصلاحيات اللازمة لتطبيقك + +### تعيين الأدوار (اختياري) + +1. انتقل إلى **إدارة المستخدمين** ← **الأدوار** +2. أنشئ أدوارًا لأنواع المستخدمين المختلفة +3. عيّن الصلاحيات لكل دور +4. عيّن المستخدمين للأدوار المناسبة + +## الخطوة 9: اختبار تسجيل الدخول الأحادي + +لديك خياران لتفعيل تسجيل الدخول الأحادي: + +**الخيار 1: عنوان URL المباشر للمصادقة** +- استخدم عنوان URL للتفويض بوصفه عنوان تسجيل الدخول الأحادي + +**الخيار 2: التحقق من النطاق** +1. أعدّ التحقق من النطاق في Teable +2. تحقّق من نطاقك المخصص +3. انتقل إلى https://app.teable.ai +4. انقر على زر تسجيل الدخول الأحادي +5. أدخل عنوان بريدك الإلكتروني ضمن النطاق الذي تم التحقق منه لتسجيل الدخول + +## إعدادات إضافية (اختياري) + +### تفعيل المصادقة متعددة العوامل + +1. انتقل إلى **الأمان** ← **المصادقة متعددة العوامل** في لوحة معلومات Auth0 +2. فعّل طرق المصادقة متعددة العوامل المفضلة لديك (الرسائل النصية القصيرة أو تطبيق المصادقة وغيرهما) +3. حدّد سياسات المصادقة متعددة العوامل وقواعدها + +### إعداد قواعد للمنطق المخصص + +1. انتقل إلى **مسار المصادقة** ← **القواعد** +2. أنشئ قواعد مخصصة من أجل: + - إضافة مطالبات مخصصة إلى الرموز المميزة + - فرض الوصول المشروط + - التكامل مع خدمات خارجية + - إثراء ملفات تعريف المستخدمين + +### إعداد المؤسسات (ميزة Auth0 Organizations) + +إذا كنت تستخدم Auth0 Organizations: + +1. انتقل إلى **المؤسسات** في لوحة معلومات Auth0 +2. أنشئ مؤسسات لمختلف المستأجرين أو الشركات +3. اضبط العلامة التجارية والاتصالات الخاصة بكل مؤسسة +4. فعّل دعم المؤسسات في تطبيق Teable الخاص بك + diff --git a/ar/basic/sso/authentik.mdx b/ar/basic/sso/authentik.mdx new file mode 100644 index 00000000..3ae43bc1 --- /dev/null +++ b/ar/basic/sso/authentik.mdx @@ -0,0 +1,196 @@ +--- +title: "تسجيل الدخول الأحادي عبر Authentik" +description: "إعداد Authentik بوصفه موفّر مصادقة تسجيل الدخول الأحادي في Teable" +--- + +{/* mintlify-resync: 2026-05-14 */} +متاح في خطة Business والخطط الأعلى + +## الخطوة 1: إنشاء موفّر مصادقة في Teable + +1. انتقل إلى إعدادات تسجيل الدخول الأحادي في Teable +2. أنشئ موفّر مصادقة جديدًا، وسمّه **Authentik**، ثم اختر **OpenID Connect** + +## الخطوة 2: الوصول إلى واجهة إدارة Authentik + +1. سجّل الدخول إلى واجهة إدارة مثيل Authentik لديك +2. يكون عنوان URL الافتراضي عادةً `https://your-authentik-domain/if/admin/` +3. استخدم بيانات اعتماد المسؤول لتسجيل الدخول + +## الخطوة 3: إنشاء موفّر جديد + +1. انتقل إلى **التطبيقات** ← **الموفّرون** من القائمة اليسرى +2. انقر على زر **إنشاء** +3. اختر **موفّر OAuth2/OpenID** +4. اضبط إعدادات الموفّر: + +### الإعدادات الأساسية + +- **الاسم**: موفّر تسجيل الدخول الأحادي في Teable +- **مسار التفويض**: اختر المسار المفضل لديك (عادةً **default-authentication-flow**) +- **نوع العميل**: **سري** +- **معرّف العميل**: (يُنشأ تلقائيًا، ويمكنك تخصيصه عند الحاجة) +- **سر العميل**: (يُنشأ تلقائيًا، انسخ هذه القيمة) + +### معرّفات URI لإعادة التوجيه + +- **معرّفات URI/الأصول لإعادة التوجيه (RegEx)**: الصق **عنوان URL لرد الاتصال** من Teable + - للمطابقة التامة: `https://app.teable.ai/api/auth/authentication/__providerId__/callback` + - لنمط التعبير النمطي: `https://app\.teable\.ai/api/auth/authentication/.*/callback` + +استبدل `__providerId__` في عنوان URL بالقيمة providerId الظاهرة بعد إنشاء موفّر المصادقة في Teable، أو انسخ عنوان URL لرد الاتصال مباشرةً من صفحة Teable. + +### الإعدادات المتقدمة + +- **النطاقات**: تأكد من توفر النطاقات التالية: + - `openid` + - `email` + - `profile` +- **وضع الموضوع**: **استنادًا إلى معرّف المستخدم المجزّأ** +- **تضمين المطالبات في id_token**: حدّد هذا الخيار + +انقر على **إنهاء** لإنشاء الموفّر. + +## الخطوة 4: حفظ بيانات اعتماد العميل + +بعد إنشاء الموفّر: + +1. انسخ **معرّف العميل** من تفاصيل الموفّر +2. انسخ **سر العميل** (لا يظهر إلا مرة واحدة أثناء الإنشاء) +3. الصق القيمتين في إعداد تسجيل الدخول الأحادي في Teable + +خزّن سر العميل بأمان. ويمكنك إعادة إنشائه لاحقًا عند الحاجة. + +## الخطوة 5: إنشاء تطبيق + +1. انتقل إلى **التطبيقات** ← **التطبيقات** من القائمة اليسرى +2. انقر على زر **إنشاء** +3. اضبط التطبيق: + - **الاسم**: Teable + - **الاسم المختصر**: `teable` (أو الاسم المختصر الذي تفضله) + - **الموفّر**: اختر **موفّر تسجيل الدخول الأحادي في Teable** الذي أنشأته في الخطوة 3 + - **عنوان URL للتشغيل**: (اختياري) `https://app.teable.ai` + - **إعدادات واجهة المستخدم**: (اختياري) ارفع شعار Teable وخصّص المظهر + +انقر على **إنشاء** للإنهاء. + +## الخطوة 6: إعداد نقاط نهاية OAuth + +في Teable، املأ نقاط نهاية OAuth التالية باستخدام نطاق Authentik الخاص بك: + +- **عنوان URL للتفويض**: `https://{your-authentik-domain}/application/o/authorize/` +- **عنوان URL للرمز المميز**: `https://{your-authentik-domain}/application/o/token/` +- **عنوان URL لمعلومات المستخدم**: `https://{your-authentik-domain}/application/o/userinfo/` +- **جهة الإصدار**: `https://{your-authentik-domain}/application/o/{application-slug}/` + +استبدل `{your-authentik-domain}` بنطاق مثيل Authentik الفعلي، و`{application-slug}` بالاسم المختصر الذي أعددته (مثل `teable`). + +## الخطوة 7: إعداد الوصول إلى التطبيق + +### إنشاء مسار أو استخدام مسار موجود + +1. انتقل إلى **المسارات والمراحل** ← **المسارات** +2. يمكنك استخدام المسارات الافتراضية أو إنشاء مسارات مخصصة +3. تشمل المسارات المطلوبة عادةً: + - **مسار المصادقة**: لتسجيل دخول المستخدم + - **مسار التفويض**: لتفويض OAuth2/OIDC + +### تعيين سياسة وصول (اختياري) + +1. عُد إلى إعدادات تطبيقك +2. مرّر إلى قسم **ارتباطات السياسة / المجموعة / المستخدم** +3. انقر على **ربط سياسة موجودة** لتقييد الوصول استنادًا إلى: + - **المجموعات**: السماح لمجموعات محددة فقط + - **المستخدمون**: السماح لمستخدمين محددين فقط + - **سياسات مخصصة**: إنشاء قواعد وصول معقدة + +## الخطوة 8: إعداد النطاقات والمطالبات (اختياري) + +### مراجعة النطاقات + +1. انتقل إلى **التخصيص** ← **ربط الخصائص** +2. راجع **ربط النطاقات** لـ OAuth2/OIDC +3. تأكد من أن النطاقات التالية تتضمن المطالبات الصحيحة: + - `openid`: يتضمن المطالبة `sub` + - `email`: يتضمن المطالبتين `email` و`email_verified` + - `profile`: يتضمن `name` و`given_name` و`family_name` وغيرها + +### إضافة مطالبات مخصصة + +إذا كنت بحاجة إلى سمات مستخدم مخصصة: + +1. انتقل إلى **التخصيص** ← **ربط الخصائص** +2. انقر على **إنشاء** ← **ربط النطاق** +3. حدّد مطالباتك المخصصة: + - **الاسم**: اسم المطالبة المخصصة + - **اسم النطاق**: معرّف النطاق (مثل `custom_claims`) + - **التعبير**: تعبير Python لاستخراج بيانات المستخدم +4. أرفق النطاق بالموفّر + +## الخطوة 9: اختبار تسجيل الدخول الأحادي + +لديك خياران لتفعيل تسجيل الدخول الأحادي: + +**الخيار 1: عنوان URL المباشر للمصادقة** +- استخدم عنوان URL للتفويض بوصفه عنوان تسجيل الدخول الأحادي +- سيُعاد توجيه المستخدمين إلى Authentik للمصادقة + +**الخيار 2: التحقق من النطاق** +1. أعدّ التحقق من النطاق في Teable +2. تحقّق من نطاقك المخصص +3. انتقل إلى https://app.teable.ai +4. انقر على زر تسجيل الدخول الأحادي +5. أدخل عنوان بريدك الإلكتروني ضمن النطاق الذي تم التحقق منه لتسجيل الدخول + +## إعدادات إضافية (اختياري) + +### إعداد المصادقة متعددة العوامل + +1. انتقل إلى **المسارات والمراحل** ← **المراحل** +2. أنشئ مراحل للمصادقة متعددة العوامل (مثل TOTP وWebAuthn والرسائل النصية القصيرة) +3. انتقل إلى **المسارات والمراحل** ← **المسارات** +4. حرّر مسار المصادقة +5. أضف مراحل المصادقة متعددة العوامل إلى المسار +6. اضبط سياسات المصادقة متعددة العوامل وارتباطاتها + +### إعداد تسجيل المستخدمين + +1. انتقل إلى **المسارات والمراحل** ← **المسارات** +2. أنشئ مسار تسجيل أو حرّر مسارًا موجودًا +3. أضف مراحل من أجل: + - جمع تفاصيل المستخدم + - التحقق من البريد الإلكتروني + - إعداد كلمة المرور +4. اربط مسار التسجيل بتطبيقك + +### إعداد سياسات كلمات المرور + +1. انتقل إلى **المسارات والمراحل** ← **السياسات** +2. أنشئ سياسات لكلمات المرور بمتطلبات مثل: + - الحد الأدنى للطول + - متطلبات التعقيد + - سجل كلمات المرور + - قواعد انتهاء الصلاحية + +### تفعيل إدارة الجلسات + +1. انتقل إلى **الأحداث** ← **الجلسات** +2. راقب جلسات المستخدمين النشطة +3. اضبط إعدادات انتهاء مهلة الجلسة في **النظام** ← **الإعدادات** + +### علامة تجارية مخصصة + +1. انتقل إلى **التخصيص** ← **المستأجرون** +2. حرّر إعدادات المستأجر +3. خصّص: + - الشعار وأيقونة الموقع + - ألوان السمة + - نص التذييل وروابطه +4. سيرى المستخدمون علامتك التجارية عند تسجيل الدخول عبر Authentik + +### تفعيل تسجيل التدقيق + +1. انتقل إلى **الأحداث** ← **السجلات** +2. راجع أحداث المصادقة وأخطاءها +3. أعدّ قواعد إشعارات للأحداث المهمة +4. اضبط سياسات الاحتفاظ بالأحداث في **النظام** ← **الإعدادات** diff --git a/ar/basic/sso/azure-entra-id.mdx b/ar/basic/sso/azure-entra-id.mdx new file mode 100644 index 00000000..c555c0aa --- /dev/null +++ b/ar/basic/sso/azure-entra-id.mdx @@ -0,0 +1,179 @@ +--- +title: "تسجيل الدخول الأحادي عبر Azure Entra ID" +description: "إعداد Azure Entra ID بوصفه موفّر مصادقة تسجيل الدخول الأحادي في Teable" +--- + +{/* mintlify-resync: 2026-05-28 */} +متاح في خطة Business والخطط الأعلى + +## الخطوة 1: إنشاء موفّر مصادقة في Teable + +1. انتقل إلى إعدادات تسجيل الدخول الأحادي في Teable +2. أنشئ موفّر مصادقة جديدًا، وسمّه **Azure Entra ID**، ثم اختر **OpenID Connect** + +الخطوة 1 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +## الخطوة 2: الوصول إلى Azure Entra ID + +1. سجّل الدخول إلى حسابك في Azure +2. انتقل إلى **Microsoft Entra ID** (المعروف سابقًا باسم Azure Active Directory) + +الخطوة 2 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +## الخطوة 3: إعداد نقاط نهاية OAuth + +املأ نقاط نهاية OAuth التالية في Teable باستخدام **معرّف المستأجر**: + +الخطوة 3 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +- **عنوان URL للتفويض**: `https://login.microsoftonline.com/_YOUR_TENANT_ID_/oauth2/v2.0/authorize` +- **عنوان URL للرمز المميز**: `https://login.microsoftonline.com/_YOUR_TENANT_ID_/oauth2/v2.0/token` +- **عنوان URL لمعلومات المستخدم**: `https://graph.microsoft.com/oidc/userinfo` +- **جهة الإصدار**: `https://login.microsoftonline.com/_YOUR_TENANT_ID_/v2.0` + +استبدل `_YOUR_TENANT_ID_` بمعرّف مستأجر Azure الفعلي. + +## الخطوة 4: تسجيل تطبيق جديد + +1. في Azure Entra ID، انقر على **تسجيلات التطبيقات** من القائمة اليسرى +2. انقر على **+ تسجيل جديد** + +تسجيل تطبيق Azure Entra ID + +## الخطوة 5: إعداد تسجيل التطبيق + +املأ نموذج تسجيل التطبيق: + +الخطوة 5 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID +الخطوة 6 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +- **الاسم**: تسجيل الدخول الأحادي في Teable +- **أنواع الحسابات المدعومة**: اختر وفق احتياجاتك +- **المنصة**: الويب +- **معرّف URI لإعادة التوجيه**: الصق **عنوان URL لرد الاتصال** من Teable + +انقر على **تسجيل** لإنشاء التطبيق. + +## الخطوة 6: حفظ معرّف العميل + +1. انسخ **معرّف التطبيق (العميل)** من صفحة النظرة العامة على التطبيق + +الخطوة 7 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +2. الصق معرّف العميل في إعداد تسجيل الدخول الأحادي في Teable + +الخطوة 8 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +## الخطوة 7: إنشاء سر العميل + +1. في تطبيقك، انقر على **الشهادات والأسرار** من القائمة اليسرى + +الخطوة 9 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +2. انقر على **+ إضافة شهادة أو سر** + +الخطوة 10 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +3. أضف وصفًا وحدّد مدة انتهاء الصلاحية +4. انقر على **إضافة** +5. **مهم**: انسخ **قيمة** السر فورًا واحفظها بصفتها سر العميل في Teable + +الخطوة 11 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +لا تظهر قيمة السر إلا مرة واحدة. احرص على حفظها فورًا. + +## الخطوة 8: إعداد صلاحيات API + +1. انقر على **صلاحيات API** من القائمة اليسرى +2. انقر على **+ إضافة صلاحية** + +الخطوة 12 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID +الخطوة 13 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +3. اختر **Microsoft Graph** +4. اختر **الصلاحيات المفوّضة** +5. أضف الصلاحيات التالية: + - `email` + - `openid` + - `profile` +6. انقر على **إضافة الصلاحيات** + +الخطوة 14 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +7. انقر على **منح موافقة المسؤول لـ [الدليل الخاص بك]** للموافقة على الصلاحيات + +## الخطوة 9: اختبار تسجيل الدخول الأحادي + +لديك خياران لتفعيل تسجيل الدخول الأحادي: + +الخطوة 15 من إعداد تسجيل الدخول الأحادي عبر Azure Entra ID + +**الخيار 1: عنوان URL المباشر للمصادقة** +- استخدم عنوان URL للمصادقة بوصفه عنوان تسجيل الدخول الأحادي + +**الخيار 2: التحقق من النطاق** +1. انقر على **التحقق من النطاق** من القائمة اليسرى +2. تحقّق من نطاقك المخصص +3. انتقل إلى صفحة تسجيل الدخول إلى Teable الخاصة بك +4. انقر على زر تسجيل الدخول الأحادي +5. أدخل عنوان بريدك الإلكتروني ضمن النطاق الذي تم التحقق منه لتسجيل الدخول diff --git a/ar/basic/sso/google-workspace.mdx b/ar/basic/sso/google-workspace.mdx new file mode 100644 index 00000000..09925e10 --- /dev/null +++ b/ar/basic/sso/google-workspace.mdx @@ -0,0 +1,119 @@ +--- +title: "تسجيل الدخول الأحادي عبر Google Workspace" +description: "إعداد Google Workspace بوصفه موفّر مصادقة تسجيل الدخول الأحادي في Teable" +--- + +{/* mintlify-resync: 2026-05-14 */} +متاح في خطة Business والخطط الأعلى + +## الخطوة 1: إنشاء موفّر مصادقة في Teable + +1. انتقل إلى إعدادات تسجيل الدخول الأحادي في Teable +2. أنشئ موفّر مصادقة جديدًا، وسمّه **Google Workspace**، ثم اختر **OpenID Connect** + +## الخطوة 2: الوصول إلى وحدة تحكم Google Cloud + +1. انتقل إلى [وحدة تحكم Google Cloud](https://console.cloud.google.com) +2. سجّل الدخول باستخدام حساب مسؤول Google Workspace +3. اختر مشروعًا أو أنشئ مشروعًا لتكامل تسجيل الدخول الأحادي في Teable + +## الخطوة 3: تفعيل خدمات هوية Google + +1. في وحدة تحكم Google Cloud، انتقل إلى **واجهات API والخدمات** ← **المكتبة** +2. ابحث عن **Google Identity** أو **Google+ API** +3. انقر على **تفعيل** إذا لم تكن الخدمة مفعلة بالفعل + +## الخطوة 4: إعداد شاشة موافقة OAuth + +1. انتقل إلى **واجهات API والخدمات** ← **شاشة موافقة OAuth** +2. اختر **داخلي** (لمستخدمي Google Workspace فقط) أو **خارجي** +3. املأ المعلومات المطلوبة: + - **اسم التطبيق**: تسجيل الدخول الأحادي في Teable + - **البريد الإلكتروني لدعم المستخدمين**: عنوان بريدك الإلكتروني + - **شعار التطبيق**: (اختياري) ارفع شعار Teable + - **النطاقات المعتمدة**: أضف نطاق Teable الخاص بك + - **معلومات اتصال المطوّر**: عنوان بريدك الإلكتروني +4. انقر على **حفظ ومتابعة** + +### إعداد النطاقات + +1. انقر على **إضافة نطاقات أو إزالتها** +2. أضف النطاقات التالية: + - `openid` + - `email` + - `profile` +3. انقر على **تحديث** ثم **حفظ ومتابعة** + +### إضافة مستخدمي الاختبار (عند استخدام الوضع الخارجي) + +إذا اخترت «خارجي»، فأضف مستخدمي الاختبار أثناء التطوير: +1. انقر على **إضافة مستخدمين** +2. أدخل عناوين البريد الإلكتروني لمستخدمي الاختبار +3. انقر على **حفظ ومتابعة** + +## الخطوة 5: إنشاء معرّف عميل OAuth + +1. انتقل إلى **واجهات API والخدمات** ← **بيانات الاعتماد** +2. انقر على **إنشاء بيانات اعتماد** ← **معرّف عميل OAuth** +3. اختر **تطبيق ويب** بوصفه نوع التطبيق +4. أعدّ العميل: + - **الاسم**: عميل تسجيل الدخول الأحادي في Teable + - **أصول JavaScript المعتمدة**: (اختياري) `https://app.teable.ai` + - **معرّفات URI المعتمدة لإعادة التوجيه**: الصق **عنوان URL لرد الاتصال** من Teable +5. انقر على **إنشاء** + +## الخطوة 6: حفظ بيانات اعتماد العميل + +بعد إنشاء عميل OAuth، سيظهر مربع حوار يتضمن بيانات اعتمادك: + +1. انسخ **معرّف العميل** +2. انسخ **سر العميل** +3. انقر على **موافق** +4. الصق القيمتين في إعداد تسجيل الدخول الأحادي في Teable + +يمكنك استرداد بيانات الاعتماد هذه لاحقًا في أي وقت من صفحة بيانات الاعتماد. + +## الخطوة 7: إعداد نقاط نهاية OAuth + +في Teable، املأ نقاط نهاية OAuth التالية: + +- **عنوان URL للتفويض**: `https://accounts.google.com/o/oauth2/v2/auth` +- **عنوان URL للرمز المميز**: `https://oauth2.googleapis.com/token` +- **عنوان URL لمعلومات المستخدم**: `https://openidconnect.googleapis.com/v1/userinfo` +- **جهة الإصدار**: `https://accounts.google.com` + +## الخطوة 8: اختبار تسجيل الدخول الأحادي + +لديك خياران لتفعيل تسجيل الدخول الأحادي: + +**الخيار 1: عنوان URL المباشر للمصادقة** +- استخدم عنوان URL للتفويض بوصفه عنوان تسجيل الدخول الأحادي + +**الخيار 2: التحقق من النطاق** +1. أعدّ التحقق من النطاق في Teable +2. تحقّق من نطاق Google Workspace +3. انتقل إلى https://app.teable.ai +4. انقر على زر تسجيل الدخول الأحادي +5. أدخل عنوان بريدك الإلكتروني في Google Workspace لتسجيل الدخول + +## إعدادات إضافية (اختياري) + +### تقييد الوصول حسب النطاق + +إذا أردت تقييد الوصول إلى نطاقات Google Workspace محددة: + +1. اضبط قيود النطاق في رمز تطبيقك أو إعدادات Teable +2. اسمح فقط بعناوين البريد الإلكتروني الواردة من نطاقاتك التي تم التحقق منها + +### إعداد مدة الجلسة + +1. في وحدة تحكم إدارة Google، انتقل إلى **الأمان** ← **المصادقة** +2. اضبط إعدادات **التحكم في جلسات Google** +3. حدّد مدة الجلسة وسياسات إعادة المصادقة + +### تفعيل ميزة التحقق بخطوتين + +1. في وحدة تحكم إدارة Google، انتقل إلى **الأمان** ← **المصادقة** ← **التحقق بخطوتين** +2. فعّل ميزة التحقق بخطوتين لمؤسستك +3. اضبط سياسات الفرض للمستخدمين + diff --git a/ar/basic/sso/okta.mdx b/ar/basic/sso/okta.mdx new file mode 100644 index 00000000..c0c12a80 --- /dev/null +++ b/ar/basic/sso/okta.mdx @@ -0,0 +1,97 @@ +--- +title: "تسجيل الدخول الأحادي عبر Okta" +description: "إعداد Okta بوصفه موفّر مصادقة تسجيل الدخول الأحادي في Teable" +--- + +{/* mintlify-resync: 2026-05-14 */} +متاح في خطة Business والخطط الأعلى + +## الخطوة 1: إنشاء موفّر مصادقة في Teable + +1. انتقل إلى إعدادات تسجيل الدخول الأحادي في Teable +2. أنشئ موفّر مصادقة جديدًا، وسمّه **Okta**، ثم اختر **OpenID Connect** + +## الخطوة 2: الوصول إلى وحدة تحكم إدارة Okta + +1. سجّل الدخول إلى حسابك في Okta +2. انتقل إلى **لوحة معلومات الإدارة** +3. انتقل إلى **التطبيقات** ← **التطبيقات** من القائمة اليسرى + +## الخطوة 3: إنشاء تطبيق جديد + +1. انقر على **إنشاء تكامل تطبيق** +2. اختر **OIDC - OpenID Connect** بوصفه طريقة تسجيل الدخول +3. اختر **تطبيق ويب** بوصفه نوع التطبيق +4. انقر على **التالي** + +## الخطوة 4: ضبط إعدادات التطبيق + +املأ نموذج إعداد التطبيق: + +- **اسم تكامل التطبيق**: تسجيل الدخول الأحادي في Teable +- **نوع المنح**: اختر **رمز التفويض** +- **معرّفات URI لإعادة توجيه تسجيل الدخول**: الصق **عنوان URL لرد الاتصال** من Teable +- **معرّفات URI لإعادة توجيه تسجيل الخروج**: (اختياري) `https://app.teable.ai` +- **الوصول المتحكم فيه**: اختر من يمكنه الوصول إلى هذا التطبيق + +انقر على **حفظ** لإنشاء التطبيق. + +## الخطوة 5: حفظ بيانات اعتماد العميل + +بعد إنشاء التطبيق، ستظهر صفحة تفاصيله: + +1. انسخ **معرّف العميل** +2. انسخ **سر العميل** (انقر على «إظهار» عند الحاجة) +3. الصق القيمتين في إعداد تسجيل الدخول الأحادي في Teable + +حافظ على سرية سر العميل، ولا تشاركه علنًا مطلقًا. + +## الخطوة 6: إعداد نقاط نهاية OAuth + +في Teable، املأ نقاط نهاية OAuth التالية: + +- **عنوان URL للتفويض**: `https://{yourOktaDomain}/oauth2/v1/authorize` +- **عنوان URL للرمز المميز**: `https://{yourOktaDomain}/oauth2/v1/token` +- **عنوان URL لمعلومات المستخدم**: `https://{yourOktaDomain}/oauth2/v1/userinfo` +- **جهة الإصدار**: `https://{yourOktaDomain}` + +استبدل `{yourOktaDomain}` بنطاق Okta الفعلي (مثل `dev-123456.okta.com` أو `mycompany.okta.com`) + +## الخطوة 7: تعيين المستخدمين أو المجموعات + +1. في تطبيق Okta، انتقل إلى علامة تبويب **التعيينات** +2. انقر على **تعيين** ← **تعيين للأشخاص** أو **تعيين للمجموعات** +3. اختر المستخدمين أو المجموعات الذين ينبغي أن يصلوا إلى Teable عبر تسجيل الدخول الأحادي +4. انقر على **تعيين** ثم **تم** + +## الخطوة 8: اختبار تسجيل الدخول الأحادي + +لديك خياران لتفعيل تسجيل الدخول الأحادي: + +**الخيار 1: عنوان URL المباشر للمصادقة** +- استخدم عنوان URL للتفويض بوصفه عنوان تسجيل الدخول الأحادي + +**الخيار 2: التحقق من النطاق** +1. أعدّ التحقق من النطاق في Teable +2. تحقّق من نطاقك المخصص +3. انتقل إلى https://app.teable.ai +4. انقر على زر تسجيل الدخول الأحادي +5. أدخل عنوان بريدك الإلكتروني ضمن النطاق الذي تم التحقق منه لتسجيل الدخول + +## إعدادات إضافية (اختياري) + +### إعداد مطالبات مخصصة + +إذا كنت بحاجة إلى ربط سمات إضافية للمستخدم: + +1. انتقل إلى **الأمان** ← **API** في إدارة Okta +2. اختر خادم التفويض لديك (عادةً "default") +3. انتقل إلى علامة تبويب **المطالبات** +4. أضف مطالبات مخصصة حسب الحاجة (مثل القسم أو الدور) + +### تفعيل المصادقة متعددة العوامل + +1. انتقل إلى **الأمان** ← **أدوات المصادقة** في إدارة Okta +2. اضبط طرق المصادقة متعددة العوامل المفضلة لديك +3. أنشئ سياسة مصادقة لتطبيق Teable الخاص بك + diff --git a/ar/basic/sso/onelogin.mdx b/ar/basic/sso/onelogin.mdx new file mode 100644 index 00000000..303e3d67 --- /dev/null +++ b/ar/basic/sso/onelogin.mdx @@ -0,0 +1,156 @@ +--- +title: "تسجيل الدخول الأحادي عبر OneLogin" +description: "إعداد OneLogin بوصفه موفّر مصادقة تسجيل الدخول الأحادي في Teable" +--- + +{/* mintlify-resync: 2026-05-14 */} +متاح في خطة Business والخطط الأعلى + +## الخطوة 1: إنشاء موفّر مصادقة في Teable + +1. انتقل إلى إعدادات تسجيل الدخول الأحادي في Teable +2. أنشئ موفّر مصادقة جديدًا، وسمّه **OneLogin**، ثم اختر **OpenID Connect** + +## الخطوة 2: الوصول إلى بوابة إدارة OneLogin + +1. سجّل الدخول إلى [بوابة إدارة OneLogin](https://app.onelogin.com/login) +2. تأكد من تمتعك بامتيازات المسؤول +3. انتقل إلى **التطبيقات** من القائمة العلوية + +## الخطوة 3: إضافة تطبيق جديد + +1. انقر على **التطبيقات** ← **التطبيقات** من القائمة +2. انقر على زر **إضافة تطبيق** +3. ابحث عن **OpenId Connect (OIDC)** في مربع البحث +4. اختر **OpenId Connect (OIDC)** من النتائج +5. انقر على **حفظ** + +## الخطوة 4: ضبط إعدادات التطبيق + +### معلومات العرض + +في علامة تبويب **الإعداد**: + +1. **اسم العرض**: تسجيل الدخول الأحادي في Teable +2. **الوصف**: (اختياري) تكامل تسجيل الدخول الأحادي مع Teable +3. **الشعار**: (اختياري) ارفع شعار Teable +4. انقر على **حفظ** + +### إعدادات الضبط + +انتقل إلى علامة تبويب **الإعداد** واضبط ما يلي: + +1. **معرّفات URI لإعادة التوجيه**: الصق **عنوان URL لرد الاتصال** من Teable +2. **عنوان URL لتسجيل الدخول**: (اختياري) `https://app.teable.ai` +3. **نوع التطبيق**: الويب +4. انقر على **حفظ** + +## الخطوة 5: الحصول على بيانات اعتماد العميل + +انتقل إلى علامة تبويب **SSO**: + +1. ابحث عن حقل **معرّف العميل** وانسخ قيمته +2. ابحث عن حقل **سر العميل** وانسخ قيمته (قد تحتاج إلى النقر على «إظهار» أولًا) +3. الصق القيمتين في إعداد تسجيل الدخول الأحادي في Teable + +حافظ على سرية سر العميل. ويمكنك إعادة إنشائه من هذه الصفحة عند الحاجة. + +## الخطوة 6: إعداد نقاط نهاية OAuth + +ستجد نطاق OneLogin الفرعي في علامة تبويب **SSO**. استخدمه لإعداد نقاط النهاية في Teable: + +- **عنوان URL للتفويض**: `https://{subdomain}.onelogin.com/oidc/2/auth` +- **عنوان URL للرمز المميز**: `https://{subdomain}.onelogin.com/oidc/2/token` +- **عنوان URL لمعلومات المستخدم**: `https://{subdomain}.onelogin.com/oidc/2/me` +- **جهة الإصدار**: `https://{subdomain}.onelogin.com/oidc/2` + +استبدل `{subdomain}` بنطاق OneLogin الفرعي الفعلي (مثل `mycompany.onelogin.com`). ويمكنك العثور عليه في عنوان URL لبوابة OneLogin. + +## الخطوة 7: إعداد الوصول إلى التطبيق + +### تعيين الأدوار + +انتقل إلى علامة تبويب **الوصول**: + +1. **الأدوار**: اختر الأدوار التي ينبغي أن تصل إلى هذا التطبيق +2. يمكنك اختيار: + - أدوار محددة + - جميع المستخدمين + - شروط مخصصة +3. انقر على **حفظ** + +### تعيين المستخدمين + +انتقل إلى علامة تبويب **المستخدمون**: + +1. انقر على **إضافة مستخدمين** أو **إضافة مستخدمين حسب الدور** +2. اختر المستخدمين الذين ينبغي أن يصلوا إلى Teable عبر تسجيل الدخول الأحادي +3. انقر على **متابعة** ثم **حفظ** + +## الخطوة 8: إعداد المعلمات (اختياري) + +انتقل إلى علامة تبويب **المعلمات** لربط سمات المستخدمين: + +1. انقر على **إضافة معلمة** لإنشاء مطالبات مخصصة +2. أعدّ مطالبات OIDC القياسية: + - **email**: عنوان البريد الإلكتروني للمستخدم + - **name**: الاسم الكامل للمستخدم + - **given_name**: الاسم الأول للمستخدم + - **family_name**: اسم عائلة المستخدم +3. اربط كل معلمة بحقل المستخدم المقابل في OneLogin +4. انقر على **حفظ** + +## الخطوة 9: تفعيل التطبيق + +1. تأكد من حفظ جميع الإعدادات +2. ينبغي أن يكون التطبيق الآن مفعّلًا وظاهرًا للمستخدمين المعيّنين +3. سيرى المستخدمون تطبيق Teable في بوابة OneLogin + +## الخطوة 10: اختبار تسجيل الدخول الأحادي + +لديك ثلاثة خيارات لتفعيل تسجيل الدخول الأحادي: + +**الخيار 1: عنوان URL المباشر للمصادقة** +- استخدم عنوان URL للتفويض بوصفه عنوان تسجيل الدخول الأحادي + +**الخيار 2: بوابة OneLogin** +- يمكن للمستخدمين تسجيل الدخول إلى بوابة OneLogin والنقر على أيقونة تطبيق Teable + +**الخيار 3: التحقق من النطاق** +1. أعدّ التحقق من النطاق في Teable +2. تحقّق من نطاقك المخصص +3. انتقل إلى https://app.teable.ai +4. انقر على زر تسجيل الدخول الأحادي +5. أدخل عنوان بريدك الإلكتروني ضمن النطاق الذي تم التحقق منه لتسجيل الدخول + +## إعدادات إضافية (اختياري) + +### إعداد المصادقة متعددة العوامل + +1. في بوابة إدارة OneLogin، انتقل إلى **الأمان** ← **المصادقة متعددة العوامل** +2. فعّل سياسات المصادقة متعددة العوامل لمؤسستك أو لمستخدمين محددين +3. اضبط متطلبات المصادقة متعددة العوامل (مثل طلبها دائمًا أو طلبها للأجهزة الجديدة) + +### إعداد توفير المستخدمين (SCIM) + +إذا أردت توفير المستخدمين تلقائيًا من OneLogin إلى Teable: + +1. انتقل إلى علامة تبويب **التوفير** في تطبيق Teable +2. فعّل التوفير +3. أعدّ نقطة نهاية SCIM (إذا كان Teable يدعم SCIM) +4. اربط سمات المستخدمين +5. فعّل إنشاء المستخدمين وتحديثهم وحذفهم + +### إعداد مدة الجلسة + +1. انتقل إلى **الإعدادات** ← **الجلسات** في OneLogin +2. اضبط إعدادات انتهاء مهلة الجلسة +3. حدّد مهلة الخمول والمدة القصوى للجلسة + +### علامة تجارية مخصصة + +1. انتقل إلى **التخصيص** ← **البوابة** في OneLogin +2. خصّص مظهر بوابة OneLogin +3. أضف شعار شركتك وألوانها وCSS مخصصًا +4. يؤثر ذلك في ما يراه المستخدمون عند تسجيل الدخول إلى OneLogin + diff --git a/ar/basic/sso/overview.mdx b/ar/basic/sso/overview.mdx new file mode 100644 index 00000000..bc1f63f0 --- /dev/null +++ b/ar/basic/sso/overview.mdx @@ -0,0 +1,62 @@ +--- +title: "تسجيل الدخول الأحادي (SSO)" +description: "إعداد تسجيل الدخول الأحادي لمساحة في Teable." +--- + +{/* mintlify-resync: 2026-05-14 */} +متاح في خطة Business والخطط الأعلى + +## نظرة عامة + +في Teable Cloud، ادخل إلى المساحة المستهدفة: + +1. انقر على `···` في الزاوية العلوية اليمنى من المساحة +2. افتح **إعدادات المساحة** +3. انتقل إلى **المصادقة** +4. أضف موفّر تسجيل دخول أحادي أو أدِره + +## موفّرو الهوية المدعومون + + + + إعداد تسجيل الدخول الأحادي باستخدام Microsoft Azure Entra ID (المعروف سابقًا باسم Azure Active Directory) + + + + إعداد تسجيل الدخول الأحادي باستخدام منصة الهوية Okta + + + + إعداد تسجيل الدخول الأحادي باستخدام حسابات Google Workspace + + + + إعداد تسجيل الدخول الأحادي باستخدام منصة الهوية Auth0 + + + + إعداد تسجيل الدخول الأحادي باستخدام إدارة الهوية في OneLogin + + + + إعداد تسجيل الدخول الأحادي باستخدام موفّر الهوية مفتوح المصدر Authentik + + + +## آلية العمل + +تستخدم جميع عمليات التكامل بروتوكول **OpenID Connect (OIDC)** المبني على OAuth 2.0: + +1. ينقر المستخدم على تسجيل الدخول الأحادي في Teable +2. يُعاد توجيه المستخدم إلى موفّر الهوية لديك +3. يصادق المستخدم باستخدام بيانات اعتماده +4. يعيد موفّر الهوية معلومات المستخدم إلى Teable +5. يُسجّل دخول المستخدم إلى Teable + +## لمستخدمي الاستضافة الذاتية + +إذا كنت تشغّل مثيلًا مستضافًا ذاتيًا، فيمكنك إعداد أي موفّر هوية متوافق مع OIDC: + + + إعداد مصادقة OIDC للمثيل المستضاف ذاتيًا + diff --git a/ar/basic/table.mdx b/ar/basic/table.mdx new file mode 100644 index 00000000..9b03e052 --- /dev/null +++ b/ar/basic/table.mdx @@ -0,0 +1,170 @@ +--- +title: "نظرة عامة" +description: "أنشئ الجداول واستوردها وشاركها وأدرها داخل قاعدة بيانات." +--- + +{/* mintlify-resync: 2026-05-14 */} +يمكن أن تحتوي كل قاعدة بيانات على عدة جداول لتخزين البيانات المرتبطة وإدارتها. تعادل جداول Teable جداول قواعد البيانات، وسيساعدك فهم [اختلافها عن جداول البيانات](/ar/compare/teable-vs-excel) على تحقيق أقصى استفادة من Teable. + +## إنشاء الجداول وإدارتها + +### إضافة الجداول + +في قاعدة بيانات، انقر على زر `+` في الدليل واختر: + +قائمة إضافة جدول + +1. إنشاء جدول جديد فارغ +2. الاستيراد من ملف CSV +3. الاستيراد من ملف Excel +4. الاستيراد من Airtable، إذا كانت عملية تكامل Airtable مهيأة + +راجع [قسم الاستيراد](/ar/basic/table/import) للتفاصيل. + +### إعادة التسمية والحذف + +- **إعادة التسمية**: انقر نقرًا مزدوجًا على اسم الجدول في الدليل، وحرّره، ثم انقر في أي موضع خارجه للحفظ. +- **الحذف**: مرّر فوق الجدول في الدليل، وانقر على `...`، ثم اختر **حذف**. + +إعادة تسمية جدول أو حذفه + +عندما ترتبط جداول أخرى بالجدول الذي تحذفه، يسرد مربع التأكيد الحقول المتأثرة بالحذف مع قاعدة البيانات والجدول اللذين ينتمي إليهما كل حقل. ويحوّل حذف الجدول حقول الروابط تلك إلى حقول نص من سطر واحد تحتفظ بعناوين السجلات المرتبطة، بينما تتوقف حقول البحث أو التجميع المبنية عليها عن العمل. + +### سلة المهملات + +انقر على أيقونة سلة المهملات في الزاوية العلوية اليسرى لقاعدة البيانات لإدارة الجداول المحذوفة. + +سلة مهملات الجداول + +- **استعادة**: إعادة الجدول إلى قاعدة البيانات مع سلامة جميع بياناته +- **إفراغ سلة المهملات**: حذف جميع الجداول الموجودة فيها نهائيًا + +لا تؤدي استعادة جدول إلى التراجع عن تحويل الروابط. تظل حقول الروابط في الجداول الأخرى نصية، لذا أعد إنشاءها إذا كنت تحتاج إلى استعادة الاتصال. + +## تصميم الجداول + +انقر على **تصميم** في قائمة الجدول لعرض خصائصه الأساسية: + +تصميم الجدول + +**معلومات الجدول** + +المخطط، واسم الجدول الفعلي، والوصف، ووقت آخر تعديل + +**خصائص الحقول** + +| الخاصية | الوصف | +| :--- | :--- | +| **id** | معرّف الحقل | +| **name** | اسم الحقل | +| **dbFieldName** | اسم الحقل في قاعدة البيانات الفعلية | +| **type** | نوع الحقل | +| **description** | وصف الحقل | +| **graph** | عرض تبعيات الحقل الحالية | +| **cellValueType** | نوع قيمة الحقل الحالي | +| **isLookup** | ما إذا كان حقلًا تُجلب قيمته من جدول مرتبط | +| **isMultipleCellValue** | ما إذا كان [حقل قيمة مصفوفة](/ar/basic/field/common/is-multiple-value) | +| **isComputed** | ما إذا كان حقلًا محسوبًا (لا يمكن تعديل قيم سجلات الحقول المحسوبة) | +| **isPending** | ما إذا كان قيد الحساب | +| **hasError** | ما إذا كانت هناك أخطاء في الحساب | +| **notNull** | ما إذا كان التحقق من عدم الخلو مفعّلًا | +| **unique** | ما إذا كان التحقق من فرادة القيمة مفعّلًا | + +## مشاركة الجداول والوصول إليها + +### مشاركة جدول + +في جدول، انقر على **مشاركة** في الزاوية العلوية اليمنى، وانتقل إلى **مشاركة الجدول**، وفعّل **المشاركة على الويب** لإنشاء رابط مشاركة. + +مدخل مشاركة الجدول +مشاركة الجدول على الويب + +بعد تمكين مشاركة الجدول، يظهر زر **مشاركة** بحالة رمادية تدل على المشاركة في كل طريقة عرض داخل الجدول. تأتي هذه الحالة من مشاركة الجدول، ولا تعني أن كل طريقة عرض تمت مشاركتها منفصلةً. + +صلاحيات الرابط: + +صلاحيات مشاركة الجدول + +- **يمكن العرض**: يستطيع أي شخص يملك الرابط عرض بيانات الجدول +- **يمكن التحرير**: يستطيع المستخدمون المسجلون تحرير السجلات في الجدول المشترك +- **يمكن الحفظ كنسخة**: يستطيع أي شخص يملك الرابط حفظ نسخة في مساحته + +يمكنك أيضًا تهيئة **السماح للمشاهدين بنسخ البيانات** و**التقييد بكلمة مرور**، وإعادة إنشاء الرابط أو حذفه، ونسخ تهيئة التضمين. + +لمشاركة طريقة العرض الحالية فقط، انتقل إلى **مشاركة طريقة العرض**. للتفاصيل، راجع [شريط أدوات طريقة العرض](/ar/basic/view/toolbar). + +### طرق الوصول إلى الجداول + +تستخدم الجداول [طريقة عرض الشبكة](/ar/basic/view/grid) افتراضيًا، ويمكن الوصول إليها أيضًا عبر [واجهة API](/ar/api-doc/overview). ويمكنك إنشاء طرق عرض إضافية، مثل كانبان، لتناسب احتياجات تدفقات العمل المختلفة. + +## البحث والتنزيلات + +### البحث العام + +البحث العام في الجدول + +- فعّل **حقل البحث** لاختيار الحقول المطلوب البحث فيها. يدعم هذا الوضع حقول التاريخ بالإضافة إلى الحقول النصية. +- عطّل **حقل البحث** لإجراء بحث تقريبي عبر جميع الحقول المدعومة. لا يشمل البحث العام حقول التاريخ أو مربعات الاختيار أو الأزرار. وقد تحد نسختك أيضًا من عدد الحقول التي يمكن للبحث العام تغطيتها. +- فعّل **إخفاء الصفوف غير المطابقة** لإظهار السجلات المطابقة فقط. وعطّله لإبقاء جميع الصفوف ظاهرة وتمييز المطابقات. +- بالنسبة إلى الجداول الكبيرة، يمكن للمحررين تمكين **الفهرس** لتحسين سرعة البحث. وقد يؤثر إنشاء الفهرس أو تحديثه مؤقتًا في أداء القراءة والكتابة. + +### تنزيل المرفقات + +تحترم تنزيلات المرفقات الجماعية نتائج البحث الحالية، ولا تتضمن إلا مرفقات السجلات المطابقة. + +مدخل تنزيل المرفقات جماعيًا + +في مربع حوار التنزيل الجماعي، استخدم **بادئة اسم المرفق** لتسمية ملفات ZIP بحسب الفهرس الافتراضي أو حقل تختاره، أو اختر **بلا بادئة** للاحتفاظ بأسماء الملفات الأصلية؛ وتُضاف لاحقة تلقائيًا إلى الأسماء المكررة. + +خيارات تنزيل المرفقات جماعيًا + +## الأسئلة الشائعة + + + + Teable أكثر صرامة من Excel؛ فلكل عمود نوع بيانات ثابت، ولا يخزن عمود الأرقام سوى الأرقام. يضمن هذا القيد سلامة البيانات ويشكل أساسًا للتصفية والأتمتة المتقدمتين. راجع [Teable مقارنةً بـ Excel](/ar/compare/teable-vs-excel) للتفاصيل. + + + تحقق مما إذا كانت **حقول مرتبطة** في جداول أخرى تشير إلى الجدول. فقد يؤدي حذف الجدول المصدر إلى مشكلات في عرض البيانات بالجداول المرتبطة. + + diff --git a/ar/basic/table/export.mdx b/ar/basic/table/export.mdx new file mode 100644 index 00000000..86965e0e --- /dev/null +++ b/ar/basic/table/export.mdx @@ -0,0 +1,41 @@ +--- +title: "التصدير" +description: "صدّر جدولًا كاملًا أو البيانات المعروضة حاليًا في طريقة عرض إلى ملف CSV." +--- + +يدعم Teable تصدير جدول كامل أو البيانات المعروضة حاليًا فقط في طريقة عرض. تستخدم الملفات المصدّرة تنسيق CSV. + + + + صدّر الجدول كاملًا عندما تحتاج إلى جميع البيانات الأولية. وصدّر طريقة عرض محددة عندما تحتاج فقط إلى البيانات المعروضة حاليًا فيها. + + + لتصدير جدول كامل، افتح قائمة الجدول المستهدف في الدليل الأيسر. ولتصدير طريقة عرض، انتقل إليها وافتح قائمتها. + + + اختر **تنزيل CSV**. ينشئ Teable الملف وفق نطاق التصدير المحدد. + + + +## مسار التصدير + +لتصدير جدول كامل، مرّر فوق اسم الجدول المستهدف في الدليل الأيسر، وانقر على زر `...` في اليمين، ثم اختر **تنزيل CSV**. + +تصدير جدول كامل + +لتصدير طريقة عرض محددة، انتقل إليها، وتحقق من عوامل التصفية والفرز وإعدادات الحقول المخفية، ثم انقر على قائمة `...` بجوار اسم طريقة العرض واختر **تنزيل CSV**. + +تصدير طريقة عرض محددة + +## ملاحظات + +- **تصدير الجدول كاملًا**: يتضمن بيانات الجدول الأولية، بما فيها الحقول والسجلات المخفية. +- **تصدير طريقة العرض**: يصدّر البيانات المعروضة حاليًا في طريقة العرض فقط. استخدمه للنتائج المصفاة أو المرتبة أو ذات الحقول المخفية. diff --git a/ar/basic/table/import.mdx b/ar/basic/table/import.mdx new file mode 100644 index 00000000..098ae810 --- /dev/null +++ b/ar/basic/table/import.mdx @@ -0,0 +1,138 @@ +--- +title: "الاستيراد" +description: "استورد بيانات CSV أو Excel أو Airtable أو Google Sheets إلى Teable." +--- + +{/* mintlify-resync: 2026-05-14 */} +استخدم الاستيراد لتهيئة جدول جديد، أو إلحاق بيانات جديدة بجدول موجود، أو نقل جداول من Airtable أو Google Sheets إلى قاعدة بيانات Teable. ويتوفر Airtable وGoogle Sheets أيضًا عند استيراد قاعدة بيانات كاملة. + + + استخدم Connect Everything في دردشة الذكاء الاصطناعي لترحيل Airtable وBaserow وNocoDB وSmartSuite وأنظمة أخرى إلى Teable. + + + +يقتصر حجم ملفات Excel على **5MB**. إذا كنت تحتاج إلى استيراد مجموعة بيانات أكبر، فاحفظها أولًا بتنسيق **CSV** ثم استوردها. + + + + + لإنشاء جدول جديد، انقر على `+` أعلى الدليل الأيسر واختر **ملف CSV** أو **ملف Excel** ضمن **إضافة من مصادر أخرى**. ولإلحاق بيانات بجدول موجود، اختر **استيراد البيانات** من قائمة الجدول المستهدف. + + + اختر ملف CSV أو Excel المطلوب استيراده. يجب ألا يتجاوز حجم ملفات Excel ‏**5MB**. + + + راجع المعاينة بعد الرفع. عند إنشاء جدول جديد، يمكنك تعديل أنواع الحقول. وعند الإلحاق بجدول موجود، تحقق من كيفية ربط أعمدة الملف بالحقول المستهدفة. + + + انقر على **استيراد** وأبقِ مربع الحوار مفتوحًا حتى يكتمل الاستيراد. يعرض عدد الصفوف المستوردة، والورقة الجاري استيرادها إذا كان ملف Excel متعدد الأوراق. + + + + +قبل وصول إشعار الاكتمال، لا تحذف الجدول الجاري إنشاؤه أو الحقول، ولا تغيّر أنواع الحقول. فقد تؤثر هذه التغييرات في نتيجة الاستيراد. + + +## مسار الاستيراد + +انقر على `+` أعلى الدليل الأيسر، أو على `+` في المجلد الذي ينبغي أن يحتوي الجدول الجديد، واختر **ملف CSV** أو **ملف Excel** وفق نوع ملفك. + +استيراد جدول جديد من القائمة + +بعد الرفع، يتوقع Teable أنواع الحقول من أول 5,000 صف من البيانات. ويمكنك تعديلها قبل الاستيراد. + +معاينة الاستيراد وإعدادات الحقول + +لإلحاق البيانات بجدول موجود، افتح قائمة الجدول، واختر **استيراد البيانات**، ثم اختر نوع الملف. + +استيراد البيانات من قائمة الجدول + +بعد الرفع، اربط أعمدة الملف بالحقول في الجدول المستهدف، ثم انقر على **استيراد**. يعالج Teable البيانات في الخلفية ويبلغك عند نجاح الاستيراد أو فشله. + +## الاستيراد من Airtable + +إذا كانت عملية تكامل Airtable مهيأة في نسختك، فيمكنك استخدام استيراد Airtable بطريقتين: + +- لإنشاء قاعدة بيانات Teable جديدة، افتح قائمة المساحة المستهدفة، وانقر على **استيراد**، ثم اختر **استيراد من Airtable**. +- لاستيراد جداول إلى قاعدة بيانات Teable التي تعرضها، استخدم قائمة موارد قاعدة البيانات: + +1. افتح قاعدة بيانات Teable المستهدفة. +2. انقر على `+` أعلى الدليل الأيسر. +3. ضمن **إضافة من مصادر أخرى**، اختر **Airtable**. + +مدخل استيراد Airtable في قائمة قاعدة البيانات + +4. اربط حساب Airtable عند الحاجة، ثم اختر قاعدة بيانات Airtable المطلوب استيرادها. +5. اختر ما إذا كنت تريد استيراد السجلات، وتنزيل المرفقات واستيرادها، واستيراد عوامل تصفية طرق العرض وفرزها وتجميعها. +6. انقر على **بدء الاستيراد**. + + +عند تمكين **استيراد عوامل تصفية طرق العرض والفرز والتجميع**، يطلب Teable رابط مشاركة لقاعدة Airtable بصلاحية القراءة فقط، لأن واجهة Airtable API لا تعرض إعدادات طرق العرض. في Airtable، افتح قائمة **مشاركة** لقاعدة البيانات، واستخدم **المشاركة على الويب** مع الوصول الكامل إليها، والصق رابط المشاركة في Teable، ثم عطّل الرابط بعد اكتمال الاستيراد. + + +أثناء الاستيراد، يعرض Teable التقدم حسب الجدول. وإذا احتاجت بعض الحقول أو طرق العرض أو القيم إلى تعديل، يسرد سجل الاستيراد التغييرات قبل عرض **اكتمل الاستيراد**. + +## الاستيراد من Google Sheets + +ابدأ من أحد المدخلين: + +- لإنشاء قاعدة بيانات Teable جديدة، افتح قائمة المساحة المستهدفة، وانقر على **استيراد**، ثم اختر **استيراد من Google Sheets**. +- لإضافة جداول إلى قاعدة البيانات التي تعرضها، انقر على `+` أعلى الدليل الأيسر واختر **Google Sheets** ضمن **إضافة من مصادر أخرى**. + + + + عند الاستيراد لأول مرة، انقر على **ربط حساب Google** وأكمل التفويض في النافذة المنبثقة. يتذكر Teable الاتصال لعمليات الاستيراد اللاحقة. + + + انقر على **اختيار جدول بيانات من Google Drive** واختر ملفًا واحدًا في منتقي ملفات Google. يقرأ Teable بنيته بعد ذلك. استخدم **تغيير** للانتقال إلى جدول بيانات مختلف. + + + تظهر كل علامة تبويب كبطاقة تتضمن عدد صفوفها وأعمدتها. اختر علامات التبويب المطلوبة. ألغِ **استيراد السجلات** إذا كنت تريد بنية الحقول فقط دون البيانات. + + + انقر على **بدء الاستيراد** وأبقِ مربع الحوار مفتوحًا. يعرض التقدم جدولًا بعد آخر، وعند الانتهاء يعرض عدد السجلات التي استقبلها كل جدول. بعد استيراد قاعدة بيانات جديدة، استخدم **فتح قاعدة البيانات** للانتقال مباشرةً إلى النتيجة. + + + + +لا يستطيع Teable قراءة سوى جداول البيانات التي تختارها في منتقي ملفات Google، لا Drive كاملًا. لاستيراد ملف آخر لاحقًا، افتح المنتقي مجددًا واختره. + + +عندما تحتاج القيم أو الأعمدة إلى تعديل، يسرد مربع الحوار كل حالة: تُتخطى علامة التبويب الفارغة، ولا تُستورد الأعمدة التي تتجاوز حد 300 عمود لعلامة تبويب واحدة، وتُسقط القيمة التي لا تلائم النوع الذي استنتجه Teable لعمودها. وإذا فشل الاستيراد جزئيًا، تُحتفظ بالجداول التي اكتملت بالفعل، ويعرض مربع الحوار عددها. + +## الأسئلة الشائعة + + + + بلغ الجدول حد الصفوف. تحتفظ تلك الورقة بالصفوف التي تتسع لها وتتخطى البقية، وتستمر أوراق الملف الأخرى في الاستيراد. تحدد قائمة النتائج في مربع الحوار الورقة التي اقتُطعت. استورد الصفوف المتبقية إلى جدول آخر، أو ارفع حد الصفوف في خطتك أو نسختك. + + + من المحتمل أن أحد أعمدة صف الرأس بلا اسم، ولذلك استخدم Teable سجلًا بوصفه الرأس بدلًا منه. سمِّ كل عمود في صف الرأس، وأزل الملاحظات الزائدة من الخلايا المجاورة للجدول، ثم أعد الاستيراد. + + + عندما تفشل ورقة، تعرض قائمة النتائج في مربع الحوار سبب فشلها. وقبل بدء الاستيراد، يحظر Teable الملف أيضًا إذا لم يطابق تنسيقه الخيار الذي اخترته، أو تجاوز حجم ملف Excel ‏5MB، أو كان اسم حقل في المعاينة فارغًا أو مكررًا. أصلح الملف أو أسماء الحقول، ثم أعد الاستيراد. + + + +## ملاحظات + +- **اكتشاف صف الرأس**: يستخدم ملف CSV الصف الأول رأسًا. وفي ملف Excel، يتخطى Teable العناوين والصفوف الفارغة أعلى الجدول للعثور على صف الرأس، شريطة أن يكون الرأس في صف مستقل وأن يحمل كل عمود اسمًا. تحقق من أسماء الأعمدة في المعاينة قبل الاستيراد. +- **تنسيق التاريخ**: يستطيع Teable التعرف إلى تنسيقات التاريخ الشائعة مثل `YYYY-MM-DD`. أما التنسيقات غير المعتادة، فوحّدها قبل الاستيراد، أو استوردها كنص ثم حوّل نوع الحقل لاحقًا. +- **أنواع حقول Google Sheets**: يقرأ Teable تنسيقات خلايا كل عمود لاختيار نوع الحقل، ولذلك تصل القيم المنسقة كتواريخ أو أرقام في Google Sheets كحقول تاريخ ورقم. وتُتخطى الصفوف الفارغة واللافتات أعلى الجدول عندما يبحث Teable عن صف الرأس. تحقق من أنواع الحقول بعد الاستيراد. +- **خيارات التحديد في Airtable**: إذا كانت خيارات التحديد في Airtable تحمل أسماء تصبح متطابقة بعد إزالة المسافات، يحتفظ Teable بالخيار الأول ويربط قيم السجلات المطابقة به. يمنع ذلك تكرار أسماء الخيارات أثناء الاستيراد. diff --git a/ar/basic/view/calendar.mdx b/ar/basic/view/calendar.mdx new file mode 100644 index 00000000..2eb0d051 --- /dev/null +++ b/ar/basic/view/calendar.mdx @@ -0,0 +1,67 @@ +--- +title: "التقويم" +description: "اعرض السجلات وأدرها حسب التاريخ، مثل الاجتماعات والأحداث والجداول الزمنية والمخططات الزمنية للمشاريع." +--- + +تعرض طريقة عرض التقويم السجلات على تقويم. إذا كان الجدول يتضمن حقل تاريخ أحادي القيمة، فيمكنك استخدامها لتتبع المهام والاجتماعات والأحداث وخطط النشر ومحطات المشروع. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| الاجتماعات والمواعيد | أوقات الاجتماعات وزيارات العملاء والمقابلات | +| جدولة المشاريع | تواريخ البدء والاستحقاق والمحطات | +| تخطيط المحتوى | تواريخ النشر والحملات والجداول التسويقية | +| العناصر متعددة الأيام | المشاريع والأحداث وطلبات الإجازة والأعمال ذات تاريخي بدء وانتهاء | + +## إنشاء طريقة عرض تقويم + + + + انقر على `+` بجوار علامات تبويب طرق العرض. + + + اختر **طريقة عرض التقويم** من أنواع طرق العرض. + + + يختار Teable حقول التاريخ المناسبة عند توفرها. افتح **تهيئة التقويم** لتغيير **حقل تاريخ البدء** أو **حقل تاريخ الانتهاء** أو **حقل العنوان**. + + + +## إعدادات حقول التاريخ + +| الإعداد | الوصف | +| --- | --- | +| حقل تاريخ البدء | يتحكم في اليوم الذي يظهر فيه السجل | +| حقل تاريخ الانتهاء | يعرض السجلات التي تمتد عدة أيام أو لها مدة | +| حقل العنوان | يتحكم في النص الظاهر على سجلات التقويم | + +إذا لم يتضمن الجدول حقل تاريخ، فقد يطالبك Teable بإضافة حقلي تاريخ بدء وانتهاء. + +## إعدادات الألوان + +يمكن لسجلات التقويم استخدام الألوان للفصل بين أنواع العمل المختلفة. + +| عرض اللون | الوصف | +| --- | --- | +| تخصيص اللون | يستخدم لونًا ثابتًا واحدًا لطريقة عرض التقويم هذه | +| المواءمة مع السجلات | يستخدم ألوان حقل تحديد فردي، مثل الحالة أو النوع | + +## التنقل في التقويم + +- استخدم السهمين الأيسر والأيمن للتنقل بين الأشهر. +- انقر على **اليوم** للعودة إلى التاريخ الحالي. +- انقر على سجل في التقويم لفتح تفاصيله. + +## إنشاء الأحداث وتعديلها + +- مرّر فوق خلية تاريخ وانقر على `+` لإنشاء سجل جديد في ذلك التاريخ. +- لإنشاء عنصر متعدد الأيام، اضبط تاريخ انتهاء في تفاصيل السجل، أو اسحب حافة الحدث عند تهيئة حقلين منفصلين لتاريخي البدء والانتهاء. +- اسحب سجلًا موجودًا إلى تاريخ آخر لتحديث حقول تاريخه. +- انقر بزر الفأرة الأيمن على سجل لتكراره أو حذفه. + +## ملاحظات + +- تعتمد طريقة عرض التقويم على حقول التاريخ أحادية القيمة. وإذا حُذف حقل تاريخ مهيأ أو تغير، فراجع **تهيئة التقويم**. +- تغيّر طريقة عرض التقويم كيفية عرض السجلات، ولا تغير الحقول الموجودة إلا إذا اخترت إضافة حقول تاريخ من مطالبة التقويم. +- تعتمد إجراءات الإنشاء والتحرير والحذف والسحب وتغيير الحجم على صلاحيات طريقة العرض والسجل والحقل. diff --git a/ar/basic/view/form.mdx b/ar/basic/view/form.mdx new file mode 100644 index 00000000..bddd75b0 --- /dev/null +++ b/ar/basic/view/form.mdx @@ -0,0 +1,73 @@ +--- +title: "النموذج" +description: "استخدم طريقة عرض النموذج لجمع عمليات الإرسال وحفظ كل استجابة كسجل جديد في الجدول الحالي." +--- + +تُنشأ طرق عرض النماذج من الجدول الحالي. وتنشئ كل عملية إرسال سجلًا جديدًا في الجدول الذي أُنشئت فيه طريقة عرض النموذج. استخدم النماذج لجمع الملاحظات والتسجيلات وطلبات التعويض وتفاصيل العملاء وغيرها من البيانات المنظّمة. + + + + استخدم منشئ التطبيقات للمنطق الشرطي أو التدفقات متعددة الخطوات أو الصفحات ذات الهوية التجارية أو التفاعلات الأكثر تعقيدًا. + + + استخدم طريقة عرض النموذج عندما تحتاج فقط إلى أسماء الحقول والعناوين الفرعية والحقول المطلوبة والمشاركة الأساسية. + + + +يمكنك أيضًا وصف احتياجات جمع البيانات في [دردشة الذكاء الاصطناعي](/ar/basic/ai/ai-chat) وترك الذكاء الاصطناعي ينشئ طريقة عرض نموذج من الجدول الحالي. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| جمع المعلومات | تفاصيل العملاء ونماذج التسجيل والاستبيانات والملاحظات | +| الطلبات الداخلية | التعويضات والمشتريات وطلبات الإجازة والوصول | +| إرسال الملفات | السير الذاتية والإيصالات والعقود ولقطات الشاشة | +| مدخل بسيط لسير العمل | حفظ عمليات الإرسال الخارجية مباشرةً كسجلات جدول | + +## إنشاء طريقة عرض نموذج + + + + انتقل إلى الجدول الذي ينبغي أن يخزن عمليات إرسال النموذج. + + + افتح الشريط الجانبي لطرق العرض، وانقر على `+`، واختر **طريقة عرض النموذج**. + + + أدخل اسمًا لطريقة عرض النموذج. + + + بعد إنشاء طريقة العرض، يفتح Teable منشئ النماذج لإعداد الحقول. + + + +## تهيئة حقول النموذج + +تُنشأ حقول النموذج من حقول الجدول. ويمكنك في منشئ النماذج ضبط ما يراه المرسلون. + +| الإجراء | الوصف | +| --- | --- | +| إعادة ترتيب الحقول | اسحب الحقول لتغيير ترتيبها في النموذج | +| إخفاء الحقول | انقر على زر الإخفاء في حقل، أو اسحب الحقل إلى المنطقة المخفية على اليسار | +| إضافة الحقول | اسحب حقلًا من الشريط الجانبي الأيسر، أو انقر على `+ إضافة حقل إلى هذا الجدول` | +| إعادة تسمية الحقل | انقر على حقل وأعد تسميته. يتحدث الاسم الظاهر في النموذج مع اسم الحقل | +| وصف الحقل | أضف وصفًا للحقل لتوضيح ما ينبغي للمرسل إدخاله | +| جعل الحقل مطلوبًا | فعّل «مطلوب» كي لا يمكن إرسال النموذج دون ذلك الحقل | + +## مظهر النموذج + +يدعم مظهر النموذج صورة غلاف وشعارًا ونص زر الإرسال. تستخدم منطقة الغلاف ارتفاعًا ثابتًا، لذا تجنب وضع نص مهم أو معلومات أساسية في صورة قد تُقتص. + +## مشاركة النموذج + +بعد تهيئة النموذج، انقر على **مشاركة النموذج** في الزاوية العلوية اليمنى من الجدول، وانسخ رابط النموذج، وأرسله إلى المرسلين. ويمكنك أيضًا النقر على المعاينة لفتح صفحة النموذج العامة في متصفحك. + +## إعدادات الإرسال + +| الإعداد | الوصف | +| --- | --- | +| الحماية بكلمة مرور | يجب على المرسلين إدخال كلمة المرور الصحيحة قبل الإرسال | +| تتبع مرسلي النموذج | يتطلب تسجيل المرسلين الدخول إلى Teable ويسجل معلوماتهم في حقل «أنشأه» | + +عند تمكين تتبع المرسلين، يجب على الزوار غير المسجلين تسجيل الدخول أو إنشاء حساب Teable قبل الإرسال. diff --git a/ar/basic/view/gallery.mdx b/ar/basic/view/gallery.mdx new file mode 100644 index 00000000..551a844c --- /dev/null +++ b/ar/basic/view/gallery.mdx @@ -0,0 +1,63 @@ +--- +title: "المعرض" +description: "اعرض السجلات كبطاقات صور لكتالوجات المنتجات ومكتبات الأصول ومعارض الأعمال." +--- + +تعرض طريقة عرض المعرض السجلات كبطاقات صور. استخدمها عندما تكون الصور هي المحتوى الأساسي للجدول، مثل صور المنتجات ومسودات التصميم وأصول الحملات ومكتبات الصور ومعارض الأعمال. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| كتالوجات المنتجات | صور المنتجات والطرازات والأسعار والحالة | +| إدارة الأصول | مسودات التصميم وأصول الحملات والإعلانات ولقطات الشاشة | +| معارض الأعمال | أغلفة المشاريع وصور الحالات وأعمال التصميم | +| مراجعة الصور | تصفية سجلات الصور حسب الحالة أو المالك أو الوسوم | + +## إنشاء طريقة عرض معرض + + + + انقر على `+` بجوار علامات تبويب طرق العرض. + + + اختر **طريقة عرض المعرض** من أنواع طرق العرض. + + + بعد فتح طريقة العرض، استخدم **تخصيص البطاقات** وعوامل التصفية والفرز لضبط مظهر السجلات. + + + +## تعيين صورة الغلاف + +يمكن لطريقة عرض المعرض استخدام حقل مرفقات غلافًا للبطاقة. وإذا كان الجدول يتضمن حقل مرفقات بالفعل، يختار Teable واحدًا افتراضيًا. + +| الإعداد | الوصف | +| --- | --- | +| حقل الغلاف | اختر حقل مرفقات لاستخدامه غلافًا للبطاقة، أو اختر **بلا صورة** | +| ملفات متعددة | إذا كان حقل المرفقات المحدد يتضمن عدة ملفات، يظهر الملف الأول أولًا على البطاقة؛ ويمكن للمستخدمين التنقل بين الملفات عبر عارض البطاقة | +| احتواء | عند تمكينه، تظهر الصورة كاملةً داخل منطقة الغلاف؛ وعند تعطيله، تملأ الصورة المنطقة وقد تُقتص | + +## تهيئة معلومات البطاقة + +انقر على **تخصيص البطاقات** في شريط الأدوات لاختيار الحقول التي تظهر على البطاقات وإعادة ترتيبها وتمكين **إخفاء اسم الحقل** أو تعطيله. + +أبقِ الحقول التي تساعد على تحديد السجل فقط، مثل الاسم والحالة والمالك والسعر والوسوم. فكثرة الحقول تصعّب تصفح طريقة عرض المعرض. + +## عرض الصور وتحريرها + +- انقر على صورة غلاف لفتح المعاينة. +- في وضع المعاينة، تنقل بين الملفات أو كبّر الصور ودوّرها أو نزّل الملف. +- انقر على جسم البطاقة لفتح السجل. + +## إدارة السجلات + +- انقر على **إضافة سجل** في شريط الأدوات لإضافة سجل. وإذا توفر حقل مرفقات، فيمكنك رفع ملفات من محرر السجل. +- انقر بزر الفأرة الأيمن على بطاقة لحذف السجل أو استخدام إجراءات سجل أخرى. +- استخدم عوامل التصفية والفرز لإدارة سجلات الصور حسب الحالة أو الفئة أو المالك. + +## ملاحظات + +- تعمل طريقة عرض المعرض بأفضل صورة عندما تكون صور المرفقات محور الجدول. وإذا كانت السجلات نصوصًا أو أرقامًا في معظمها، فعادةً ما تكون طريقة عرض الشبكة أسرع. +- لا تؤثر إعدادات عرض الحقول في المعرض إلا في طريقة العرض الحالية، ولا تحذف محتوى الحقول. +- تعتمد إجراءات الإنشاء والتحرير والحذف والملفات على صلاحيات طريقة العرض والسجل والحقل. diff --git a/ar/basic/view/grid.mdx b/ar/basic/view/grid.mdx new file mode 100644 index 00000000..4bb9e5dc --- /dev/null +++ b/ar/basic/view/grid.mdx @@ -0,0 +1,123 @@ +--- +title: "الشبكة" +description: "اعرض السجلات في صفوف وأعمدة لعرض البيانات وتحريرها وتنقيحها بطريقة منظّمة." +--- + +{/* mintlify-resync: 2026-05-14 */} +طريقة عرض الشبكة هي الأكثر استخدامًا في Teable. يظهر كل سجل في صف، وكل حقل في عمود. استخدمها لإدخال البيانات يوميًا، والتحرير الجماعي، والفرز، والتصفية، والمراجعة السريعة. + +## حالات الاستخدام + +| السيناريو | الإعداد الموصى به | +| --- | --- | +| صيانة البيانات يوميًا | أدخل السجلات وحرّرها وانسخها والصقها مباشرةً في الشبكة | +| تنقيح عدد كبير من السجلات | اجمع بين عوامل التصفية والمجموعات وقواعد الفرز والحقول المخفية | +| التحقق من البيانات الرقمية | استخدم إحصاءات التحديد لمعرفة المتوسط وعدد الخلايا المعبأة والمجموع | +| العمل مع جداول عريضة | ثبّت الأعمدة الأساسية لتظل الحقول التعريفية ظاهرة | + +## إنشاء طريقة عرض شبكة + +يتضمن كل جدول جديد طريقة عرض شبكة افتراضيًا. لإنشاء طريقة عرض شبكة أخرى لسير عمل معيّن: + + + + انتقل إلى الجدول المستهدف وافتح قائمة طرق العرض على اليسار. + + + انقر على `+` أعلى الشريط الجانبي لطرق العرض، ثم اختر **طريقة عرض الشبكة**. + + + أدخل اسمًا لطريقة العرض، واضبط وضع التعاون عند الحاجة، ثم أنشئ طريقة العرض. + + + +## إعدادات العرض + +### إدارة عرض الحقول + +أداة إخفاء الحقول + +| الإجراء | الوصف | +| --- | --- | +| إخفاء الحقول | انقر على **الحقول المخفية** في شريط الأدوات، ثم فعّل الحقول أو عطّلها | +| إعادة ترتيب الحقول | اسحب رؤوس الحقول إلى اليمين أو اليسار | +| البحث عن الحقول | ابحث عن أسماء الحقول في لوحة الحقول المخفية عندما يحتوي الجدول على حقول كثيرة | + +لا يؤثر إخفاء الحقول إلا في طريقة العرض الحالية، ولا يحذف الحقول أو بيانات السجلات. + +### ضبط ارتفاع الصف وارتفاع اسم الحقل + +انقر على **ارتفاع الصف** في شريط الأدوات لضبط كثافة عرض طريقة عرض الجدول. + +قائمة ارتفاع الصف في طريقة عرض الشبكة + +- **ارتفاع الصف**: اختر قصيرًا أو متوسطًا أو طويلًا أو طويلًا جدًا لضبط ارتفاع صفوف السجلات. +- **اسم الحقل**: اختر سطرًا واحدًا أو سطرين أو ثلاثة أسطر للتحكم في ارتفاع عرض أسماء الأعمدة في رأس الجدول. + +### تثبيت الأعمدة + +عندما يحتوي الجدول على حقول كثيرة، ثبّت الأعمدة الأساسية لتظل ظاهرة أثناء التمرير أفقيًا. + +فاصل تثبيت الأعمدة في طريقة عرض الشبكة + +- اسحب فاصل التثبيت لتثبيت الأعمدة الواقعة إلى يساره. + +قائمة التثبيت حتى هذا الحقل في طريقة عرض الشبكة + +- انقر بزر الماوس الأيمن على رأس حقل واختر **تثبيت حتى هذا الحقل** لتثبيت الحقل وجميع الحقول الواقعة إلى يساره. +- يحتفظ Teable بمنطقة قابلة للتمرير إلى يمين الأعمدة المثبتة. إذا كانت النافذة الحالية ضيقة جدًا، فسيتعطل خيار **تثبيت حتى هذا الحقل** أو سيعرض Teable الرسالة **يتعذر التثبيت حتى هذه المنطقة لأن النافذة الحالية ضيقة جدًا**. وسّع النافذة أو ثبّت عددًا أقل من الأعمدة. + +## تحرير البيانات ومراجعتها + +### التحرير والعمل جماعيًا + +- **تحرير خلية**: انقر على أي خلية وأدخل محتواها أو غيّره. +- **عرض محتوى طويل**: انقر نقرًا مزدوجًا على خلية، أو حدّدها واضغط على مفتاح المسافة، لفتح المحتوى كاملًا. +- **التعبئة بالسحب**: اسحب مقبض التعبئة في الزاوية السفلية اليمنى من الخلية المحددة لنسخ القيم إلى الأسفل. + +### إحصاءات التحديد + +إحصاءات التحديد في طريقة عرض الشبكة + +عند تحديد نطاق من الخلايا، يعرض Teable **المتوسط** و**المعبأ** و**المجموع** للقيم الرقمية. استخدم هذه الإحصاءات للتحقق سريعًا من المبالغ والأعداد والدرجات. + +### متابعة نشاط الحقول المحسوبة + +عندما يكون حقل محسوب قيد الانتظار أو الحساب أو عندما يفشل حسابه، انقر على مؤشر نشاط الحساب في الجانب الأيمن من شريط أدوات الشبكة لعرض حالة الجدول الحالي. + +| الحالة | ما يمكنك رؤيته | +| --- | --- | +| **جارٍ الحساب** | السجلات المتأثرة وتقدّم الحساب | +| **قيد الانتظار** | الحقول الموضوعة في قائمة انتظار الحساب | +| **فشل** | أحدث خطأ في الحساب | + +إذا تجاوزت القيمة المحسوبة الحجم الذي يمكن أن تستوعبه الخلية، فسيعرض الحقل الخطأ `قيمة الخلية المحسوبة كبيرة جدًا` مع الحجم المطلوب والحد الأقصى. يبلغ الحد 256 كيلوبايت لكل خلية محسوبة. يواصل باقي الجدول إجراء الحسابات، وتحتفظ الخلية بقيمتها السابقة، ولذلك يُعاد حساب الحقل عند عملية الكتابة التالية متى أصبحت القيمة ضمن الحد المسموح. + +نادرًا ما يصل نص واحد أو رقم واحد إلى 256 كيلوبايت. عادةً ما يُتجاوز الحد عندما يرتبط سجل بعدد كبير من السجلات الأخرى ويسحب حقل بحث أو تجميع كل نصوصها الطويلة إلى خلية واحدة. على سبيل المثال، يتجاوز الحد عميل لديه 500 سجل متابعة يحتوي كل منها على بضع مئات من كلمات الملاحظات، وذلك عند جلب جميع الملاحظات عبر البحث. + +الحل هو إبقاء التفاصيل خارج الخلية: استخدم حقل تجميع لحساب السجلات المرتبطة أو جمعها، أو ابحث عن حقل أقصر مثل حالة أو رقم. افتح الجدول المرتبط عندما تحتاج إلى قراءة المحتوى كاملًا. + +## ملاحظات + +- لا تنطبق الحقول المخفية والفرز والتصفية والتجميع والإعدادات المشابهة إلا على طريقة العرض الحالية. +- لمنع تغييرات الإعداد غير المقصودة، اقفل طريقة العرض. ولا يمكن إلا للمستخدمين الذين لديهم الصلاحية فتح قفلها أو تغييرها. diff --git a/ar/basic/view/kanban.mdx b/ar/basic/view/kanban.mdx new file mode 100644 index 00000000..857b2f41 --- /dev/null +++ b/ar/basic/view/kanban.mdx @@ -0,0 +1,76 @@ +--- +title: "كانبان" +description: "اعرض السجلات كبطاقات مجمعة حسب حقل، وهو مناسب لتتبع الحالات والمراحل وتدفقات العمل." +--- + +تعرض طريقة عرض كانبان السجلات كبطاقات وتجمعها في أعمدة حسب قيمة حقل. استخدمها لحالات المهام ومراحل المبيعات وتدفقات المحتوى ومسارات التوظيف وغيرها من الأعمال القائمة على المراحل. + +## حالات الاستخدام + +| السيناريو | مناسب لـ | +| --- | --- | +| مهام المشروع | تتبع المهام حسب لم تبدأ، وقيد التنفيذ، ومكتملة | +| مسار المبيعات | إدارة العملاء حسب عميل محتمل، وفرصة، وتفاوض، ومغلقة | +| سير عمل المحتوى | تتبع المحتوى حسب فكرة، وكتابة، ومراجعة، ومنشور | +| مسار التوظيف | إدارة المرشحين حسب الفرز، والمقابلة، والعرض، والتعيين | + +## إنشاء طريقة عرض كانبان + + + + انقر على `+` بجوار علامات تبويب طرق العرض. + + + اختر **طريقة عرض كانبان** من أنواع طرق العرض. + + + اختر الحقل المستخدم لإنشاء المجموعات، مثل الحالة أو المرحلة أو المالك أو التاريخ. + + + +## إعدادات المجموعات + +يمكن لطريقة عرض كانبان تجميع السجلات حسب معظم الحقول. ولا تتوفر حقول المرفقات والأزرار حقولًا للتجميع. + +| الإجراء | الوصف | +| --- | --- | +| تغيير حقل التجميع | انقر على **مجمّع حسب [الحقل]** في شريط الأدوات واختر حقلًا آخر | +| إخفاء المجموعات الفارغة | فعّل **إخفاء المجموعة الفارغة** في إعدادات حقل التجميع | +| طي المجموعات | اختر **طي المجموعة** من قائمة المجموعة لإظهارها كشريط رأسي | +| ترتيب المجموعات | عند التجميع حسب حقل تحديد فردي، اسحب المجموعات لإعادة ترتيبها | + +## إدارة المجموعات + +عندما يكون حقل التجميع من نوع تحديد فردي، يمكنك إدارة الخيارات مباشرةً من اللوحة: + +- انقر على **إضافة مجموعة** لإنشاء خيار جديد. +- اختر **إعادة تسمية المجموعة** من قائمتها لإعادة تسمية خيار. +- اختر **حذف المجموعة** من قائمتها لحذف خيار. + +تغيّر هذه الإجراءات خيارات حقل التحديد الفردي المقابل. تحقق من الأثر قبل تغيير مجموعات تستخدمها طرق عرض أو تدفقات عمل أخرى. + +## تهيئة البطاقات + +انقر على **تخصيص البطاقات** في شريط الأدوات للتحكم في محتوى كل بطاقة. + +| الإعداد | الوصف | +| --- | --- | +| الحقول المرئية | اختر الحقول الظاهرة على البطاقات | +| ترتيب الحقول | اضبط ترتيب الحقول على البطاقات | +| الغلاف | اختر حقل مرفقات غلافًا للبطاقة | +| إخفاء اسم الحقل | اعرض قيم الحقول فقط لتقليل كثافة البطاقة | + +اعرض الحقول اللازمة لفهم حالة السجل فقط، مثل العنوان والمالك وتاريخ الاستحقاق والأولوية والوسوم الأساسية. + +## نقل البطاقات وتحريرها + +- اسحب بطاقة لتغيير ترتيبها أو نقلها إلى مجموعة أخرى. +- انقر على `+` أسفل مجموعة لفتح مربع حوار إنشاء سجل. اضبط قيمة حقل التجميع إذا أردت ظهور السجل الجديد في تلك المجموعة. +- انقر بزر الفأرة الأيمن على بطاقة لإدراج بطاقة أعلاها أو أسفلها، أو توسيعها، أو حذفها. +- انقر على بطاقة، أو اختر **توسيع البطاقة**، لفتح تفاصيل السجل. + +## ملاحظات + +- عندما تسحب بطاقة إلى مجموعة أخرى، يحدّث Teable قيمة حقل التجميع. +- تعتمد إجراءات الإنشاء والتحرير والحذف والسحب على صلاحيات طريقة العرض والسجل والحقل؛ ولا يمكن أيضًا سحب البطاقات بين المجموعات عندما يكون حقل التجميع محسوبًا أو للقراءة فقط. +- لتدفقات عمل الفريق، فكّر في قفل طرق العرض المهمة كي لا تتغير إعدادات التجميع والبطاقات بالخطأ. diff --git a/ar/basic/view/toolbar.mdx b/ar/basic/view/toolbar.mdx new file mode 100644 index 00000000..4546601f --- /dev/null +++ b/ar/basic/view/toolbar.mdx @@ -0,0 +1,244 @@ +--- +title: "شريط أدوات طريقة العرض" +description: "استخدم عوامل التصفية والمجموعات والفرز والمشاركة وإعدادات التعاون في طريقة العرض الحالية." +--- + +يتحكم شريط أدوات طريقة العرض في كيفية عرض طريقة العرض الحالية للسجلات ومشاركتها. ولا تؤثر عوامل التصفية والمجموعات وقواعد الفرز والحقول الظاهرة وارتفاع الصف والإعدادات ذات الصلة إلا في طريقة العرض الحالية؛ فهي لا تحذف السجلات ولا تغيّر طرق العرض الأخرى. + +إعدادات التصفية والتجميع والفرز مستقلة في كل طريقة عرض. ولا تؤثر التغييرات في إحدى طرق العرض في غيرها. + +## نظرة عامة على شريط الأدوات + +| الأداة | الغرض من استخدامها | السيناريوهات الشائعة | +| --- | --- | --- | +| التصفية | عرض السجلات التي تطابق الشروط فقط | المهام المفتوحة، وسجلاتك، والسجلات الواقعة ضمن نطاق زمني | +| التجميع | تجميع السجلات حسب قيم الحقول | عبء العمل حسب المسؤول، والتقدّم حسب الحالة، والسجلات حسب التاريخ | +| الفرز | إعادة ترتيب السجلات حسب قيم الحقول | السجلات المحدّثة حديثًا، وأولوية المهام، وترتيب المبيعات | +| المشاركة | نشر طريقة العرض الحالية عبر رابط | مشاركة نتيجة مفلترة أو مرتبة أو مجمعة، أو ذات حقول مخفية أو تخطيط محدد | +| التعاون في طريقة العرض | اختيار ما إذا كانت إعدادات طريقة العرض تتزامن مع الجميع أم تنطبق عليك وحدك | تغييرات مؤقتة في طريقة العرض، أو طريقة عرض مشتركة يستخدمها الفريق بأكمله | + +## التصفية + +تعرض عوامل التصفية السجلات التي تطابق شروطًا محددة في طريقة العرض الحالية، وتخفي السجلات غير المطابقة. ولا تحذف السجلات. + + + + انقر على `تصفية` في شريط أدوات طريقة العرض. + + + اختر حقلًا وعامل تشغيل وقيمة للمقارنة. + + + عند وجود شروط متعددة، اختر **استيفاء جميع الشروط** أو **استيفاء أي شرط**. + + + +| العلاقة | الوصف | +| --- | --- | +| استيفاء جميع الشروط | لا يظهر السجل إلا عند استيفاء كل شرط في ذلك المستوى | +| استيفاء أي شرط | يظهر السجل عند استيفاء أي شرط في ذلك المستوى | + +شروط تصفية طريقة العرض + +### مجموعات الشروط + +استخدم **مجموعات الشروط** لمنطق تصفية أكثر تعقيدًا. فعلى سبيل المثال، يمكن التعبير عن «أ وب، أو ج ود» في مجموعتين. + +- انقر على `إضافة مجموعة شروط` لإنشاء مجموعة. +- يمكن للمجموعات استخدام **استيفاء جميع الشروط** أو **استيفاء أي شرط**. +- يمكن أن تحتوي المجموعة على مجموعات متداخلة. +- تدعم مجموعات الشروط ما يصل إلى **3 مستويات**. + +مجموعات شروط تصفية طريقة العرض + +### عوامل التصفية الشائعة + +| نوع الحقل | عوامل التشغيل الشائعة | الإدخال | +| --- | --- | --- | +| نص أحادي السطر، نص طويل | يساوي، لا يساوي، يحتوي على، لا يحتوي على، فارغ، غير فارغ | إدخال نصي | +| مستخدم | يساوي، لا يساوي، يحتوي على أي من، لا يحتوي على أي من، فارغ، غير فارغ | قائمة المستخدمين، المستخدم الحالي | +| مرفق | فارغ، غير فارغ | بلا إدخال | +| تحديد متعدد | يحتوي على أي من، يحتوي على الكل، يطابق تمامًا، لا يحتوي على أي من، فارغ، غير فارغ | قائمة الخيارات | +| تحديد فردي | يساوي، لا يساوي، يحتوي على أي من، لا يحتوي على أي من | قائمة الخيارات | +| تاريخ، وقت الإنشاء، وقت آخر تعديل | يساوي، لا يساوي، ضمن، قبل، بعد، في أو قبل، في أو بعد، فارغ، غير فارغ | نطاق معد مسبقًا أو تاريخ محدد | +| رقم، تقييم، رقم تلقائي | `=`, `≠`, `>`, `≥`, `<`, `≤`، فارغ، غير فارغ | رقم | +| رابط | يساوي، لا يساوي، يحتوي على، لا يحتوي على، يحتوي على أي من، يحتوي على الكل، يطابق تمامًا، لا يحتوي على أي من، فارغ، غير فارغ | محدد السجلات المرتبطة | +| أنشئ بواسطة، آخر تعديل بواسطة | يساوي، لا يساوي | قائمة المستخدمين، المستخدم الحالي | + +تعتمد عوامل تشغيل حقول الصيغ والتجميع على نوع النتيجة. + +### تحذيرات الشروط غير الصالحة + +إذا تغير نوع حقل، أو حُذف حقل، أو لم يعد إعداد تصفية قديم متوافقًا، يتجاهل Teable الشرط غير الصالح لكي تظل طريقة العرض قابلة للفتح. + +- يعرض زر `تصفية` في شريط الأدوات أيقونة تحذير. +- بعد فتح لوحة التصفية، يعرض الشرط غير الصالح أيقونة تحذير. +- مرّر المؤشر فوق الأيقونة لمعرفة السبب وإصلاح الشرط. + +## التجميع + +يساعدك تجميع السجلات حسب قيم الحقول على مراجعة التوزيع والملخصات والتسلسل الهرمي. + + + + انقر على `تجميع` في شريط أدوات طريقة العرض. + + + اختر الحقل الذي تريد التجميع حسبه. + + + انقر على `إضافة مجموعة أخرى` عندما تحتاج إلى مستويات متعددة من التجميع. + + + +| نوع الحقل | الاستخدام الموصى به | +| --- | --- | +| تحديد فردي، تحديد متعدد | التجميع حسب خيارات ثابتة مثل الحالة أو الأولوية أو النوع | +| مستخدم | التجميع حسب المسؤول أو المتعاون أو مقدّم الطلب | +| تاريخ | تجميع السجلات حسب الفترة الزمنية | +| مربع اختيار، رابط، رقم، تقييم | التجميع حسب قيم أو نتائج واضحة | + +- يدعم التجميع ما يصل إلى **3 مستويات**. +- يمكنك طي المجموعات أو توسيعها. وتظل السجلات داخل كل مجموعة خاضعة لترتيب الفرز الحالي. +- تعرض كل مجموعة شريط ملخص في أعلاها لتتمكن من مراجعة نتائج ملخصها. +- توضع القيم الفارغة في مجموعات منفصلة غير مصنفة أو غير معيّنة أو فارغة بحسب نوع الحقل. + +## الفرز + +يعيد الفرز ترتيب السجلات حسب قيم الحقول. وهو يغيّر ترتيب العرض في طريقة العرض الحالية ولا يحرر محتوى السجلات. + + + + انقر على `فرز` في شريط أدوات طريقة العرض. + + + اختر الحقل الذي تريد الفرز حسبه. + + + اختر تصاعديًا أو تنازليًا. وأضف المزيد من شروط الفرز عندما تحتاج إلى فرز متعدد المستويات. + + + +يتبع الفرز متعدد المستويات ترتيب الشروط. يفرز Teable حسب الشرط الأول أولًا؛ وإذا كانت للسجلات القيمة نفسها، يطبّق الشرط التالي. + +| نوع الحقل | سلوك الفرز | +| --- | --- | +| نص، مرفق | الفرز أبجديًا أو بترتيب عكسي. وتُفرز المرفقات حسب اسم الملف | +| رقم، مدة، تقييم | الفرز حسب القيمة تصاعديًا أو تنازليًا | +| تاريخ، وقت الإنشاء، وقت آخر تعديل | الفرز من الأقدم إلى الأحدث، أو من الأحدث إلى الأقدم | +| مربع اختيار | الفرز من غير محدد إلى محدد، أو بالترتيب العكسي | +| تحديد فردي، تحديد متعدد | الفرز حسب ترتيب الخيارات في إعداد الحقل، أو بالترتيب العكسي | + +تُفرز حقول الصيغ والتجميع وفق نوع نتائجها. + +استخدم مفتاح تبديل `فرز السجلات تلقائيًا` في قائمة الفرز. + +| الحالة | السلوك | +| --- | --- | +| مفعّل | تظل السجلات مرتبة وفق القواعد الحالية. وعندما تتغير قيمة حقل، ينتقل السجل إلى موضعه الجديد. ولا يمكنك سحب السجلات يدويًا أثناء تفعيل الفرز التلقائي | +| متوقف | لا تُفرز السجلات من جديد إلا بعد إعادة تطبيق الفرز. ويمكنك سحب السجلات يدويًا، ولا تنقلها تحديثات البيانات تلقائيًا | + +## مشاركة طريقة العرض + +تنشر ميزة **مشاركة طريقة العرض** طريقة العرض الحالية عبر رابط. يرى الزوار البيانات والتخطيط في طريقة العرض تلك. وهذا يختلف عن دعوتهم بوصفهم متعاونين في قاعدة البيانات. + +لمشاركة قاعدة بيانات كاملة أو جدول معيّن أو مجلد، استخدم مشاركة قاعدة البيانات في [قاعدة البيانات](/ar/basic/base). + +| خيار المشاركة | الأنسب لـ | +| --- | --- | +| مشاركة الجدول | منح أشخاص من خارج المؤسسة وصولًا أوسع إلى الجدول الحالي | +| مشاركة طريقة العرض | نشر طريقة العرض الحالية فقط، مثل نتيجة مفلترة أو مرتبة أو مجمعة، أو ذات حقول مخفية أو تخطيط محدد | + +يتبع رابط مشاركة طريقة العرض إعدادها الحالي. إذا غيّرت لاحقًا عوامل التصفية أو الفرز أو التجميع أو الحقول المخفية أو التخطيط، تتغير الصفحة المشتركة أيضًا. + + + + انتقل إلى طريقة العرض التي تريد مشاركتها. + + + انقر على **مشاركة** في شريط أدوات طريقة العرض. + + + بدّل إلى **مشاركة طريقة العرض**. + + + فعّل **مشاركة طريقة العرض على الويب**. + + + انسخ الرابط الذي تم إنشاؤه، أو شارك رمز QR. + + + +إذا لم تكن لديك صلاحية مشاركة طريقة العرض، فلن يكون مفتاح المشاركة متاحًا. وبعد إيقاف **مشاركة طريقة العرض على الويب**، لن يعود من الممكن فتح روابط المشاركة الحالية. + +يمكن إعادة توجيه الروابط العامة. قبل تفعيل المشاركة، تأكد من أن طريقة العرض الحالية لا تتضمن حقولًا أو سجلات ينبغي ألا تكون عامة. + +تعرض أنواع طرق العرض المختلفة خيارات متقدمة مختلفة. + +| الخيار | ينطبق على | الوصف | +| --- | --- | --- | +| السماح للمشاهدين بنسخ البيانات من طريقة العرض هذه | طريقة عرض الشبكة | يتحكم في ما إذا كان بإمكان الزوار نسخ البيانات من طريقة عرض الشبكة المشتركة | +| إظهار جميع الحقول في السجلات الموسعة | طريقة عرض الشبكة | يتحكم في ما إذا كان بإمكان الزوار رؤية الحقول المخفية عند فتح تفاصيل السجل | +| السماح للمشاهدين المسجّلين بتحرير البيانات الظاهرة | جميع طرق العرض | يتيح للزوار المسجّلين تحرير السجلات والحقول ضمن نطاق طريقة العرض المشتركة | +| التقييد بكلمة مرور | جميع مشاركات طرق العرض | يضيف كلمة مرور إلى رابط المشاركة. ويجب على الزوار إدخال كلمة المرور الصحيحة قبل فتحه | +| اشتراط تسجيل الدخول للإرسال | طريقة عرض النموذج | يفرض على الزوار تسجيل الدخول قبل إرسال النموذج | + +عند تفعيل **السماح للمشاهدين المسجّلين بتحرير البيانات الظاهرة**، يظل الزوار المجهولون في وضع القراءة فقط ويظهر لهم طلب تسجيل الدخول. ويمكن للزوار المسجّلين إنشاء السجلات أو تحديثها أو حذفها ضمن البيانات الظاهرة في طريقة العرض المشتركة فقط. ولا يمكن تحرير السجلات الواقعة خارج عامل تصفية طريقة العرض الحالية أو الحقول المخفية عنها من خلال رابط المشاركة. + +يمكن تضمين طرق العرض المشتركة في صفحات ويب أخرى. انقر على **إعداد التضمين** لمعاينة التضمين ونسخ رمز iframe وإخفاء شريط الأدوات واختيار سمة. + +```html + +``` + +| خيار التضمين | الوصف | +| --- | --- | +| إخفاء شريط الأدوات | يضيف `hideToolBar=true` إلى الرابط ويخفي التصفية والفرز والبحث وعناصر التحكم الأخرى في شريط الأدوات. ولا ينطبق ذلك على طريقة عرض النموذج | +| السمة | تدعم سمات النظام والفاتحة والداكنة | + +## التعاون في طريقة العرض + +يتحكم التعاون في طريقة العرض في مشاركة إعداداتها مع الجميع أو الاحتفاظ بها كتعديلات شخصية تخصك. ويؤثر في عوامل التصفية والفرز والمجموعات والحقول الظاهرة وارتفاع الصف وإعدادات طريقة العرض الأخرى، ولا يؤثر في بيانات السجلات. + +| الوضع | حالة الاستخدام | سلوك الإعداد | +| --- | --- | --- | +| وضع التعاون | يحتاج الفريق إلى استخدام إعداد طريقة العرض نفسه | تتزامن إعدادات طريقة العرض مع كل من يستخدمها | +| الوضع الشخصي | تريد إعدادًا مؤقتًا لطريقة العرض، أو تريد عرض البيانات بطريقتك الخاصة | لا تنطبق عوامل التصفية والفرز والمجموعات والحقول الظاهرة وارتفاع الصف إلا عليك | + +انقر على `شخصي` في شريط الأدوات للتبديل بين وضع التعاون والوضع الشخصي. + +إذا لم تكن طريقة العرض مقفلة وكانت لديك صلاحية تحديثها، فسيمنحك إيقاف الوضع الشخصي خيارين. + +| الخيار | النتيجة | +| --- | --- | +| `الخروج والمزامنة` | مزامنة إعدادات طريقة العرض في وضعك الشخصي مع الجميع | +| `تأكيد الخروج` | تجاهل إعدادات طريقة العرض في وضعك الشخصي ومغادرة الوضع الشخصي | + +إذا كانت طريقة العرض مقفلة أو لم تكن لديك صلاحية تحريرها، فلا يزال بإمكانك استخدام الوضع الشخصي لإجراء تعديلات مؤقتة تخصك، لكن لا يمكنك مزامنة تلك التغييرات مع الآخرين. + +## الأسئلة الشائعة + + + + إذا كانت طريقة العرض المشتركة تتضمن حقولًا مرتبطة، فاستخدم **تقييد النطاق** في لوحة المشاركة لتحديد السجلات والحقول المرتبطة التي يمكن للزوار رؤيتها أو الاختيار منها عبر تلك الحقول المرتبطة. + + + +## ملاحظات + +- تؤثر تغييرات عوامل التصفية والمجموعات والفرز والحقول الظاهرة وارتفاع الصف في كل من يستخدم طريقة العرض الحالية، ما لم تكن في الوضع الشخصي. +- تنشر مشاركة طريقة العرض نتيجة طريقة العرض الحالية، وليس صلاحيات قاعدة البيانات كاملة. وللتعاون المستمر، استخدم صلاحيات الأعضاء أو مشاركة قاعدة البيانات. +- في كلا الوضعين، تظل التعديلات على قيم الخلايا متزامنة مع الجميع. diff --git a/ar/changelog-2024.mdx b/ar/changelog-2024.mdx new file mode 100644 index 00000000..90109c33 --- /dev/null +++ b/ar/changelog-2024.mdx @@ -0,0 +1,362 @@ +--- +title: "سجل تغييرات 2024" +rss: true +--- + + +## 1. طريقة عرض تقويم جديدة + +أطلقنا ميزة جديدة لطريقة عرض التقويم تتيح لك إدارة الجداول الزمنية وعرضها بصورة أكثر سهولة. + +### كيفية إضافة طريقة عرض التقويم + +1. انتقل إلى شريط طرق العرض +2. انقر على أيقونة "+" على اليمين +3. اختر "طريقة عرض التقويم" من الخيارات +4. ستُضاف طريقة عرض التقويم إلى قائمة طرق العرض + +لقطة شاشة لكيفية إضافة طريقة عرض التقويم + + +## 2. البحث العام وتمييز الكلمات المفتاحية + +تحسنت وظيفة البحث بدرجة كبيرة. يمكنك الآن إجراء عمليات بحث عامة عبر الحقول، مع إمكانية تصفية الصفوف غير المطابقة. + +* دعم البحث العام عبر عدة حقول +* تمييز الكلمات المفتاحية في نتائج البحث +* خيارات مرنة لتصفية نتائج البحث +لقطة شاشة للبحث العام وتمييز الكلمات المفتاحية + +## 3. تحسين حقول البحث والتجميع + +* دعم التصفية الدقيقة للسجلات +* تحسين إمكانات حساب التجميع +* توسيع إمكانات تحليل البيانات ومعالجتها + +لقطة شاشة لتحسين حقول البحث والتجميع + +## 4. تحسين النموذج + +### التحقق من تسجيل الدخول + +* خيار جديد لاشتراط تسجيل الدخول إلى النموذج +* تتبع تلقائي لعمليات الإرسال مع إظهار معلومات المنشئ في حقل المنشئ + +لقطة شاشة للتحقق من تسجيل الدخول + +## 5. إعدادات حقول التحديد الفردي والمتعدد + +يمكن للمستخدمين الآن تعطيل خيار إضافة اختيارات جديدة عند تحرير حقول التحديد الفردي أو المتعدد لمنع الإضافات غير المقصودة. + +* خيار لتقييد إضافة اختيارات جديدة +* منع إدخال اختيارات غير صالحة عن طريق الخطأ + +لقطة شاشة لإعدادات حقول التحديد الفردي والمتعدد + +## 6. تحسين الأداء وتحسينات أخرى + +### سرعة معالجة البيانات + +لا يتطلب نسخ البيانات المحمّلة أي طلبات عبر الشبكة، ما يمنح أداءً أسرع بعشر مرات. + +### تحسين عرض معلومات المستخدم + +دعم عرض المستخدمين المجهولين ومعرّفات روبوتات الأتمتة في حقلي المنشئ وآخر تعديل بواسطة. + +* عرض معرّف المستخدم المجهول +* عرض معرّف مستخدم روبوت الأتمتة + + + + +## 1. طريقة عرض معرض جديدة + +يسرنا الإعلان عن ميزة طريقة عرض المعرض الجديدة في Teable، التي توفر وسيلة أكثر سهولة وجاذبية بصريًا لعرض بياناتك. + +### كيفية إضافة طريقة عرض المعرض + +1. انقر على أيقونة "+" في شريط طرق العرض +2. اختر "طريقة عرض المعرض" من الخيارات + +لقطة شاشة لكيفية إضافة طريقة عرض المعرض + +لقطة الشاشة الثانية لكيفية إضافة طريقة عرض المعرض + +## 2. تحسين معاينة المرفقات + +حسّنا وظيفة معاينة المرفقات لدعم المزيد من أنواع الملفات، ما يعزز كفاءة سير عملك. + +### أنواع الملفات المدعومة + +* ملفات PDF +* مستندات Word +* جداول بيانات Excel + +### كيفية استخدام معاينة المرفقات + +1. حدّد موقع الملف الذي تريد معاينته في حقل المرفقات +2. انقر مباشرةً على الملف +3. ستفتح المعاينة تلقائيًا دون تنزيل + +**ملاحظة**: الغرض من المعاينة هو مراجعة المحتوى سريعًا؛ نزّل الملف الأصلي لتحريره. + +## 3. تحسين تكرار السجلات + +بسّطنا عملية تكرار السجلات من خلال عدة اختصارات. + +### الطريقة 1: استخدام قائمة النقر بزر الفأرة الأيمن + +1. انقر بزر الفأرة الأيمن على السجل الذي تريد تكراره +2. اختر "تكرار السجل" من القائمة المنبثقة + +### الطريقة 2: عبر نموذج التحرير + +1. افتح نموذج تحرير السجل الذي تريد تكراره +2. انقر على زر "المزيد" في النموذج +3. اختر "تكرار السجل" من القائمة المنسدلة + +لقطة شاشة للطريقة 2: عبر نموذج التحرير + +**تلميح**: تساعدك ميزة تكرار السجلات على إنشاء سجلات متشابهة بسرعة، ما يحسن كفاءة إدخال البيانات بدرجة كبيرة. + +*** + +نأمل أن تحسن هذه الميزات والتحسينات الجديدة تجربتك. إذا كانت لديك أي أسئلة أو ملاحظات، فلا تتردد في التواصل مع فريق الدعم. سنواصل العمل لتقديم منتجات وخدمات أفضل لك. + + + + +## 1. لوحة المعلومات + +لقطة شاشة للوحة المعلومات +لقطة الشاشة الثانية للوحة المعلومات + +### 1.1 أنواع شاملة من المخططات + +* دعم مخططات الأعمدة والخطوط والدائرة والمساحة والجداول +لقطة شاشة لأنواع المخططات الشاملة + +### 1.2 استعلامات بيانات مرنة + +* دعم إعدادات استعلامات التحديد والتصفية والربط والفرز والتجميع + +لقطة شاشة لاستعلامات البيانات المرنة + +## 2. طريقة عرض المكوّن الإضافي - نموذج الورقة + +لقطة شاشة لطريقة عرض المكوّن الإضافي - نموذج الورقة + +## 3. [تعليقات السجلات](https://help.teable.ai/basic/record/comment#key-features) + +لقطة شاشة لتعليقات السجلات + +* محادثات في الوقت الفعلي +* دعم الإشارة باستخدام @ +* تحرير النص المنسق +* دعم الصور والروابط + +## 4. إحصاءات المجموعات + +* إحصاءات لكل مجموعة +لقطة شاشة لإحصاءات المجموعات + +## 5. الحقول المرتبطة + +### 5.1 ربط الحقول بين قواعد البيانات + +* يمكنك الآن الربط بحرية مع أي قاعدة بيانات! + * تحرير الحقل + * الربط من قواعد بيانات أخرى + * اختيار قاعدة البيانات والجدول + * مثال: الربط من قاعدة بيانات **إدارة المشاريع** إلى إدارة مهام المنتج + +لقطة شاشة لربط الحقول بين قواعد البيانات + +لقطة الشاشة الثانية لربط الحقول بين قواعد البيانات + +### 5.2 تصفية السجلات من طرق العرض + +* يمنع التحكم الشامل في الصلاحيات كشف البيانات دون قصد عبر الروابط! تحكّم في طريقة العرض التي تُربط منها السجلات، والسجلات المفلترة التي يمكن ربطها، والحقول الظاهرة في قائمة اختيار الربط. + * تحرير الحقل + * مزيد من الإعدادات + * اختيار طريقة العرض/إعداد شروط التصفية + +لقطة شاشة لتصفية السجلات من طرق العرض + +## 6. القيم الافتراضية للحقول + +* يمكن تعيين قيم افتراضية لمعظم أنواع الحقول + +لقطة شاشة للقيم الافتراضية للحقول + +## 7. دعم طريقة عرض كانبان لجميع أنواع الحقول عند التجميع + +لقطة شاشة لدعم طريقة عرض كانبان لجميع أنواع الحقول عند التجميع + +## 8. تحسينات التجربة + +* تحسنت سرعة معاينة صور حقل المرفقات بدرجة كبيرة +* أصبحت نتيجة التاريخ والوقت في الصيغة تطابق المنطقة الزمنية +* تستطيع الصيغة معالجة محارف الهروب، مثل "\n"، بصورة صحيحة +* لصق المرفقات مباشرةً في الخلايا عند تحديد عمود المرفقات + + + + + +## 1. المهملات + +يمكنك الآن استعادة المساحات وقواعد البيانات والجداول المحذوفة من المهملات! + +لقطة شاشة للمهملات +لقطة الشاشة الثانية للمهملات +لقطة الشاشة الثالثة للمهملات + +## 2. تغيير ترتيب المرفقات بالسحب والإفلات + +يمكنك الآن تغيير ترتيب المرفقات بسحبها! انقر مطولًا على مرفق، ثم اسحبه إلى موضع جديد وأفلته لتغيير ترتيبه. + + + + + +## 1. التراجع والإعادة + +يمكن التراجع عن جميع العمليات في الجدول وإعادتها. + +## 2. المتعاون في قاعدة البيانات + +يمكنك الآن دعوة المتعاونين إلى قاعدة البيانات للتعاون دون الدخول إلى المساحة. + +لقطة شاشة للمتعاون في قاعدة البيانات + + + + +## 1. سجل تعديلات السجلات + +اعرض سجل تعديلات سجلات الجدول بأكمله في الزاوية العلوية اليمنى من الجدول. + +لقطة شاشة لسجل تعديلات السجلات + +اعرض سجل تحرير السجل الحالي في الزاوية العلوية اليمنى من واجهة تحرير السجل. + +لقطة الشاشة الثانية لسجل تعديلات السجلات + +## 2. حقلا المنشئ وآخر مستخدم أجرى تعديلًا + +أُضيف حقلان. يُستخدم حقلا المنشئ وآخر مستخدم أجرى تعديلًا لتتبع تغييرات البيانات. + +لقطة شاشة لحقلي المنشئ وآخر مستخدم أجرى تعديلًا + +## 3. تبديل اللغة/التدويل + +* تبديل لغة النظام + 1. إعداداتي + 2. اللغة + 3. يُرجى اختيار اللغة التي تريد استخدامها. + +لقطة شاشة لتبديل اللغة/التدويل + + + + +## 1. تضمين طريقة العرض المشتركة وتخصيص المشاركة + +أضاف Teable وظيفة تضمين طرق العرض وحسّن إعدادات المشاركة: + +1. تضمين طريقة العرض: يمكنك الآن تضمين طرق العرض في صفحات ويب أخرى. +2. إعدادات مشاركة محسّنة + 1. التحكم في عرض السمة + 2. التحكم في إخفاء شريط الأدوات + +خطوات التشغيل: + +1. افتح الجدول المستهدف، وانقر على زر "مشاركة" في الزاوية العلوية اليمنى +2. أكّد إعدادات المشاركة في النافذة المنبثقة +3. اضبط المعلمات التالية وفق احتياجاتك: + 1. اختيار السمة + 2. عرض شريط الأدوات + 3. رمز التضمين + +لقطة شاشة لتضمين طريقة العرض المشتركة وتخصيص المشاركة + +لقطة الشاشة الثانية لتضمين طريقة العرض المشتركة وتخصيص المشاركة + +تتيح لك الميزة الجديدة تحكمًا أكثر مرونة في عرض المحتوى المشترك، ما يحسن كفاءة التعاون + + + + + +## 1. تحسين قاعدة التحقق من قيم الحقول + +* **قيد التحقق من تفرد القيمة:** أُضيفت وظيفة التحقق من تفرد قيمة الحقل لضمان أن تكون قيمته فريدة في الجدول بأكمله. +* **التحقق من عدم الفراغ:** أُضيفت وظيفة التحقق من عدم فراغ الحقل لمنع فقدان المعلومات الأساسية. + +لقطة شاشة للتحقق من عدم الفراغ + +## 2. منشئ استعلامات API + +أُضيف منشئ مرئي لاستعلامات API لتبسيط عملية إنشاء طلبات API بدرجة كبيرة: + +1. انقر على زر "API - RestfulAPI" في الزاوية العلوية اليمنى من الجدول للدخول إلى واجهة المنشئ +2. أنشئ طلبات الاستعلام من خلال واجهة مستخدم سهلة +3. انسخ بنقرة واحدة الرمز المنشأ والقابل للتشغيل مباشرةً + +لقطة شاشة لمنشئ استعلامات API + +## 3. تحسين تجربة المستخدم + +3.1 تحسين عملية إنشاء السجلات + +* السماح للمستخدمين بملء معلومات الصف كاملةً قبل إنشاء السجلات لتحسين اكتمال البيانات + +لقطة شاشة لتحسين تجربة المستخدم + +### 3.2 ترقية منتقي التاريخ + +* يدعم منتقي التاريخ الآن الاختيار المباشر للسنة والشهر لتحسين كفاءة الاختيار + +لقطة شاشة لترقية منتقي التاريخ + +### 3.3 تحسين تحرير حقول الأرقام + +* عرض القيم الأصلية غير المنسقة لحقول الأرقام لإجراء تعديلات دقيقة أثناء التحرير + +لقطة شاشة لتحسين تحرير حقول الأرقام + +### 3.4 تحسين وظيفة المشاركة + +* أُضيف خيار مشاركة عبر رمز QR عند مشاركة رابط طريقة عرض، لتسهيل الوصول السريع على مستخدمي الأجهزة المحمولة + +لقطة شاشة لتحسين وظيفة المشاركة + +## 4. تحسين وظيفة استيراد البيانات + +### 4.1 إشعار الاستيراد + +* سيرسل النظام إشعارًا بالبريد الإلكتروني إلى المستخدم بعد نجاح استيراد البيانات + +### 4.2 تحسين الأداء + +* زادت سرعة استيراد CSV بنسبة 100%، ما قلّص وقت استيراد البيانات بدرجة كبيرة + +### 4.3 تحسين الاستيراد عبر API + +* تفعيل تحويل الأنواع عبر API، مع دعم حقل المستخدم لإدخال اسم المستخدم أو معرّفه أو بريده الإلكتروني للكتابة + +## 5. تكامل النظام + +* أضافت وظيفة المرفقات دعم التكامل مع S3 لتوفير حل أكثر موثوقية لتخزين الملفات + +## 6. إصلاح المشكلات + +أُصلحت المشكلات التالية: + +1. تعذر التصفية عند البحث عن المستخدمين +2. فقدان اسم الملف عند تنزيل المرفقات +3. تعذر النسخ واللصق في الصف الجديد +4. تعذر عرض المرفقات بصورة طبيعية في بعض الحالات + + diff --git a/ar/changelog-2025.mdx b/ar/changelog-2025.mdx new file mode 100644 index 00000000..715194e5 --- /dev/null +++ b/ar/changelog-2025.mdx @@ -0,0 +1,330 @@ +--- +title: "سجل تغييرات 2025" +rss: true +--- + + +# إطلاق Teable 2.0 —— وكيل قواعد البيانات بالذكاء الاصطناعي +يقدم هذا الإصدار **6 ثورات كبرى** تعيد صياغة طريقة عملنا مع البيانات. + +1. **تحدث لإنشاء قواعد البيانات:** ودّع العملاء المحتملين غير المنظمين. يستطيع Teable تصنيف الانطباعات تلقائيًا وصياغة ردود من بيانات CRM الخاصة بك. + +