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 3s
202 lines
9.8 KiB
Plaintext
202 lines
9.8 KiB
Plaintext
---
|
|
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)
|