snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,76 @@
---
title: التعامل مع الأخطاء والتحقّق
description: راجع وأصلِح أخطاء الاستيراد مباشرةً في واجهة المستخدم قبل التأكيد.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## التحقّق قبل الاستيراد
بعد رفع ملفك وتعيين الحقول، تتحقّق Twenty من بياناتك **قبل** الاستيراد. يتيح لك ذلك اكتشاف الأخطاء وإصلاحها من دون التأثير في بياناتك الحالية.
## كيف يعمل
1. **ارفع** ملف CSV الخاص بك
2. **طابِق** أعمدتك مع حقول Twenty
3. **راجِع** الأخطاء المحتملة المميّزة باللون الأصفر
4. **أصلِح الأخطاء** مباشرةً في واجهة المستخدم
5. **أكِّد** عملية الاستيراد
<VimeoEmbed videoId="1145273857" title="عرض توضيحي بالفيديو" />
## عرض الأخطاء
يتم تمييز الصفوف التي تحتوي على مشكلات باللون **الأصفر**. يمكنك:
* **حرِّر الخلية مباشرةً** لإصلاح الخطأ
* **أزل الصف** لتجاوزه بالكامل
يوفّر هذا التحرير المضمَّن الوقت — لا حاجة للعودة إلى جدول البيانات، وإصلاح الأخطاء، وإعادة الرفع.
## أنواع الأخطاء الشائعة
### قيم مكرّرة
**السبب**: حقل فريد (البريد الإلكتروني، النطاق) موجود مسبقًا في Twenty أو يظهر مرتين في ملفك.
**الإصلاح**:
* حرِّر القيمة المكرّرة في واجهة مستخدم الاستيراد
* أزل أحد الصفوف المكرّرة
راجع [قيود التفرّد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints) لمزيد من التفاصيل حول كيفية فرض التفرّد.
### تنسيق غير صالح
**السبب**: لا تتطابق البيانات مع التنسيق المتوقع (مثل: بريد إلكتروني غير صالح، تنسيق تاريخ غير صحيح).
**الإصلاح**: حرِّر الخلية لاستخدام التنسيق الصحيح.
راجع [تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping) لمعرفة التنسيق المتوقع لكل نوع من الحقول.
### حقول مطلوبة مفقودة
**السبب**: حقل مطلوب فارغ.
**الإصلاح**: أدخِل قيمة في الحقل المطلوب أو أزل الصف.
### العلاقة غير موجودة
**السبب**: السجل المشار إليه غير موجود (مثل: نطاق شركة لم يتم استيراده).
**الإصلاح**:
* استورِد سجلات الأصل أولًا
* أو صحِّح قيمة المرجع
راجع [استيراد العلاقات](/l/ar/user-guide/data-migration/capabilities/import-relations) لمعرفة ترتيب الاستيراد الصحيح وكيفية ربط السجلات.
## نصائح لتقليل الأخطاء
1. **تنزيل القالب** لرؤية التنسيق المتوقع قبل استيراد الملف الخاص بك
2. **نظِّف بياناتك** في جدول البيانات أولًا
3. **استورِد الملفات بالترتيب الصحيح** لاستيراد العلاقات (الشركات → الأشخاص → الفرص)
4. **اختبر بدُفعات صغيرة** قبل الاستيراد الكامل
5. **تحقّق من التكرارات** قبل الرفع
6. **الحد من كل ملف إلى 10,000 سجلا**

View File

@@ -0,0 +1,198 @@
---
title: تعيين الحقول
description: كيف يعمل تعيين الحقول أثناء استيراد البيانات.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## كيف يعمل تعيين الحقول
عند تحميل ملف، يقوم Twenty بتحليل أعمدتك ومحاولة مطابقتها مع الحقول الموجودة.
### التعيين التلقائي
يحاول Twenty مطابقة الأعمدة استنادًا إلى:
* أسماء رؤوس الأعمدة (مطابقات دقيقة أو متشابهة)
* اكتشاف نوع البيانات (تواريخ، أرقام، عناوين بريد إلكتروني)
* أنماط الحقول الشائعة
<Note>**نصيحة سريعة:** صدِّر بضعة صفوف من الكائن الذي تريد استيراده. سيحتوي الملف المصدَّر على أسماء الأعمدة الدقيقة التي يتوقعها Twenty، مما يجعل التعيين التلقائي سلسًا أثناء الاستيراد.</Note>
### خيارات التعيين اليدوي
لكل عمود، يمكنك:
* **تعيين إلى حقل**: اختر الحقل المطابق في Twenty من قائمة منسدلة
* **عدم التعيين**: تخطَّ العمود بالكامل (لن يتم استيراد البيانات)
<Note>**يجب أن تكون الحقول موجودة قبل الاستيراد.** الاستيراد يُنشئ السجلات، لا الحقول. أنشئ الحقول المخصصة ضمن **الإعدادات → نموذج البيانات** قبل الاستيراد.</Note>
## توافق أنواع الحقول
جميع أنواع الحقول المتاحة في نموذج البيانات مدعومة للاستيراد.
يمكنك أيضًا استيراد قيم `id` إما لتعيين معرّف محدد للسجلات الجديدة أو لتحديث السجلات القائمة.
<img src="/images/user-guide/fields/all-field-types.png" style={{width:'100%'}} />
## متطلبات تنسيق البيانات
<Note>**لبعض الحقول صياغة خاصة.** نوصي بتنزيل الملف النموذجي قبل إعداد عملية الاستيراد للاطلاع على الصياغة المتوقعة لكل نوع حقل.</Note>
### حقول العنوان
العنوان حقل متداخل يضم عدة أعمدة. يمكن ترك بعضِها فارغًا.
* **Address / Address 1**: سطر عنوان الشارع 1
* **Address / Address 2**: سطر عنوان الشارع 2
* **Address / City**: اسم المدينة
* **Address / State**: الولاية أو المقاطعة
* **Address / Country**: اسم الدولة
* **Address / Post Code**: الرمز البريدي/ZIP
### حقول المصفوفة
استخدم التنسيق التالي:
```
["value1","value2"]
```
### حقول القيم المنطقية
استخدم `TRUE` أو `FALSE` (أحرف كبيرة) - وليس `true` أو `false`
### حقول العملة
العملة حقل متداخل يحتوي على عمودين يجب **ملؤهما كلاهما**:
* **Amount / Amount**: القيمة الرقمية (مثال: `1234.56`)
* **Amount / Currency**: رمز العملة (مثال: `USD`، `EUR`)
### حقول التاريخ
التنسيقات المدعومة:
* `YYYY-MM-DD` (موصى به)
* `MM/DD/YYYY`
* `DD/MM/YYYY`
* تنسيق ISO 8601
### حقول النطاق
* يُوصى باستخدام التنسيق `https://domain.com` لتجنب إنشاء التكرارات، إذ إن هذا هو التنسيق المستخدم للشركات التي يتم إنشاؤها عبر مزامنة صندوق البريد والتقويم
* يمكن ملء حقلي `Domain Label` و`Domain URL`: وأفضل ممارسة هي وضع `domain.com` في التسمية و`https://domain.com` في عنوان URL
* يجب أن تكون النطاقات فريدة داخل كائن الشركات
* **يجب أن تكون النطاقات فريدة داخل الملف المُراد استيراده**
### حقول البريد الإلكتروني
* يجب أن تكون بتنسيق بريد إلكتروني صحيح
* يجب أن تكون عناوين البريد الإلكتروني فريدة داخل كائن الأشخاص
* **يجب أن تكون عناوين البريد الإلكتروني فريدة داخل الملف المُراد استيراده**
* للبريد الإلكتروني الإضافي: استخدم **Emails / Primary Email** للبريد الرئيسي، و**Emails / Additional Emails** بهذا التنسيق:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### حقول الهوية
تحديد `id` أثناء الاستيراد اختياري. يقوم Twenty بإنشاء واحد تلقائيًا إذا لم يتم توفيره.
حالات استخدام لتعيين عمود `id`:
* **تعيين معرّف محدد**: اختر UUID للسجلات التي سيتم إنشاؤها
* **تحديث السجلات الحالية**: طابِق السجلات الحالية لتحديثها بدلاً من إنشاء تكرارات. في هذه الحالة، يُنصح بعدم تعيين الحقول الفريدة الأخرى: فاقتصار التعيين على حقل فريد واحد يضمن عملية استيراد أكثر سلاسة.
<Note>إذا قدّمت قيمة `id`، فيجب أن تكون بتنسيق UUID (مثال: `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
### حقول JSON
استخدم تنسيق JSON صالحًا:
```
{"key":"value","key2":"value2"}
```
### حقول الروابط
مشابه لحقول النطاق:
* املأ عمودي التسمية والرابط معًا: **Links / Link URL** و**Links / Link Label**
* استخدم تنسيق الرابط الكامل: `https://example.com`
* للروابط الثانوية، استخدم عمود **Links / Secondary Links** بهذا التنسيق:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### حقول التحديد المتعدد
استخدم **أسماء واجهة برمجة التطبيقات (API)** (وليس تسميات العرض) بالتنسيق التالي:
```
["VALUE1","VALUE2"]
```
اطّلع [هنا](#finding-api-names-for-select-fields) لمعرفة مكان العثور على أسماء واجهة برمجة التطبيقات.
<Note>لن يتم إنشاء خيارات التحديد الجديدة تلقائيًا بواسطة الاستيراد. يجب إضافتها ضمن **الإعدادات → نموذج البيانات** قبل الاستيراد.</Note>
<Warning>
**استيراد الكتابات الزائدة؛ لا يضيف.**
إذا كان السجل يحتوي بالفعل على `VALUE2` و`VALUE3` محدّدين، ثم استوردت `["VALUE1"]`، فسيحتوي السجل على `VALUE1` فقط بعد الاستيراد. يتم استبدال التحديدات السابقة، وليس دمجها.
</Warning>
### حقول الأرقام
* أرقام فقط
* تُكتب الكسور العشرية بنقطة: `1234.56`
* من دون فواصل آلاف
### حقول الهاتف
الهاتف حقل متداخل يضم عدة أعمدة يجب **ملؤها**
* **Phones / Primary Phone Number**: رقم الهاتف (مثال: `4159095555`)
* **Phones / Primary Phone Country Code**: رمز الدولة (مثال: `US`)
* **Phones / Primary Phone Calling Code**: رمز الاتصال (مثال: `+1`)
### حقول التقييم
استخدم تنسيق اسم واجهة برمجة التطبيقات: `RATING_1`، `RATING_2`، `RATING_3`، `RATING_4`، `RATING_5`
### حقول العلاقات
يرجى الاطّلاع على مقالتنا المخصّصة: [استيراد العلاقات بين الكائنات](/l/ar/user-guide/data-migration/capabilities/import-relations)
### حقول الاختيار
استخدم **اسم واجهة برمجة التطبيقات** للخيار (وليس تسمية العرض):
```
VALUE1
```
اطلع [هنا](#finding-api-names-for-select-fields) على مكان العثور على أسماء واجهة برمجة التطبيقات.
<Note>لن يتم إنشاء خيارات الاختيار الجديدة تلقائيًا بواسطة الاستيراد. يجب إضافتها ضمن **الإعدادات → نموذج البيانات** قبل الاستيراد.</Note>
### الحقول النصية
* لا يلزم تنسيق خاص
* تُزال المسافات في البداية والنهاية
## العثور على أسماء واجهة برمجة التطبيقات
بالنسبة لحقول الاختيار، والاختيار المتعدد، والمصفوفة ذات الخيارات المحددة مسبقًا، يجب استخدام **أسماء واجهة برمجة التطبيقات**، وليس تسميات العرض.
### كيفية العثور على أسماء واجهة برمجة التطبيقات
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن والحقل
3. فعّل **الوضع المتقدم** (زر التبديل في أسفل يمين صفحة الإعدادات)
4. اعرض اسم واجهة برمجة التطبيقات لكل خيار
<VimeoEmbed videoId="1144910809" title="عرض توضيحي بالفيديو" />

View File

@@ -0,0 +1,48 @@
---
title: تنسيقات الملفات المدعومة
description: تنسيقات الملفات المدعومة لاستيراد البيانات في Twenty.
---
## التنسيقات المدعومة
يدعم Twenty ثلاث تنسيقات ملفات للاستيراد:
| التنسيق | الامتداد | الملاحظات |
| ---------------- | -------- | ----------------------- |
| **CSV** | .csv | موصى به، الأكثر توافقاً |
| **Excel** | .xlsx | تنسيق Excel الحديث |
| **Excel (قديم)** | .xls | تنسيق Excel الأقدم |
## متطلبات الملف
| متطلب | القيمة |
| ----------------------- | ------------------------------------------ |
| **الترميز** | يُوصى باستخدام UTF-8 |
| **الحد الأقصى للسجلات** | 10,000 سجل لكل ملف |
| **الهيكل** | يجب أن يحتوي الصف الأول على عناوين الأعمدة |
| **المحتوى** | نوع كائن واحد لكل ملف |
## أفضل الممارسات لملفات CSV
* **المحدد**: استخدم الفاصلة (`,`) أو الفاصلة المنقوطة (`;`)
* **محدد النص**: استخدم علامات الاقتباس المزدوجة (`"`) للنص الذي يحتوي على فواصل
* **نهايات الأسطر**: Windows (CRLF) أو Unix (LF) كلاهما مدعومان
* **القيم الفارغة**: اترك الخلايا فارغة، لا تستخدم "NULL" أو "N/A"
## أفضل الممارسات لبرنامج Excel
عند التصدير من Excel:
* أزل الصيغ (صدّر القيم فقط)
* احذف الصفوف الفارغة في النهاية
* تأكد من عدم وجود خلايا مدمجة
* استخدم الورقة الأولى فقط
## مجموعات البيانات الكبيرة
بالنسبة لمجموعات البيانات التي تزيد عن 10,000 سجل:
* قسّمها إلى عدة ملفات
* أو استخدم [الاستيراد عبر API](/l/ar/user-guide/data-migration/how-tos/import-data-via-api) لسجلات غير محدودة
<Note>بالنسبة لعمليات الترحيل الكبيرة جداً (100,000+ سجل)، تكون واجهة API أسرع بكثير وأكثر موثوقية من عمليات استيراد CSV.</Note>

View File

@@ -0,0 +1,148 @@
---
title: استيراد العلاقات بين الكائنات
description: استيراد العلاقات بين السجلات عبر CSV.
---
## نظرة عامة
يدعم Twenty استيراد العلاقات بين الكائنات أثناء استيراد CSV. يتيح لك هذا ربط السجلات (مثلًا، إرفاق الأشخاص بالشركات) كجزء من ترحيل البيانات.
<Note>**مدعوم حاليًا للاستيراد**: علاقات واحد إلى متعدد تشير إلى نوع كائن واحد على كل جانب (مثلًا، الأشخاص → الشركات). العلاقات التي تشير إلى أنواع كائنات متعددة غير مدعومة في الاستيراد/التصدير بعد.</Note>
## كيف تعمل العلاقات في Twenty
### واحد إلى متعدد / متعدد إلى واحد
يدعم Twenty العلاقات القياسية حيث يرتبط سجل واحد بعدّة سجلات أخرى:
* **شركة واحدة → العديد من الأشخاص**: يمكن أن تضم الشركة عدّة موظفين، لكن كل شخص ينتسب إلى شركة واحدة
* **شركة واحدة → العديد من الفرص**: يمكن أن تحتوي الشركة على عدّة صفقات، لكن كل فرصة تتبع شركة واحدة
### علاقات يمكن أن تشير إلى أنواع كائنات متعددة
يمكن لبعض العلاقات الاتصال بأنواع مختلفة من الكائنات. يعمل هذا بطريقتين:
**النمط 1: سجلات كثيرة يرتبط كلٌ منها بسجل واحد من أنواع كائنات مختلفة**
يمكن إرفاق عدة ملاحظات أو مهام بأنواع متعددة من الكائنات في وقت واحد:
* **الملاحظات** يمكن ربطها بشخص واحد وشركة واحدة وفرصة واحدة في الوقت نفسه
* **المهام** يمكن ربطها بشخص واحد وشركة واحدة وفرصة واحدة في الوقت نفسه
هنا تكون الملاحظات/المهام على جانب "المتعدد". يرتبط كلٌ منها بسجل واحد لكل نوع كائن.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**النمط 2: سجل واحد يستقبل روابط من سجلات عديدة لأنواع كائنات مختلفة**
يمكن لمشروع أن يستقبل روابط من سجلات متعددة عبر أنواع كائنات مختلفة:
* **مشروع** يمكن أن يكون مرتبطًا به العديد من الأشخاص، والعديد من الشركات، والعديد من الملاحظات المرفقة به
هنا يكون المشروع على جانب "الواحد". يمكن لعدّة سجلات من كائنات مختلفة أن ترتبط جميعها بالمشروع نفسه.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**قيد في الاستيراد/التصدير**: العلاقات التي تشير إلى أنواع كائنات متعددة (مثل الملاحظات → الأشخاص/الشركات/الفرص) **غير مدعومة بعد** في استيراد أو تصدير CSV.
* **الاستيراد**: يمكن استيراد علاقات واحد إلى متعدد فقط التي تشير إلى نوع كائن واحد على كل جانب
* **التصدير**: تُترك الأعمدة الخاصة بالعلاقات التي تشير إلى أنواع كائنات متعددة فارغة حاليًا
هذا على خارطة الطريق لدينا.
</Warning>
### ما ليس مدعومًا اليوم
**علاقات متعدد إلى متعدد** غير متاحة بعد. على سبيل المثال، لا يمكنك حاليًا إنشاء علاقة حيث:
* يرتبط العديد من الأشخاص بالعديد من المشاريع
<Note>العديد من العلاقات مخطط لها لـ H2 2026.</Note>
## ربط السجلات أثناء الاستيراد
<Note>**تذكير**: يمكن استيراد علاقات واحد إلى متعدد فقط التي تشير إلى نوع كائن واحد (مثلًا، الأشخاص → الشركات). العلاقات التي تشير إلى أنواع كائنات متعددة (مثل الملاحظات → الأشخاص/الشركات/الفرص) غير مدعومة بعد.</Note>
### الخطوة 1: تحديد جانبي "الواحد" و"المتعدد"
أولًا، حدّد أي الكائنات على جانب "الواحد" وأيها على جانب "المتعدد" في العلاقة.
**مثال**:
* **الشركة** هي جانب "الواحد" (شركة واحدة لديها العديد من الموظفين)
* **الأشخاص** على جانب "المتعدد" (ينتمي كل شخص إلى شركة واحدة)
### الخطوة 2: تأكّد من وجود سجلات جانب "الواحد"
قبل استيراد جانب "المتعدد"، يجب أن تكون سجلات جانب "الواحد" موجودة مسبقًا في Twenty.
* استورد أو أنشئ سجلات جانب "الواحد" أولًا (مثلًا، الشركات)
* تحقّق من مُعرّفهم الفريد. يمكن أن يكون ذلك:
* حقل `id` (UUID الخاص بـ Twenty)
* حقل مُعيّن كفريد (مثلًا، `domain` للشركات، أو مُعرّف خارجي من نظامك السابق)
<Warning>سيفشل الاستيراد إذا تمت الإشارة إلى سجل غير موجود.</Warning>
### الخطوة 3: جهّز ملف CSV الخاص بك
أضِف عمودًا في ملف CSV الخاص بجانب "المتعدد" يُشير إلى سجل جانب "الواحد".
**مثال**: لملف CSV للأشخاص يربط بالشركات:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**مهم**:
* يجب أن **يطابق تمامًا** قيمة الحقل الفريد في سجل الشركة
* بالنسبة للنطاقات، استخدم **عنوان النطاق (URL)** (مثلًا، `https://acme.com`)، وليس تسمية النطاق
* قم بتعيين **مُعرّف فريد واحد** فقط لكل علاقة: فهذا يؤدي إلى عملية استيراد أكثر سلاسة
### الخطوة 4: تأكّد من وجود حقل العلاقة
قبل رفع ملفك، تأكّد من وجود حقل العلاقة بين كائناتك.
إذا لم يكن موجودًا:
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن الخاص بك (مثلًا، الأشخاص)
3. أنشئ حقل علاقة يشير إلى الكائن الهدف (مثلًا، الشركة)
### الخطوة 5: ارفع الملف وعيّن العلاقة
1. ارفع ملف CSV عبر واجهة الاستيراد
2. في خطوة تعيين الحقول، اعثر على عمود العلاقة الخاص بك (مثلًا، `companyDomain`)
3. عيّنه على حقل العلاقة (مثلًا، الشركة)
4. سيقوم Twenty بربط كل سجل تلقائيًا بالأصل المطابق
### الحقول الفريدة المتاحة للعلاقات
| كائن | الحقول الفريدة المتاحة |
| ------------------------------ | -------------------------------- |
| **الشركات** | `id`، `domain`، أي حقل فريد مخصص |
| **الأشخاص** | `id`، `email`، أي حقل فريد مخصص |
| **أعضاء مساحة العمل** | `id`، `email` (ليس الاسم) |
| **كائنات قياسية ومخصّصة أخرى** | `id`، أي حقل مُعلَّم كفريد |
<Note>**الربط بأعضاء مساحة العمل**: عندما تشير العلاقة إلى أعضاء مساحة العمل (فريقك الذي يسجّل الدخول إلى Twenty)، فقم بالإشارة إليهم عبر **عنوان البريد الإلكتروني**، وليس الاسم.</Note>
<Note>نوصي باستخدام `domain` للشركات و`email` للأشخاص، إذ إنها مقروءة بشريًا وسهلة الإدارة في جداول البيانات.</Note>
<Note>**تذكير**: السجلات المحذوفة حذفًا غير نهائي (مرئية ضمن Command Menu → See deleted records) تُحتسب ضمن معايير التفرّد. إذا قمت باستيراد سجل بالقيمة الفريدة نفسها لسجل محذوف، فسيتم استعادة السجل المحذوف. راجع [قيود التفرّد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints) لمزيد من التفاصيل.</Note>
## قاعدة ترتيب الاستيراد
<Warning>
**احرص دائمًا على استيراد جانب "الواحد" أولًا!**
1. **الشركات** أولًا (من دون تبعيات)
2. **الأشخاص** ثانيًا (مرتبطون بالشركات)
3. **الفرص** ثالثًا (مرتبطة بالشركات/الأشخاص)
4. **الكائنات المخصّصة** وفقًا لتبعياتها
يجب أن يكون السجل الأصل موجودًا قبل أن تتمكّن من الإشارة إليه.
</Warning>

View File

@@ -0,0 +1,72 @@
---
title: قيود التفرّد
description: كيف يفرض Twenty تفرد البيانات أثناء الاستيراد.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## نظرة عامة
يفرض Twenty التفرّد على حقول معيّنة لمنع تكرار السجلات وضمان سلامة البيانات. فهم هذه القيود أمرٌ أساسي لنجاح عمليات الاستيراد.
## الحقول الفريدة الافتراضية
| كائن | الحقول الفريدة |
| ---------------- | -------------------- |
| **الأشخاص** | `id`, `email` |
| **الشركات** | `id`, `domain` |
| **كائنات مخصصة** | `id` فقط (افتراضيًا) |
<Note>حقل `id` هو المعرّف الداخلي الخاص بـ Twenty، يتم إنشاؤه تلقائيًا لكل سجل. يستخدم تنسيق UUID (مثلًا: `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`).</Note>
## حقول فريدة مخصّصة
يمكنك تعريف حقول فريدة إضافية ضمن **الإعدادات → نموذج البيانات**:
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن
3. انقر على حقل
4. فعِّل **فريد** في إعدادات الحقل
### حالات استخدام للحقول الفريدة المخصّصة
* **معرّفات خارجية**: خزّن معرّفات من أنظمة أخرى (Salesforce ID, HubSpot ID)
* **معرّفات الأعمال**: أرقام الموظفين، رموز العملاء
* **معلومات اتصال بديلة**: ملف LinkedIn، رقم الهاتف
<Note>اسم الحقل `id` محجوز للمعرّف الداخلي الخاص بـ Twenty. استخدم اسمًا مختلفًا مثل `externalId` أو `legacyId` للمعرّفات الخارجية.</Note>
## سلوك الاستيراد
### إنشاء سجلات جديدة
إذا لم تكن قيمة الحقل الفريد موجودة، فسيتم إنشاء سجل جديد.
### تحديث السجلات الموجودة
إذا طابقت قيمة حقل فريد سجلًا موجودًا، فسيتم **تحديث** ذلك السجل بالبيانات الجديدة.
<Warning>لـ **تحديث السجلات الموجودة**، يُنصَح بـ **مطابقة حقل فريد واحد فقط**.</Warning>
### السجلات المحذوفة حذفًا غير نهائي
<Warning>
**السجلات المحذوفة تُحتسب ضمن التفرّد.**
السجلات المحذوفة حذفًا غير نهائي (مرئية ضمن Command Menu → See deleted records) مُدرجة ضمن فحوصات التفرّد. إذا قمت باستيراد سجل بالقيمة الفريدة نفسها لسجل محذوف، فسيتم **استعادة** السجل المحذوف مع البيانات الجديدة.
</Warning>
## اكتشاف التكرارات أثناء الاستيراد
أثناء مرحلة التحقق:
* يتم تمييز التكرارات داخل ملفك باللون الأصفر
* يمكنك تعديل الصفوف المكرّرة أو إزالتها من واجهة المستخدم قبل بدء الاستيراد
<VimeoEmbed videoId="1145246326" title="عرض توضيحي بالفيديو" />
## أفضل الممارسات
1. **أزل التكرارات** من ملفك قبل الاستيراد
2. **تحقّق من السجلات الموجودة** في Twenty قبل الاستيراد
3. **استخدم المعرّفات الخارجية** عند الترحيل من أنظمة أخرى
4. **ضمّن الحقول الفريدة** إذا كنت تريد تحديث السجلات الموجودة

View File

@@ -0,0 +1,32 @@
---
title: تصدير الأسئلة الشائعة
description: أسئلة متكررة حول تصدير البيانات.
---
<AccordionGroup>
<Accordion title="هل يمكننا تصدير جميع بيانات مساحة العمل قبل الإلغاء، بما في ذلك الأجسام المخصصة، الحقول المخصصة، العلاقات، الملاحظات، المهام، الفرص، المرفقات، سير العمل، الأذونات، سجل المراجعة؟">
يمكن تصدير بيانات حيز العمل قبل الإلغاء مع بعض الاستثناءات: يجب نقل لوحات التحكم وتدفقات العمل والأذونات يدويا؛ ولا يمكن نقل سجلات مراجعة الحسابات.
</Accordion>
<Accordion title="ما هي العناصر التي لا يمكن تصديرها أو نقلها حالياً؟">
ويمكن تصدير معظم العناصر أو نقلها مع بعض الاستثناءات:
* سير العمل، لوحة التحكم وجميع الإعدادات (API مفاتيح الويب، وسجلات المراجعة، وإعدادات المستخدم، وما إلى ذلك) يجب ترحيل يدوياً
* يمكن ترحيل الكائنات والحقول التي أنشأتها التطبيقات عن طريق تثبيت التطبيق المذكور في فضاء عمل مختلف. لا ينبغي ترحيل يدوياً
* بعض السجلات، مثل إصدارات سير العمل وتشغيل سير العمل، غير قابلة للتحويل على الإطلاق ومن المتوقع أن تفقد
* بعض الكائنات مثل الرسائل والأجسام المتصلة بالتقويم لا ينبغي تصديرها لأنها تنشأ عند توصيل الحساب ومزامنته بشكل دوري. سيتم مزامنتهم مرة أخرى بمجرد الاتصال بحسابك (ما دام لديك حق الوصول إلى الحساب المذكور). إذا كان حساباً لأحد أعضاء الفريق الذين غادروا شركتك ، فيجب تصدير هذه الرسائل وإلا فستفقد )
</Accordion>
<Accordion title="هل هناك سحابة رسمية على إجراءات الهجرة التي تستضيف نفسها أو خدمة هجرة مساعدة؟">
وحتى الآن، لا توجد إجراءات رسمية للهجرة تستضيف ذاتيا. والفكرة العامة هي:
* أولاً ، قم بتثبيت التطبيقات لتقديم الكائنات والحقول التي تملكها التطبيقات
* تكرار الكائنات والحقول المخصصة المضافة من قبل المستخدمين
* استخدام برنامج نصي مع مفاتيح API أو أدوات AI لنقل جميع البيانات من فضاء عمل إلى آخر
* يجب نقل جميع الأشياء غير القابلة للتحويل يدوياً
يرجى أن تكون على علم ببضعة أشياء:
* يمكنك إرسال ما يصل إلى 50 طلب في الدقيقة على خطة المحترفين أو 100 طلب في الدقيقة على خطة المنظمة قبل أن تضرب الحد الأقصى للطلب/الحد الأدنى
* كل طلب API يمكن أن يحتوي على ما يصل إلى 200 سجل
* بعض البيانات في الحقول مثل التي تم إنشاؤها بواسطة أنشطة الخط الزمني وتحديثها سيتم فقدها أثناء الاستيراد وكتابتها من قبل النظام
</Accordion>
<Accordion title="هل يتم تقديم الملفات المصدرة بصيغ مفتوحة وموثقة؟">
الملفات المصدرة في واجهة المستخدم بتنسيق Excel، ويمكن حفظ جميع طلبات API بتنسيق JSON.
</Accordion>
</AccordionGroup>

View File

@@ -0,0 +1,209 @@
---
title: تصدير بياناتك
description: دليل كامل خطوة بخطوة لتصدير البيانات من Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## نظرة عامة
صدّر بيانات مساحة العمل الخاصة بك إلى CSV لأغراض النسخ الاحتياطي أو إعداد التقارير أو الترحيل.
**حالات الاستخدام:**
* **نسخ احتياطية منتظمة** — احتفظ بنسخ من بياناتك
* **تقارير خارجية** — حلّل البيانات في Excel وGoogle Sheets أو أدوات ذكاء الأعمال (BI)
* **الترحيل** — انقل البيانات إلى نظام آخر
* **تحديثات دفعيّة** — صدّر، ثم حرّر وأعد الاستيراد لتحديث السجلات
## ما تحتاج إلى معرفته
### حدود التصدير
* **حد أقصى 20,000 سجل** لكل عملية تصدير
* يتم تصدير **الأعمدة المرئية** فقط
* يتم تصدير **السجلات المصفّاة** فقط (استنادًا إلى العرض الحالي لديك)
<Note>بالنسبة لعمليات التصدير الأكبر (أكثر من 20,000 سجل)، استخدم عوامل التصفية للتصدير على دفعات أو استخدم [واجهة برمجة التطبيقات (API)](/l/ar/developers/extend/api).</Note>
### الصلاحيات
تحتاج إلى صلاحية **"تصدير CSV"** لتصدير البيانات. تواصل مع مشرف مساحة العمل إذا لم يكن هذا الخيار متاحًا لديك.
## الخطوة 1: الانتقال إلى الكائن
اذهب إلى الكائن الذي تريد تصديره:
* **الأشخاص** — لجهات الاتصال
* **الشركات** — للمؤسسات
* **الفرص** — للصفقات
* **كائنات مخصصة** — أي كائن قمت بإنشائه
## الخطوة 2: تهيئة العرض الخاص بك
**مهم:** يتضمن التصدير فقط ما هو مرئي في عرضك الحالي.
### إضافة/إزالة الأعمدة
1. انقر **الخيارات → الحقول** (أو **+** في نهاية الأعمدة)
2. حدّد الحقول التي تريد تصديرها
3. ألغ تحديد الحقول التي لا تحتاجها
### تصفية السجلات (اختياري)
إذا كنت تحتاج فقط إلى مجموعة فرعية من البيانات:
1. انقر على **تصفية**
2. أضف شروط التصفية (مثال: "تاريخ الإنشاء > 1 يناير 2024")
3. سيتم تصدير السجلات المطابقة فقط
### فرز السجلات (اختياري)
1. انقر على عنوان عمود للفرز
2. سيتبع التصدير ترتيب الفرز الذي اخترته
<Note>**أنشئ عرضًا مخصصًا للتصدير.** احفظ عرضًا مُهيّأً خصيصًا لعمليات التصدير حتى لا تحتاج إلى إعادة التهيئة في كل مرة.</Note>
## الخطوة 3: تصدير البيانات
1. انقر على أيقونة **⋮** في أعلى يمين الجدول
2. حدد **تصدير العرض**
3. اختر مكان حفظ ملف CSV
4. انتظر حتى يكتمل التنزيل
## ما الذي يتم تصديره
| متضمن | غير متضمن |
| --------------------------------------- | ---------------------------- |
| جميع الأعمدة المرئية | الأعمدة المخفية |
| السجلات المطابقة لعوامل التصفية الحالية | السجلات المُستبعدة بالتصفية |
| قيم الحقول المخصصة | الحقول غير الموجودة في العرض |
| معرّفات السجلات | مرفقات الملفات |
| معرّفات العلاقات | الصور |
### حقول العلاقات
يتم تصدير معرّفات العلاقات فقط على جانب "المتعدد" من العلاقة:
* **تصدير الأشخاص** يتضمن عمود `companyId` (علاقة الأشخاص → الشركة)
* **تصدير الشركات** لا يتضمن `peopleIds` (الشركات هي جانب "الواحد")
هذا يعني أنه يمكنك استخدام تصدير الأشخاص لإعادة الاستيراد والحفاظ على رابط الشركة، لكن ستحتاج إلى إعادة استيراد الأشخاص بعد الشركات لإعادة إنشاء العلاقات.
## التصدير لأغراض محددة
### للنسخ الاحتياطي
1. أنشئ عرضًا تكون فيه **جميع الحقول** مرئية
2. أزل جميع عوامل التصفية لتضمين كل السجلات
3. صدّر كل نوع من الكائنات على حدة
4. احفظ ملفات التصدير في موقع آمن
5. عيّن تذكيرًا متكررًا (أسبوعي/شهري)
### للتقارير الخارجية
1. ضمّن فقط الحقول التي تحتاجها للتحليل
2. طبّق عوامل تصفية للتركيز على البيانات ذات الصلة
3. فكّر في الفرز حسب الحقل الذي ستقوم بتحليله
### للتحديثات الدفعيّة
1. صدّر السجلات التي تريد تحديثها
2. ضمّن المعرّف الفريد (`email`، `domain`، أو `id`)
3. حرّر الملف المُصدَّر
4. أعد الاستيراد لتحديث السجلات
راجع: [كيفية تحديث السجلات الموجودة](/l/ar/user-guide/data-migration/how-tos/update-existing-records-via-import)
### للترحيل
إذا كنت تقوم بالتصدير للترحيل إلى نظام آخر:
1. **صدّر كل كائن على حدة** — الأشخاص، الشركات، الفرص، إلخ.
2. **ضمّن حقول المعرّف** — فهي تساعد في الحفاظ على العلاقات
3. **وَثِّق مطابقة الحقول** — دوّن كيفية توافق حقول Twenty مع نظامك المستهدف
## التعامل مع مجموعات بيانات كبيرة (أكثر من 20,000 سجل)
حد التصدير هو 20,000 سجل. بالنسبة لمجموعات البيانات الأكبر:
### الخيار 1: التصدير على دفعات
1. أضف عامل تصفية (مثال: نطاقات "تاريخ الإنشاء")
2. صدّر الدفعة الأولى
3. غيِّر عامل التصفية
4. صدّر الدفعة التالية
5. ادمج الملفات في تطبيق جداول البيانات لديك
**أمثلة لعوامل التصفية للتجميع على دفعات:**
* حسب النطاق الزمني (يناير، فبراير، مارس...)
* حسب المالك (عضو الفريق أ، عضو الفريق ب...)
* حسب الحالة (نشط، غير نشط...)
### الخيار 2: استخدام واجهة برمجة التطبيقات (API)
لا يوجد حد للسجلات في واجهة برمجة التطبيقات (API):
1. احصل على مفتاح API من **الإعدادات → المطوّرون**
2. استخدم واجهة برمجة تطبيقات GraphQL للاستعلام عن السجلات
3. عالج النتائج في تطبيقك
راجع: [وثائق واجهة برمجة التطبيقات (API)](/l/ar/developers/extend/api)
## نصائح وأفضل الممارسات
### إنشاء عروض للتصدير
احفظ عروضًا مُهيّأة خصيصًا لعمليات التصدير:
1. هيّئ الأعمدة وعوامل التصفية
2. انقر **خيارات العرض** → **حفظ كعرض جديد**
3. سمّه "تصدير - [الغرض]"
### أمّن عمليات التصدير الخاصة بك
قد تحتوي ملفات التصدير على بيانات حساسة:
* احفظها في مواقع آمنة
* احذف عمليات التصدير القديمة عندما لا تعود مطلوبة
* كن حذرًا عند مشاركة ملفات التصدير
### تحقّق قبل التصدير
<Check>الأعمدة الصحيحة مرئية</Check>
<Check>تم ضبط عوامل التصفية بشكل صحيح (أو تمت إزالتها للتصدير الكامل)</Check>
<Check>لديك صلاحية التصدير</Check>
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="لماذا تفتقد عملية التصدير بعض الأعمدة؟">
يتم تصدير الأعمدة المرئية فقط. أضف الأعمدة التي تحتاجها عبر **الخيارات → الحقول** قبل التصدير.
</Accordion>
<Accordion title="لماذا لا تحتوي عملية التصدير على جميع السجلات؟">
تحقّق من عوامل التصفية لديك. يتضمن التصدير فقط السجلات التي تطابق عوامل التصفية في عرضك الحالي. أزل عوامل التصفية لتصدير جميع السجلات.
</Accordion>
<Accordion title="هل يمكنني تصدير أكثر من 20,000 سجل؟">
ليس في عملية تصدير واحدة. استخدم عوامل التصفية للتصدير على دفعات، أو استخدم واجهة برمجة التطبيقات (API) لمجموعات البيانات الأكبر.
</Accordion>
<Accordion title="ما صيغة ملف التصدير؟">
CSV (قيم مفصولة بفواصل). يفتح في Excel أو Google Sheets أو أي تطبيق لجداول البيانات.
</Accordion>
<Accordion title="هل يتم تضمين معرّفات العلاقات؟">
نعم، ولكن فقط على جانب "المتعدد" من العلاقات. على سبيل المثال، يتضمن تصدير الأشخاص `companyId`، بينما لا يتضمن تصدير الشركات معرّفات الأشخاص.
</Accordion>
<Accordion title="هل يمكنني أتمتة عمليات التصدير؟">
ليس مباشرة عبر واجهة المستخدم. استخدم واجهة برمجة التطبيقات (API) لبناء عمليات سير عمل تصدير مؤتمتة.
</Accordion>
</AccordionGroup>
## الخطوات التالية
* [كيفية تحديث السجلات الموجودة](/l/ar/user-guide/data-migration/how-tos/update-existing-records-via-import) — حرّر وأعد استيراد ملف التصدير الخاص بك
* [كيفية استيراد البيانات عبر واجهة برمجة التطبيقات (API)](/l/ar/user-guide/data-migration/how-tos/import-data-via-api) — لمجموعات البيانات الكبيرة
* [وثائق واجهة برمجة التطبيقات (API)](/l/ar/developers/extend/api) — أنشئ عمليات سير عمل تصدير مخصصة

View File

@@ -0,0 +1,430 @@
---
title: إصلاح أخطاء الاستيراد
description: دليل شامل لاستكشاف أخطاء استيراد CSV وإصلاحها.
---
## نظرة عامة
هل تواجه مشكلة في الاستيراد؟ يساعدك هذا الدليل على تحديد أخطاء الاستيراد الشائعة وإصلاحها خطوة بخطوة.
## كيف تعمل عملية التحقّق من الاستيراد
بعد رفع ملفك وتعيين الأعمدة، تتحقّق Twenty من بياناتك:
1. **تُجرى عملية التحقّق** — تتحقّق Twenty من كل صف بحثًا عن الأخطاء
2. **تمييز الأخطاء** — تظهر الصفوف ذات المشكلات باللون **الأصفر**
3. **يمكنك الإصلاح مباشرةً** — حرّر الخلايا مباشرةً في واجهة الاستيراد
4. **أو إزالة الصفوف** — تخطَّ السجلات التي بها مشكلات تمامًا
<Note>**أصلِح الأخطاء في الواجهة.** لست مضطرًا للعودة إلى جدول البيانات الخاص بك. حرّر الخلايا مباشرة أثناء الاستيراد لتوفير الوقت.</Note>
## استكشاف الأخطاء وإصلاحها خطوة بخطوة
### الخطوة 1: تحديد نوع الخطأ
انقر على صف مميّز للاطلاع على رسالة الخطأ المحددة. أنواع الأخطاء الشائعة:
| رسالة الخطأ | ماذا يعني ذلك |
| ----------------------------------------------------------------------- | ---------------------------------------------------- |
| تم تمييز القيم المكرّرة باللون الأصفر | القيمة موجودة مسبقًا في Twenty أو تظهر مرتين في ملفك |
| `{field} is not a valid {type}` (مرّر المؤشر فوق الخلية الصفراء) | البيانات لا تطابق التنسيق المتوقع |
| تم تمييز الحقل المطلوب | الحقل المطلوب فارغ |
| `Can't connect to {object}. No unique record found...` (يفشل الاستيراد) | السجل المشار إليه غير موجود |
| `Too many records. Up to 10000 allowed` (تم حظر التحميل) | يحتوي الملف على أكثر من 10,000 سجل |
### الخطوة 2: إصلاح الخطأ
اتّبع الإرشادات المحددة أدناه لكل نوع من الأخطاء.
---
## خطأ: قيمة مكرّرة
### ما ستراه
تُميَّز الصفوف ذات القيم المكرّرة باللون **الأصفر** في واجهة الاستيراد قبل بدء الاستيراد.
### ماذا يعني ذلك
حقل فريد (البريد الإلكتروني، النطاق) إمّا:
* موجود مسبقًا في Twenty
* يظهر مرتين في ملفك
### كيفية الإصلاح
**الخيار 1: تعديل القيمة المكرّرة**
1. انقر فوق الخلية التي تحتوي على الخطأ
2. غيّرها إلى قيمة فريدة
3. تابع الاستيراد
**الخيار 2: إزالة الصف المكرّر**
1. انقر الرمز X بجوار الصف
2. سيتم تخطّي الصف أثناء الاستيراد
**الخيار 3: دع Twenty تحدّث السجل الموجود**
1. تأكّد من أن ملفك يتضمن معرّفًا فريدًا (`email`، `domain`، أو `id`)
2. قم بتعيين حقل المعرّف الفريد
3. ستقوم Twenty بتحديث السجل الموجود بدلًا من إنشاء نسخة مكرّرة
<Note>
**يمكنك تحديث الحقول الفريدة أيضًا.**
* إذا أبقيت على `id` لكن غيّرت `email` → فسيتم تحديث البريد الإلكتروني
* إذا أبقيت على `email` لكن غيّرت `id` → فسيتم تحديث المعرّف
طالما أن أحد المعرّفات الفريدة يطابق، تقوم Twenty بتحديث السجل.
</Note>
### كيفية منع هذا الخطأ
قبل الاستيراد:
1. رتّب جدول البيانات حسب الحقل الفريد
2. أزل الصفوف المكرّرة
3. تحقّق مما إذا كانت السجلات موجودة مسبقًا في Twenty
<Warning>
**السجلات المحذوفة حذفًا ناعمًا تُحتسب ضمن التفرد.**
تحقّق من قائمة الأوامر → اعرض السجلات المحذوفة. السجلات هناك ما تزال تفرض شرط التفرد. احذفها نهائيًا أو استعدها وقم بتحديثها.
</Warning>
لمزيد من التفاصيل: [قيود التفرد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## خطأ: تنسيق غير صالح
### ما ستراه
تم تمييز قيمة الخلية باللون الأصفر. مرّر المؤشر فوقها للاطلاع على رسالة الخطأ:
```
{field name} is not a valid {field type}
```
### ماذا يعني ذلك
لا تطابق البيانات التنسيق المتوقع لذلك النوع من الحقول.
### كيفية الإصلاح — حسب نوع الحقل
#### البريد الإلكتروني
**المشكلة:** تنسيق بريد إلكتروني غير صالح
**الحل:** استخدم التنسيق `name@domain.com`
```
❌ john.smith@
❌ john smith@acme.com
✓ john.smith@acme.com
```
#### النطاق
**المشكلة:** قد يتسبب عدم اتساق التنسيق في حدوث تكرارات
**الحل:** استخدم تنسيق `https://domain.com` (موصى به)
```
⚠️ acme.com (valid, but not recommended)
⚠️ www.acme.com (valid, but not recommended)
✅ https://acme.com (recommended)
```
<Note>جميع التنسيقات صالحة، لكن يُوصى بـ `https://domain.com` لأنه يطابق التنسيق المستخدم في مزامنة البريد الإلكتروني/التقويم. قد يؤدي استخدام تنسيقات أخرى إلى إنشاء شركات مكرّرة.</Note>
#### تاريخ
**المشكلة:** تنسيق تاريخ غير معروف
**الحل:** استخدم تنسيق `YYYY-MM-DD` بشكل متّسق في جميع أنحاء الملف
```
✓ 2024-03-15 (YYYY-MM-DD)
❌ 03/15/2024 (MM/DD/YYYY)
❌ 15/03/2024 (DD/MM/YYYY)
```
#### هاتف
**المشكلة:** أعمدة مطلوبة مفقودة
**الحل:** تضمين جميع أعمدة الهاتف
| العمود | مثال |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
#### قيمة منطقية
**المشكلة:** قيمة منطقية خاطئة
**الحل:** استخدم `TRUE` أو `FALSE` بحروف كبيرة
```
❌ true
❌ yes
❌ 1
✓ TRUE
✓ FALSE
```
#### اختيار / اختيار متعدد
**المشكلة:** لا تطابق القيمة الخيارات الموجودة
**الحل:** استخدم **أسماء واجهة برمجة التطبيقات (API)**، وليس تسميات العرض
كيفية العثور على أسماء واجهة برمجة التطبيقات:
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن والحقل
3. فعّل **الوضع المتقدم** (زر التبديل في أسفل اليمين)
4. استخدم اسم واجهة برمجة التطبيقات (على سبيل المثال، `OPTION_1`، وليس "Option 1")
```
❌ High Priority
✓ HIGH_PRIORITY
```
#### العملة
**المشكلة:** المبلغ أو رمز العملة مفقود
**الحل:** املأ كلا العمودين
| العمود | مثال |
| ------------------- | --------- |
| **المبلغ / المبلغ** | `1234.56` |
| **المبلغ / العملة** | `USD` |
#### رقم
**المشكلة:** أحرف غير رقمية
**الحل:** أرقام فقط، ونقطة للفواصل العشرية
```
❌ $1,234.56
❌ 1,234.56
✓ 1234.56
```
للاطلاع على مرجع التنسيقات الكامل: [مرجع تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping)
---
## خطأ: حقل مطلوب مفقود
### ما ستراه
تم تمييز الصف باللون الأصفر مع وضع علامة على خلية الحقل المطلوب.
### ماذا يعني ذلك
الحقل المطلوب فارغ لهذا الصف.
### كيفية الإصلاح
**الخيار 1: إدخال قيمة**
1. انقر فوق الخلية الفارغة
2. أدخل قيمة
3. تابع الاستيراد
**الخيار 2: إزالة الصف**
1. إذا لم تكن لديك البيانات، انقر X لتخطّي الصف
### كيفية منع هذا الخطأ
قبل الاستيراد، حدّد الحقول المطلوبة:
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن الخاص بك
3. تحقّق من الحقول المُعلمة كمطلوبة
---
## خطأ: العلاقة غير موجودة
### ما ستراه
يظهر هذا الخطأ **بعد بدء الاستيراد** — يفشل الاستيراد برسالة مثل:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
هذا يعني أنه لا توجد شركة في Twenty بذلك المعرّف المحدّد.
<Note>على عكس الأخطاء الأخرى، لا يُلتقط هذا الخطأ أثناء خطوة مراجعة البيانات. سيبدأ الاستيراد ثم يفشل عند مواجهة العلاقة المفقودة.</Note>
### ماذا يعني ذلك
تحاول ربط سجل غير موجود في Twenty.
### كيفية الإصلاح
**الخيار 1: استيراد سجلات الأصل أولًا**
1. ألغِ الاستيراد الحالي
2. استورد سجلات الأصل (مثلًا، الشركات)
3. ثم استورد سجلات التابع (مثلًا، الأشخاص)
**الخيار 2: أصلِح قيمة المرجع**
1. تحقّق من قيمة المرجع في ملفك
2. تأكّد من أنه يطابق سجلًا موجودًا تمامًا
3. تحقّق من التنسيق: يجب أن تكون النطاقات بصيغة `https://domain.com`
**الخيار 3: إزالة العلاقة**
1. امسح الخلية للاستيراد دون العلاقة
2. أضِف العلاقة يدويًا لاحقًا
### كيفية منع هذا الخطأ
1. **استورد بالترتيب الصحيح:**
* الشركات أولًا
* الأشخاص ثانيًا (مع مراجع الشركة)
* الفرص ثالثًا
2. **تحقّق من قيم المراجع:**
* صدّر سجلات الأصل للحصول على معرّفات دقيقة
* استخدم تنسيق النطاق `https://domain.com`
* تحقّق من الأخطاء الإملائية وحساسية حالة الأحرف
<Warning>
**سيفشل الاستيراد إذا تمت الإشارة إلى سجل غير موجود.**
استورد دائمًا كائنات الأصل قبل كائنات التابع.
</Warning>
لمزيد من التفاصيل: [استيراد العلاقات](/l/ar/user-guide/data-migration/capabilities/import-relations)
---
## خطأ: ملف كبير جدًا
### ما ستراه
يظهر هذا الخطأ **عند رفع ملفك** — يتم حظر التحميل بالكامل:
```
Too many records. Up to 10000 allowed
```
لن تتمكّن من الانتقال إلى خطوة مراجعة البيانات حتى تقلّل حجم الملف.
### ماذا يعني ذلك
يحتوي ملفك على أكثر من 10,000 سجل.
### كيفية الإصلاح
**الخيار 1: التقسيم إلى عدة ملفات**
1. قسّم بياناتك إلى ملفات تحتوي على 10,000 سجل أو أقل
2. استورد كل ملف على حدة
3. حافظ على ترتيب الاستيراد (الشركات قبل الأشخاص)
**الخيار 2: استخدم الاستيراد عبر واجهة برمجة التطبيقات (API)**
بالنسبة لمجموعات البيانات الكبيرة جدًا، استخدم واجهة برمجة التطبيقات التي لا تحتوي على حد لعدد السجلات.
راجع: [كيفية استيراد البيانات عبر واجهة برمجة التطبيقات (API)](/l/ar/user-guide/data-migration/how-tos/import-data-via-api)
---
## خطأ: لم يتم التعرّف على الحقل
### ماذا يعني ذلك
لا يمكن تعيين عمود في ملفك لأن الحقل غير موجود في Twenty.
### كيفية الإصلاح
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن الذي تستورده
3. انقر **+ إضافة حقل**
4. أنشئ الحقل المخصّص بالنوع المناسب
5. أعد رفع ملفك
<Note>يُنشئ استيراد CSV سجلات، وليس حقولًا. يجب أن تكون جميع الحقول موجودة قبل الاستيراد.</Note>
---
## خطأ: علاقة المستخدم فارغة
### ماذا يعني ذلك
تحاول إسناد سجل إلى مستخدم (المالك، المعيَّن) لكن العلاقة لا يتم تعيينها.
### أسباب شائعة
1. **لم يقبل المستخدم دعوته** — المستخدم غير موجود في Twenty بعد
2. **استخدام معرّف مستخدم من نظام قديم** — لا تستطيع Twenty مطابقة المعرّفات من نظام آخر
3. **تنسيق بريد إلكتروني خاطئ** — البريد الإلكتروني لا يطابق حساب المستخدم في Twenty
### كيفية الإصلاح
1. تأكّد من أن جميع المستخدمين قد **قبلوا دعوتهم** إلى مساحة عمل Twenty الخاصة بك
2. استخدم **عنوان البريد الإلكتروني** الخاص بالمستخدم (وليس اسمه أو معرّف النظام القديم)
3. استخدم البريد الإلكتروني نفسه الذي استخدموه للانضمام إلى Twenty
<Warning>
**يجب على المستخدمين قبول الدعوات قبل الاستيراد.**
إذا لم يقبل المستخدم دعوته، فستكون علاقات المستخدم فارغة في السجلات التي تشير إليه.
</Warning>
---
## قائمة ما قبل الاستيراد
تجنّب الأخطاء من خلال التحقّق مما يلي قبل الاستيراد:
### متطلبات الملف
<Check>الملف بتنسيق CSV أو XLSX أو XLS</Check>
<Check>يحتوي الملف على أقل من 10,000 سجل</Check>
<Check>يستخدم الملف ترميز UTF-8</Check>
### جودة البيانات
<Check>لا توجد رسائل بريد إلكتروني مكرّرة (للأشخاص)</Check>
<Check>لا توجد نطاقات مكرّرة (للشركات)</Check>
<Check>جميع التواريخ تستخدم تنسيقًا متّسقًا</Check>
<Check>جميع النطاقات تستخدم تنسيق `https://domain.com`</Check>
### تنسيقات الحقول
<Check>الحقول المنطقية تستخدم `TRUE` أو `FALSE` (أحرف كبيرة)</Check>
<Check>حقول الاختيار تستخدم أسماء واجهة برمجة التطبيقات (API)، وليس تسميات العرض</Check>
<Check>حقول الهاتف تحتوي على جميع الأعمدة المطلوبة</Check>
<Check>حقول العملة تتضمن كلًا من المبلغ ورمز العملة</Check>
### العلاقات
<Check>تم استيراد سجلات الأصل قبل سجلات التابع</Check>
<Check>أعمدة العلاقات تشير إلى سجلات موجودة</Check>
<Check>تنسيق النطاق يطابق تنسيق Twenty تمامًا</Check>
### نموذج البيانات
<Check>جميع الحقول المخصّصة موجودة في الإعدادات → نموذج البيانات</Check>
<Check>خيارات الاختيار موجودة قبل الاستيراد</Check>
---
## هل لا تزال تواجه مشكلات؟
إذا كنت قد جرّبت الحلول أعلاه:
1. **نزّل ملف العيّنة** — اطّلع على التنسيق الدقيق الذي تتوقعه Twenty
2. **صدّر السجلات الموجودة** — قارن ملفك بالبيانات التي تعمل بشكل صحيح
3. **اختبر بدفعة صغيرة** — جرّب 5-10 صفوف أولًا
4. **اطّلع على مقالات المرجع:**
* [مرجع تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping)
* [قيود التفرد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
* [كيفية استيراد العلاقات](/l/ar/user-guide/data-migration/capabilities/import-relations)
* [التعامل مع الأخطاء](/l/ar/user-guide/data-migration/capabilities/error-handling)

View File

@@ -0,0 +1,201 @@
---
title: استيراد الشركات عبر CSV
description: دليل كامل خطوة بخطوة لاستيراد الشركات إلى Twenty.
---
## نظرة عامة
يرشدك هذا الدليل خلال عملية استيراد شركاتك إلى Twenty. **يجب استيراد الشركات أولًا** لأن الأشخاص والفرص ترتبط بالشركات.
## قبل أن تبدأ
### قائمة المتطلبات المسبقة
<Check>
يجب أن يكون ملفك بتنسيق CSV أو XLSX أو XLS
</Check>
<Check>
يحتوي الملف على أقل من 10,000 سجل
</Check>
<Check>
لا توجد نطاقات مكررة في ملفك
</Check>
<Check>
جميع الحقول المخصصة موجودة في **Settings → Data Model**
</Check>
<Note>
هل تحتاج إلى استيراد أكثر من 10,000 شركة؟ قسّم إلى ملفات متعددة أو استخدم [استيراد عبر API](/l/ar/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## الخطوة 1: جهّز بيانات شركتك
### الحقول المطلوبة والمُوصى بها
| الحقل | هل هو مطلوب؟ | التنسيق | الملاحظات |
| ------------------ | ------------ | -------------------- | -------------------------------- |
| **Name** | مُوصى به | نص | اسم العرض للشركة |
| **النطاق** | مُوصى به | `https://domain.com` | معرّف فريد |
| **العنوان** | اختياري | أعمدة متعددة | انظر أدناه |
| **الموظفون** | اختياري | رقم | عدد الموظفين |
| **الحقول المخصصة** | اختياري | يختلف | يجب أن تكون موجودة في Data Model |
### تنسيق النطاق
<Warning>
**استخدم التنسيق `https://domain.com` للنطاقات.**
هذا يطابق التنسيق المستخدم عند إنشاء الشركات تلقائيًا من مزامنة البريد الإلكتروني/التقويم، مما يمنع التكرارات لاحقًا.
</Warning>
**أعمدة النطاق:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### تنسيق العنوان
العنوان حقل متداخل يتضمن أعمدة متعددة:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### بنية CSV نموذجية
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
Acme Corp,https://acme.com,acme.com,San Francisco,USA,250
Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**نصيحة احترافية:** انقر **Download sample file** أثناء الاستيراد للاطلاع على أسماء الأعمدة الدقيقة التي تتوقعها Twenty.
</Note>
## الخطوة 2: الوصول إلى ميزة الاستيراد
**الخيار 1: من عرض الشركات**
1. انتقل إلى **Companies** في الشريط الجانبي الأيسر
2. انقر على أيقونة **⋮** في أعلى اليمين
3. اختر **Import records**
**الخيار 2: باستخدام قائمة الأوامر**
1. اضغط `Cmd + K` (Mac) أو `Ctrl + K` (Windows)
2. اكتب "import"
3. اختر **Import records**
4. اختر **Companies**
## الخطوة 3: حمّل ملفك
1. انقر فوق **Select file**
2. اختر ملف CSV أو XLSX أو XLS الخاص بك
3. انتظر حتى تقوم Twenty بتحليل ملفك
## الخطوة 4: طابق أعمدتك
يحاول Twenty تلقائيًا مطابقة أعمدتك مع الحقول. راجع وعدّل:
1. **تحقق من المطابقات التلقائية** — تأكد من أنها صحيحة
2. **أصلح المطابقات غير الصحيحة** — انقر على القائمة المنسدلة لاختيار الحقل الصحيح
3. **تخطَّ الأعمدة** — اختر **Do not map** للأعمدة التي لا تريد استيرادها
### قواعد مطابقة مهمة
* **النطاق**: طابق مع **Domain / Domain URL** (وليس Domain Label)
* **العنوان**: طابق كل جزء مع العمود المحدد له (المدينة، الولاية، إلخ.)
* **حقول الاختيار**: يجب أن تطابق القيم الخيارات الموجودة (أو ستقوم بمطابقتها في الخطوة التالية)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## الخطوة 5: تعيين قيم حقل الاختيار
إذا كانت لديك حقول اختيار أو اختيار متعدد:
1. تعرض Twenty قيمك إلى جانب الخيارات الموجودة
2. طابِق كل قيمة في ملفك مع خيار في Twenty
3. أو أنشئ خيارات جديدة عند الحاجة
<Note>
تستخدم خيارات الاختيار **أسماء API**، وليس تسميات العرض. تحقّق من **Settings → Data Model** → فعِّل **Advanced mode** لمشاهدة أسماء API.
</Note>
## الخطوة 6: مراجعة الأخطاء وإصلاحها
قبل إكمال الاستيراد، تقوم Twenty بالتحقق من صحة بياناتك:
1. انقر على **الخطوات التالية**
2. يتم تمييز الصفوف التي تحتوي على أخطاء باللون **الأصفر**
3. **أصلِح الأخطاء مباشرةً** — انقر على خلية وعدّل القيمة
4. **أزِل الصفوف التي بها مشكلات** — انقر على X لتخطي ذلك الصف
### أخطاء شائعة عند استيراد الشركات
| خطأ | السبب | الحل |
| ----------------------- | ----------------------------- | ------------------------------------ |
| **نطاق مكرر** | النطاق موجود مسبقًا في Twenty | أزِل من الملف أو حدِّث السجل الموجود |
| **تنسيق نطاق غير صالح** | تنسيق غير صحيح | استخدم `https://domain.com` |
| **حقل مطلوب مفقود** | الحقل المطلوب فارغ | املأ القيمة أو أزِل الصف |
## الخطوة 7: إكمال الاستيراد
1. راجِع ملخص الاستيراد
2. انقر على **تأكيد** للاستيراد
3. انتظر حتى يكتمل الاستيراد
4. تحقق بمراجعة عدد قليل من السجلات
## بعد استيراد الشركات
يمكنك الآن استيراد السجلات التي ترتبط بالشركات:
1. **[استيراد الأشخاص](/l/ar/user-guide/data-migration/how-tos/import-contacts-via-csv)** — اربطهم بالشركات باستخدام النطاق
2. **استورد الفرص** — اربطها بالشركات
3. **تحقق من الاستيراد** — افحص عينة من السجلات للتأكد من أن البيانات صحيحة
## تحديث الشركات الموجودة
لتحديث الشركات بدلًا من إنشاء شركات جديدة:
1. ضمّن عمود `domain` أو `id` في ملفك
2. تقوم Twenty بمطابقة السجلات باستخدام هذا المعرّف الفريد
3. يتم تحديث الشركات الموجودة؛ ويتم إنشاء شركات جديدة
راجع [كيفية تحديث السجلات الموجودة](/l/ar/user-guide/data-migration/how-tos/update-existing-records-via-import) للتفاصيل.
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="لماذا لا يمكن لشركتين أن تمتلكا النطاق نفسه؟">
النطاق معرّف فريد في Twenty. هذا يمنع تكرار الشركات ويضمن أن مزامنة البريد الإلكتروني تربط الرسائل بالشركة الصحيحة على نحو صحيح.
</Accordion>
<Accordion title="ماذا لو كانت لديّ شركات بلا نطاق؟">
يمكنك ترك النطاق فارغًا. ومع ذلك، نوصي بإضافة النطاقات عندما يكون ذلك ممكنًا لتحسين جودة البيانات والربط التلقائي للبريد الإلكتروني.
</Accordion>
<Accordion title="هل يمكنني استيراد شركات دون ربط أي أشخاص بها؟">
نعم! يمكنك استيراد الشركات أولاً، ثم استيراد الأشخاص لاحقًا وربطهم باستخدام نطاق الشركة.
</Accordion>
<Accordion title="ماذا يحدث إذا قمتُ باستيراد نطاق موجود بالفعل؟">
إذا تضمّنت معرّفًا فريدًا (نطاقًا أو id) يطابق شركةً موجودة، يقوم Twenty بتحديث تلك الشركة بدلاً من إنشاء نسخة مكررة.
</Accordion>
<Accordion title="كيف أصلِح أخطاء 'نطاق مكرر'؟">
إمّا أن تزيل النسخة المكررة من ملفك، أو تُدرج `id` الخاصة بالشركة لتحديث السجل الموجود بدلًا من ذلك.
</Accordion>
</AccordionGroup>
## استكشاف الأخطاء وإصلاحها
هل تواجه مشكلات؟ اطّلع على:
* [كيفية إصلاح أخطاء الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
* [مرجع تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping)
* [قيود التفرد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)

View File

@@ -0,0 +1,242 @@
---
title: استيراد جهات الاتصال عبر CSV
description: دليل كامل خطوة بخطوة لاستيراد الأشخاص/جهات الاتصال إلى Twenty.
---
## نظرة عامة
يرشدك هذا الدليل خلال عملية استيراد جهات الاتصال (الأشخاص) إلى Twenty.
## قبل أن تبدأ
### قائمة المتطلبات المسبقة
<Check>
يجب أن يكون ملفك بتنسيق CSV أو XLSX أو XLS
</Check>
<Check>
يحتوي الملف على أقل من 10,000 سجل
</Check>
<Check>
لا توجد عناوين بريد إلكتروني مكررة في ملفك
</Check>
<Check>
**استيراد الشركات أولًا** (إذا كنت تربط الأشخاص بالشركات)
</Check>
<Check>
جميع الحقول المخصصة موجودة في **Settings → Data Model**
</Check>
<Warning>
**استيراد الشركات قبل الأشخاص**
إذا كنت تريد ربط الأشخاص بالشركات، فاستورد الشركات أولًا. يجب أن تكون الشركة موجودة قبل أن تتمكن من الإشارة إليها.
</Warning>
## الخطوة 1: جهّز بيانات جهات الاتصال الخاصة بك
### الحقول المطلوبة والمُوصى بها
| الحقل | هل هو مطلوب؟ | التنسيق | الملاحظات |
| --------------------- | ------------ | ----------------- | -------------------------------- |
| **البريد الإلكتروني** | مُوصى به | `name@domain.com` | يجب أن يكون فريدًا |
| **الاسم الأول** | مُوصى به | نص | |
| **الاسم الأخير** | مُوصى به | نص | |
| **الشركة** | اختياري | النطاق أو المعرّف | يرتبط بشركة موجودة |
| **هاتف** | اختياري | أعمدة متعددة | انظر أدناه |
| **المسمى الوظيفي** | اختياري | نص | |
| **الحقول المخصصة** | اختياري | يختلف | يجب أن تكون موجودة في Data Model |
### تنسيق البريد الإلكتروني
* يجب أن يكون بتنسيق بريد إلكتروني صالح: `name@domain.com`
* **يجب أن يكون فريدًا** — لا تكرارات في ملفك أو في Twenty
* للعناوين الإضافية للبريد الإلكتروني، استخدم عمود **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### تنسيق الهاتف
الهاتف هو **حقل متداخل** يتطلب أعمدة متعددة:
| العمود | مثال |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### الربط بالشركات
أضف عمودًا يضم المعرّف الفريد للشركة:
| اسم العمود | التنسيق | مثال |
| --------------- | --------------- | -------------------------------------- |
| `companyDomain` | تنسيق عنوان URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**استخدم تنسيق عنوان URL للنطاق** (`https://acme.com`)، وليس التسمية. هذا يطابق كيفية تخزين الشركات في Twenty.
</Note>
### بنية CSV نموذجية
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
John,Smith,john@acme.com,CEO,https://acme.com,4159095555,US
Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<Note>
**نصيحة احترافية:** انقر **Download sample file** أثناء الاستيراد أو صدّر عددًا قليلًا من الأشخاص الموجودين للاطلاع على أسماء الأعمدة الدقيقة التي تتوقعها Twenty.
</Note>
## الخطوة 2: الوصول إلى ميزة الاستيراد
**الخيار 1: من عرض People**
1. انتقل إلى **People** في الشريط الجانبي الأيسر
2. انقر على أيقونة **⋮** في أعلى اليمين
3. اختر **Import records**
**الخيار 2: باستخدام قائمة الأوامر**
1. اضغط `Cmd + K` (Mac) أو `Ctrl + K` (Windows)
2. اكتب "import"
3. اختر **Import records**
4. اختر **People**
## الخطوة 3: حمّل ملفك
1. انقر فوق **Select file**
2. اختر ملف CSV أو XLSX أو XLS الخاص بك
3. انتظر حتى يقوم Twenty بتحليل ملفك
## الخطوة 4: طابق أعمدتك
يحاول Twenty تلقائيًا مطابقة أعمدتك مع الحقول. راجع وعدّل:
1. **تحقق من المطابقات التلقائية** — تأكد من أنها صحيحة
2. **أصلح المطابقات غير الصحيحة** — انقر على القائمة المنسدلة لاختيار الحقل الصحيح
3. **تخطَّ الأعمدة** — اختر **Do not map** للأعمدة التي لا تريد استيرادها
### قواعد مطابقة مهمة
| نوع العمود | التعيين إلى | الملاحظات |
| --------------------------- | ------------------------------ | ------------------------------------- |
| مرجع الشركة | حقل علاقة **Company** | استخدم النطاق أو المعرّف، وليس كليهما |
| البريد الإلكتروني | **البريد الإلكتروني** | عنوان البريد الإلكتروني الأساسي |
| عناوين بريد إلكتروني إضافية | **Emails / Additional Emails** | تنسيق المصفوفة |
| هاتف | أعمدة منفصلة | الرقم، رمز الدولة، رمز الاتصال |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### مطابقة علاقة الشركة
عند مطابقة عمود الشركة:
1. اعثر على عمود مرجع الشركة (مثلًا، `companyDomain`)
2. طابقه مع حقل علاقة **Company**
3. سيقوم Twenty بربط كل شخص بالشركة المطابقة
<Warning>
**طابق معرّفًا فريدًا واحدًا فقط للعلاقات.**
لا تقم بتعيين كلٍّ من `companyId` و`companyDomain` معًا. اختر واحدًا — ويفضَّل استخدام النطاق لأنه مقروء للبشر.
</Warning>
## الخطوة 5: تعيين قيم حقل الاختيار
إذا كانت لديك حقول اختيار أو اختيار متعدد (مثل مصدر العميل المحتمل):
1. تعرض Twenty قيمك إلى جانب الخيارات الموجودة
2. طابِق كل قيمة في ملفك مع خيار في Twenty
3. أو أنشئ خيارات جديدة عند الحاجة
<Note>
تستخدم خيارات الاختيار **أسماء API**، وليس تسميات العرض. تحقّق من **الإعدادات → نموذج البيانات** → فعِّل **الوضع المتقدم** لمشاهدة أسماء API.
</Note>
## الخطوة 6: مراجعة الأخطاء وإصلاحها
قبل إكمال الاستيراد، تقوم Twenty بالتحقق من صحة بياناتك:
1. انقر على **الخطوات التالية**
2. يتم تمييز الصفوف التي تحتوي على أخطاء باللون **الأصفر**
3. **أصلِح الأخطاء مباشرةً** — انقر على خلية وعدّل القيمة
4. **أزِل الصفوف التي بها مشكلات** — انقر على X لتخطي ذلك الصف
### أخطاء شائعة عند استيراد جهات الاتصال
| خطأ | السبب | الحل |
| -------------------------------- | ---------------------------------------------------- | ------------------------------------ |
| **بريد إلكتروني مكرر** | البريد الإلكتروني موجود مسبقًا في Twenty أو في الملف | أزِل التكرار أو حدِّث السجل الموجود |
| **تنسيق بريد إلكتروني غير صالح** | تنسيق البريد الإلكتروني غير صحيح | صحّحه إلى `name@domain.com` |
| **العلاقة غير موجودة** | الشركة غير موجودة | استورد الشركات أولًا أو أصلِح المرجع |
| **حقل مطلوب مفقود** | الحقل المطلوب فارغ | املأ القيمة أو أزِل الصف |
## الخطوة 7: إكمال الاستيراد
1. راجِع ملخص الاستيراد
2. انقر على **تأكيد** للاستيراد
3. انتظر حتى يكتمل الاستيراد
4. تحقَّق بفحص عدد قليل من السجلات وروابطها بالشركة
## بعد استيراد جهات الاتصال
جهات الاتصال الخاصة بك موجودة الآن في Twenty! الخطوات التالية:
1. **تحقَّق من روابط الشركة** — افتح عددًا قليلًا من سجلات الأشخاص للتأكد من أنها مرتبطة بالشركة الصحيحة
2. **استورد الفرص** — واربطها عند الحاجة بالأشخاص والشركات
3. **اضبط مزامنة البريد الإلكتروني** — وصّل صندوق بريدك لعرض سجل البريد الإلكتروني في سجلات جهات الاتصال
## تحديث جهات الاتصال الموجودة
لتحديث جهات الاتصال بدلًا من إنشاء جهات جديدة:
1. ضمّن عمود `email` أو `id` في ملفك
2. تقوم Twenty بمطابقة السجلات باستخدام هذا المعرّف الفريد
3. يتم تحديث جهات الاتصال الموجودة؛ ويتم إنشاء جهات جديدة
راجع [كيفية تحديث السجلات الموجودة](/l/ar/user-guide/data-migration/how-tos/update-existing-records-via-import) للتفاصيل.
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="لماذا لا يمكن لشخصين أن يمتلكا البريد الإلكتروني نفسه؟">
البريد الإلكتروني معرّف فريد في Twenty. هذا يمنع تكرار جهات الاتصال ويضمن أن مزامنة البريد الإلكتروني تربط الرسائل بالشخص الصحيح على نحوٍ صحيح.
</Accordion>
<Accordion title="ماذا لو كان لديّ أشخاص بلا بريد إلكتروني؟">
يمكنك ترك البريد الإلكتروني فارغًا. مع ذلك، نوصي بإضافة عناوين البريد الإلكتروني عندما يكون ذلك ممكنًا لتحسين جودة البيانات ووظائف مزامنة البريد الإلكتروني.
</Accordion>
<Accordion title="كيف أربط الأشخاص بالشركات أثناء الاستيراد؟">
أضِف عمودًا يحتوي على نطاق الشركة (مثلًا، `https://acme.com`) أو المعرّف. أثناء عملية التعيين، اربط هذا العمود بحقل علاقة الشركة.
</Accordion>
<Accordion title="ماذا لو لم تكن الشركة موجودة بعد؟">
استورد الشركات أولًا، ثم استورد الأشخاص. يجب أن تكون الشركة موجودة قبل أن تتمكّن من الإشارة إليها.
</Accordion>
<Accordion title="هل يمكنني استيراد المعرّف من نظام إدارة علاقات العملاء (CRM) السابق لديّ؟">
نعم! أنشئ حقلًا مخصصًا موسومًا بأنه "unique" في نموذج بياناتك لتخزين المعرّف الخارجي. ملاحظة: اسم الحقل `id` محجوز للمعرّف الداخلي الخاص بـ Twenty.
</Accordion>
<Accordion title="كيف أصلِح أخطاء 'العلاقة غير موجودة'؟">
الشركة التي تشير إليها غير موجودة. إما أن تستورد الشركة أولًا، أو تأكّد من أن النطاق/المعرّف يطابق تمامًا شركةً موجودة.
</Accordion>
</AccordionGroup>
## استكشاف الأخطاء وإصلاحها
هل تواجه مشكلات؟ اطّلع على:
* [كيفية إصلاح أخطاء الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
* [كيفية استيراد العلاقات](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [مرجع تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,176 @@
---
title: استيراد البيانات عبر واجهة API
description: متى وكيف تستخدم واجهات API الخاصة بـ Twenty لاستيراد البيانات على نطاق واسع.
---
## نظرة عامة
توفّر Twenty كلًا من **GraphQL** و**واجهات REST API** لاستيراد البيانات برمجيًا. استخدم واجهة API عندما لا يكون استيراد CSV عمليًا لحجم بياناتك أو عندما تحتاج إلى عمليات استيراد مؤتمتة ومتكررة.
## متى تستخدم الاستيراد عبر API
| السيناريو | الطريقة الموصى بها |
| ----------------------------- | ---------------------------- |
| أقل من 10,000 سجل | استيراد CSV |
| 10,000 - 50,000 سجل | استيراد CSV (قسّم إلى ملفات) |
| **أكثر من 50,000 سجل** | **استيراد API** |
| ترحيل لمرة واحدة | أيّ منهما (حسب الحجم) |
| **عمليات استيراد متكررة** | **استيراد API** |
| **مزامنة في الوقت الحقيقي** | **استيراد API** |
| **التكامل مع الأنظمة الأخرى** | **استيراد API** |
<Note>بالنسبة لمجموعات البيانات التي تبلغ مئات الآلاف، تكون واجهة API أسرع بكثير وأكثر موثوقية من عمليات استيراد CSV المتعددة.</Note>
## حدود معدل API
تفرض Twenty حدودًا للمعدل لضمان استقرار النظام:
| الحد | القيمة |
| ---------------------------- | ---------------- |
| **الطلبات في الدقيقة** | 100 |
| **السجلات لكل استدعاء دفعي** | 60 |
| **الحد الأقصى للإنتاجية** | ~6,000 سجل/دقيقة |
<Warning>
**خطّط لعملية الاستيراد وفق هذه الحدود.**
بالنسبة إلى 100,000 سجل عند أقصى إنتاجية، توقّع نحو 17 دقيقة من وقت الاستيراد. أضِف وقتًا احتياطيًا لمعالجة الأخطاء وإعادة المحاولة.
</Warning>
## البدء
### الخطوة 1: احصل على مفتاح API الخاص بك
1. انتقل إلى **الإعدادات → المطوّرون**
2. انقر **+ إنشاء مفتاح API**
3. امنح مفتاحك اسمًا وصفيًا
4. انسخ مفتاح API فورًا (لن يُعرَض مرة أخرى)
5. احفظه في مكان آمن
<Warning>
**أبقِ مفتاح API سريًا.**
يمكن لأي شخص لديه مفتاح API الخاص بك الوصول إلى بيانات مساحة العمل الخاصة بك وتعديلها. لا تقم أبدًا بإيداعه في مستودعات الكود أو مشاركته علنًا.
</Warning>
### الخطوة 2: اختر واجهة API الخاصة بك
تدعم Twenty نوعين من واجهات API:
| واجهة برمجة التطبيقات | الأفضل لـ | التوثيق |
| --------------------- | ------------------------------------------------------ | ----------------------------------- |
| **GraphQL** | استعلامات مرنة، وجلب البيانات المرتبطة، وعمليات معقّدة | [وثائق API](/l/ar/developers/extend/api) |
| **REST** | عمليات CRUD بسيطة، وأنماط REST مألوفة | [وثائق API](/l/ar/developers/extend/api) |
كلتا واجهتي API تدعمان:
* إنشاء السجلات وقراءتها وتحديثها وحذفها
* **عمليات الدُفعات** — إنشاء أو تحديث ما يصل إلى 60 سجلًا لكل استدعاء
**لعمليات الاستيراد، استخدم عمليات الدُفعات** لتعظيم الإنتاجية ضمن حدود المعدل.
### الخطوة 3: خطّط لترتيب الاستيراد
تمامًا مثل عمليات استيراد CSV، فإن **الترتيب مهم** للعلاقات:
1. **الشركات** أولًا (من دون تبعيات)
2. **الأشخاص** ثانيًا (يمكن ربطهم بالشركات)
3. **الفرص** ثالثًا (يمكن ربطها بالشركات والأشخاص)
4. **المهام/الملاحظات** (يمكن ربطها بأي مما سبق)
5. **الكائنات المخصّصة** (وفقًا لتبعياتها)
## أفضل الممارسات
### اجمع طلباتك في دُفعات
* لا ترسل السجلات واحدًا تلو الآخر
* اجمع ما يصل إلى **60 سجلًا لكل استدعاء API**
* هذا يُعظّم الإنتاجية ضمن حدود المعدل
### التعامل مع حدود المعدل
* طبّق فواصل زمنية بين الطلبات (600 مللي ثانية كحد أدنى لعمليات الاستيراد المستمرة)
* استخدم التراجع الأسي عند بلوغ الحدود
* راقِب الاستجابات 429 (طلبات كثيرة جدًا)
### تحقّق من البيانات أولًا
* نظّف بياناتك وتحقّق منها قبل الاستيراد
* تحقّق من تعبئة الحقول المطلوبة
* تحقّق من توافق التنسيقات مع متطلبات Twenty (راجع [تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping))
### سجّل كل شيء
* سجّل كل سجل تم استيراده (بما في ذلك المعرّفات)
* سجّل الأخطاء مع السياق الكامل
* يساعد ذلك في تصحيح المشكلات والتحقق من الإكمال
### اختبر أولًا
* اختبر بدفعة صغيرة (10-20 سجلًا)
* تحقّق من ظهور البيانات بشكل صحيح في Twenty
* ثم نفّذ عملية الاستيراد الكاملة
### استخدم upsert لتجنّب التكرارات
واجهة GraphQL API تدعم **upsert على دفعات** — حدِّث إذا كان السجل موجودًا، وأنشئ إذا لم يكن كذلك. يمنع هذا التكرارات عند إعادة تشغيل عمليات الاستيراد.
## العثور على أسماء الكائنات والحقول
للاطلاع على الكائنات والحقول المتاحة:
1. انتقل إلى **الإعدادات → API وخطافات الويب**
2. استعرض **واجهة API للبيانات الوصفية**
3. اعرض جميع الكائنات القياسية والمخصّصة مع حقولها
تُظهر الوثائق جميع الكائنات القياسية والمخصّصة وحقولها وأنواع البيانات المتوقعة.
## الخدمات الاحترافية
بالنسبة لعمليات ترحيل API المعقّدة، يمكن لشركائنا تقديم المساعدة:
| الخدمة | ما الذي يتضمّنه |
| ------------------------ | ------------------------------------- |
| **تصميم نموذج البيانات** | تصميم الهيكل الأمثل لبياناتك |
| **برامج نصية للترحيل** | كتابة وتشغيل البرامج النصية للاستيراد |
| **تحويل البيانات** | التعامل مع التعيين المعقّد والتنظيف |
| **التحقق وضمان الجودة** | التحقق من اكتمال عملية الترحيل |
**الأفضل لـ:**
* عمليات ترحيل لأكثر من 100,000 سجل
* تحويلات بيانات معقّدة
* جداول زمنية ضيّقة
* الفرق التي تفتقر إلى موارد المطورين
تواصل معنا عبر [contact@twenty.com](mailto:contact@twenty.com) أو استكشف [خدمات التنفيذ](/l/ar/user-guide/getting-started/capabilities/implementation-services).
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="ما الفرق بين GraphQL وREST؟">
يتيح لك GraphQL طلب البيانات التي تحتاجها بدقة ضمن استعلام واحد، وهو أفضل للعمليات المعقّدة. يعتمد REST على طرق HTTP القياسية (GET وPOST وPUT وDELETE)، وقد يكون أكثر ألفة إذا سبق لك العمل مع واجهات API التقليدية.
</Accordion>
<Accordion title="هل يمكنني تحديث السجلات الموجودة عبر API؟">
نعم! استخدم تحديثات mutations في GraphQL أو طلبات PUT/PATCH في REST مع `id` الخاص بالسجل.
</Accordion>
<Accordion title="كيف أتعامل مع التكرارات؟">
استعلم أولًا عن السجلات الموجودة باستخدام معرّفات فريدة (البريد الإلكتروني، النطاق). حدِّث إذا كان موجودًا، وأنشئ إذا لم يكن كذلك.
</Accordion>
<Accordion title="هل يمكنني حذف السجلات عبر API؟">
نعم، استخدم delete mutations في GraphQL أو طلبات DELETE في REST.
</Accordion>
<Accordion title="هل يوجد SDK لـ Python أو Node.js؟">
لا يتوفر ذلك في الوقت الحالي، لكن كلتا واجهتي API تعملان مع أي عميل HTTP بأي لغة.
</Accordion>
</AccordionGroup>
## وثائق API
للحصول على تفاصيل التنفيذ الكاملة وأمثلة الشيفرة ومرجع المخطط (schema):
* [وثائق API](/l/ar/developers/extend/api)

View File

@@ -0,0 +1,225 @@
---
title: استيراد العلاقات بين الكائنات عبر CSV
description: دليل كامل خطوة بخطوة لربط السجلات أثناء استيراد CSV.
---
## نظرة عامة
يأخذك هذا الدليل خلال استيراد العلاقات بين الكائنات—على سبيل المثال، ربط الأشخاص بالشركات، أو الفرص بالأشخاص.
<Note>**ما الذي يمكن استيراده:** العلاقات من واحد إلى متعدد التي تشير إلى نوع كائن واحد فقط. العلاقات التي تشير إلى أنواع كائنات متعددة (مثل ملاحظات مرتبطة بالأشخاص والشركات معًا) غير مدعومة للاستيراد بعد.</Note>
## فهم العلاقات
### ما هي علاقة "واحد إلى متعدد"؟
في علاقة واحد إلى متعدد:
* **شركة واحدة** لديها **العديد** من الأشخاص (الموظفين)
* **شركة واحدة** لديها **العديد** من الفرص
* **شخص واحد** لديه **العديد** من المهام
جانب "الواحد" هو **الأصل**. جانب "المتعدد" هو **التابع**.
### العلاقات الشائعة في Twenty
| علاقة | جانب "الواحد" (الأصل) | جانب "المتعدد" (التابع) |
| ------------------- | --------------------- | ----------------------- |
| الشركات → الأشخاص | الشركة | الأشخاص |
| الشركات → الفرص | الشركة | الفرص |
| الأشخاص → المهام | شخص | المهام |
| الأشخاص → الملاحظات | شخص | الملاحظات |
## الخطوة 1: تحديد جانبي "الواحد" و"المتعدد"
قبل الاستيراد، حدّد أي الكائنات هو الأصل وأيها التابع.
**اسأل نفسك:** "هل لدى كائن واحد من [Object A] العديد من [Object B]؟"
* شركة واحدة → العديد من الأشخاص ✓ (الشركة هي الأصل)
* شخص واحد → العديد من الشركات ✗ (هذا خطأ — الشخص ينتمي إلى شركة واحدة)
## الخطوة 2: استيراد سجلات الأصل أولًا
يجب أن يكون الأصل (جانب "الواحد") موجودًا في Twenty قبل أن تتمكّن من الإشارة إليه.
**ترتيب الاستيراد:**
1. **الشركات** أولًا (من دون تبعيات)
2. **الأشخاص** ثانيًا (مرتبطون بالشركات)
3. **الفرص** ثالثًا (مرتبطة بالشركات و/أو الأشخاص)
4. **المهام/الملاحظات** (مرتبطة بأي مما سبق)
<Warning>
**إذا كان سجل الأصل غير موجود، فسيفشل الاستيراد.**
تحقّق دائمًا من استيراد الشركات قبل استيراد الأشخاص الذين لديهم مراجع للشركات.
</Warning>
## الخطوة 3: تدوين المعرّف الفريد للأصل
تحتاج إلى الإشارة إلى سجل الأصل باستخدام **مُعرّف فريد**. الخيارات المتاحة:
| كائن الأصل | المُعرّفات الفريدة المتاحة |
| --------------------- | ---------------------------------------------------- |
| **الشركات** | `id` (UUID)، `domain` (موصى به)، أو أي حقل فريد مخصص |
| **الأشخاص** | `id` (UUID)، `email`، أو أي حقل فريد مخصص |
| **أعضاء مساحة العمل** | `id` (UUID)، `email` (ليس الاسم) |
| **كائنات مخصصة** | `id` (UUID)، أو أي حقل مميز كفريد |
<Note>**موصى به:** استخدم `domain` للشركات و`email` للأشخاص. هذه مقروءة للبشر وسهلة التحقّق منها في جدول البيانات الخاص بك.</Note>
### العثور على المعرّف
إذا كنت تحتاج إلى `id`:
1. صدّر سجلات الأصل من Twenty
2. يتضمن التصدير عمود `id`
3. استخدم هذه المعرّفات في ملف سجلات التابع
## الخطوة 4: التحقّق من وجود حقل العلاقة
قبل الاستيراد، تأكّد من وجود حقل العلاقة بين كائناتك.
**للتحقّق أو الإنشاء:**
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر كائن التابع الخاص بك (مثلًا، الأشخاص)
3. ابحث عن حقل علاقة يشير إلى الأصل (مثلًا، الشركة)
4. إذا لم يكن موجودًا، فقم بإنشائه:
* انقر **+ إضافة حقل**
* اختر نوع **العلاقة**
* اختر كائن الأصل
## الخطوة 5: جهّز ملف CSV الخاص بك
أضِف عمودًا إلى ملف CSV للتابع يشير إلى الأصل باستخدام مُعرّفه الفريد.
### مثال: ربط الأشخاص بالشركات
**ملف CSV الخاص بالأشخاص لديك:**
```csv
firstName,lastName,email,jobTitle,companyDomain
John,Smith,john@acme.com,CEO,https://acme.com
Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
```
يشير عمود `companyDomain` إلى نطاق الشركة.
### متطلبات التنسيق
| معرّف | التنسيق | مثال |
| ----------------- | ------------------- | -------------------------------------- |
| النطاق | تنسيق عنوان URL | `https://acme.com` |
| البريد الإلكتروني | بريد إلكتروني قياسي | `john@acme.com` |
| المعرف | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Warning>
**تنسيق النطاق مهم!**
استخدم `https://domain.com` (وليس فقط `domain.com`). هذا يتوافق مع طريقة تخزين Twenty لنطاقات الشركات ويمنع أخطاء المطابقة.
</Warning>
### قواعد مهمة
1. **تطابق تام مطلوب** — يجب أن تتطابق القيمة تمامًا مع سجل الأصل
2. **قم بتعيين مُعرّف فريد واحد فقط** — لا تُدرج كلًّا من `companyId` و`companyDomain`
3. **حسّاس لحالة الأحرف** — `Acme.com` ≠ `acme.com`
## الخطوة 6: ارفع الملف وعيّن العلاقة
1. انتقل إلى كائن التابع (مثلًا، الأشخاص)
2. انقر **⋮** → **Import records**
3. ارفع ملف CSV الخاص بك
4. في خطوة تعيين الحقول:
* اعثر على عمود العلاقة الخاص بك (مثلًا، `companyDomain`)
* طابقه مع حقل علاقة **Company**
5. أكمل التعيينات المتبقية
6. راجع الأخطاء وأكّد
سيقوم Twenty بربط كل سجل تابع تلقائيًا بالأصل المطابق.
## الخطوة 7: التحقّق من الاستيراد
بعد الاستيراد:
1. افتح عددًا قليلًا من سجلات التابع (مثلًا، الأشخاص)
2. تحقّق من أن حقل العلاقة يعرض الأصل الصحيح (مثلًا، الشركة)
3. افتح سجل الأصل وتفقّد قسم السجلات المرتبطة
## أخطاء شائعة يجب تجنّبها
| الخطأ | المشكلة | الحل |
| ------------------------- | ---------------------------------------------- | ----------------------------------------------------------- |
| **ترتيب استيراد خاطئ** | استيراد الأشخاص قبل الشركات | استورد دائمًا الأصول أولًا، ثم التوابع |
| **تنسيق نطاق غير صحيح** | استخدام `acme.com` بدلًا من `https://acme.com` | استخدم تنسيق عنوان URL الكامل مع `https://` |
| **حقول فريدة متعددة** | تعيين كلٍّ من `companyId` و`companyDomain` | قم بتعيين مُعرّف فريد واحد فقط |
| **حقل علاقة مفقود** | حقل العلاقة غير موجود في نموذج البيانات | قم بإنشائه ضمن **الإعدادات → نموذج البيانات** قبل الاستيراد |
| **سجلات غير موجودة** | سجل الأصل غير موجود في Twenty | استورد سجلات الأصل أولًا، أو تحقّق من الأخطاء الإملائية |
| **عدم تطابق حالة الأحرف** | `Acme.com` في الملف ولكن `acme.com` في Twenty | تأكّد من تطابق حالة الأحرف تمامًا |
## الربط بأعضاء مساحة العمل
عند الربط بأعضاء مساحة العمل (فريقك):
* استخدم **عنوان بريدهم الإلكتروني**، وليس اسمهم
* مثال: `owner@yourcompany.com`، وليس "John Smith"
```csv
taskName,assignedTo
Follow up with client,john@yourcompany.com
Review proposal,jane@yourcompany.com
```
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="ماذا لو لم يكن لدى سجل الأصل نطاق أو بريد إلكتروني؟">
لديك خياران:
1. استخدم `id` الخاص بـ Twenty (صدّر سجلات الأصل للحصول على معرّفاتها)
2. أنشئ حقلًا فريدًا مخصصًا في نموذج البيانات لتخزين معرّف خارجي من نظامك السابق
</Accordion>
<Accordion title="هل يمكنني تحديث العلاقات على السجلات الموجودة؟">
نعم! ضمّن المُعرّف الفريد لسجل التابع (مثلًا، `email` للأشخاص) وقيمة العلاقة الجديدة. سيقوم الاستيراد بتحديث العلاقة.
</Accordion>
<Accordion title="هل يمكنني استيراد علاقات عديدة-إلى-عدة؟">
العلاقات عديدة-إلى-عدة غير مدعومة للاستيراد بعد. هذا مُخطّط للنصف الأول من عام 2026.
</Accordion>
<Accordion title="هل يمكنني الربط بأنواع كائنات متعددة (مثل ربط الملاحظات بالأشخاص والشركات معًا)؟">
العلاقات التي تشير إلى أنواع كائنات متعددة غير مدعومة للاستيراد/التصدير بعد. هذا على خارطة الطريق لدينا.
</Accordion>
<Accordion title="ماذا يحدث إذا كان سجل الأصل غير موجود؟">
سيعرض الاستيراد خطأً لذلك الصف. يمكنك إما:
* استورد سجل الأصل أولًا، ثم أعد الاستيراد
* أصلِح قيمة المرجع
* أزل الصف من الاستيراد
</Accordion>
<Accordion title="لماذا لا يتم ربط العلاقة بشكل صحيح؟">
أسباب شائعة:
* تنسيق غير صحيح (استخدم `https://domain.com` للنطاقات)
* عدم تطابق حالة الأحرف (تحقّق من التهجئة الدقيقة)
* الأصل غير موجود (استورد الأصول أولًا)
* تعيين عدة مُعرّفات (استخدم واحدًا فقط)
</Accordion>
</AccordionGroup>
<Warning>
**تذكير: السجلات المحذوفة حذفًا ناعمًا تُحتسب ضمن التفرد.**
إذا كنت تتلقى أخطاء "not found" ولكن يبدو أن السجل موجود، فتحقّق من قائمة الأوامر → عرض السجلات المحذوفة. قد يكون السجل الأصل قد حُذِف حذفًا منطقيًا.
</Warning>
## استكشاف الأخطاء وإصلاحها
هل تواجه مشكلات؟ اطّلع على:
* [كيفية إصلاح أخطاء الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
* [قدرات استيراد العلاقات](/l/ar/user-guide/data-migration/capabilities/import-relations)
* [قيود التفرد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)

View File

@@ -0,0 +1,289 @@
---
title: الترحيل من CRMs أخرى
description: دليل خطوة بخطوة لترحيل بياناتك من أي نظام لإدارة علاقات العملاء إلى Twenty.
---
## نظرة عامة
يرشدك هذا الدليل خلال عملية ترحيل بياناتك من أي نظام لإدارة علاقات العملاء إلى Twenty. تشمل العملية تدقيق بياناتك، وإعداد مساحة العمل في Twenty، والتصدير من نظامك الحالي، والاستيراد إلى Twenty.
<Note>يجب إعادة إنشاء العروض، وسير العمل، والأذونات يدويًا بعد الترحيل. خطط وقتًا لهذا العمل الخاص بالإعداد.</Note>
## الخطوة 1: تدقيق بياناتك الحالية
يُعد الترحيل فرصة لبداية جديدة. لا تنقل البيانات غير الضرورية.
**ما يجب الاحتفاظ به:**
* جهات الاتصال والشركات النشطة
* الفرص والصفقات المفتوحة
* الملاحظات والأنشطة المهمة
* الحقول المخصصة التي تستخدمها فعليًا
**ما يجب تركه:**
* جهات الاتصال القديمة (لا نشاط خلال سنتين أو أكثر)
* السجلات المكررة
* بيانات الاختبار
* الحقول المخصصة غير المستخدمة
## الخطوة 2: مطابقة نموذج البيانات الخاص بك
أنشئ مستند مطابقة بين نظام إدارة علاقات العملاء الحالي لديك وTwenty:
| نظام إدارة علاقات العملاء الخاص بك | Twenty |
| ---------------------------------- | ---------------------- |
| حساب / مؤسسة | **الشركة** |
| جهة اتصال / شخص | **الأشخاص** |
| صفقة / فرصة | **الفرصة** |
| نشاط | **مهمة** أو **ملاحظة** |
| كائن مخصّص | **كائن مخصّص** |
**لكل حقل، سجّل:**
* اسم الحقل المصدر
* الحقل الهدف في Twenty
* أي تحويلات في التنسيق مطلوبة (التواريخ، أرقام الهاتف، إلخ.)
<Note>احتفظ بمستند التعيين هذا في متناول اليد أثناء الاستيراد — سترجع إليه عند تعيين الأعمدة.</Note>
## الخطوة 3: إعداد مساحة العمل الخاصة بك في Twenty
قبل استيراد البيانات، حضّر مساحة العمل لديك في Twenty:
### أنشئ كائنات وحقولًا مخصّصة
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. أنشئ أي كائنات مخصّصة تحتاجها
3. أضِف حقولًا مخصّصة إلى الكائنات القياسية والمخصّصة
4. اضبط إعدادات الحقول (فريد، مطلوب، خيارات الاختيار، إلخ.)
<Warning>
**يجب أن تكون الحقول موجودة قبل الاستيراد.**
يُنشئ استيراد CSV سجلات، وليس حقولًا. أنشِئ جميع الحقول المخصّصة ضمن الإعدادات → نموذج البيانات قبل الاستيراد.
</Warning>
### ادعُ فريقك
<Warning>
**ادعُ المستخدمين قبل استيراد البيانات.**
إذا كانت بياناتك تتضمن مراجع للمستخدمين (مالك الحساب، المكلَّف، إلخ.)، فيجب أن يكون هؤلاء المستخدمون موجودين في Twenty قبل الاستيراد. وإلا فلن يمكن تعيين تلك العلاقات.
</Warning>
1. انتقل إلى **الإعدادات → الأعضاء**
2. ادعُ جميع أعضاء الفريق
3. **انتظر أن يقبل الجميع** دعوتهم
4. تحقّق من ظهور جميع المستخدمين في قائمة الأعضاء لديك
## الخطوة 4: التصدير من نظام إدارة علاقات العملاء الحالي لديك
صدّر بياناتك من نظام إدارة علاقات العملاء الحالي لديك:
1. ابحث عن وظيفة **Export** (عادةً ضمن الإعدادات، إدارة البيانات، أو المشرف)
2. صدّر إلى **تنسيق CSV** عند الإمكان
3. صدّر كل نوع من الكائنات على حدة (الشركات، جهات الاتصال، الصفقات، إلخ.)
4. ضمّن جميع الحقول التي تريد ترحيلها
**صدّر هذه الكائنات (بهذا الترتيب للرجوع إليه):**
1. الشركات / الحسابات / المؤسسات
2. جهات الاتصال / الأشخاص
3. الصفقات / الفرص
4. الملاحظات والأنشطة
5. كائنات مخصصة
## الخطوة 5: تنظيف بياناتك وتنسيقها
افتح كل ملف CSV مُصدَّر في تطبيق جداول بيانات وجهّزه لـ Twenty.
### أزل التكرارات
1. قم بالفرز حسب الحقل الفريد (البريد الإلكتروني للأشخاص، النطاق للشركات)
2. أزل الصفوف المكرّرة أو ادمجها
3. تحقّق من عدم وجود تكرارات مسبقًا في Twenty
### نسّق الحقول بشكل صحيح
| نوع الحقل | التنسيق المطلوب |
| --------------------- | ------------------------------------------- |
| **النطاق** | `https://domain.com` |
| **البريد الإلكتروني** | `name@domain.com` (يجب أن يكون فريدًا) |
| **تاريخ** | `YYYY-MM-DD` |
| **هاتف** | ثلاثة أعمدة: الرقم، رمز الدولة، رمز الاتصال |
| **قيمة منطقية** | `TRUE` أو `FALSE` (أحرف كبيرة) |
| **حقول الاختيار** | استخدم أسماء API، وليس تسميات العرض |
<Warning>
**تنسيق النطاق مهم.**
استخدم `https://domain.com` (وليس `domain.com` أو `www.domain.com`). هذا يتوافق مع تنسيق Twenty ويمنع التكرارات عند توصيل مزامنة البريد الإلكتروني/التقويم.
</Warning>
اطّلع على [كيفية إعداد ملفات CSV](/l/ar/user-guide/data-migration/how-tos/prepare-your-csv-files) لمعرفة متطلبات التنسيق الكاملة لجميع أنواع الحقول.
### أضِف أعمدة العلاقات
لربط السجلات (مثل ربط الأشخاص بالشركات)، أضِف عمودًا يحتوي على المعرّف الفريد للسجل الأصل.
**مثال: ملف CSV للأشخاص مع رابط الشركة**
```csv
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
اطّلع على [كيفية استيراد العلاقات](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) للحصول على إرشادات مفصّلة حول ربط السجلات.
### تحديث مراجع المستخدم
إذا كانت بياناتك تتضمن تعيينات للمستخدمين (المالك، المكلَّف):
1. أضِف عمودًا يحتوي على بريد المستخدم الإلكتروني (وليس فقط مُعرّفه من النظام القديم)
2. استخدم عناوين البريد الإلكتروني نفسها التي استخدمها المستخدمون للانضمام إلى مساحة العمل الخاصة بك في Twenty
اطّلع على [كيفية إعداد ملفات CSV](/l/ar/user-guide/data-migration/how-tos/prepare-your-csv-files) للحصول على دليل كامل للتنسيق.
## الخطوة 6: الاستيراد إلى Twenty
<Warning>
**ترتيب الاستيراد مهم!**
استورد دائمًا بهذا الترتيب:
1. **الشركات** أولًا (من دون تبعيات)
2. **الأشخاص** ثانيًا (مرتبطون بالشركات)
3. **الفرص** ثالثًا (مرتبطة بالشركات/الأشخاص)
4. **الملاحظات والمهام** (مرتبطة بالسجلات)
5. **الكائنات المخصّصة** وفقًا لتبعياتها
يجب أن يكون السجل الأصل موجودًا قبل أن تتمكّن من الإشارة إليه.
</Warning>
### استيراد كل كائن
لكل ملف CSV، بالتسلسل:
1. انتقل إلى الكائن في Twenty
2. انقر **⋮ → Import records**
3. ارفع ملف CSV
4. طابِق الأعمدة مع الحقول:
* طابِق أعمدة بريد المستخدم الإلكتروني مع حقول العلاقات المناسبة
* طابِق أعمدة العلاقات (مثل `companyDomain`) مع حقول العلاقات
5. راجِع وأصلِح أي أخطاء في واجهة المستخدم
6. أكِّد عملية الاستيراد
7. تحقّق من عدد قليل من السجلات قبل المتابعة إلى الملف التالي
**أدلة تفصيلية:**
* [كيفية استيراد الشركات](/l/ar/user-guide/data-migration/how-tos/import-companies-via-csv)
* [كيفية استيراد جهات الاتصال](/l/ar/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [كيفية استيراد العلاقات](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## الخطوة 7: عمليات ترحيل كبيرة (أكثر من 50,000 سجل)
لعمليات الترحيل الكبيرة:
| الحجم | النهج الموصى به |
| ------------------- | ---------------------------------- |
| أقل من 10,000 سجل | استيراد CSV واحد |
| 10,000 - 50,000 سجل | قسّم إلى عدة ملفات CSV |
| أكثر من 50,000 سجل | استخدم واجهة برمجة التطبيقات (API) |
**بالنسبة لعمليات الاستيراد عبر واجهة برمجة التطبيقات (API):**
* أسرع وأكثر موثوقية لمجموعات البيانات الكبيرة
* يدعم العمليات الدفعية (حتى 60 سجلًا لكل استدعاء)
* راجع [كيفية استيراد البيانات عبر واجهة برمجة التطبيقات (API)](/l/ar/user-guide/data-migration/how-tos/import-data-via-api)
## الخطوة 8: الإعداد بعد الترحيل
بعد استيراد البيانات، أكمل تهيئة مساحة العمل الخاصة بك:
### أعد إنشاء العروض
* أعد إعداد العروض المحفوظة مع عوامل التصفية والترتيب وتكوينات الأعمدة
* أنشئ أي عروض كانبان أو تقويم تحتاجها
### إعادة إنشاء سير العمل
* أعد إنشاء الأتمتة في **الإعدادات → سير العمل**
* ابدأ بسير العمل الأكثر أهمية
* اختبر كل واحد منها قبل الاعتماد عليه
### تكوين الأدوار والصلاحيات
* قم بإعداد الأدوار في **الإعدادات → الأعضاء → الأدوار**
* عيّن المستخدمين إلى الأدوار المناسبة
### اربط البريد الإلكتروني والتقويم
* يقوم كل مستخدم بربط حسابه الخاص ضمن **الإعدادات → الحسابات**
* سيبدأ Twenty بمزامنة رسائل البريد الإلكتروني مع سجلات جهات الاتصال
* اطّلع على [البريد الإلكتروني والتقويم](/l/ar/user-guide/calendar-emails/overview)
### درّب فريقك
* استعرضوا الواجهة الجديدة معًا
* قم بتوثيق أي عمليات خاصة بالفريق
## المشاكل الشائعة والحلول
| المشكلة | السبب | الحل |
| ------------------------ | ------------------------------------- | --------------------------------------------------------------------------------------- |
| **أخطاء التكرار** | البريد الإلكتروني/النطاق موجود بالفعل | أزل التكرارات من الملف، أو أدرج معرّفًا فريدًا لتحديث السجلات الموجودة |
| **العلاقة غير موجودة** | السجل الأصل غير موجود | استورد الكائنات الأصلية أولًا (الشركات قبل الأشخاص) |
| **حقول مفقودة** | الحقل المخصّص غير موجود | أنشئ الحقل ضمن الإعدادات → نموذج البيانات قبل الاستيراد |
| **أخطاء حقول الاختيار** | استخدام تسميات العرض | استخدم أسماء واجهة برمجة التطبيقات (API) (فعّل الوضع المتقدم في الإعدادات للعثور عليها) |
| **علاقة المستخدم فارغة** | لم يقبل المستخدم الدعوة | تأكّد من قبول جميع المستخدمين للدعوات قبل الاستيراد |
اطّلع على [كيفية إصلاح أخطاء الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors) للحصول على خطوات استكشاف الأخطاء وإصلاحها بالتفصيل.
## قائمة التحقق بعد التحويل
### سلامة البيانات
<Check>تم استيراد جميع السجلات (قارن الأعداد مع النظام المصدر)</Check>
<Check>العلاقات تعمل بشكل صحيح (الأشخاص مرتبطون بالشركات)</Check>
<Check>تعيينات المستخدمين تمت مطابقتها بشكل صحيح (المالك، المكلَّف)</Check>
<Check>تم ملء الحقول المخصّصة</Check>
<Check>لا توجد تكرارات غير متوقعة</Check>
### التكوين
<Check>تمت إعادة إنشاء العروض</Check>
<Check>تمت إعادة إنشاء سير العمل واختبارها</Check>
<Check>تم تكوين الأدوار والصلاحيات</Check>
<Check>تم ربط مزامنة البريد الإلكتروني/التقويم</Check>
### جاهزية الفريق
<Check>تم تدريب الفريق على النظام الجديد</Check>
<Check>تم تحديد خطة الوصول إلى نظام CRM القديم (الاحتفاظ به للرجوع إليه؟ متى يتم تعطيله؟)</Check>
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="هل يمكنني ترحيل سير العمل تلقائيًا؟">
ليس في الوقت الحالي. يجب إعادة إنشاء سير العمل يدويًا في Twenty.
</Accordion>
<Accordion title="ماذا عن مرفقات الملفات؟">
مرفقات الملفات غير متضمنة في صادرات CSV. ستحتاج إلى إعادة رفعها يدويًا، أو ترحيلها عبر واجهة برمجة التطبيقات (API)، أو التواصل مع فريقنا للحصول على المساعدة.
</Accordion>
<Accordion title="هل يمكنني إبقاء كلا النظامين يعملان أثناء الترحيل؟">
نعم، نوصي بإبقاء نظام CRM القديم يعمل حتى تتحقق من اكتمال عملية الترحيل. فقط احرص على عدم إنشاء بيانات جديدة في كلا المكانين.
</Accordion>
<Accordion title="كم يستغرق الترحيل عادةً؟">
يعتمد ذلك على حجم البيانات وتعقيدها. يمكن إنجاز عمليات الترحيل الصغيرة (أقل من 10,000 سجل) خلال بضع ساعات. قد تستغرق عمليات الترحيل الكبيرة عدة أيام بما في ذلك تنظيف البيانات والاختبار.
</Accordion>
</AccordionGroup>
## هل تحتاج إلى مساعدة؟
<Tip>
هل تريد مساعدة في عملية الترحيل؟ [اعثر على عشرين شريكاً معتمداً](https://twenty.com/partners/list?categories=SOLUTIONING\&ref=docs-migrate-crm) لنقل بياناتك، وخطوط الأنابيب، والمستخدمين من النهاية إلى النهاية.
</Tip>

View File

@@ -0,0 +1,173 @@
---
title: التحويل من نظام ذاتي الاستضافة إلى السحابة
description: دليل خطوة بخطوة لترحيل مثيل Twenty ذاتي الاستضافة الخاص بك إلى Twenty Cloud.
---
## نظرة عامة
يرشدك هذا الدليل خلال ترحيل بياناتك من مثيل Twenty ذاتي الاستضافة إلى Twenty Cloud. تتضمن العملية إعداد مساحة العمل السحابية الخاصة بك، وتصدير بياناتك، ثم إعادة استيرادها.
<Note>يجب إعادة إنشاء العروض، وسير العمل، والأدوار يدويًا بعد الترحيل. خطط وقتًا لهذا العمل الخاص بالإعداد.</Note>
## الخطوة 1: إنشاء مساحة العمل السحابية الخاصة بك
1. انتقل إلى [app.twenty.com](https://app.twenty.com) وأنشئ مساحة عمل جديدة
2. أكمل معالج الإعداد الأولي
3. دوّن عنوان URL لمساحة العمل الجديدة لديك
## الخطوة 2: إعادة إنشاء نموذج البيانات الخاص بك
قبل استيراد البيانات، أعد إنشاء الكائنات والحقول المخصّصة لديك:
1. انتقل إلى **الإعدادات → نموذج البيانات** في مثيلك السحابي
2. أنشئ كائنات مخصّصة تتطابق مع إعدادك ذاتي الاستضافة
3. أضف حقولًا مخصّصة إلى الكائنات القياسية والمخصّصة
4. قم بضبط إعدادات الحقول (فريد، مطلوب، إلخ.)
<Note>التقط لقطات شاشة لنموذج البيانات ذاتي الاستضافة لديك كمرجع، أو اترك المثيلين مفتوحين جنبًا إلى جنب.</Note>
## الخطوة 3: دعوة جميع المستخدمين
<Warning>
**هام: قم بدعوة المستخدمين قبل استيراد البيانات.**
يجب على المستخدمين قبول دعواتهم قبل أن تستورد أي سجلات تُشير إليهم (مثل حقول مالك الحساب). إذا لم يكن المستخدمون موجودين بعد، فلن يمكن تعيين تلك العلاقات.
</Warning>
1. انتقل إلى **الإعدادات → الأعضاء** في مثيلك السحابي
2. ادعُ جميع أعضاء الفريق الذين كانت لديهم حسابات على المثيل ذاتي الاستضافة
3. **انتظر أن يقبل الجميع** دعواتهم
4. تحقق من ظهور جميع المستخدمين في قائمة الأعضاء لديك
## الخطوة 4: تصدير البيانات من المثيل ذاتي الاستضافة
صدِّر كل كائن من مثيلك ذاتي الاستضافة:
1. انتقل إلى كل كائن (الشركات، الأشخاص، الفرص، إلخ.)
2. قم بإعداد العرض ليُظهر **جميع الأعمدة** التي تريد ترحيلها
3. انقر **⋮ → Export view**
4. احفظ كل ملف CSV باسم واضح (مثلًا، `companies-export.csv`)
**صدِّر بالترتيب التالي** (للرجوع إليه عند الاستيراد):
1. الشركات
2. الأشخاص
3. الفرص
4. الكائنات المخصّصة (وفقًا لتبعياتها)
5. المهام، الملاحظات
## الخطوة 5: تحديث مراجع أعضاء مساحة العمل
تحتوي ملفات CSV المُصدَّرة على معرّفات المستخدمين من مثيلك ذاتي الاستضافة. هذه المعرّفات لن تتطابق مع مثيلك السحابي، لذا تحتاج إلى استبدالها بعناوين البريد الإلكتروني.
**لكل ملف CSV يحتوي على مراجع للمستخدمين (المالك، المسند إليه، إلخ.):**
1. افتح ملف CSV في تطبيق جداول بيانات
2. أضِف عمودًا جديدًا بجوار كل عمود لمعرّف المستخدم (مثلًا، `accountOwnerEmail` بجوار `accountOwnerId`)
3. املأ **عنوان البريد الإلكتروني** لكل مستخدم
4. يمكنك حذف عمود المعرّف القديم أو تركه (سيتم تخطيه أثناء الاستيراد)
**مثال:**
قبل:
```csv
name,domain,accountOwnerId
Acme Corp,https://acme.com,old-uuid-123
```
بعد:
```csv
name,domain,accountOwnerEmail
Acme Corp,https://acme.com,john@yourcompany.com
```
<Note>استخدم عناوين البريد الإلكتروني نفسها التي استخدمها المستخدمون لقبول دعوتهم إلى مساحة العمل السحابية.</Note>
## الخطوة 6: التخطيط لترتيب الاستيراد
استورد الملفات بالترتيب الصحيح للحفاظ على العلاقات:
1. **الشركات** أولًا (من دون تبعيات)
2. **الأشخاص** ثانيًا (مرتبطون بالشركات)
3. **الفرص** ثالثًا (مرتبطة بالشركات والأشخاص)
4. **الكائنات المخصّصة** (وفقًا لتبعياتها)
5. **المهام والملاحظات** أخيرًا (مرتبطة بسجلات أخرى)
اطّلع على [كيفية استيراد العلاقات](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) لمعرفة تفاصيل الحفاظ على العلاقات.
## الخطوة 7: الاستيراد إلى السحابة
لكل ملف CSV، بالتسلسل:
1. انتقل إلى الكائن في مثيلك السحابي
2. انقر **⋮ → Import records**
3. ارفع ملف CSV
4. طابق الأعمدة مع الحقول:
* طابِق أعمدة بريد المستخدم الإلكتروني مع حقول العلاقات المناسبة
* طابق الأعمدة الأخرى كالمعتاد
5. راجِع وأصلِح أي أخطاء
6. أكِّد عملية الاستيراد
7. تحقّق من عدد قليل من السجلات قبل المتابعة إلى الملف التالي
## الخطوة 8: إعادة إنشاء الإعدادات
بعد استيراد البيانات، أعد إنشاء ما يلي يدويًا:
### العروض
* أعد إنشاء العروض المحفوظة مع عوامل التصفية والترتيب وتكوينات الأعمدة
* قم بإعداد أي عروض كانبان أو تقويم
### سير العمل
* أعد إنشاء الأتمتة في **الإعدادات → سير العمل**
* اختبر كل سير عمل قبل الاعتماد عليه
### الأدوار والصلاحيات
* قم بتكوين الأدوار في **الإعدادات → الأعضاء → الأدوار**
* عيّن المستخدمين إلى الأدوار المناسبة
### التكاملات
* أعد توصيل مزامنة البريد الإلكتروني والتقويم لكل مستخدم
* أعد تكوين أي تكاملات API بمفاتيح API جديدة
## قائمة التحقق بعد التحويل
<Check>تم استيراد جميع البيانات بنجاح</Check>
<Check>العلاقات بين الكائنات تعمل بشكل صحيح</Check>
<Check>تعيينات المستخدمين (المالك، المسند إليه) تمت مطابقتها بشكل صحيح</Check>
<Check>تمت إعادة إنشاء العروض</Check>
<Check>تمت إعادة إنشاء سير العمل واختبارها</Check>
<Check>تم تكوين الأدوار والصلاحيات</Check>
<Check>تمت إعادة توصيل مزامنة البريد الإلكتروني/التقويم</Check>
<Check>تم تحديث تكاملات API بمفاتيح جديدة</Check>
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="هل يمكنني ترحيل سير العمل تلقائيًا؟">
ليس في الوقت الحالي. يجب إعادة إنشاء سير العمل يدويًا في مثيلك السحابي.
</Accordion>
<Accordion title="ماذا عن مرفقات الملفات والصور؟">
مرفقات الملفات غير متضمنة في صادرات CSV. ستحتاج إلى إعادة رفع أي مرفقات يدويًا، أو ترحيلها عبر API، أو التواصل مع فريقنا للحصول على المساعدة في عمليات الترحيل الكبيرة.
</Accordion>
<Accordion title="هل يمكنني إبقاء المثيلين يعملان أثناء الترحيل؟">
نعم، نوصي بإبقاء مثيلك ذاتي الاستضافة قيد التشغيل حتى تتحقق من اكتمال الترحيل إلى السحابة. فقط احرص على عدم إنشاء بيانات جديدة في كلا المكانين.
</Accordion>
<Accordion title="ماذا لو لم يقبل مستخدم دعوته بعد؟">
السجلات التي تُشير إلى ذلك المستخدم ستفشل في الاستيراد أو ستكون العلاقة فارغة. تأكّد من أن جميع المستخدمين يقبلون الدعوات قبل استيراد البيانات.
</Accordion>
</AccordionGroup>
## هل تحتاج إلى مساعدة؟
<Tip>
هل تقوم بترحيل مساحة عمل كبيرة أو معقدة؟ [احصل على شريك Twenty معتمد](https://twenty.com/partners/list?categories=HOSTING\&ref=docs-migrate-cloud) ليتولى عملية النقل من البداية إلى النهاية. *(أو أشرك فريقنا في العملية: [contact@twenty.com](mailto:contact@twenty.com).)*
</Tip>

View File

@@ -0,0 +1,267 @@
---
title: إعداد ملفات CSV الخاصة بك
description: دليل كامل خطوة بخطوة لتنسيق بياناتك لاستيرادها إلى Twenty.
---
## نظرة عامة
يرشدك هذا الدليل إلى كيفية إعداد ملف CSV لاستيراد ناجح. اتّبع هذه الخطوات لتجنّب الأخطاء.
## الخطوة 1: التحقّق من متطلبات الملف
قبل البدء، تأكّد من أنّ ملفك يستوفي هذه المتطلبات:
| المتطلب | تفاصيل |
| --------------------- | --------------------- |
| **التنسيق** | CSV، XLSX، أو XLS |
| **الحد الأقصى للحجم** | 10,000 سجل لكل ملف |
| **الترميز** | يوصى باستخدام UTF-8 |
| **البنية** | نوع كائن واحد لكل ملف |
<Note>بالنسبة لمجموعات البيانات التي تزيد على 10,000 سجل، قم بتقسيمها إلى عدة ملفات أو استخدم [الاستيراد عبر API](/l/ar/user-guide/data-migration/how-tos/import-data-via-api).</Note>
## الخطوة 2: تنزيل الملف النموذجي
**هذه هي أهم خطوة.** يوضّح لك الملف النموذجي أسماء الأعمدة الدقيقة والتنسيق الذي تتوقعه Twenty.
1. انتقل إلى عرض الكائن (الأشخاص، الشركات، إلخ)
2. انقر **⋮** → **استيراد السجلات**
3. انقر **تنزيل الملف النموذجي**
4. استخدم هذا الملف كقالب
<Note>**نصيحة احترافية:** بدلًا من ذلك، صدِّر عددًا قليلًا من السجلات الموجودة. سيوفّر لك هذا أمثلة حقيقية على كيفية تنسيق البيانات، كما ستُطابَق أسماء الأعمدة تلقائيًا أثناء الاستيراد.</Note>
## الخطوة 3: إزالة القيم المكررة
تفرض Twenty التفرّد على حقول معيّنة. ستتسبب القيَم المكررة في أخطاء أثناء الاستيراد.
| كائن | الحقول الفريدة |
| ---------------- | ------------------------------------- |
| **الأشخاص** | `id`, `email` |
| **الشركات** | `id`, `domain` |
| **كائنات مخصصة** | `id`، بالإضافة إلى أي حقل وضعته كفريد |
**قبل الاستيراد:**
1. قم بفرز جدول البيانات حسب الحقل الفريد (البريد الإلكتروني أو النطاق)
2. أزِل الصفوف المكررة أو ادمجها
3. تحقّق من التكرارات الموجودة مسبقًا في Twenty
<Warning>**السجلات المحذوفة مؤقتًا تُحتسب ضمن التفرّد.** السجلات الموجودة في قائمة الأوامر → عرض السجلات المحذوفة ستتسبب في أخطاء تكرار. احذفها نهائيًا أو استعدها وقم بتحديثها.</Warning>
## الخطوة 4: تنسيق كل نوع من الحقول بشكل صحيح
تتطلب أنواع الحقول المختلفة تنسيقات محددة. إليك المرجع الكامل:
### حقول النص
* لا يلزم تنسيق خاص
* تُزال الفراغات في البداية والنهاية تلقائيًا
### حقول البريد الإلكتروني
* يجب أن يكون بتنسيق بريد إلكتروني صالح: `name@domain.com`
* يجب أن تكون فريدة (بدون تكرارات في الملف أو في Twenty)
* للعناوين الإضافية للبريد الإلكتروني، استخدم هذا التنسيق في عمود **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### حقول النطاق
* **التنسيق الموصى به**: `https://domain.com`
* يتطابق هذا مع التنسيق المستخدم في مزامنة صندوق البريد/التقويم (يمنع التكرارات)
* املأ كلا العمودين:
* **Domain / Domain Label**: `domain.com`
* **Domain / Domain URL**: `https://domain.com`
* يجب أن تكون فريدة داخل ملفك وفي Twenty
### حقول الهاتف
الهاتف حقل **متداخل** يتطلب عدة أعمدة:
| العمود | مثال |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### حقول العنوان
العنوان هو **حقل متداخل** يحتوي على أعمدة متعددة (يمكن ترك بعضها فارغًا):
* **العنوان / العنوان 1**: السطر الأول لعنوان الشارع
* **العنوان / العنوان 2**: السطر الثاني لعنوان الشارع (اختياري)
* **العنوان / المدينة**: اسم المدينة
* **العنوان / الولاية**: ولاية أو مقاطعة
* **العنوان / البلد**: اسم البلد
* **العنوان / الرمز البريدي**: رمز بريدي/ZIP
### حقول التاريخ
استخدم تنسيقًا موحدًا في كامل ملفك:
* `YYYY-MM-DD` (مُوصى به): `2024-03-15`
* ISO 8601: `2024-03-15T10:30:00Z`
### حقول الأرقام
* أرقام فقط (بدون نص)
* استخدم النقطة للفواصل العشرية: `1234.56`
* بدون فواصل لآلاف الأرقام (ليس `1,234.56`)
### حقول العملة
العملة هي **حقل متداخل** يتطلب عمودين يجب **ملؤهما كليهما**:
| العمود | مثال |
| ------------------- | --------- |
| **المبلغ / المبلغ** | `1234.56` |
| **المبلغ / العملة** | `USD` |
### حقول منطقية
استخدم أحرفًا كبيرة: `TRUE` أو `FALSE`
<Warning>الأحرف الصغيرة `true` أو `false` لن تعمل.</Warning>
### اختر الحقول
استخدم **اسم واجهة برمجة التطبيقات (API)** للخيار، وليس اسم العرض.
**كيفية العثور على أسماء واجهة برمجة التطبيقات (API):**
1. انتقل إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن والحقل
3. فعّل **الوضع المتقدم** (المبدّل في أسفل اليمين)
4. انسخ اسم واجهة برمجة التطبيقات (مثال: `OPTION_1`، وليس "Option 1")
<Note>خيارات الاختيار الجديدة لا يتم إنشاؤها تلقائيًا. أضِفها في **الإعدادات → نموذج البيانات** قبل الاستيراد.</Note>
### حقول متعددة الاختيار
استخدم أسماء واجهة برمجة التطبيقات بصيغة المصفوفة:
```
["VALUE1","VALUE2"]
```
### حقول المصفوفة
استخدم صيغة مصفوفة JSON:
```
["value1","value2"]
```
### حقول التقييم
استخدم الصيغة: `RATING_1` و`RATING_2` و`RATING_3` و`RATING_4` أو `RATING_5`
### حقول الروابط/عناوين URL
املأ كلا العمودين:
* **الروابط / تسمية الرابط**: `Twenty`
* **الروابط / عنوان URL للرابط**: `https://twenty.com`
بالنسبة للروابط الثانوية، استخدم عمود **الروابط / الروابط الثانوية**:
```
[{"url":"https://twenty.com","label":"Twenty"}]
```
### حقول JSON
استخدم تنسيق JSON صالحًا:
```
{"key":"value","key2":"value2"}
```
### حقول المعرّف
* **اختياري**: يقوم Twenty بإنشاء المعرّفات تلقائيًا إذا لم تُوفَّر
* **التنسيق**: UUID (مثلًا: `c776ee49-f608-4a77-8cc8-6fe96ae1e43f`)
* **حالة الاستخدام**: تضمين المعرّف لتحديث السجلات الموجودة بدلًا من إنشاء سجلات جديدة
## الخطوة 5: إضافة أعمدة العلاقات (إذا كنت تربط السجلات)
لربط السجلات بكائنات أخرى (مثل الأشخاص بالشركات)، أضِف عمودًا يحتوي على المعرّف الفريد للسجل المرتبط.
**مثال**: ربط الأشخاص بالشركات
أضِف عمودًا إلى ملف CSV الخاص بالأشخاص:
```
firstName,lastName,email,companyDomain
John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**قواعد مهمة للعلاقات:**
* يجب أن يكون السجل الأب موجودًا مسبقًا في Twenty
* استخدم صيغة **عنوان المجال (Domain URL)** (`https://domain.com`) وليس التسمية
* قم بربط مُعرّف فريد واحد فقط (لا تُدرج كلاً من `companyId` و`companyDomain`)
* بالنسبة لأعضاء مساحة العمل، استخدم **البريد الإلكتروني** الخاص بهم (وليس الاسم)
<Warning>
**ترتيب الاستيراد مهم!**
استورد طرف "الواحد" قبل طرف "الكثير":
1. **الشركات** أولاً
2. **الأشخاص** ثانيًا (مع مرجع الشركة)
3. **الفرص** ثالثًا
يجب أن يوجد السجل الأب قبل أن تتمكن من الإشارة إليه.
</Warning>
اطلع على [كيفية استيراد العلاقات](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) للحصول على تعليمات مفصلة.
## الخطوة 6: تأكد من وجود الحقول في Twenty
تقوم عملية الاستيراد بإنشاء **سجلات**، وليس **حقولًا**. يجب أن تكون جميع الحقول التي تريد استيرادها موجودة مسبقًا في نموذج البيانات لديك.
**قبل الاستيراد:**
1. انتقل إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن الخاص بك
3. أنشئ أي حقول مخصصة تحتاجها
4. دوّن أسماء الحقول بدقة (يجب أن تتطابق مع عناوين أعمدتك)
## الخطوة 7: قائمة التحقق النهائية
قبل رفع ملفك، تحقّق مما يلي:
<Check>الملف بصيغة CSV أو XLSX أو XLS</Check>
<Check>يحتوي الملف على أقل من 10,000 سجل</Check>
<Check>الترميز UTF-8</Check>
<Check>لا توجد رسائل بريد إلكتروني مكررة (للأشخاص) أو نطاقات (للشركات)</Check>
<Check>التواريخ تستخدم تنسيقًا موحدًا طوال الملف</Check>
<Check>النطاقات تستخدم الصيغة `https://domain.com`</Check>
<Check>الحقول المنطقية تستخدم `TRUE` أو `FALSE` (أحرف كبيرة)</Check>
<Check>حقول الاختيار تستخدم أسماء واجهة برمجة التطبيقات، وليس أسماء العرض</Check>
<Check>جميع الحقول المخصصة موجودة في الإعدادات → نموذج البيانات</Check>
<Check>تم استيراد السجلات الأصلية قبل السجلات الفرعية</Check>
<Check>أعمدة العلاقات تشير إلى سجلات موجودة</Check>
## أخطاء شائعة يجب تجنبها
| الخطأ | الحل |
| ---------------------------------- | ----------------------------------------------------------- |
| استخدام `true` بدلًا من `TRUE` | يجب أن تكون القيم المنطقية بأحرف كبيرة |
| استخدام أسماء العرض لحقول الاختيار | اعثر على أسماء واجهة برمجة التطبيقات في الإعدادات واستخدمها |
| استيراد الأشخاص قبل الشركات | احرص دائمًا على استيراد الكائنات الأصل أولًا |
| رمز العملة مفقود لحقول العملة | املأ عمودي المبلغ والعملة معًا |
| تنسيق نطاق غير صحيح | استخدم `https://domain.com` بصورة متسقة |
| ربط عدة حقول فريدة للعلاقات | اربط حقلًا واحدًا فقط (النطاق أو المعرّف، وليس كليهما) |
## الخطوات التالية
ملفك جاهز! الآن:
* [استيراد الشركات](/l/ar/user-guide/data-migration/how-tos/import-companies-via-csv) (قم باستيرادها أولًا)
* [استيراد جهات الاتصال](/l/ar/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [إصلاح أي أخطاء في الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)

View File

@@ -0,0 +1,198 @@
---
title: تحديث السجلات الموجودة عبر الاستيراد
description: دليل كامل خطوة بخطوة لتحديث السجلات بشكل مجمّع باستخدام استيراد CSV.
---
## نظرة عامة
هل تحتاج إلى تحديث العديد من السجلات دفعة واحدة؟ بدلاً من تعديلها واحدًا تلو الآخر، استخدم استيراد CSV لتحديث السجلات الموجودة بشكل مجمّع.
**حالات الاستخدام:**
* حدّث المسمّيات الوظيفية لعدة أشخاص
* غيّر معلومات الشركة بشكل مجمّع
* أضِف بيانات إلى حقول مخصّصة جديدة
* صحّح أخطاء البيانات عبر العديد من السجلات
## كيف يعمل
عند استيراد ملف يحتوي على **معرّف فريد** يطابق سجلًا موجودًا، يقوم Twenty بتحديث ذلك السجل بدلاً من إنشاء نسخة مكررة.
| إذا كان المعرّف الفريد... | سيقوم Twenty بـ... |
| ------------------------- | ------------------------------------------------ |
| يطابق سجلًا موجودًا | **تحديث** السجل الموجود |
| لا يطابق أي سجل | **إنشاء** سجل جديد |
| مفقود من ملفك | **إنشاء** سجل جديد (بمُعرّف يتم إنشاؤه تلقائيًا) |
<Warning>
**يتم استبدال حقول الاختيار المتعدد، ولا يتم دمجها.**
إذا كان السجل محدّدًا فيه `Option A` و`Option B`، وقمتَ باستيراد `["Option C"]`، فسيحتوي السجل على `Option C` فقط بعد الاستيراد. تستبدل عملية الاستيراد جميع الاختيارات السابقة — ولا تضيف إليها.
للاحتفاظ بالقيم الحالية، ضمّنها جميعًا في عملية الاستيراد: `["Option A","Option B","Option C"]`
</Warning>
## الخطوة 1: تصدير بياناتك الحالية
أولًا، صدّر السجلات التي تريد تحديثها:
1. انتقل إلى الكائن (الأشخاص، الشركات، إلخ)
2. **أضِف الأعمدة التي تحتاجها** — انقر **Options → Fields** لعرض الحقول التي تريد تحديثها
3. **رشّح إذا لزم الأمر** — ضيّق النطاق ليقتصر على السجلات التي تريد تحديثها
4. انقر **⋮** → **Export view**
5. احفظ ملف CSV
<Note>**لماذا نُصدِّر أولًا؟** يحتوي الملف المُصدَّر على التنسيق الصحيح، ويتضمن معرّفات فريدة، ويتم تعيينه تلقائيًا أثناء الاستيراد.</Note>
### ما الذي يتم تصديره
* جميع الأعمدة المرئية في العرض الحالي
* المعرّفات الفريدة للسجل (`id`، `email`، `domain`)
* قيم الحقول الحالية التي يمكنك تعديلها
## الخطوة 2: تحرير ملف CSV
افتح الملف المُصدَّر في تطبيق الجداول الحسابية لديك (Excel، Google Sheets، إلخ):
1. **أبقِ عمود المعرّف الفريد** — لا تحذف `id` أو `email` أو `domain`
2. **حدّث القيم** في الأعمدة التي تريد تغييرها
3. **أزِل الأعمدة التي لا تحتاج إلى تحديثها** (اختياري، لكنه أنظف)
4. **لا تغيّر قيم المعرّفات الفريدة** — وإلا فسيقوم Twenty بإنشاء سجلات جديدة
### مثال: تحديث المسمّيات الوظيفية
**الملف المُصدَّر:**
```csv
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Sales Rep
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Sales Rep
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**بعد تعديلاتك:**
```csv
id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440001,john@acme.com,John,Smith,Account Executive
550e8400-e29b-41d4-a716-446655440002,jane@acme.com,Jane,Doe,Senior Account Executive
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Account Executive
```
<Warning>
**لا تغيّر قيم المعرّفات الفريدة.**
إذا غيّرتَ `john@acme.com` إلى `john.smith@acme.com`، فسيقوم Twenty بإنشاء سجل جديد بدلاً من تحديث السجل الموجود.
</Warning>
## الخطوة 3: استيراد الملف المُحدَّث
1. انتقل إلى الكائن
2. انقر **⋮** → **Import records**
3. حمّل ملف CSV الذي تم تحريره
4. **تأكّد من تعيين المعرّف الفريد** — تحقّق من تعيين `email` أو `domain` أو `id` بشكل صحيح
5. راجع تعيينات الحقول
6. تحقّق من الأخطاء
7. انقر **Confirm**
يطابق Twenty السجلات باستخدام المعرّف الفريد ويحدّثها بالقيم الجديدة.
## اختيار المعرّف الفريد المناسب
| كائن | مُوصى به | بديل | الملاحظات |
| ---------------- | ------------------- | ---- | -------------------------------- |
| **الأشخاص** | `البريد الإلكتروني` | `id` | البريد الإلكتروني مقروء للبشر |
| **الشركات** | `النطاق` | `id` | النطاق مقروء للبشر |
| **كائنات مخصصة** | أي حقل فريد | `id` | استخدم الحقل الفريد المخصّص لديك |
<Note>**استخدم مُعرّفًا فريدًا واحدًا فقط.** لا تقُم بتعيين كلٍّ من `email` و`id`. قد يسبب هذا ارتباكًا وأخطاء.</Note>
### استخدام حقول فريدة مخصّصة
إذا كان لديك حقل مخصّص مُعلَّم كفريد (مثل مُعرّف خارجي من نظام آخر):
1. ضمّن ذلك الحقل في التصدير والاستيراد
2. قم بتعيينه أثناء الاستيراد
3. سيطابق Twenty بناءً على ذلك الحقل
## الخطوة 4: التحقق من التحديثات
بعد الاستيراد:
1. افتح بعض السجلات التي تم تحديثها
2. تحقّق من تطبيق التغييرات
3. تحقّق من عدم إنشاء سجلات مكررة
## ماذا عن الحقول غير الموجودة في ملفك؟
**الحقول غير المُدرجة في ملف الاستيراد تبقى دون تغيير.**
| يحتوي ملفك على... | النتيجة |
| ---------------------------- | ---------------------------------------------------- |
| `email`, `jobTitle` | يتم تحديث `jobTitle` فقط؛ وتبقى الحقول الأخرى كما هي |
| `email`, `jobTitle`, `phone` | يتم تحديث `jobTitle` و`phone` |
هذا يعني أنك تحتاج فقط إلى تضمين الحقول التي تريد تغييرها (بالإضافة إلى المعرّف الفريد).
## الجمع بين التحديثات والسجلات الجديدة
يمكنك تحديث السجلات الموجودة وإنشاء سجلات جديدة في نفس عملية الاستيراد:
```csv
email,firstName,lastName,jobTitle
john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## أخطاء شائعة يجب تجنّبها
| الخطأ | المشكلة | النتيجة | الحل |
| ------------------------- | -------------------------------------------------------------------- | ----------------------------------- | -------------------------------------------- |
| **تغيير المعرّف الفريد** | تغيير `john@acme.com` إلى `john.smith@acme.com` | يُنشئ سجلًا جديدًا بدلًا من التحديث | أبقِ المعرّفات الفريدة كما هي |
| **حقول فريدة متعددة** | تعيين كلٍّ من `email` و`id` | احتمال حدوث تعارضات في المطابقة | قم بتعيين مُعرّف فريد واحد فقط |
| **لا يوجد معرّف فريد** | يحتوي الملف فقط على `firstName` و`lastName` و`jobTitle` | كل الصفوف تُنشئ سجلات جديدة | قم دائمًا بتضمين `email` أو `domain` أو `id` |
| **عدم تطابق حالة الأحرف** | الملف يحتوي على `John@acme.com` لكن Twenty يحتوي على `john@acme.com` | ينشئ سجلًا جديدًا | صدّر من Twenty للحصول على القيم الدقيقة |
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="ماذا لو لم تكن بعض السجلات موجودة بعد؟">
السجلات ذات المعرّفات الفريدة التي لا تطابق سجلات موجودة سيتم إنشاؤها كسجلات جديدة. يتيح لك هذا التحديث والإنشاء في نفس عملية الاستيراد.
</Accordion>
<Accordion title="هل يمكنني مسح/إفراغ قيمة حقل؟">
نعم، اترك الخلية فارغة في ملف CSV. ستقوم عملية الاستيراد بمسح قيمة ذلك الحقل في السجل الموجود.
</Accordion>
<Accordion title="ماذا يحدث للحقول التي لا أضمّنها في الاستيراد؟">
الحقول غير الموجودة في ملف الاستيراد تبقى دون تغيير في السجلات الموجودة. يتم تحديث الحقول التي تضمّنها فقط.
</Accordion>
<Accordion title="هل يمكنني تحديث حقول العلاقات (مثل الشركة)؟">
نعم! ضمّن المعرّف الفريد للعلاقة (مثلًا، `companyDomain`) وعيّنه لحقل العلاقة. سيتم تحديث العلاقة.
</Accordion>
<Accordion title="كيف أعرف أي السجلات سيتم تحديثها وأيها سيتم إنشاؤه؟">
أثناء خطوة مراجعة الاستيراد، يعرض لك Twenty عدد السجلات التي سيتم تحديثها مقابل إنشائها بناءً على تطابقات المعرّف الفريد.
</Accordion>
<Accordion title="هل يمكنني التراجع عن تحديث مجمّع؟">
لا يوجد تراجع تلقائي. نوصي بتصدير بياناتك كنسخة احتياطية قبل إجراء تحديثات مجمّعة.
</Accordion>
</AccordionGroup>
## أفضل الممارسات
1. **ابدأ بالتصدير أولًا** — ابدأ دائمًا من تصدير لضمان التنسيق الصحيح
2. **قم بإنشاء نسخة احتياطية قبل التحديث** — صدّر بياناتك قبل إجراء تغييرات مجمّعة
3. **اختبر على عدد قليل من السجلات** — جرّب تحديث 5–10 سجلات أولًا قبل تنفيذ دفعة كبيرة
4. **استخدم معرّفات مقروءة للبشر** — يعدّ `email` و`domain` أسهل في التحقق منهما من `id`
5. **ضمّن الأعمدة اللازمة فقط** — فكلما قلّ عدد الأعمدة قلّ احتمال حدوث الأخطاء
## استكشاف الأخطاء وإصلاحها
هل تواجه مشكلات؟ اطّلع على:
* [كيفية إصلاح أخطاء الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
* [قيود التفرد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
* [مرجع تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping)

View File

@@ -0,0 +1,83 @@
---
title: نقل البيانات
description: استيراد وتصدير بيانات CRM عبر ملفات CSV أو عبر API.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## طرق الاستيراد
تدعم Twenty طريقتين رئيستين لاستيراد البيانات:
| طريقة | الأفضل لـ | حد الحجم |
| --------------------- | ----------------------------------- | ------------------ |
| **استيراد CSV** | عمليات ترحيل قياسية، تحديثات منتظمة | 10,000 سجل لكل ملف |
| **الاستيراد عبر API** | عمليات ترحيل واسعة النطاق، أتمتة | غير محدود |
<Note>بالنسبة لمجموعات البيانات الكبيرة جداً (مئات الآلاف من السجلات)، استخدم API. يمكن لشركائنا في [التنفيذ](/l/ar/user-guide/getting-started/capabilities/implementation-services) المساعدة في تشغيل هذه النصوص البرمجية عند الحاجة.</Note>
## أساسيات استيراد CSV
يمكنك استيراد البيانات لأي جسم باستخدام ملفات CSV أو XLSX أو XLS. يجب أن يحتوي كل ملف على **نوع واحد فقط من الأجسام** (مثلًا، سجلات الأشخاص فقط).
<Note>**يجب أن تكون الحقول موجودة قبل الاستيراد.** يؤدي رفع ملف CSV إلى إنشاء سجلات لكنه لا ينشئ حقولاً. إذا كنت تحتاج إلى حقول مخصّصة، فأنشئها أولاً ضمن **الإعدادات → نموذج البيانات**.</Note>
### الخطوات
1. انتقل إلى الجسم الذي تريد استيراد البيانات إليه
2. انقر أيقونة **⋮** في أعلى اليمين (هذه هي قائمة الأوامر) ثم انقر **استيراد السجلات**
3. قم بتنزيل ملف القالب للتأكد من أن بياناتك بالتنسيق المتوقع
4. ارفع ملف CSV المُنسَّق الخاص بك
5. طابِق أعمدتك مع حقول Twenty
6. راجِع الأخطاء (المظلَّلة باللون الأصفر) وأصلحها من خلال التحرير مباشرةً في واجهة المستخدم
7. أكد الاستيراد
### استيراد العلاقات بين الكائنات
يمكنك استيراد العلاقات بين الكائنات باستخدام وظيفة استيراد CSV. تحتاج إلى الإشارة إلى الجسم المرتبط باستخدام حقل فريد من هذا الجسم: `id`، و`email` للأشخاص وأعضاء مساحة العمل، و`domain` للشركات، وأي حقل آخر مُعيَّن كفريد في نموذج البيانات لأي جسم آخر.
<Note>**تُحتسب السجلات المحذوفة ضمن التفرّد.** السجلات المحذوفة حذفاً ناعماً (المرئية ضمن قائمة الأوامر → عرض السجلات المحذوفة) تُدرج ضمن عمليات التحقق من التفرّد. إذا قمتَ باستيراد سجل بالقيمة الفريدة نفسها لسجل محذوف، فسيتم استعادة السجل المحذوف.</Note>
<Warning>
**ترتيب الاستيراد مهم!**
عند استيراد أجسام مترابطة، ارفع الملفات بهذا الترتيب:
1. **الشركات** أولاً (جانب "الواحد" من العلاقات)
2. **الأشخاص** ثانيًا (مرتبطون بالشركات عبر companyId)
3. **الفرص** ثالثًا (مرتبطة بالشركات/الأشخاص)
4. **الأجسام المخصّصة** ذات العلاقات أخيراً
لماذا؟ يجب أن يكون جانب "الواحد" من علاقة واحد إلى متعدد موجودًا قبل أن تتمكن من الإشارة إليه. على سبيل المثال، يجب أن يكون سجل الشركة موجودًا قبل أن تستورد شخصًا يحمل معرّف تلك الشركة.
</Warning>
يرجى الرجوع إلى [هذه المقالة](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) للاطلاع على دليل خطوة بخطوة حول كيفية المتابعة.
## تصدير البيانات
صدّر بيانات مساحة العمل للنسخ الاحتياطي أو إعداد التقارير أو الترحيل.
### الخطوات
1. انتقل إلى الجسم الذي تريد تصديره
2. قم بتهيئة العرض بالأعمدة التي تحتاجها
3. انقر **⋮** → **تصدير العرض**
4. احفظ ملف CSV
<Note>**يتم تصدير الأعمدة المرئية فقط.** سيحتوي ملف CSV فقط على الأعمدة المعروضة في عرضك الحالي. أضِف الأعمدة أو أخفها قبل التصدير للتحكم في البيانات المُدرجة.</Note>
<Note>**حدود التصدير**: حتى 20,000 سجل لكل عملية تصدير.</Note>
## الصلاحيات
يتطلّب استيراد وتصدير البيانات أذونات محددة:
* **الاستيراد**: يتطلب إذن "Import CSV"
* **التصدير**: يتطلب إذن "Export CSV"
تواصل مع مسؤول مساحة العمل لديك إذا لم تكن تملك هذه الأذونات.
## الخطوات التالية
* [حضّر ملفات CSV الخاصة بك](/l/ar/user-guide/data-migration/how-tos/prepare-your-csv-files)
* [استيراد العلاقات بين الأجسام](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [الاستيراد عبر API لمجموعات البيانات الكبيرة](/l/ar/user-guide/data-migration/how-tos/import-data-via-api)