i18n - docs translations (#17004)

Created by Github action

Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
github-actions[bot]
2026-01-08 09:57:58 +01:00
committed by GitHub
parent bb9f243fd0
commit e0107f67fd
17 changed files with 1579 additions and 1579 deletions
@@ -5,118 +5,118 @@ description: دليل شامل لاستكشاف أخطاء استيراد CSV و
## نظرة عامة
هل تواجه مشكلة في الاستيراد؟ This guide helps you identify and fix common import errors step by step.
هل تواجه مشكلة في الاستيراد؟ يساعدك هذا الدليل على تحديد أخطاء الاستيراد الشائعة وإصلاحها خطوة بخطوة.
## How Import Validation Works
## كيف تعمل عملية التحقّق من الاستيراد
After uploading your file and mapping columns, Twenty validates your data:
بعد رفع ملفك وتعيين الأعمدة، تتحقّق Twenty من بياناتك:
1. **Validation runs** — Twenty checks each row for errors
2. **Errors are highlighted** — problematic rows appear in **yellow**
3. **You can fix in-place** — edit cells directly in the import UI
4. **Or remove rows** — skip problematic records entirely
1. **تُجرى عملية التحقّق** — تتحقّق Twenty من كل صف بحثًا عن الأخطاء
2. **تمييز الأخطاء** — تظهر الصفوف ذات المشكلات باللون **الأصفر**
3. **يمكنك الإصلاح مباشرةً** — حرّر الخلايا مباشرةً في واجهة الاستيراد
4. **أو إزالة الصفوف** — تخطَّ السجلات التي بها مشكلات تمامًا
<Note>**Fix errors in the UI.** You don't need to go back to your spreadsheet. Edit cells directly during import to save time.</Note>
<Note>**أصلِح الأخطاء في الواجهة.** لست مضطرًا للعودة إلى جدول البيانات الخاص بك. حرّر الخلايا مباشرة أثناء الاستيراد لتوفير الوقت.</Note>
## Step-by-Step Troubleshooting
## استكشاف الأخطاء وإصلاحها خطوة بخطوة
### Step 1: Identify the Error Type
### الخطوة 1: تحديد نوع الخطأ
Click on a highlighted row to see the specific error message. Common error types:
انقر على صف مميّز للاطلاع على رسالة الخطأ المحددة. أنواع الأخطاء الشائعة:
| Error Message | What It Means |
| --------------------------------------------------------------------- | ------------------------------------------------------------ |
| Duplicate values highlighted in yellow | Value already exists in Twenty or appears twice in your file |
| `{field} is not a valid {type}` (hover on yellow cell) | Data doesn't match expected format |
| Required field highlighted | A required field is empty |
| `Can't connect to {object}. No unique record found...` (import fails) | Referenced record doesn't exist |
| `Too many records. Up to 10000 allowed` (upload blocked) | File has more than 10,000 records |
| رسالة الخطأ | ماذا يعني ذلك |
| ----------------------------------------------------------------------- | ---------------------------------------------------- |
| تم تمييز القيم المكرّرة باللون الأصفر | القيمة موجودة مسبقًا في 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 سجل |
### Step 2: Fix the Error
### الخطوة 2: إصلاح الخطأ
Follow the specific instructions below for each error type.
اتّبع الإرشادات المحددة أدناه لكل نوع من الأخطاء.
---
## Error: Duplicate Value
## خطأ: قيمة مكرّرة
### ما ستراه
Rows with duplicate values are **highlighted in yellow** in the import UI before the import starts.
تُميَّز الصفوف ذات القيم المكرّرة باللون **الأصفر** في واجهة الاستيراد قبل بدء الاستيراد.
### What It Means
### ماذا يعني ذلك
A unique field (email, domain) either:
حقل فريد (البريد الإلكتروني، النطاق) إمّا:
* Already exists in Twenty
* Appears twice in your file
* موجود مسبقًا في Twenty
* يظهر مرتين في ملفك
### How to Fix
### كيفية الإصلاح
**Option 1: Edit the duplicate value**
**الخيار 1: تعديل القيمة المكرّرة**
1. Click the cell with the error
2. Change to a unique value
3. Continue with import
1. انقر فوق الخلية التي تحتوي على الخطأ
2. غيّرها إلى قيمة فريدة
3. تابع الاستيراد
**Option 2: Remove the duplicate row**
**الخيار 2: إزالة الصف المكرّر**
1. Click the X next to the row
2. The row will be skipped during import
1. انقر الرمز X بجوار الصف
2. سيتم تخطّي الصف أثناء الاستيراد
**Option 3: Let Twenty update the existing record**
**الخيار 3: دع Twenty تحدّث السجل الموجود**
1. Ensure your file includes a unique identifier (`email`, `domain`, or `id`)
2. Map the unique identifier field
3. Twenty will update the existing record instead of creating a duplicate
1. تأكّد من أن ملفك يتضمن معرّفًا فريدًا (`email`، `domain`، أو `id`)
2. قم بتعيين حقل المعرّف الفريد
3. ستقوم Twenty بتحديث السجل الموجود بدلًا من إنشاء نسخة مكرّرة
<Note>
**You can update unique fields too.**
**يمكنك تحديث الحقول الفريدة أيضًا.**
* If you keep the `id` but change the `email` → the email will be updated
* If you keep the `email` but change the `id` → the id will be updated
* إذا أبقيت على `id` لكن غيّرت `email` → فسيتم تحديث البريد الإلكتروني
* إذا أبقيت على `email` لكن غيّرت `id` → فسيتم تحديث المعرّف
As long as one unique identifier matches, Twenty updates the record.
طالما أن أحد المعرّفات الفريدة يطابق، تقوم Twenty بتحديث السجل.
</Note>
### How to Prevent This Error
### كيفية منع هذا الخطأ
Before importing:
قبل الاستيراد:
1. Sort your spreadsheet by the unique field
2. Remove duplicate rows
3. Check if records already exist in Twenty
1. رتّب جدول البيانات حسب الحقل الفريد
2. أزل الصفوف المكرّرة
3. تحقّق مما إذا كانت السجلات موجودة مسبقًا في Twenty
<Warning>
**Soft-deleted records count toward uniqueness.**
**السجلات المحذوفة حذفًا ناعمًا تُحتسب ضمن التفرد.**
Check Command Menu → See deleted records. Records there still enforce uniqueness. Permanently delete them or restore and update.
تحقّق من قائمة الأوامر → اعرض السجلات المحذوفة. السجلات هناك ما تزال تفرض شرط التفرد. احذفها نهائيًا أو استعدها وقم بتحديثها.
</Warning>
For more details: [Uniqueness Constraints](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
لمزيد من التفاصيل: [قيود التفرد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Error: Invalid Format
## خطأ: تنسيق غير صالح
### ما ستراه
The cell value is highlighted in yellow. Hover over it to see the error message:
تم تمييز قيمة الخلية باللون الأصفر. مرّر المؤشر فوقها للاطلاع على رسالة الخطأ:
```
{field name} is not a valid {field type}
```
### What It Means
### ماذا يعني ذلك
The data doesn't match the expected format for that field type.
لا تطابق البيانات التنسيق المتوقع لذلك النوع من الحقول.
### How to Fix — By Field Type
### كيفية الإصلاح — حسب نوع الحقل
#### البريد الإلكتروني
**Problem:** Invalid email format
**Solution:** Use format `name@domain.com`
**المشكلة:** تنسيق بريد إلكتروني غير صالح
**الحل:** استخدم التنسيق `name@domain.com`
```
❌ john.smith@
@@ -126,8 +126,8 @@ The data doesn't match the expected format for that field type.
#### النطاق
**Problem:** Inconsistent format may cause duplicates
**Solution:** Use `https://domain.com` format (recommended)
**المشكلة:** قد يتسبب عدم اتساق التنسيق في حدوث تكرارات
**الحل:** استخدم تنسيق `https://domain.com` (موصى به)
```
⚠️ acme.com (valid, but not recommended)
@@ -135,12 +135,12 @@ The data doesn't match the expected format for that field type.
✅ https://acme.com (recommended)
```
<Note>All formats are valid, but `https://domain.com` is recommended because it matches the format used by email/calendar sync. Using other formats may create duplicate companies.</Note>
<Note>جميع التنسيقات صالحة، لكن يُوصى بـ `https://domain.com` لأنه يطابق التنسيق المستخدم في مزامنة البريد الإلكتروني/التقويم. قد يؤدي استخدام تنسيقات أخرى إلى إنشاء شركات مكرّرة.</Note>
#### تاريخ
**Problem:** Unrecognized date format
**Solution:** Use consistent format throughout file
**المشكلة:** تنسيق تاريخ غير معروف
**الحل:** استخدم تنسيقًا متّسقًا في جميع أنحاء الملف
```
✓ 2024-03-15 (YYYY-MM-DD - recommended)
@@ -150,10 +150,10 @@ The data doesn't match the expected format for that field type.
#### هاتف
**Problem:** Missing required columns
**Solution:** Include all phone columns
**المشكلة:** أعمدة مطلوبة مفقودة
**الحل:** تضمين جميع أعمدة الهاتف
| Column | مثال |
| العمود | مثال |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
@@ -161,8 +161,8 @@ The data doesn't match the expected format for that field type.
#### قيمة منطقية
**Problem:** Wrong boolean value
**Solution:** Use uppercase `TRUE` or `FALSE`
**المشكلة:** قيمة منطقية خاطئة
**الحل:** استخدم `TRUE` أو `FALSE` بحروف كبيرة
```
❌ true
@@ -172,17 +172,17 @@ The data doesn't match the expected format for that field type.
✓ FALSE
```
#### Select / Multi-Select
#### اختيار / اختيار متعدد
**Problem:** Value doesn't match existing options
**Solution:** Use **API names**, not display labels
**المشكلة:** لا تطابق القيمة الخيارات الموجودة
**الحل:** استخدم **أسماء واجهة برمجة التطبيقات (API)**، وليس تسميات العرض
How to find API names:
كيفية العثور على أسماء واجهة برمجة التطبيقات:
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at bottom right)
4. Use the API name (e.g., `OPTION_1`, not "Option 1")
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن والحقل
3. فعّل **الوضع المتقدم** (زر التبديل في أسفل اليمين)
4. استخدم اسم واجهة برمجة التطبيقات (على سبيل المثال، `OPTION_1`، وليس "Option 1")
```
❌ High Priority
@@ -191,18 +191,18 @@ How to find API names:
#### العملة
**Problem:** Missing amount or currency code
**Solution:** Fill both columns
**المشكلة:** المبلغ أو رمز العملة مفقود
**الحل:** املأ كلا العمودين
| Column | مثال |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
| العمود | مثال |
| ------------------- | --------- |
| **المبلغ / المبلغ** | `1234.56` |
| **المبلغ / العملة** | `USD` |
#### رقم
**Problem:** Non-numeric characters
**Solution:** Numbers only, period for decimals
**المشكلة:** أحرف غير رقمية
**الحل:** أرقام فقط، ونقطة للفواصل العشرية
```
❌ $1,234.56
@@ -210,221 +210,221 @@ How to find API names:
✓ 1234.56
```
For complete format reference: [Field Mapping](/l/ar/user-guide/data-migration/capabilities/field-mapping)
للاطلاع على مرجع التنسيقات الكامل: [مرجع تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping)
---
## Error: Required Field Missing
## خطأ: حقل مطلوب مفقود
### ما ستراه
The row is highlighted in yellow with the required field cell marked.
تم تمييز الصف باللون الأصفر مع وضع علامة على خلية الحقل المطلوب.
### What It Means
### ماذا يعني ذلك
A required field is empty for this row.
الحقل المطلوب فارغ لهذا الصف.
### How to Fix
### كيفية الإصلاح
**Option 1: Enter a value**
**الخيار 1: إدخال قيمة**
1. Click the empty cell
2. Enter a value
3. Continue with import
1. انقر فوق الخلية الفارغة
2. أدخل قيمة
3. تابع الاستيراد
**Option 2: Remove the row**
**الخيار 2: إزالة الصف**
1. If you don't have the data, click X to skip the row
1. إذا لم تكن لديك البيانات، انقر X لتخطّي الصف
### How to Prevent This Error
### كيفية منع هذا الخطأ
Before importing, identify required fields:
قبل الاستيراد، حدّد الحقول المطلوبة:
1. Go to **Settings → Data Model**
2. Select your object
3. Check which fields are marked as required
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن الخاص بك
3. تحقّق من الحقول المُعلمة كمطلوبة
---
## Error: Relation Not Found
## خطأ: العلاقة غير موجودة
### ما ستراه
This error appears **after the import starts** — the import fails with a message like:
يظهر هذا الخطأ **بعد بدء الاستيراد** — يفشل الاستيراد برسالة مثل:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
This means there is no Company in Twenty with that specific identifier.
هذا يعني أنه لا توجد شركة في Twenty بذلك المعرّف المحدّد.
<Note>Unlike other errors, this one is not caught during the data review step. The import will start and then fail when it encounters the missing relation.</Note>
<Note>على عكس الأخطاء الأخرى، لا يُلتقط هذا الخطأ أثناء خطوة مراجعة البيانات. سيبدأ الاستيراد ثم يفشل عند مواجهة العلاقة المفقودة.</Note>
### What It Means
### ماذا يعني ذلك
You're trying to link to a record that doesn't exist in Twenty.
تحاول ربط سجل غير موجود في Twenty.
### How to Fix
### كيفية الإصلاح
**Option 1: Import parent records first**
**الخيار 1: استيراد سجلات الأصل أولًا**
1. Cancel the current import
2. Import the parent records (e.g., Companies)
3. Then import the child records (e.g., People)
1. ألغِ الاستيراد الحالي
2. استورد سجلات الأصل (مثلًا، الشركات)
3. ثم استورد سجلات التابع (مثلًا، الأشخاص)
**Option 2: Fix the reference value**
**الخيار 2: أصلِح قيمة المرجع**
1. Check the reference value in your file
2. Ensure it exactly matches an existing record
3. Verify format: domains should be `https://domain.com`
1. تحقّق من قيمة المرجع في ملفك
2. تأكّد من أنه يطابق سجلًا موجودًا تمامًا
3. تحقّق من التنسيق: يجب أن تكون النطاقات بصيغة `https://domain.com`
**Option 3: Remove the relation**
**الخيار 3: إزالة العلاقة**
1. Clear the cell to import without the relation
2. Add the relation manually later
1. امسح الخلية للاستيراد دون العلاقة
2. أضِف العلاقة يدويًا لاحقًا
### How to Prevent This Error
### كيفية منع هذا الخطأ
1. **Import in the correct order:**
* Companies first
* People second (with company references)
* Opportunities third
1. **استورد بالترتيب الصحيح:**
* الشركات أولًا
* الأشخاص ثانيًا (مع مراجع الشركة)
* الفرص ثالثًا
2. **Verify reference values:**
* Export parent records to get exact identifiers
* Use domain format `https://domain.com`
* Check for typos and case sensitivity
2. **تحقّق من قيم المراجع:**
* صدّر سجلات الأصل للحصول على معرّفات دقيقة
* استخدم تنسيق النطاق `https://domain.com`
* تحقّق من الأخطاء الإملائية وحساسية حالة الأحرف
<Warning>
**Import will fail if a reference is made to a non-existent record.**
**سيفشل الاستيراد إذا تمت الإشارة إلى سجل غير موجود.**
Always import parent objects before child objects.
استورد دائمًا كائنات الأصل قبل كائنات التابع.
</Warning>
For more details: [Import Relations](/l/ar/user-guide/data-migration/capabilities/import-relations)
لمزيد من التفاصيل: [استيراد العلاقات](/l/ar/user-guide/data-migration/capabilities/import-relations)
---
## Error: File Too Large
## خطأ: ملف كبير جدًا
### ما ستراه
This error appears **when uploading your file** — the upload is blocked entirely:
يظهر هذا الخطأ **عند رفع ملفك** — يتم حظر التحميل بالكامل:
```
Too many records. Up to 10000 allowed
```
You won't be able to proceed to the data review step until you reduce the file size.
لن تتمكّن من الانتقال إلى خطوة مراجعة البيانات حتى تقلّل حجم الملف.
### What It Means
### ماذا يعني ذلك
Your file has more than 10,000 records.
يحتوي ملفك على أكثر من 10,000 سجل.
### How to Fix
### كيفية الإصلاح
**Option 1: Split into multiple files**
**الخيار 1: التقسيم إلى عدة ملفات**
1. Divide your data into files of 10,000 records or fewer
2. Import each file separately
3. Maintain import order (Companies before People)
1. قسّم بياناتك إلى ملفات تحتوي على 10,000 سجل أو أقل
2. استورد كل ملف على حدة
3. حافظ على ترتيب الاستيراد (الشركات قبل الأشخاص)
**Option 2: Use API import**
For very large datasets, use the API which has no record limit.
See: [How to Import Data via API](/l/ar/user-guide/data-migration/how-tos/import-data-via-api)
**الخيار 2: استخدم الاستيراد عبر واجهة برمجة التطبيقات (API)**
بالنسبة لمجموعات البيانات الكبيرة جدًا، استخدم واجهة برمجة التطبيقات التي لا تحتوي على حد لعدد السجلات.
راجع: [كيفية استيراد البيانات عبر واجهة برمجة التطبيقات (API)](/l/ar/user-guide/data-migration/how-tos/import-data-via-api)
---
## Error: Field Not Recognized
## خطأ: لم يتم التعرّف على الحقل
### What It Means
### ماذا يعني ذلك
A column in your file can't be mapped because the field doesn't exist in Twenty.
لا يمكن تعيين عمود في ملفك لأن الحقل غير موجود في Twenty.
### How to Fix
### كيفية الإصلاح
1. Go to **Settings → Data Model**
2. Select the object you're importing
3. Click **+ Add field**
4. Create the custom field with the appropriate type
5. Re-upload your file
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن الذي تستورده
3. انقر **+ إضافة حقل**
4. أنشئ الحقل المخصّص بالنوع المناسب
5. أعد رفع ملفك
<Note>The CSV import creates records, not fields. All fields must exist before importing.</Note>
<Note>يُنشئ استيراد CSV سجلات، وليس حقولًا. يجب أن تكون جميع الحقول موجودة قبل الاستيراد.</Note>
---
## Error: User Relation Empty
## خطأ: علاقة المستخدم فارغة
### What It Means
### ماذا يعني ذلك
You're trying to assign a record to a user (Owner, Assignee) but the relation isn't being mapped.
تحاول إسناد سجل إلى مستخدم (المالك، المعيَّن) لكن العلاقة لا يتم تعيينها.
### Common Causes
### أسباب شائعة
1. **User hasn't accepted their invitation** — the user doesn't exist in Twenty yet
2. **Using user ID from old system** — Twenty can't match IDs from another system
3. **Wrong email format** — the email doesn't match the user's Twenty account
1. **لم يقبل المستخدم دعوته** — المستخدم غير موجود في Twenty بعد
2. **استخدام معرّف مستخدم من نظام قديم** — لا تستطيع Twenty مطابقة المعرّفات من نظام آخر
3. **تنسيق بريد إلكتروني خاطئ** — البريد الإلكتروني لا يطابق حساب المستخدم في Twenty
### How to Fix
### كيفية الإصلاح
1. Ensure all users have **accepted their invitation** to your Twenty workspace
2. Use the user's **email address** (not their name or old system ID)
3. Use the same email they used to join Twenty
1. تأكّد من أن جميع المستخدمين قد **قبلوا دعوتهم** إلى مساحة عمل Twenty الخاصة بك
2. استخدم **عنوان البريد الإلكتروني** الخاص بالمستخدم (وليس اسمه أو معرّف النظام القديم)
3. استخدم البريد الإلكتروني نفسه الذي استخدموه للانضمام إلى Twenty
<Warning>
**Users must accept invitations before importing.**
**يجب على المستخدمين قبول الدعوات قبل الاستيراد.**
If a user hasn't accepted their invitation, records referencing them will have empty user relations.
إذا لم يقبل المستخدم دعوته، فستكون علاقات المستخدم فارغة في السجلات التي تشير إليه.
</Warning>
---
## Pre-Import Checklist
## قائمة ما قبل الاستيراد
Avoid errors by checking these before importing:
تجنّب الأخطاء من خلال التحقّق مما يلي قبل الاستيراد:
### File Requirements
### متطلبات الملف
<Check>File is CSV, XLSX, or XLS format</Check>
<Check>File has fewer than 10,000 records</Check>
<Check>File uses UTF-8 encoding</Check>
<Check>الملف بتنسيق CSV أو XLSX أو XLS</Check>
<Check>يحتوي الملف على أقل من 10,000 سجل</Check>
<Check>يستخدم الملف ترميز UTF-8</Check>
### Data Quality
### جودة البيانات
<Check>No duplicate emails (for People)</Check>
<Check>No duplicate domains (for Companies)</Check>
<Check>All dates use consistent format</Check>
<Check>All domains use `https://domain.com` format</Check>
<Check>لا توجد رسائل بريد إلكتروني مكرّرة (للأشخاص)</Check>
<Check>لا توجد نطاقات مكرّرة (للشركات)</Check>
<Check>جميع التواريخ تستخدم تنسيقًا متّسقًا</Check>
<Check>جميع النطاقات تستخدم تنسيق `https://domain.com`</Check>
### Field Formats
### تنسيقات الحقول
<Check>Boolean fields use `TRUE` or `FALSE` (uppercase)</Check>
<Check>Select fields use API names, not display labels</Check>
<Check>Phone fields have all required columns</Check>
<Check>Currency fields have both Amount and Currency Code</Check>
<Check>الحقول المنطقية تستخدم `TRUE` أو `FALSE` (أحرف كبيرة)</Check>
<Check>حقول الاختيار تستخدم أسماء واجهة برمجة التطبيقات (API)، وليس تسميات العرض</Check>
<Check>حقول الهاتف تحتوي على جميع الأعمدة المطلوبة</Check>
<Check>حقول العملة تتضمن كلًا من المبلغ ورمز العملة</Check>
### العلاقات
<Check>Parent records imported before child records</Check>
<Check>Relation columns reference existing records</Check>
<Check>Domain format matches Twenty's format exactly</Check>
<Check>تم استيراد سجلات الأصل قبل سجلات التابع</Check>
<Check>أعمدة العلاقات تشير إلى سجلات موجودة</Check>
<Check>تنسيق النطاق يطابق تنسيق Twenty تمامًا</Check>
### نموذج البيانات
<Check>All custom fields exist in Settings → Data Model</Check>
<Check>Select options exist before importing</Check>
<Check>جميع الحقول المخصّصة موجودة في الإعدادات → نموذج البيانات</Check>
<Check>خيارات الاختيار موجودة قبل الاستيراد</Check>
---
## Still Having Issues?
## هل لا تزال تواجه مشكلات؟
If you've tried the above solutions:
إذا كنت قد جرّبت الحلول أعلاه:
1. **Download the sample file** — see the exact format Twenty expects
2. **Export existing records** — compare your file to working data
3. **Test with a small batch** — try 5-10 rows first
4. **Check the reference articles:**
* [Field Mapping](/l/ar/user-guide/data-migration/capabilities/field-mapping)
* [Uniqueness Constraints](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import Relations](/l/ar/user-guide/data-migration/capabilities/import-relations)
* [Error Handling](/l/ar/user-guide/data-migration/capabilities/error-handling)
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)
@@ -1,43 +1,43 @@
---
title: Migrating from Other CRMs
description: Step-by-step guide to migrate your data from any CRM to Twenty.
description: دليل خطوة بخطوة لترحيل بياناتك من أي نظام لإدارة علاقات العملاء إلى Twenty.
---
## نظرة عامة
This guide walks you through migrating your data from any CRM to Twenty. The process involves auditing your data, preparing your Twenty workspace, exporting from your current system, and importing into Twenty.
يرشدك هذا الدليل خلال عملية ترحيل بياناتك من أي نظام لإدارة علاقات العملاء إلى Twenty. تشمل العملية تدقيق بياناتك، وإعداد مساحة العمل في Twenty، والتصدير من نظامك الحالي، والاستيراد إلى Twenty.
<Note>Views, workflows, and permissions must be recreated manually after migration. Plan time for this configuration work.</Note>
<Note>يجب إعادة إنشاء العروض، وسير العمل، والأذونات يدويًا بعد الترحيل. خطط وقتًا لهذا العمل الخاص بالإعداد.</Note>
## Step 1: Audit Your Current Data
## الخطوة 1: تدقيق بياناتك الحالية
Migration is an opportunity for a fresh start. Don't bring over clutter.
يُعد الترحيل فرصة لبداية جديدة. لا تنقل البيانات غير الضرورية.
**What to keep:**
**ما يجب الاحتفاظ به:**
* Active contacts and companies
* Open opportunities and deals
* Important notes and activities
* Custom fields you actually use
* جهات الاتصال والشركات النشطة
* الفرص والصفقات المفتوحة
* الملاحظات والأنشطة المهمة
* الحقول المخصصة التي تستخدمها فعليًا
**What to leave behind:**
**ما يجب تركه:**
* Outdated contacts (no activity in 2+ years)
* Duplicate records
* Test data
* Unused custom fields
* جهات الاتصال القديمة (لا نشاط خلال سنتين أو أكثر)
* السجلات المكررة
* بيانات الاختبار
* الحقول المخصصة غير المستخدمة
## Step 2: Map Your Data Model
## الخطوة 2: مطابقة نموذج البيانات الخاص بك
Create a mapping document between your current CRM and Twenty:
أنشئ مستند مطابقة بين نظام إدارة علاقات العملاء الحالي لديك وTwenty:
| Your CRM | Twenty |
| ---------------------- | -------------------- |
| Account / Organization | **Company** |
| Contact / Person | **People** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| نظام إدارة علاقات العملاء الخاص بك | Twenty |
| ---------------------------------- | -------------------- |
| حساب / مؤسسة | **الشركة** |
| جهة اتصال / شخص | **الأشخاص** |
| صفقة / فرصة | **الفرصة** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
**For each field, document:**
@@ -1,23 +1,23 @@
---
title: محفزات سير العمل
description: Learn about the different triggers that start your workflows.
description: تعرّف على المحفزات المختلفة التي تُشغِّل سير العمل لديك.
---
## About Triggers
## حول المحفزات
تبدأ سير العمل دائمًا بمحفز واحد يحدد متى ينبغي تشغيل الأتمتة.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Advanced objects are supported!** Beyond standard CRM objects (People, Companies, Opportunities), you can also trigger workflows and perform actions on:
**الكائنات المتقدمة مدعومة!** إلى جانب كائنات CRM القياسية (الأشخاص، الشركات، الفرص)، يمكنك أيضًا تشغيل سير العمل وتنفيذ إجراءات على:
* أعضاء مساحة العمل
* Calendar Events
* Messages (Emails)
* Tasks, Notes, and many other system objects
* أحداث التقويم
* الرسائل (رسائل البريد الإلكتروني)
* المهام، والملاحظات، والعديد من كائنات النظام الأخرى
This opens up powerful automations like notifying team members when calendar events are created, or processing incoming emails automatically.
يفتح هذا المجال لأتمتة قوية مثل إشعار أعضاء الفريق عند إنشاء أحداث التقويم، أو معالجة رسائل البريد الإلكتروني الواردة تلقائيًا.
</Tip>
## إنشاء سجل
@@ -27,9 +27,9 @@ description: Learn about the different triggers that start your workflows.
**التكوين**: حدد نوع الكائن لمراقبة السجلات الجديدة.
<Note>
* This trigger is great for records created by csv, mailbox and calendar synchronization, API.
* **It is not recommended for records created manually**: with this trigger, workflows start as soon as the record is created. Since Twenty UI offers auto-save on the fly (there is not an edit mode and then a validation to save records), the workflow will be triggered before the user inputs all the fields.
To trigger this workflow on records created manually, it is recommended to use the trigger `Record is created or updated` instead.
* هذا المحفز رائع للسجلات التي يتم إنشاؤها عبر CSV، ومزامنة صندوق البريد والتقويم، وواجهة برمجة التطبيقات (API).
* **لا يُنصح به للسجلات التي تُنشأ يدويًا**: مع هذا المحفز، تبدأ عمليات سير العمل فور إنشاء السجل. نظرًا لأن Twenty UI تتيح الحفظ التلقائي أثناء العمل (لا توجد وضعية تحرير ثم تحقق لحفظ السجلات)، فسيتم تشغيل سير العمل قبل أن يُدخل المستخدم جميع الحقول.
لتشغيل سير العمل هذا على السجلات التي تم إنشاؤها يدويًا، يُوصى باستخدام المحفز `Record is created or updated` بدلًا من ذلك.
</Note>
## تحديث السجل
@@ -62,27 +62,27 @@ description: Learn about the different triggers that start your workflows.
**التكوين**: حدد نوع الكائن لمراقبة عمليات الحذف.
## Manual Trigger
## المحفز اليدوي
يبدأ سير العمل عندما يتم تشغيله بواسطة إجراء المستخدم. This trigger can be accessed through the `Cmd+K` menu or via a custom button that will be displayed in the top navbar after selecting record(s).
يبدأ سير العمل عندما يتم تشغيله بواسطة إجراء المستخدم. يمكن الوصول إلى هذا المحفز من خلال قائمة `Cmd+K` أو عبر زر مخصص سيُعرض في شريط التنقل العلوي بعد تحديد سجل/سجلات.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**إعداد التوفر**:
اختر كيفية التعامل مع تحديد السجل في سير العمل:
* **العالمي**: لا يتطلب أي سجل لتشغيل سير العمل هذا. The workflow is triggered from the command menu `Cmd + K` anywhere (from any object) and does not use record(s) as input.
* **العالمي**: لا يتطلب أي سجل لتشغيل سير العمل هذا. يتم تشغيل سير العمل من قائمة الأوامر `Cmd + K` من أي مكان (من أي كائن) ولا يستخدم سجل/سجلات كمدخل.
* **مفرد**: سيتم تمرير السجل (السجلات) المحددة إلى سير العمل الخاص بك. تم تكوين هذا لكائن معين. يمكن اختيار عدة سجلات قبل إطلاق سير العمل. The workflow will run from beginning to end as many times as there are records selected.
* **مفرد**: سيتم تمرير السجل (السجلات) المحددة إلى سير العمل الخاص بك. تم تكوين هذا لكائن معين. يمكن اختيار عدة سجلات قبل إطلاق سير العمل. سوف يعمل سير العمل من البداية إلى النهاية بعدد مرات يساوي عدد السجلات المحددة.
<Note>
**Soft limit: 100 runs/minute**. Beyond this, workflows remain in "Not Started" status and are processed gradually—either by a background job or when another workflow enters the queue. This means you can select more than 100 records with a Single trigger; execution will just be slower.
**حد مرن: 100 عملية تشغيل/دقيقة**. بعد ذلك، تظل عمليات سير العمل في حالة "Not Started" ويتم معالجتها تدريجيًا—إما بواسطة مهمة خلفية أو عندما يدخل سير عمل آخر قائمة الانتظار. هذا يعني أنه يمكنك تحديد أكثر من 100 سجل باستخدام محفز واحد؛ ستكون عملية التنفيذ أبطأ فقط.
</Note>
* **الاختيار الشامل**: سيتم تمرير السجل/السجلات المحددة إلى سير العمل الخاص بك. تم تكوين هذا لكائن معين. يمكن اختيار عدة سجلات قبل إطلاق سير العمل. سيتم تشغيل سير العمل مرة واحدة، مما يوفر القائمة الكاملة للسجلات كمدخلات. This means the workflow needs to contain an [Iterator action](/l/ar/user-guide/workflows/capabilities/workflow-actions#iterator).
* **الاختيار الشامل**: سيتم تمرير السجل/السجلات المحددة إلى سير العمل الخاص بك. تم تكوين هذا لكائن معين. يمكن اختيار عدة سجلات قبل إطلاق سير العمل. سيتم تشغيل سير العمل مرة واحدة، مما يوفر القائمة الكاملة للسجلات كمدخلات. هذا يعني أن سير العمل يحتاج إلى احتواء [إجراء المُكرِّر](/l/ar/user-guide/workflows/capabilities/workflow-actions#iterator).
<Note>
This is more advanced, and best for people who want to optimize the number of workflow runs.
هذا أكثر تقدمًا، وهو الأفضل لمن يرغبون في تحسين عدد مرات تشغيل سير العمل.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
@@ -95,10 +95,10 @@ description: Learn about the different triggers that start your workflows.
**طرق الوصول**:
* `Cmd+K` menu to find and launch manual workflows
* قائمة `Cmd+K` للعثور على وتشغيل عمليات سير العمل اليدوية
* زر مخصص في شريط التنقل العلوي (إذا تم تكوينه)
## Time-Based Trigger: On a Schedule
## محفز قائم على الوقت: وفق جدول زمني
يبدأ سير العمل على أساس دوري تحدده.
@@ -108,10 +108,10 @@ description: Learn about the different triggers that start your workflows.
* أدخل قيمة أو استخدم تعبيرات كرون مخصصة للجدولة المتقدمة
<Note>
**Timezone**: Scheduled workflows run in **UTC**. When setting hours for daily schedules, convert your local time to UTC.
**المنطقة الزمنية**: تعمل عمليات سير العمل المجدولة وفق **UTC**. عند تعيين الساعات للجداول اليومية، حوّل وقتك المحلي إلى UTC.
</Note>
## External Trigger: Webhook
## محفز خارجي: ويب هوك
يبدأ سير العمل عندما يتم استقبال طلب GET أو POST من خدمة خارجية.
@@ -119,18 +119,18 @@ description: Learn about the different triggers that start your workflows.
**التكوين**:
* The workflow provides a unique webhook URL—copy this and add it to your external system as the endpoint to call.
* For POST requests, define the expected body structure so Twenty knows what data to expect. Add here the fields you will receive that will be needed below in your workflow.
* Configure authentication (coming soon).
* يوفر سير العمل عنوان URL فريدًا لويب هوك—انسخه وأضفه إلى نظامك الخارجي كنقطة نهاية للاستدعاء.
* بالنسبة لطلبات POST، حدِّد البنية المتوقعة لمحتوى الطلب حتى يعرف Twenty ما البيانات المتوقع تلقيها. أضف هنا الحقول التي ستستلمها والتي ستكون مطلوبة أدناه في سير العمل لديك.
* قم بتكوين المصادقة (قريبًا).
## Choosing the Right Trigger
## اختيار المحفز المناسب
| Use Case | Recommended Trigger |
| --------------------------- | ------------------------ |
| New leads need processing | إنشاء سجل |
| Data changes need sync | تحديث السجل |
| Import/manual data handling | تحديث أو إنشاء سجل |
| Cleanup after deletion | حذف السجل |
| User-initiated action | التشغيل يدويًا |
| Recurring reports | بجدول زمني |
| External integration | Webhook or On a Schedule |
| حالة الاستخدام | المحفز الموصى به |
| ------------------------------------------ | ------------------------ |
| العملاء المحتملون الجدد يحتاجون إلى معالجة | إنشاء سجل |
| تغييرات البيانات تحتاج إلى مزامنة | تحديث السجل |
| استيراد/معالجة البيانات يدويًا | تحديث أو إنشاء سجل |
| التنظيف بعد الحذف | حذف السجل |
| إجراء يبدأه المستخدم | التشغيل يدويًا |
| تقارير متكررة | بجدول زمني |
| تكامل خارجي | ويب هوك أو وفق جدول زمني |
@@ -1,170 +1,170 @@
---
title: استكشاف مشكلات سير العمل وإصلاحها
description: Common workflow issues and how to resolve them.
description: المشكلات الشائعة في سير العمل وكيفية حلّها.
---
## المشاكل الشائعة والحلول
### لم يتم تشغيل سير العمل
**Symptoms**: Your workflow doesn't run when you expect it to.
**الأعراض**: لا يعمل سير العمل كما تتوقع.
**Possible Causes**:
**الأسباب المحتملة**:
1. **Workflow not activated**: Ensure the workflow is set to "Active" not "Draft"
2. **Trigger conditions not met**: Verify the trigger matches your expected event
3. **Field not monitored**: For "Record is Updated" triggers, ensure the specific field is being watched
4. **Permissions**: Check you have permission to run workflows
1. **لم يتم تفعيل سير العمل**: تأكّد من تعيين سير العمل إلى "Active" وليس "Draft"
2. **شروط المُحفِّز غير مستوفاة**: تحقّق من أن المُحفِّز يطابق الحدث الذي تتوقعه
3. **حقل غير مُراقَب**: بالنسبة لمُحفِّزات "Record is Updated"، تأكّد من مراقبة الحقل المحدد
4. **الأذونات**: تحقّق من أن لديك الإذن لتشغيل سير العمل
**حلول**:
* Verify workflow status in the workflow list
* Test with the specific action you expect to trigger it
* Review trigger configuration
* Contact your admin about permissions
* تحقّق من حالة سير العمل في قائمة سير العمل
* اختبر بالإجراء المحدد الذي تتوقع أن يُشغِّله
* راجِع إعداد المُحفِّز
* تواصَل مع المسؤول لديك بشأن الأذونات
### Workflow Triggers Too Early (Empty Fields)
### مُحفِّزات سير العمل تعمل مبكراً جداً (حقول فارغة)
**Symptoms**: When manually creating a record in the UI, your workflow triggers before you've had time to fill in all the fields. The workflow runs with mostly empty field values.
**الأعراض**: عند إنشاء سجل يدوياً في واجهة المستخدم، يتم تشغيل سير العمل قبل أن تتمكّن من ملء جميع الحقول. يعمل سير العمل مع قيم حقول فارغة في الغالب.
**Why this happens**: Twenty saves everything in real-time — there's no separate "edit" vs "read" mode. When you create a record, it's saved immediately, triggering the "Record is created" event before you can fill in additional fields.
**سبب حدوث هذا**: تقوم Twenty بحفظ كل شيء في الزمن الحقيقي — لا يوجد وضع منفصل "edit" مقابل "read". عند إنشاء سجل، يتم حفظه فوراً، مما يؤدي إلى تشغيل حدث "Record is created" قبل أن تتمكّن من ملء حقول إضافية.
**When "Record is created" works well**:
**متى يعمل "Record is created" بشكل جيد**:
* Records created via API calls (fields are populated in a single request)
* Records created via import
* Automated record creation from other workflows
* السجلات التي تُنشأ عبر استدعاءات API (تُملأ الحقول في طلب واحد)
* السجلات التي تُنشأ عبر الاستيراد
* إنشاء السجلات تلقائياً من سير عمل أخرى
**Solution**: For records created manually in the UI, use **"Record is created or updated"** as your trigger instead. This way:
**الحل**: بالنسبة للسجلات التي تُنشأ يدوياً في واجهة المستخدم، استخدم **"Record is created or updated"** كمحفّز بدلاً من ذلك. بهذه الطريقة:
* The workflow triggers after the user has finished filling in and saving the fields
* You get the complete data rather than empty values
* سيتم تشغيل سير العمل بعد أن يُنهي المستخدم ملء الحقول وحفظها
* ستحصل على البيانات الكاملة بدلاً من القيم الفارغة
<Tip>
If you only want the workflow to run once per record, add a Filter action to check a field like `createdAt equals updatedAt` (first save) or use a custom checkbox field to track if the workflow has already run.
إذا كنت تريد تشغيل سير العمل مرة واحدة فقط لكل سجل، أضِف إجراء تصفية لفحص حقل مثل `createdAt equals updatedAt` (الحفظ الأول) أو استخدم حقلاً مخصصاً من نوع خانة اختيار لتتبع ما إذا كان سير العمل قد تم تشغيله بالفعل.
</Tip>
### Actions Failing
### فشل الإجراءات
**Symptoms**: Workflow runs but some actions fail.
**الأعراض**: يعمل سير العمل لكن بعض الإجراءات تفشل.
**Possible Causes**:
**الأسباب المحتملة**:
1. **Missing data**: Required fields are empty
2. **Invalid references**: Variables from previous steps don't exist
3. **API errors**: External services returning errors
4. **Permission issues**: Action requires permissions you don't have
1. **بيانات مفقودة**: الحقول المطلوبة فارغة
2. **مراجع غير صالحة**: المتغيّرات من الخطوات السابقة غير موجودة
3. **أخطاء API**: تعيد الخدمات الخارجية أخطاء
4. **مشكلات الأذونات**: يتطلب الإجراء أذونات لا تملكها
**حلول**:
* Check the workflow run details for error messages
* Verify all required fields have values
* Test API connections independently
* Review role permissions
* راجِع تفاصيل تشغيل سير العمل بحثاً عن رسائل الخطأ
* تحقّق من أن جميع الحقول المطلوبة تحتوي على قيم
* اختبر اتصالات API بشكل مستقل
* راجِع أذونات الدور
### HTTP Request Errors
### أخطاء طلبات HTTP
**Symptoms**: HTTP Request actions fail or return unexpected results.
**الأعراض**: تفشل إجراءات طلب HTTP أو تُرجِع نتائج غير متوقعة.
**Common Error Codes**:
**رموز الأخطاء الشائعة**:
* **400**: Bad request - check your request body format
* **401**: Unauthorized - verify API key
* **403**: Forbidden - check API permissions
* **404**: Not found - verify endpoint URL
* **429**: Too many requests - implement rate limiting
* **500**: Server error - external service issue
* **400**: طلب غير صالح - تحقّق من تنسيق جسم الطلب
* **401**: غير مُخوَّل - تحقّق من مفتاح API
* **403**: محظور - تحقّق من أذونات API
* **404**: غير موجود - تحقّق من عنوان URL لنقطة النهاية
* **429**: عدد كبير جداً من الطلبات - نفّذ تحديداً لمعدل الطلبات
* **500**: خطأ في الخادم - مشكلة في خدمة خارجية
**حلول**:
* Verify API endpoint URL
* Check authentication headers
* Test the API call outside of Twenty first
* Add error handling in Code actions
* تحقّق من عنوان URL لنقطة نهاية API
* تحقّق من ترويسات المصادقة
* اختبر استدعاء API خارج Twenty أولاً
* أضِف معالجة للأخطاء في إجراءات الكود
### Code Action Errors
### أخطاء إجراءات الكود
**Symptoms**: JavaScript code fails to execute.
**الأعراض**: يفشل كود JavaScript في التنفيذ.
**Common Issues**:
**المشكلات الشائعة**:
1. **Syntax errors**: Typos or invalid JavaScript
2. **Undefined variables**: Referencing variables that don't exist
3. **Type errors**: Operations on wrong data types
4. **Timeouts**: Code taking too long to execute
1. **أخطاء الصياغة**: أخطاء إملائية أو JavaScript غير صالح
2. **متغيّرات غير معرّفة**: الإشارة إلى متغيّرات غير موجودة
3. **أخطاء النوع**: إجراء عمليات على أنواع بيانات خاطئة
4. **انتهاء المهلة**: يستغرق الكود وقتاً طويلاً للتنفيذ
**حلول**:
* Use the built-in code editor validation
* Test code logic in a JavaScript console first
* Add console.log statements for debugging
* Simplify complex operations
* استخدم التحقق المدمج في محرر الكود
* اختبر منطق الكود في وحدة تحكم JavaScript أولاً
* أضِف عبارات console.log لأغراض تصحيح الأخطاء
* بسّط العمليات المعقّدة
### Email Not Sending
### البريد الإلكتروني لا يُرسَل
**Symptoms**: Send Email action doesn't deliver emails.
**الأعراض**: لا يقوم إجراء إرسال البريد الإلكتروني بتسليم الرسائل.
**Possible Causes**:
**الأسباب المحتملة**:
1. **No email account connected**: Check Settings → Accounts
2. **Invalid email address**: Recipient email is malformed
3. **Sending limits**: Email provider rate limits reached
4. **Spam filters**: Emails being blocked
1. **لا يوجد حساب بريد إلكتروني متصل**: تحقّق من الإعدادات → الحسابات
2. **عنوان بريد إلكتروني غير صالح**: عنوان بريد المستلم غير صحيح التنسيق
3. **قيود الإرسال**: تم الوصول إلى حدود معدل مزوّد البريد الإلكتروني
4. **مرشّحات البريد العشوائي**: يتم حظر الرسائل
**حلول**:
* Verify email account connection
* Validate recipient email addresses
* Check email provider limits
* Review email content for spam triggers
* تحقّق من اتصال حساب البريد الإلكتروني
* تحقّق من صحة عناوين بريد المستلمين
* تحقّق من حدود مزوّد البريد الإلكتروني
* راجِع محتوى البريد بحثاً عن عناصر قد تُحفِّز مرشّحات البريد العشوائي
## Debugging Workflows
## تصحيح أخطاء سير العمل
### Using Workflow Runs
### استخدام عمليات تشغيل سير العمل
1. Go to the workflow editor
2. Open the **Runs** panel
3. Find the failed run
4. Click to see step-by-step details
5. Review error messages and output data
1. انتقل إلى محرر سير العمل
2. افتح لوحة **Runs**
3. اعثر على عملية التشغيل التي فشلت
4. انقر لعرض التفاصيل خطوة بخطوة
5. راجِع رسائل الخطأ وبيانات المخرجات
### Testing Individual Steps
### اختبار الخطوات بشكل فردي
1. For Code actions, use the **Test** button
2. For HTTP requests, test the endpoint separately
3. Create test records to trigger workflows
4. Use manual triggers for controlled testing
1. بالنسبة لإجراءات الكود، استخدم زر **Test**
2. بالنسبة لطلبات HTTP، اختبر نقطة النهاية بشكل منفصل
3. أنشئ سجلات اختبار لتشغيل سير العمل
4. استخدم المُحفِّزات اليدوية للاختبار المُتحكَّم فيه
### Common Debugging Patterns
### أنماط شائعة لتصحيح الأخطاء
**Add logging**:
Use Code actions to log intermediate values for debugging.
**أضِف التسجيل**:
استخدم إجراءات الكود لتسجيل القيم الوسيطة لأغراض تصحيح الأخطاء.
**Isolate steps**:
Test each step independently to identify failures.
**اعزل الخطوات**:
اختبر كل خطوة بشكل مستقل لتحديد مواضع الفشل.
**Check data flow**:
Verify that each step receives the expected input data.
**تحقّق من تدفق البيانات**:
تأكّد من أن كل خطوة تتلقى بيانات الإدخال المتوقعة.
## Best Practices to Avoid Issues
## أفضل الممارسات لتجنّب المشكلات
### Before Activation
### قبل التفعيل
* Test thoroughly in draft mode
* Validate all API connections
* Review trigger conditions carefully
* Document expected behavior
* اختبر بدقة في وضع المسودة
* تحقّق من صحة جميع اتصالات API
* راجِع شروط المُحفِّز بعناية
* وثّق السلوك المتوقع
### During Development
### أثناء التطوير
* Use descriptive step names
* Add comments in Code actions
* Test with realistic data
* Plan for edge cases
* استخدم أسماء خطوات وصفية
* أضِف تعليقات في إجراءات الكود
* اختبر ببيانات واقعية
* خطّط للحالات الحدّية
### After Activation
### بعد التفعيل
* Monitor initial runs closely
* Set up alerts for failures
* Review run history regularly
* Keep workflows simple when possible
* راقِب عمليات التشغيل الأولى عن كثب
* قم بإعداد تنبيهات لحالات الفشل
* راجِع سجلّ التشغيل بانتظام
* اجعل سير العمل بسيطًا قدر الإمكان
@@ -5,118 +5,118 @@ description: Kompletní průvodce odstraňováním chyb při importu CSV.
## Přehled
Nefunguje import? This guide helps you identify and fix common import errors step by step.
Nefunguje import? Tato příručka vám krok za krokem pomůže identifikovat a opravit běžné chyby při importu.
## How Import Validation Works
## Jak funguje validace importu
After uploading your file and mapping columns, Twenty validates your data:
Po nahrání souboru a namapování sloupců Twenty vaše data ověří:
1. **Validation runs** — Twenty checks each row for errors
2. **Errors are highlighted** — problematic rows appear in **yellow**
3. **You can fix in-place** — edit cells directly in the import UI
4. **Or remove rows** — skip problematic records entirely
1. **Proběhne validace** — Twenty zkontroluje každý řádek na chyby
2. **Chyby jsou zvýrazněny** — problematické řádky se zobrazí **žlutě**
3. **Můžete opravovat přímo na místě** — upravujte buňky přímo v rozhraní importu
4. **Nebo odstraňte řádky** — problematické záznamy úplně přeskočte
<Note>**Fix errors in the UI.** You don't need to go back to your spreadsheet. Edit cells directly during import to save time.</Note>
<Note>**Opravujte chyby v rozhraní.** Nemusíte se vracet do své tabulky. Úpravou buněk přímo během importu ušetříte čas.</Note>
## Step-by-Step Troubleshooting
## Řešení problémů krok za krokem
### Step 1: Identify the Error Type
### Krok 1: Určete typ chyby
Click on a highlighted row to see the specific error message. Common error types:
Klikněte na zvýrazněný řádek a zobrazí se konkrétní chybová zpráva. Běžné typy chyb:
| Chybová zpráva | What It Means |
| --------------------------------------------------------------------- | ------------------------------------------------------------ |
| Duplicate values highlighted in yellow | Value already exists in Twenty or appears twice in your file |
| `{field} is not a valid {type}` (hover on yellow cell) | Data doesn't match expected format |
| Required field highlighted | A required field is empty |
| `Can't connect to {object}. No unique record found...` (import fails) | Referenced record doesn't exist |
| `Too many records. Up to 10000 allowed` (upload blocked) | File has more than 10,000 records |
| Chybová zpráva | Co to znamená |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| Duplicitní hodnoty zvýrazněné žlutě | Hodnota již existuje v Twenty nebo se ve vašem souboru vyskytuje dvakrát |
| `{field} is not a valid {type}` (přejeďte myší na žlutou buňku) | Data neodpovídají očekávanému formátu |
| Povinné pole je zvýrazněno | Povinné pole je prázdné |
| `Can't connect to {object}. No unique record found...` (import selže) | Odkazovaný záznam neexistuje |
| `Too many records. Up to 10000 allowed` (nahrávání zablokováno) | Soubor obsahuje více než 10 000 záznamů |
### Step 2: Fix the Error
### Krok 2: Opravte chybu
Follow the specific instructions below for each error type.
Postupujte podle níže uvedených pokynů pro jednotlivé typy chyb.
---
## Error: Duplicate Value
## Chyba: Duplicitní hodnota
### Co uvidíte
Rows with duplicate values are **highlighted in yellow** in the import UI before the import starts.
Řádky s duplicitními hodnotami jsou v rozhraní importu před zahájením importu **zvýrazněny žlutě**.
### What It Means
### Co to znamená
A unique field (email, domain) either:
Jedinečné pole (e-mail, doména):
* Already exists in Twenty
* Appears twice in your file
* Již existuje v Twenty
* Se ve vašem souboru vyskytuje dvakrát
### How to Fix
### Jak to opravit
**Option 1: Edit the duplicate value**
**Možnost 1: Upravit duplicitní hodnotu**
1. Click the cell with the error
2. Change to a unique value
3. Continue with import
1. Klikněte na buňku s chybou
2. Změňte na jedinečnou hodnotu
3. Pokračujte v importu
**Option 2: Remove the duplicate row**
**Možnost 2: Odstranit duplicitní řádek**
1. Click the X next to the row
2. The row will be skipped during import
1. Klikněte na X vedle řádku
2. Řádek bude během importu přeskočen
**Option 3: Let Twenty update the existing record**
**Možnost 3: Nechte Twenty aktualizovat existující záznam**
1. Ensure your file includes a unique identifier (`email`, `domain`, or `id`)
2. Map the unique identifier field
3. Twenty will update the existing record instead of creating a duplicate
1. Ujistěte se, že váš soubor obsahuje jedinečný identifikátor (`email`, `domain` nebo `id`)
2. Namapujte pole jedinečného identifikátoru
3. Twenty aktualizuje existující záznam místo vytvoření duplicity
<Note>
**You can update unique fields too.**
**Můžete aktualizovat i jedinečná pole.**
* If you keep the `id` but change the `email` → the email will be updated
* If you keep the `email` but change the `id` → the id will be updated
* Pokud ponecháte `id`, ale změníte `email` → e-mail bude aktualizován
* Pokud ponecháte `email`, ale změníte `id` → ID bude aktualizováno
As long as one unique identifier matches, Twenty updates the record.
Pokud se shoduje alespoň jeden jedinečný identifikátor, Twenty záznam aktualizuje.
</Note>
### How to Prevent This Error
### Jak této chybě předejít
Before importing:
Před importem:
1. Sort your spreadsheet by the unique field
2. Remove duplicate rows
3. Check if records already exist in Twenty
1. Seřaďte svou tabulku podle jedinečného pole
2. Odstraňte duplicitní řádky
3. Zkontrolujte, zda záznamy v Twenty již existují
<Warning>
**Soft-deleted records count toward uniqueness.**
**Záznamy „soft-deleted“ se započítávají do jedinečnosti.**
Check Command Menu → See deleted records. Records there still enforce uniqueness. Permanently delete them or restore and update.
Zkontrolujte Command Menu → Zobrazit smazané záznamy. Záznamy tam stále vynucují jedinečnost. Natrvalo je smažte nebo je obnovte a aktualizujte.
</Warning>
For more details: [Uniqueness Constraints](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
Více podrobností: [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Error: Invalid Format
## Chyba: Neplatný formát
### Co uvidíte
The cell value is highlighted in yellow. Hover over it to see the error message:
Hodnota buňky je zvýrazněna žlutě. Najetím myší zobrazíte chybovou zprávu:
```
{field name} is not a valid {field type}
```
### What It Means
### Co to znamená
The data doesn't match the expected format for that field type.
Data neodpovídají očekávanému formátu pro tento typ pole.
### How to Fix — By Field Type
### Jak to opravit — podle typu pole
#### Email
**Problem:** Invalid email format
**Solution:** Use format `name@domain.com`
**Problém:** Neplatný formát e-mailu
**Řešení:** Použijte formát `name@domain.com`
```
❌ john.smith@
@@ -126,8 +126,8 @@ The data doesn't match the expected format for that field type.
#### Doména
**Problem:** Inconsistent format may cause duplicates
**Solution:** Use `https://domain.com` format (recommended)
**Problém:** Nekonzistent formát může způsobit duplicity
**Řešení:** Použijte formát `https://domain.com` (doporučeno)
```
⚠️ acme.com (valid, but not recommended)
@@ -135,12 +135,12 @@ The data doesn't match the expected format for that field type.
✅ https://acme.com (recommended)
```
<Note>All formats are valid, but `https://domain.com` is recommended because it matches the format used by email/calendar sync. Using other formats may create duplicate companies.</Note>
<Note>Všechny formáty jsou platné, ale `https://domain.com` je doporučený, protože odpovídá formátu používanému synchronizací e-mailu/kalendáře. Použití jiných formátů může vytvářet duplicitní společnosti.</Note>
#### Datum
**Problem:** Unrecognized date format
**Solution:** Use consistent format throughout file
**Problém:** Nerozpoznaný formát data
**Řešení:** Používejte jednotný formát v celém souboru
```
✓ 2024-03-15 (YYYY-MM-DD - recommended)
@@ -150,10 +150,10 @@ The data doesn't match the expected format for that field type.
#### Telefon
**Problem:** Missing required columns
**Solution:** Include all phone columns
**Problém:** Chybí požadované sloupce
**Řešení:** Zahrňte všechny telefonní sloupce
| Column | Příklad |
| Sloupec | Příklad |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
@@ -161,8 +161,8 @@ The data doesn't match the expected format for that field type.
#### Booleovská hodnota
**Problem:** Wrong boolean value
**Solution:** Use uppercase `TRUE` or `FALSE`
**Problém:** Nesprávná booleovská hodnota
**Řešení:** Použijte velká písmena `TRUE` nebo `FALSE`
```
❌ true
@@ -172,17 +172,17 @@ The data doesn't match the expected format for that field type.
✓ FALSE
```
#### Select / Multi-Select
#### Výběr / Vícevýběr
**Problem:** Value doesn't match existing options
**Solution:** Use **API names**, not display labels
**Problém:** Hodnota neodpovídá existujícím možnostem
**Řešení:** Používejte **názvy API**, ne zobrazované štítky
How to find API names:
Jak najít názvy API:
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at bottom right)
4. Use the API name (e.g., `OPTION_1`, not "Option 1")
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt a pole
3. Povolte **Pokročilý režim** (přepínač vpravo dole)
4. Použijte název API (např. `OPTION_1`, ne "Option 1")
```
❌ High Priority
@@ -191,18 +191,18 @@ How to find API names:
#### Měna
**Problem:** Missing amount or currency code
**Solution:** Fill both columns
**Problém:** Chybí částka nebo kód měny
**Řešení:** Vyplňte oba sloupce
| Column | Příklad |
| Sloupec | Příklad |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
#### Číslo
**Problem:** Non-numeric characters
**Solution:** Numbers only, period for decimals
**Problém:** Nečíselné znaky
**Řešení:** Pouze čísla, tečka pro desetinná místa
```
❌ $1,234.56
@@ -210,221 +210,221 @@ How to find API names:
✓ 1234.56
```
For complete format reference: [Field Mapping](/l/cs/user-guide/data-migration/capabilities/field-mapping)
Úplná referenční příručka k formátům: [Mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)
---
## Error: Required Field Missing
## Chyba: Chybí povinné pole
### Co uvidíte
The row is highlighted in yellow with the required field cell marked.
Řádek je zvýrazněn žlutě a buňka povinného pole je označena.
### What It Means
### Co to znamená
A required field is empty for this row.
U tohoto řádku je povinné pole prázdné.
### How to Fix
### Jak to opravit
**Option 1: Enter a value**
**Možnost 1: Zadejte hodnotu**
1. Click the empty cell
2. Enter a value
3. Continue with import
1. Klikněte na prázdnou buňku
2. Zadejte hodnotu
3. Pokračujte v importu
**Option 2: Remove the row**
**Možnost 2: Odstraňte řádek**
1. If you don't have the data, click X to skip the row
1. Pokud data nemáte, klikněte na X a řádek přeskočte
### How to Prevent This Error
### Jak této chybě předejít
Before importing, identify required fields:
Před importem si určete povinná pole:
1. Go to **Settings → Data Model**
2. Select your object
3. Check which fields are marked as required
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt
3. Zkontrolujte, která pole jsou označena jako povinná
---
## Error: Relation Not Found
## Chyba: Vztah nebyl nalezen
### Co uvidíte
This error appears **after the import starts** — the import fails with a message like:
Tato chyba se objeví **po zahájení importu** — import selže se zprávou jako:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
This means there is no Company in Twenty with that specific identifier.
To znamená, že v Twenty neexistuje společnost s tímto konkrétním identifikátorem.
<Note>Unlike other errors, this one is not caught during the data review step. The import will start and then fail when it encounters the missing relation.</Note>
<Note>Na rozdíl od jiných chyb tato není zachycena během kroku kontroly dat. Import se spustí a poté selže, jakmile narazí na chybějící relaci.</Note>
### What It Means
### Co to znamená
You're trying to link to a record that doesn't exist in Twenty.
Pokoušíte se propojit se záznamem, který v Twenty neexistuje.
### How to Fix
### Jak to opravit
**Option 1: Import parent records first**
**Možnost 1: Nejprve importujte nadřazené záznamy**
1. Cancel the current import
2. Import the parent records (e.g., Companies)
3. Then import the child records (e.g., People)
1. Zrušte aktuální import
2. Importujte nadřazené záznamy (např. společnosti)
3. Poté importujte podřízené záznamy (např. osoby)
**Option 2: Fix the reference value**
**Možnost 2: Opravte referenční hodnotu**
1. Check the reference value in your file
2. Ensure it exactly matches an existing record
3. Verify format: domains should be `https://domain.com`
1. Zkontrolujte referenční hodnotu ve svém souboru
2. Ujistěte se, že přesně odpovídá existujícímu záznamu
3. Ověřte formát: domény by měly být `https://domain.com`
**Option 3: Remove the relation**
**Možnost 3: Odstraňte relaci**
1. Clear the cell to import without the relation
2. Add the relation manually later
1. Vymažte buňku a importujte bez relace
2. Relaci přidejte později ručně
### How to Prevent This Error
### Jak této chybě předejít
1. **Import in the correct order:**
* Companies first
* People second (with company references)
* Opportunities third
1. **Importujte ve správném pořadí:**
* Nejprve společnosti
* Poté osoby (s odkazy na společnost)
* Nakonec příležitosti
2. **Verify reference values:**
* Export parent records to get exact identifiers
* Use domain format `https://domain.com`
* Check for typos and case sensitivity
2. **Ověřte referenční hodnoty:**
* Exportujte nadřazené záznamy, abyste získali přesné identifikátory
* Používejte formát domény `https://domain.com`
* Zkontrolujte překlepy a velikost písmen
<Warning>
**Import will fail if a reference is made to a non-existent record.**
**Import selže, pokud je odkazováno na neexistující záznam.**
Always import parent objects before child objects.
Vždy importujte nadřazené objekty před podřízenými objekty.
</Warning>
For more details: [Import Relations](/l/cs/user-guide/data-migration/capabilities/import-relations)
Více podrobností: [Import rela](/l/cs/user-guide/data-migration/capabilities/import-relations)
---
## Error: File Too Large
## Chyba: Soubor je příliš velký
### Co uvidíte
This error appears **when uploading your file** — the upload is blocked entirely:
Tato chyba se objeví **při nahrávání souboru** — nahrávání je zcela zablokováno:
```
Too many records. Up to 10000 allowed
```
You won't be able to proceed to the data review step until you reduce the file size.
Dokud nezmenšíte velikost souboru, nebudete moci pokračovat ke kroku kontroly dat.
### What It Means
### Co to znamená
Your file has more than 10,000 records.
Váš soubor má více než 10 000 záznamů.
### How to Fix
### Jak to opravit
**Option 1: Split into multiple files**
**Možnost 1: Rozdělte na více souborů**
1. Divide your data into files of 10,000 records or fewer
2. Import each file separately
3. Maintain import order (Companies before People)
1. Rozdělte data do souborů s nejvýše 10 000 záznamy
2. Importujte každý soubor zvlášť
3. Dodržte pořadí importu (společnosti před osobami)
**Option 2: Use API import**
For very large datasets, use the API which has no record limit.
See: [How to Import Data via API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api)
**Možnost 2: Použijte import přes API**
U velmi velkých datových sad použijte API, které nemá limit počtu záznamů.
Viz: [Jak importovat data přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api)
---
## Error: Field Not Recognized
## Chyba: Pole nebylo rozpoznáno
### What It Means
### Co to znamená
A column in your file can't be mapped because the field doesn't exist in Twenty.
Sloupec ve vašem souboru nelze namapovat, protože pole v Twenty neexistuje.
### How to Fix
### Jak to opravit
1. Go to **Settings → Data Model**
2. Select the object you're importing
3. Click **+ Add field**
4. Create the custom field with the appropriate type
5. Re-upload your file
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt, který importujete
3. Klikněte na **+ Add field**
4. Vytvořte vlastní pole s odpovídajícím typem
5. Nahrajte soubor znovu
<Note>The CSV import creates records, not fields. All fields must exist before importing.</Note>
<Note>Import CSV vytváří záznamy, nikoli pole. Všechna pole musí existovat před importem.</Note>
---
## Error: User Relation Empty
## Chyba: Prázdná relace uživatele
### What It Means
### Co to znamená
You're trying to assign a record to a user (Owner, Assignee) but the relation isn't being mapped.
Pokoušíte se přiřadit záznam uživateli (Owner, Assignee), ale relace se nemapuje.
### Common Causes
### Časté příčiny
1. **User hasn't accepted their invitation** — the user doesn't exist in Twenty yet
2. **Using user ID from old system** — Twenty can't match IDs from another system
3. **Wrong email format** — the email doesn't match the user's Twenty account
1. **Uživatel nepřijal pozvánku** — uživatel zatím v Twenty neexistuje
2. **Používáte uživatelské ID ze starého systému** — Twenty nedokáže spárovat ID z jiného systému
3. **Nesprávný formát e-mailu** — e-mail neodpovídá účtu uživatele v Twenty
### How to Fix
### Jak to opravit
1. Ensure all users have **accepted their invitation** to your Twenty workspace
2. Use the user's **email address** (not their name or old system ID)
3. Use the same email they used to join Twenty
1. Ujistěte se, že všichni uživatelé **přijali svou pozvánku** do vašeho pracovního prostoru Twenty
2. Použijte **e-mailovou adresu** uživatele (ne jeho jméno nebo ID ze starého systému)
3. Použijte stejný e-mail, jaký použili k připojení do Twenty
<Warning>
**Users must accept invitations before importing.**
**Uživatelé musí před importem přijmout pozvánky.**
If a user hasn't accepted their invitation, records referencing them will have empty user relations.
Pokud uživatel nepřijal svou pozvánku, záznamy na něj odkazující budou mít prázdnou relaci uživatele.
</Warning>
---
## Pre-Import Checklist
## Kontrolní seznam před importem
Avoid errors by checking these before importing:
Vyhněte se chybám tím, že před importem zkontrolujete následující:
### File Requirements
### Požadavky na soubor
<Check>File is CSV, XLSX, or XLS format</Check>
<Check>File has fewer than 10,000 records</Check>
<Check>File uses UTF-8 encoding</Check>
<Check>Soubor je ve formátu CSV, XLSX nebo XLS</Check>
<Check>Soubor obsahuje méně než 10 000 záznamů</Check>
<Check>Soubor používá kódování UTF-8</Check>
### Data Quality
### Kvalita dat
<Check>No duplicate emails (for People)</Check>
<Check>No duplicate domains (for Companies)</Check>
<Check>All dates use consistent format</Check>
<Check>All domains use `https://domain.com` format</Check>
<Check>Žádné duplicitní e-maily (pro osoby)</Check>
<Check>Žádné duplicitní domény (pro společnosti)</Check>
<Check>Všechny datumy používají jednotný formát</Check>
<Check>Všechny domény používají formát `https://domain.com`</Check>
### Field Formats
### Formáty polí
<Check>Boolean fields use `TRUE` or `FALSE` (uppercase)</Check>
<Check>Select fields use API names, not display labels</Check>
<Check>Phone fields have all required columns</Check>
<Check>Currency fields have both Amount and Currency Code</Check>
<Check>Logická pole používají `TRUE` nebo `FALSE` (velkými písmeny)</Check>
<Check>Pole typu výběr používají názvy API, ne zobrazované štítky</Check>
<Check>Telefonní pole mají všechny požadované sloupce</Check>
<Check>Měnová pole obsahují částku i kód měny</Check>
### Vztahy
<Check>Parent records imported before child records</Check>
<Check>Relation columns reference existing records</Check>
<Check>Domain format matches Twenty's format exactly</Check>
<Check>Nadřazené záznamy importovány před podřízenými záznamy</Check>
<Check>Sloupce relací odkazují na existující záznamy</Check>
<Check>Formát domény přesně odpovídá formátu Twenty</Check>
### Datový model
<Check>All custom fields exist in Settings → Data Model</Check>
<Check>Select options exist before importing</Check>
<Check>Všechna vlastní pole existují v Nastavení → Datový model</Check>
<Check>Možnosti výběru existují před importem</Check>
---
## Still Having Issues?
## Stále máte potíže?
If you've tried the above solutions:
Pokud jste vyzkoušeli výše uvedená řešení:
1. **Download the sample file** — see the exact format Twenty expects
2. **Export existing records** — compare your file to working data
3. **Test with a small batch** — try 5-10 rows first
4. **Check the reference articles:**
* [Field Mapping](/l/cs/user-guide/data-migration/capabilities/field-mapping)
* [Uniqueness Constraints](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import Relations](/l/cs/user-guide/data-migration/capabilities/import-relations)
* [Error Handling](/l/cs/user-guide/data-migration/capabilities/error-handling)
1. **Stáhněte si ukázkový soubor** — uvidíte přesný formát, který Twenty očekává
2. **Exportujte existující záznamy** — porovnejte svůj soubor s funkčními daty
3. **Otestujte s malou dávkou** — nejprve zkuste 510 řádků
4. **Zkontrolujte referenční články:**
* [Mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)
* [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import rela](/l/cs/user-guide/data-migration/capabilities/import-relations)
* [Zpracování chyb](/l/cs/user-guide/data-migration/capabilities/error-handling)
@@ -1,43 +1,43 @@
---
title: Migrace z jiných CRM
description: Step-by-step guide to migrate your data from any CRM to Twenty.
description: Podrobný průvodce krok za krokem pro migraci vašich dat z libovolného CRM do Twenty.
---
## Přehled
This guide walks you through migrating your data from any CRM to Twenty. The process involves auditing your data, preparing your Twenty workspace, exporting from your current system, and importing into Twenty.
Tento průvodce vás provede migrací vašich dat z libovolného CRM do Twenty. Proces zahrnuje audit vašich dat, přípravu vašeho pracovního prostoru Twenty, export z vašeho současného systému a import do Twenty.
<Note>Views, workflows, and permissions must be recreated manually after migration. Plan time for this configuration work.</Note>
<Note>Zobrazení, pracovní postupy a oprávnění je po migraci nutné vytvořit ručně. Naplánujte si čas na tuto konfigurační práci.</Note>
## Step 1: Audit Your Current Data
## Krok 1: Proveďte audit svých aktuálních dat
Migration is an opportunity for a fresh start. Don't bring over clutter.
Migrace je příležitostí k novému začátku. Nepřenášejte balast.
**What to keep:**
**Co ponechat:**
* Active contacts and companies
* Open opportunities and deals
* Important notes and activities
* Custom fields you actually use
* Aktivní kontakty a společnosti
* Otevřené obchodní příležitosti a obchody
* Důležité poznámky a aktivity
* Vlastní pole, která skutečně používáte
**What to leave behind:**
**Co nechat za sebou:**
* Outdated contacts (no activity in 2+ years)
* Duplicate records
* Test data
* Unused custom fields
* Zastaralé kontakty (bez aktivity 2 a více let)
* Duplicitní záznamy
* Testovací data
* Nepoužívaná vlastní pole
## Step 2: Map Your Data Model
## Krok 2: Zmapujte svůj datový model
Create a mapping document between your current CRM and Twenty:
Vytvořte mapovací dokument mezi vaším současným CRM a Twenty:
| Your CRM | Twenty |
| ---------------------- | -------------------- |
| Account / Organization | **Company** |
| Contact / Person | **People** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| Vaše CRM | Twenty |
| -------------------- | -------------------- |
| Účet / organizace | **Společnost** |
| Kontakt / osoba | **Lidé** |
| Obchod / příležitost | **Příležitost** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
**For each field, document:**
@@ -1,23 +1,23 @@
---
title: Spouštěče pracovních postupů
description: Learn about the different triggers that start your workflows.
description: Seznamte se s různými spouštěči, které zahajují vaše pracovní postupy.
---
## About Triggers
## O spouštěčích
Pracovní postupy vždy začínají jedním spouštěčem, který určuje, kdy by měla být automatizace spuštěna.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Advanced objects are supported!** Beyond standard CRM objects (People, Companies, Opportunities), you can also trigger workflows and perform actions on:
**Pokročilé objekty jsou podporovány!** Kromě standardních CRM objektů (Lidé, Společnosti, Příležitosti) můžete také spouštět pracovní postupy a provádět akce nad:
* Členové pracovního prostoru
* Calendar Events
* Messages (Emails)
* Tasks, Notes, and many other system objects
* Události v kalendáři
* Zprávy (e-maily)
* Úkoly, poznámky a mnoho dalších systémových objektů
This opens up powerful automations like notifying team members when calendar events are created, or processing incoming emails automatically.
To umožňuje výkonné automatizace, například upozorňovat členy týmu, když jsou v kalendáři vytvořeny události, nebo automaticky zpracovávat příchozí e-maily.
</Tip>
## Záznam je vytvořen
@@ -27,9 +27,9 @@ Spouští pracovní postup, když je vytvořen nový záznam ve vybraném objekt
**Konfigurace**: Vyberte typ objektu, který chcete sledovat ohledně nových záznamů.
<Note>
* This trigger is great for records created by csv, mailbox and calendar synchronization, API.
* **It is not recommended for records created manually**: with this trigger, workflows start as soon as the record is created. Since Twenty UI offers auto-save on the fly (there is not an edit mode and then a validation to save records), the workflow will be triggered before the user inputs all the fields.
To trigger this workflow on records created manually, it is recommended to use the trigger `Record is created or updated` instead.
* Tento spouštěč je skvělý pro záznamy vytvořené pomocí CSV, synchronizace poštovní schránky a kalendáře nebo API.
* **Nedoporučuje se pro záznamy vytvářené ručně**: s tímto spouštěčem se pracovní postupy spouštějí okamžitě po vytvoření záznamu. Protože Twenty UI nabízí průběžné automatické ukládání (neexistuje režim úprav a následné potvrzení pro uložení záznamů), pracovní postup bude spuštěn dříve, než uživatel vyplní všechna pole.
Chcete-li tento pracovní postup spouštět u záznamů vytvořených ručně, doporučujeme místo toho použít spouštěč `Record is created or updated`.
</Note>
## Záznam je aktualizován
@@ -62,43 +62,43 @@ Spouští pracovní postup, když je záznam odstraněn z objektu.
**Konfigurace**: Vyberte typ objektu, který chcete sledovat ohledně odstranění.
## Manual Trigger
## Ruční spouštěč
Spustí pracovní postup, když jej vyvolá uživatelská akce. This trigger can be accessed through the `Cmd+K` menu or via a custom button that will be displayed in the top navbar after selecting record(s).
Spustí pracovní postup, když jej vyvolá uživatelská akce. K tomuto spouštěči je možné přistupovat prostřednictvím nabídky `Cmd+K` nebo pomocí vlastního tlačítka, které se zobrazí v horní navigační liště po výběru záznamu nebo záznamů.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Konfigurace dostupnosti**:
Vyberte, jak má pracovní postup zpracovávat výběr záznamů:
* **Global**: No record is required to trigger this workflow. The workflow is triggered from the command menu `Cmd + K` anywhere (from any object) and does not use record(s) as input.
* **Globální**: K aktivaci tohoto pracovního postupu není vyžadován žádný záznam. Pracovní postup se spouští z příkazové nabídky `Cmd + K` odkudkoli (z jakéhokoli objektu) a nepoužívá jako vstup žádné záznamy.
* **Single**: The selected record(s) will be passed to your workflow. Toto je nastaveno pro daný objekt. Před spuštěním pracovního postupu je možné vybrat několik záznamů. The workflow will run from beginning to end as many times as there are records selected.
* **Jednotlivé**: Vybraný záznam či záznamy budou předány vašemu pracovnímu postupu. Toto je nastaveno pro daný objekt. Před spuštěním pracovního postupu je možné vybrat několik záznamů. Pracovní postup se spustí od začátku do konce tolikrát, kolik je vybraných záznamů.
<Note>
**Soft limit: 100 runs/minute**. Beyond this, workflows remain in "Not Started" status and are processed gradually—either by a background job or when another workflow enters the queue. This means you can select more than 100 records with a Single trigger; execution will just be slower.
**Měkký limit: 100 běhů za minutu**. Po překročení tohoto limitu zůstanou pracovní postupy ve stavu "Not Started" a budou zpracovávány postupně—buď úlohou na pozadí, nebo když do fronty vstoupí další pracovní postup. To znamená, že se spouštěčem Jednotlivé můžete vybrat více než 100 záznamů; provádění bude jen pomalejší.
</Note>
* **Hromadné**: Vybrané záznamy budou předány do vašeho pracovního postupu. Toto je nastaveno pro daný objekt. Před spuštěním pracovního postupu je možné vybrat několik záznamů. Pracovní postup poběží jednou, přičemž celý seznam záznamů bude použit jako vstup. This means the workflow needs to contain an [Iterator action](/l/cs/user-guide/workflows/capabilities/workflow-actions#iterator).
* **Hromadné**: Vybrané záznamy budou předány do vašeho pracovního postupu. Toto je nastaveno pro daný objekt. Před spuštěním pracovního postupu je možné vybrat několik záznamů. Pracovní postup poběží jednou, přičemž celý seznam záznamů bude použit jako vstup. To znamená, že pracovní postup musí obsahovat [akci Iterator](/l/cs/user-guide/workflows/capabilities/workflow-actions#iterator).
<Note>
This is more advanced, and best for people who want to optimize the number of workflow runs.
Toto je pokročilejší a hodí se pro uživatele, kteří chtějí optimalizovat počet běhů pracovního postupu.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
**Additional Configuration**:
**Dodatečné nastavení**:
* Select the target object (for Single and Bulk availability)
* Vyberte cílový objekt (pro dostupnost v režimu Jednotlivé a Hromadné)
* Vyberte ikonu příkazu pro spuštění pracovního postupu
* Nakonfigurujte umístění v navigaci (připnuté nebo nepřipnuté)
**Způsoby přístupu**:
* `Cmd+K` menu to find and launch manual workflows
* Nabídka `Cmd+K` pro vyhledání a spuštění ručních pracovních postupů
* Vlastní tlačítko v horní navigaci (pokud je nastaveno)
## Time-Based Trigger: On a Schedule
## Časový spouštěč: Podle plánu
Spouští pracovní postup v opakovaných intervalech, které definujete.
@@ -108,29 +108,29 @@ Spouští pracovní postup v opakovaných intervalech, které definujete.
* Zadejte hodnotu nebo použijte vlastní cron výrazy pro rozšířené plánování
<Note>
**Timezone**: Scheduled workflows run in **UTC**. When setting hours for daily schedules, convert your local time to UTC.
**Časové pásmo**: Plánované pracovní postupy běží v **UTC**. Při nastavování hodin pro denní plány převeďte svůj místní čas na UTC.
</Note>
## External Trigger: Webhook
## Externí spouštěč: Webhook
Starts the workflow when a GET or POST request is received from an external service.
Spustí pracovní postup, když je z externí služby přijat požadavek typu GET nebo POST.
<img src="/images/user-guide/workflows/webhook_trigger.png" style={{width:'100%'}} />
**Konfigurace**:
* The workflow provides a unique webhook URL—copy this and add it to your external system as the endpoint to call.
* For POST requests, define the expected body structure so Twenty knows what data to expect. Add here the fields you will receive that will be needed below in your workflow.
* Configure authentication (coming soon).
* Pracovní postup poskytne jedinečnou URL adresu webhooku—zkopírujte ji a přidejte do svého externího systému jako koncový bod, který se má volat.
* Pro požadavky POST definujte očekávanou strukturu těla, aby Twenty vědělo, jaká data očekávat. Zde přidejte pole, která obdržíte a která budou dále ve vašem pracovním postupu potřeba.
* Nakonfigurujte ověřování (již brzy).
## Choosing the Right Trigger
## Výběr správného spouštěče
| Use Case | Recommended Trigger |
| --------------------------- | ------------------------------------ |
| New leads need processing | Záznam je vytvořen |
| Data changes need sync | Záznam je aktualizován |
| Import/manual data handling | Záznam je aktualizován nebo vytvořen |
| Cleanup after deletion | Záznam je odstraněn |
| User-initiated action | Spustit manuálně |
| Recurring reports | On a Schedule |
| External integration | Webhook or On a Schedule |
| Případ použití | Doporučený spouštěč |
| ---------------------------------------------- | ------------------------------------ |
| Nové potenciální kontakty je potřeba zpracovat | Záznam je vytvořen |
| Změny dat je potřeba synchronizovat | Záznam je aktualizován |
| Import/ruční zpracování dat | Záznam je aktualizován nebo vytvořen |
| Čištění po smazání | Záznam je odstraněn |
| Akce spuštěná uživatelem | Spustit manuálně |
| Pravidelné reporty | Podle plánu |
| Externí integrace | Webhook nebo Podle plánu |
@@ -1,170 +1,170 @@
---
title: Řešení problémů s workflow
description: Common workflow issues and how to resolve them.
description: Běžné problémy s pracovními postupy a jak je vyřešit.
---
## Běžné problémy a řešení
### Workflow se nespouští
**Symptoms**: Your workflow doesn't run when you expect it to.
**Příznaky**: Váš pracovní postup se nespustí, když to očekáváte.
**Possible Causes**:
**Možné příčiny**:
1. **Workflow not activated**: Ensure the workflow is set to "Active" not "Draft"
2. **Trigger conditions not met**: Verify the trigger matches your expected event
3. **Field not monitored**: For "Record is Updated" triggers, ensure the specific field is being watched
4. **Permissions**: Check you have permission to run workflows
1. **Pracovní postup není aktivován**: Ujistěte se, že je pracovní postup nastaven na "Active", ne na "Draft"
2. **Podmínky spouštěče nesplněny**: Ověřte, že spouštěč odpovídá očekávané události
3. **Pole není sledováno**: U spouštěčů "Record is Updated" se ujistěte, že je dané pole sledováno
4. **Oprávnění**: Zkontrolujte, že máte oprávnění spouštět pracovní postupy
**Řešení**:
* Verify workflow status in the workflow list
* Test with the specific action you expect to trigger it
* Review trigger configuration
* Contact your admin about permissions
* Ověřte stav pracovního postupu v seznamu pracovních postupů
* Otestujte to konkrétní akcí, u které očekáváte, že jej spustí
* Zkontrolujte konfiguraci spouštěče
* Kontaktujte svého administrátora ohledně oprávnění
### Workflow Triggers Too Early (Empty Fields)
### Spouštění pracovního postupu příliš brzy (prázdná pole)
**Symptoms**: When manually creating a record in the UI, your workflow triggers before you've had time to fill in all the fields. The workflow runs with mostly empty field values.
**Příznaky**: Při ručním vytváření záznamu v UI se váš pracovní postup spustí dříve, než máte čas vyplnit všechna pole. Pracovní postup běží převážně s prázdnými hodnotami polí.
**Why this happens**: Twenty saves everything in real-time — there's no separate "edit" vs "read" mode. When you create a record, it's saved immediately, triggering the "Record is created" event before you can fill in additional fields.
**Proč k tomu dochází**: Twenty ukládá vše v reálném čase — neexistuje oddělený režim "edit" vs "read". Když vytvoříte záznam, ihned se uloží, což vyvolá událost "Record is created" dříve, než stihnete vyplnit další pole.
**When "Record is created" works well**:
**Kdy se "Record is created" hodí**:
* Records created via API calls (fields are populated in a single request)
* Records created via import
* Automated record creation from other workflows
* Záznamy vytvořené přes volání API (pole jsou vyplněna v jednom požadavku)
* Záznamy vytvořené pomocí importu
* Automatické vytváření záznamů z jiných pracovních postupů
**Solution**: For records created manually in the UI, use **"Record is created or updated"** as your trigger instead. This way:
**Řešení**: Pro záznamy vytvořené ručně v UI použijte jako spouštěč místo toho **"Record is created or updated"**. Tímto způsobem:
* The workflow triggers after the user has finished filling in and saving the fields
* You get the complete data rather than empty values
* Pracovní postup se spustí poté, co uživatel dokončí vyplňování polí a jejich uložení
* Získáte komplet data namísto prázdných hodnot
<Tip>
If you only want the workflow to run once per record, add a Filter action to check a field like `createdAt equals updatedAt` (first save) or use a custom checkbox field to track if the workflow has already run.
Pokud chcete, aby se pracovní postup spustil jen jednou na záznam, přidejte akci Filter, která zkontroluje pole jako `createdAt equals updatedAt` (první uložení), nebo použijte vlastní zaškrtávací pole ke sledování, zda už pracovní postup běžel.
</Tip>
### Actions Failing
### Selhávající akce
**Symptoms**: Workflow runs but some actions fail.
**Příznaky**: Pracovní postup běží, ale některé akce selhávají.
**Possible Causes**:
**Možné příčiny**:
1. **Missing data**: Required fields are empty
2. **Invalid references**: Variables from previous steps don't exist
3. **API errors**: External services returning errors
4. **Permission issues**: Action requires permissions you don't have
1. **Chybějící data**: Povinná pole jsou prázdná
2. **Neplatné odkazy**: Proměnné z předchozích kroků neexistují
3. **Chyby API**: Externí služby vracejí chyby
4. **Problémy s oprávněními**: Akce vyžaduje oprávnění, která nemáte
**Řešení**:
* Check the workflow run details for error messages
* Verify all required fields have values
* Test API connections independently
* Review role permissions
* Zkontrolujte podrobnosti běhu pracovního postupu kvůli chybovým zprávám
* Ověřte, že všechna povinná pole mají hodnoty
* Otestujte připojení k API samostatně
* Projděte oprávnění rolí
### HTTP Request Errors
### Chyby požadavků HTTP
**Symptoms**: HTTP Request actions fail or return unexpected results.
**Příznaky**: Akce HTTP Request selhávají nebo vracejí neočekávané výsledky.
**Common Error Codes**:
**Běžné chybové kódy**:
* **400**: Bad request - check your request body format
* **401**: Unauthorized - verify API key
* **403**: Forbidden - check API permissions
* **404**: Not found - verify endpoint URL
* **429**: Too many requests - implement rate limiting
* **500**: Server error - external service issue
* **400**: Neplatný požadavek - zkontrolujte formát těla požadavku
* **401**: Neautorizováno - ověřte klíč API
* **403**: Zakázáno - zkontrolujte oprávnění API
* **404**: Nenalezeno - ověřte URL endpointu
* **429**: Příliš mnoho požadavků - zaveďte omezení četnosti požadavků
* **500**: Chyba serveru - problém v externí službě
**Řešení**:
* Verify API endpoint URL
* Check authentication headers
* Test the API call outside of Twenty first
* Add error handling in Code actions
* Ověřte URL endpointu API
* Zkontrolujte autentizační hlavičky
* Nejprve otestujte volání API mimo Twenty
* Přidejte zpracování chyb v akcích Code
### Code Action Errors
### Chyby akcí Code
**Symptoms**: JavaScript code fails to execute.
**Příznaky**: Kód JavaScriptu se nedaří spustit.
**Common Issues**:
**Běžné problémy**:
1. **Syntax errors**: Typos or invalid JavaScript
2. **Undefined variables**: Referencing variables that don't exist
3. **Type errors**: Operations on wrong data types
4. **Timeouts**: Code taking too long to execute
1. **Syntaktické chyby**: Překlepy nebo neplatný JavaScript
2. **Nedefinované proměnné**: Odkazování na proměnné, které neexistují
3. **Chyby typů**: Operace na nesprávných datových typech
4. **Vypršení časového limitu**: Kód se spouští příliš dlouho
**Řešení**:
* Use the built-in code editor validation
* Test code logic in a JavaScript console first
* Add console.log statements for debugging
* Simplify complex operations
* Použijte vestavěnou validaci editoru kódu
* Nejprve otestujte logiku kódu v konzoli JavaScriptu
* Přidejte výpisy console.log pro ladění
* Zjednodušte složité operace
### Email Not Sending
### E-mail se neodesílá
**Symptoms**: Send Email action doesn't deliver emails.
**Příznaky**: Akce Send Email nedoručuje e-maily.
**Possible Causes**:
**Možné příčiny**:
1. **No email account connected**: Check Settings → Accounts
2. **Invalid email address**: Recipient email is malformed
3. **Sending limits**: Email provider rate limits reached
4. **Spam filters**: Emails being blocked
1. **Není připojen e-mailový účet**: Zkontrolujte Nastavení → Účty
2. **Neplatná e-mailová adresa**: E-mail příjemce má neplatný formát
3. **Limity odesílání**: Byly dosaženy limity poskytovatele e-mailu
4. **Spamové filtry**: E-maily jsou blokovány
**Řešení**:
* Verify email account connection
* Validate recipient email addresses
* Check email provider limits
* Review email content for spam triggers
* Ověřte připojení e-mailového účtu
* Ověřte e-mailové adresy příjemců
* Zkontrolujte limity poskytovatele e-mailu
* Zkontrolujte obsah e-mailu kvůli spouštěčům spamu
## Debugging Workflows
## Ladění pracovních postupů
### Using Workflow Runs
### Používání běhů pracovního postupu
1. Go to the workflow editor
2. Open the **Runs** panel
3. Find the failed run
4. Click to see step-by-step details
5. Review error messages and output data
1. Přejděte do editoru pracovního postupu
2. Otevřete panel **Runs**
3. Najděte neúspěšný běh
4. Klikněte pro zobrazení podrobných informací krok za krokem
5. Projděte chybové zprávy a výstupní data
### Testing Individual Steps
### Testování jednotlivých kroků
1. For Code actions, use the **Test** button
2. For HTTP requests, test the endpoint separately
3. Create test records to trigger workflows
4. Use manual triggers for controlled testing
1. U akcí Code použijte tlačítko **Test**
2. U požadavků HTTP otestujte endpoint samostatně
3. Vytvářejte testovací záznamy pro spuštění pracovních postupů
4. Pro řízené testování použijte manuální spouštěče
### Common Debugging Patterns
### Běžné vzory ladění
**Add logging**:
Use Code actions to log intermediate values for debugging.
**Přidejte logování**:
Použijte akce Code k zaznamenávání mezilehlých hodnot pro ladění.
**Isolate steps**:
Test each step independently to identify failures.
**Izolujte kroky**:
Testujte každý krok samostatně, abyste identifikovali selhání.
**Check data flow**:
Verify that each step receives the expected input data.
**Zkontrolujte tok dat**:
Ověřte, že každý krok dostává očekávaná vstupní data.
## Best Practices to Avoid Issues
## Osvědčené postupy k předcházení problémům
### Before Activation
### Před aktivací
* Test thoroughly in draft mode
* Validate all API connections
* Review trigger conditions carefully
* Document expected behavior
* Důkladně testujte v režimu konceptu
* Ověřte všechna připojení k API
* Pečlivě zkontrolujte podmínky spouštěče
* Zdokumentujte očekávané chování
### During Development
### Během vývoje
* Use descriptive step names
* Add comments in Code actions
* Test with realistic data
* Plan for edge cases
* Používejte výstižné názvy kroků
* Přidejte komentáře v akcích Code
* Testujte s realistickými daty
* Plánujte i okrajové případy
### After Activation
### Po aktivaci
* Monitor initial runs closely
* Set up alerts for failures
* Review run history regularly
* Keep workflows simple when possible
* Pečlivě sledujte počáteční běhy
* Nastavte upozornění na selhání
* Pravidelně procházejte historii běhů
* Udržujte pracovní postupy co nejjednodušší
@@ -1,122 +1,122 @@
---
title: Fix Import Errors
description: Complete troubleshooting guide for resolving CSV import errors.
title: Importfehler beheben
description: Umfassende Anleitung zur Fehlerbehebung bei CSV-Importfehlern.
---
## Übersicht
Import not working? This guide helps you identify and fix common import errors step by step.
Import funktioniert nicht? Diese Anleitung hilft Ihnen, häufige Importfehler Schritt für Schritt zu erkennen und zu beheben.
## How Import Validation Works
## Wie die Importvalidierung funktioniert
After uploading your file and mapping columns, Twenty validates your data:
Nachdem Sie Ihre Datei hochgeladen und die Spalten zugeordnet haben, validiert Twenty Ihre Daten:
1. **Validation runs** — Twenty checks each row for errors
2. **Errors are highlighted** — problematic rows appear in **yellow**
3. **You can fix in-place** — edit cells directly in the import UI
4. **Or remove rows** — skip problematic records entirely
1. **Validierung läuft** — Twenty prüft jede Zeile auf Fehler
2. **Fehler werden hervorgehoben** — problematische Zeilen erscheinen in **gelb**
3. **Sie können direkt korrigieren** — bearbeiten Sie Zellen direkt in der Import-UI
4. **Oder Zeilen entfernen** — problematische Datensätze vollständig überspringen
<Note>**Fix errors in the UI.** You don't need to go back to your spreadsheet. Edit cells directly during import to save time.</Note>
<Note>**Beheben Sie Fehler in der UI.** Sie müssen nicht zu Ihrer Tabellenkalkulation zurückkehren. Bearbeiten Sie Zellen direkt während des Imports, um Zeit zu sparen.</Note>
## Step-by-Step Troubleshooting
## Schritt-für-Schritt-Fehlerbehebung
### Step 1: Identify the Error Type
### Schritt 1: Fehlertyp bestimmen
Click on a highlighted row to see the specific error message. Common error types:
Klicken Sie auf eine hervorgehobene Zeile, um die spezifische Fehlermeldung anzuzeigen. Häufige Fehlertypen:
| Fehlermeldung | What It Means |
| --------------------------------------------------------------------- | ------------------------------------------------------------ |
| Duplicate values highlighted in yellow | Value already exists in Twenty or appears twice in your file |
| `{field} is not a valid {type}` (hover on yellow cell) | Data doesn't match expected format |
| Required field highlighted | A required field is empty |
| `Can't connect to {object}. No unique record found...` (import fails) | Referenced record doesn't exist |
| `Too many records. Up to 10000 allowed` (upload blocked) | File has more than 10,000 records |
| Fehlermeldung | Was es bedeutet |
| ------------------------------------------------------------------------------ | ---------------------------------------------------------------------- |
| Doppelte Werte, gelb hervorgehoben | Wert existiert bereits in Twenty oder kommt in Ihrer Datei doppelt vor |
| `{field} is not a valid {type}` (fahren Sie mit der Maus über die gelbe Zelle) | Daten entsprechen nicht dem erwarteten Format |
| Erforderliches Feld hervorgehoben | Erforderliches Feld ist leer |
| `Can't connect to {object}. No unique record found...` (Import schlägt fehl) | Referenzierter Datensatz existiert nicht |
| `Too many records. Up to 10000 allowed` (Upload blockiert) | Die Datei enthält mehr als 10.000 Datensätze |
### Step 2: Fix the Error
### Schritt 2: Fehler beheben
Follow the specific instructions below for each error type.
Befolgen Sie die unten stehenden spezifischen Anweisungen für jeden Fehlertyp.
---
## Error: Duplicate Value
## Fehler: Doppelter Wert
### Was Sie sehen werden
Rows with duplicate values are **highlighted in yellow** in the import UI before the import starts.
Zeilen mit doppelten Werten werden in der Import-UI **gelb hervorgehoben**, bevor der Import startet.
### What It Means
### Was es bedeutet
A unique field (email, domain) either:
Ein eindeutiges Feld (E-Mail, Domain) entweder:
* Already exists in Twenty
* Appears twice in your file
* Existiert bereits in Twenty
* Kommt in Ihrer Datei doppelt vor
### How to Fix
### So beheben Sie den Fehler
**Option 1: Edit the duplicate value**
**Option 1: Doppelt vorhandenen Wert bearbeiten**
1. Click the cell with the error
2. Change to a unique value
3. Continue with import
1. Klicken Sie auf die Zelle mit dem Fehler
2. In einen eindeutigen Wert ändern
3. Mit dem Import fortfahren
**Option 2: Remove the duplicate row**
**Option 2: Die doppelte Zeile entfernen**
1. Click the X next to the row
2. The row will be skipped during import
1. Klicken Sie auf das X neben der Zeile
2. Die Zeile wird während des Imports übersprungen
**Option 3: Let Twenty update the existing record**
**Option 3: Twenty den vorhandenen Datensatz aktualisieren lassen**
1. Ensure your file includes a unique identifier (`email`, `domain`, or `id`)
2. Map the unique identifier field
3. Twenty will update the existing record instead of creating a duplicate
1. Stellen Sie sicher, dass Ihre Datei einen eindeutigen Bezeichner enthält (`email`, `domain` oder `id`)
2. Ordnen Sie das Feld mit dem eindeutigen Bezeichner zu
3. Twenty aktualisiert den vorhandenen Datensatz, statt ein Duplikat zu erstellen
<Note>
**You can update unique fields too.**
**Sie können eindeutige Felder ebenfalls aktualisieren.**
* If you keep the `id` but change the `email` → the email will be updated
* If you keep the `email` but change the `id` → the id will be updated
* Wenn Sie die `id` beibehalten, aber die `email` ändern → die E-Mail wird aktualisiert
* Wenn Sie die `email` beibehalten, aber die `id` ändern → die ID wird aktualisiert
As long as one unique identifier matches, Twenty updates the record.
Solange ein eindeutiger Bezeichner übereinstimmt, aktualisiert Twenty den Datensatz.
</Note>
### How to Prevent This Error
### So vermeiden Sie diesen Fehler
Before importing:
Vor dem Import:
1. Sort your spreadsheet by the unique field
2. Remove duplicate rows
3. Check if records already exist in Twenty
1. Sortieren Sie Ihre Tabellenkalkulation nach dem eindeutigen Feld
2. Entfernen Sie doppelte Zeilen
3. Prüfen Sie, ob Datensätze bereits in Twenty existieren
<Warning>
**Soft-deleted records count toward uniqueness.**
**Soft-gelöschte Datensätze zählen für die Eindeutigkeit.**
Check Command MenuSee deleted records. Records there still enforce uniqueness. Permanently delete them or restore and update.
Überprüfen Sie das BefehlsmenüGelöschte Datensätze anzeigen. Die dortigen Datensätze erzwingen weiterhin die Eindeutigkeit. Löschen Sie sie dauerhaft oder stellen Sie sie wieder her und aktualisieren Sie sie.
</Warning>
For more details: [Uniqueness Constraints](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints)
Weitere Details: [Eindeutigkeitsbeschränkungen](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Error: Invalid Format
## Fehler: Ungültiges Format
### Was Sie sehen werden
The cell value is highlighted in yellow. Hover over it to see the error message:
Der Zellwert ist gelb hervorgehoben. Fahren Sie mit der Maus darüber, um die Fehlermeldung zu sehen:
```
{field name} is not a valid {field type}
```
### What It Means
### Was es bedeutet
The data doesn't match the expected format for that field type.
Die Daten entsprechen nicht dem erwarteten Format für diesen Feldtyp.
### How to Fix — By Field Type
### So beheben Sie den Fehler — nach Feldtyp
#### E-Mail
**Problem:** Invalid email format
**Solution:** Use format `name@domain.com`
**Problem:** Ungültiges E-Mail-Format
**Lösung:** Verwenden Sie das Format `name@domain.com`
```
❌ john.smith@
@@ -126,34 +126,34 @@ The data doesn't match the expected format for that field type.
#### Domäne
**Problem:** Inconsistent format may cause duplicates
**Solution:** Use `https://domain.com` format (recommended)
**Problem:** Uneinheitliches Format kann Duplikate verursachen
**Lösung:** Verwenden Sie das Format `https://domain.com` (empfohlen)
```
⚠️ acme.com (valid, but not recommended)
⚠️ www.acme.com (valid, but not recommended)
✅ https://acme.com (recommended)
⚠️ acme.com (gültig, aber nicht empfohlen)
⚠️ www.acme.com (gültig, aber nicht empfohlen)
✅ https://acme.com (empfohlen)
```
<Note>All formats are valid, but `https://domain.com` is recommended because it matches the format used by email/calendar sync. Using other formats may create duplicate companies.</Note>
<Note>Alle Formate sind gültig, aber `https://domain.com` wird empfohlen, da es dem von der E-Mail-/Kalendersynchronisierung verwendeten Format entspricht. Die Verwendung anderer Formate kann doppelte Unternehmen erzeugen.</Note>
#### Datum
**Problem:** Unrecognized date format
**Solution:** Use consistent format throughout file
**Problem:** Nicht erkanntes Datumsformat
**Lösung:** Verwenden Sie in der gesamten Datei ein einheitliches Format
```
✓ 2024-03-15 (YYYY-MM-DD - recommended)
✓ 2024-03-15 (YYYY-MM-DD - empfohlen)
✓ 03/15/2024 (MM/DD/YYYY)
✓ 15/03/2024 (DD/MM/YYYY)
```
#### Telefon
**Problem:** Missing required columns
**Solution:** Include all phone columns
**Problem:** Erforderliche Spalten fehlen
**Lösung:** Alle Telefonspalten einschließen
| Column | Beispiel |
| Spalte | Beispiel |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
@@ -161,8 +161,8 @@ The data doesn't match the expected format for that field type.
#### Boolesch
**Problem:** Wrong boolean value
**Solution:** Use uppercase `TRUE` or `FALSE`
**Problem:** Falscher boolescher Wert
**Lösung:** Verwenden Sie `TRUE` oder `FALSE` in Großbuchstaben
```
❌ true
@@ -172,17 +172,17 @@ The data doesn't match the expected format for that field type.
✓ FALSE
```
#### Select / Multi-Select
#### Auswahl / Mehrfachauswahl
**Problem:** Value doesn't match existing options
**Solution:** Use **API names**, not display labels
**Problem:** Wert stimmt nicht mit vorhandenen Optionen überein
**Lösung:** Verwenden Sie **API-Namen**, nicht Anzeigenamen
How to find API names:
So finden Sie API-Namen:
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at bottom right)
4. Use the API name (e.g., `OPTION_1`, not "Option 1")
1. Gehen Sie zu **Einstellungen → Datenmodell**
2. Wählen Sie das Objekt und das Feld aus
3. Aktivieren Sie den **Erweiterten Modus** (Schalter unten rechts)
4. Verwenden Sie den API-Namen (z. B. `OPTION_1`, nicht "Option 1")
```
❌ High Priority
@@ -191,18 +191,18 @@ How to find API names:
#### Währung
**Problem:** Missing amount or currency code
**Solution:** Fill both columns
**Problem:** Betrag oder Währungscode fehlt
**Lösung:** Beide Spalten ausfüllen
| Column | Beispiel |
| Spalte | Beispiel |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
#### Nummer
**Problem:** Non-numeric characters
**Solution:** Numbers only, period for decimals
**Problem:** Nichtnumerische Zeichen
**Lösung:** Nur Zahlen, Punkt für Dezimalstellen
```
❌ $1,234.56
@@ -210,221 +210,221 @@ How to find API names:
✓ 1234.56
```
For complete format reference: [Field Mapping](/l/de/user-guide/data-migration/capabilities/field-mapping)
Vollständige Formatreferenz: [Referenz zur Feldzuordnung](/l/de/user-guide/data-migration/capabilities/field-mapping)
---
## Error: Required Field Missing
## Fehler: Erforderliches Feld fehlt
### Was Sie sehen werden
The row is highlighted in yellow with the required field cell marked.
Die Zeile ist gelb hervorgehoben, und die Zelle des erforderlichen Felds ist markiert.
### What It Means
### Was es bedeutet
A required field is empty for this row.
Ein erforderliches Feld ist in dieser Zeile leer.
### How to Fix
### So beheben Sie den Fehler
**Option 1: Enter a value**
**Option 1: Einen Wert eingeben**
1. Click the empty cell
2. Enter a value
3. Continue with import
1. Klicken Sie auf die leere Zelle
2. Geben Sie einen Wert ein
3. Mit dem Import fortfahren
**Option 2: Remove the row**
**Option 2: Die Zeile entfernen**
1. If you don't have the data, click X to skip the row
1. Wenn Ihnen die Daten fehlen, klicken Sie auf X, um die Zeile zu überspringen
### How to Prevent This Error
### So vermeiden Sie diesen Fehler
Before importing, identify required fields:
Identifizieren Sie vor dem Import die erforderlichen Felder:
1. Go to **Settings → Data Model**
2. Select your object
3. Check which fields are marked as required
1. Gehen Sie zu **Einstellungen → Datenmodell**
2. Wählen Sie Ihr Objekt aus
3. Prüfen Sie, welche Felder als erforderlich markiert sind
---
## Error: Relation Not Found
## Fehler: Relation nicht gefunden
### Was Sie sehen werden
This error appears **after the import starts** — the import fails with a message like:
Dieser Fehler tritt **nach Beginn des Imports** auf — der Import schlägt mit einer Meldung wie dieser fehl:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
This means there is no Company in Twenty with that specific identifier.
Das bedeutet, dass es in Twenty kein Unternehmen mit diesem spezifischen Bezeichner gibt.
<Note>Unlike other errors, this one is not caught during the data review step. The import will start and then fail when it encounters the missing relation.</Note>
<Note>Im Gegensatz zu anderen Fehlern wird dieser im Schritt der Datenüberprüfung nicht erkannt. Der Import startet und schlägt dann fehl, wenn die fehlende Relation auftritt.</Note>
### What It Means
### Was es bedeutet
You're trying to link to a record that doesn't exist in Twenty.
Sie versuchen, auf einen Datensatz zu verweisen, der in Twenty nicht existiert.
### How to Fix
### So beheben Sie den Fehler
**Option 1: Import parent records first**
**Option 1: Importieren Sie zuerst die übergeordneten Datensätze**
1. Cancel the current import
2. Import the parent records (e.g., Companies)
3. Then import the child records (e.g., People)
1. Brechen Sie den aktuellen Import ab
2. Importieren Sie die übergeordneten Datensätze (z. B. Unternehmen)
3. Importieren Sie anschließend die untergeordneten Datensätze (z. B. Personen)
**Option 2: Fix the reference value**
**Option 2: Korrigieren Sie den Referenzwert**
1. Check the reference value in your file
2. Ensure it exactly matches an existing record
3. Verify format: domains should be `https://domain.com`
1. Überprüfen Sie den Referenzwert in Ihrer Datei
2. Stellen Sie sicher, dass er genau mit einem vorhandenen Datensatz übereinstimmt
3. Format prüfen: Domains sollten das Format `https://domain.com` haben
**Option 3: Remove the relation**
**Option 3: Entfernen Sie die Relation**
1. Clear the cell to import without the relation
2. Add the relation manually later
1. Leeren Sie die Zelle, um ohne die Relation zu importieren
2. Fügen Sie die Relation später manuell hinzu
### How to Prevent This Error
### So vermeiden Sie diesen Fehler
1. **Import in the correct order:**
* Companies first
* People second (with company references)
* Opportunities third
1. **In der richtigen Reihenfolge importieren:**
* Zuerst Unternehmen
* Dann Personen (mit Unternehmensreferenzen)
* Als Drittes Opportunities
2. **Verify reference values:**
* Export parent records to get exact identifiers
* Use domain format `https://domain.com`
* Check for typos and case sensitivity
2. **Referenzwerte überprüfen:**
* Exportieren Sie übergeordnete Datensätze, um exakte Bezeichner zu erhalten
* Verwenden Sie das Domain-Format `https://domain.com`
* Prüfen Sie auf Tippfehler und Groß-/Kleinschreibung
<Warning>
**Import will fail if a reference is made to a non-existent record.**
**Der Import schlägt fehl, wenn auf einen nicht vorhandenen Datensatz verwiesen wird.**
Always import parent objects before child objects.
Importieren Sie übergeordnete Objekte immer vor untergeordneten Objekten.
</Warning>
For more details: [Import Relations](/l/de/user-guide/data-migration/capabilities/import-relations)
Weitere Details: [Beziehungen importieren](/l/de/user-guide/data-migration/capabilities/import-relations)
---
## Error: File Too Large
## Fehler: Datei zu groß
### Was Sie sehen werden
This error appears **when uploading your file** — the upload is blocked entirely:
Dieser Fehler tritt **beim Hochladen Ihrer Datei** auf — der Upload wird vollständig blockiert:
```
Too many records. Up to 10000 allowed
```
You won't be able to proceed to the data review step until you reduce the file size.
Sie können erst mit dem Schritt der Datenüberprüfung fortfahren, wenn Sie die Dateigröße reduziert haben.
### What It Means
### Was es bedeutet
Your file has more than 10,000 records.
Ihre Datei enthält mehr als 10.000 Datensätze.
### How to Fix
### So beheben Sie den Fehler
**Option 1: Split into multiple files**
**Option 1: In mehrere Dateien aufteilen**
1. Divide your data into files of 10,000 records or fewer
2. Import each file separately
3. Maintain import order (Companies before People)
1. Teilen Sie Ihre Daten in Dateien mit 10.000 oder weniger Datensätzen auf
2. Importieren Sie jede Datei separat
3. Halten Sie die Importreihenfolge ein (Unternehmen vor Personen)
**Option 2: Use API import**
For very large datasets, use the API which has no record limit.
See: [How to Import Data via API](/l/de/user-guide/data-migration/how-tos/import-data-via-api)
**Option 2: API-Import verwenden**
Für sehr große Datensätze verwenden Sie die API, die keine Datensatzbegrenzung hat.
Siehe: [So importieren Sie Daten über die API](/l/de/user-guide/data-migration/how-tos/import-data-via-api)
---
## Error: Field Not Recognized
## Fehler: Feld nicht erkannt
### What It Means
### Was es bedeutet
A column in your file can't be mapped because the field doesn't exist in Twenty.
Eine Spalte in Ihrer Datei kann nicht zugeordnet werden, weil das Feld in Twenty nicht existiert.
### How to Fix
### So beheben Sie den Fehler
1. Go to **Settings → Data Model**
2. Select the object you're importing
3. Click **+ Add field**
4. Create the custom field with the appropriate type
5. Re-upload your file
1. Gehen Sie zu **Einstellungen → Datenmodell**
2. Wählen Sie das Objekt aus, das Sie importieren
3. Klicken Sie auf **+ Feld hinzufügen**
4. Erstellen Sie das benutzerdefinierte Feld mit dem passenden Typ
5. Laden Sie Ihre Datei erneut hoch
<Note>The CSV import creates records, not fields. All fields must exist before importing.</Note>
<Note>Der CSV-Import erstellt Datensätze, nicht Felder. Alle Felder müssen vor dem Import vorhanden sein.</Note>
---
## Error: User Relation Empty
## Fehler: Benutzerrelation leer
### What It Means
### Was es bedeutet
You're trying to assign a record to a user (Owner, Assignee) but the relation isn't being mapped.
Sie versuchen, einen Datensatz einem Benutzer zuzuweisen (Owner, Assignee), aber die Relation wird nicht zugeordnet.
### Common Causes
### Häufige Ursachen
1. **User hasn't accepted their invitation** — the user doesn't exist in Twenty yet
2. **Using user ID from old system** — Twenty can't match IDs from another system
3. **Wrong email format** — the email doesn't match the user's Twenty account
1. **Benutzer hat seine Einladung nicht angenommen** — der Benutzer existiert noch nicht in Twenty
2. **Benutzer-ID aus altem System verwendet** — Twenty kann IDs aus einem anderen System nicht zuordnen
3. **Falsches E-Mail-Format** — die E-Mail entspricht nicht dem Twenty-Konto des Benutzers
### How to Fix
### So beheben Sie den Fehler
1. Ensure all users have **accepted their invitation** to your Twenty workspace
2. Use the user's **email address** (not their name or old system ID)
3. Use the same email they used to join Twenty
1. Stellen Sie sicher, dass alle Benutzer **ihre Einladung** zu Ihrem Twenty-Arbeitsbereich **angenommen haben**
2. Verwenden Sie die **E-Mail-Adresse** des Benutzers (nicht seinen Namen oder die alte System-ID)
3. Verwenden Sie dieselbe E-Mail, mit der sie Twenty beigetreten sind
<Warning>
**Users must accept invitations before importing.**
**Benutzer müssen Einladungen vor dem Import annehmen.**
If a user hasn't accepted their invitation, records referencing them will have empty user relations.
Wenn ein Benutzer seine Einladung nicht angenommen hat, haben Datensätze, die auf ihn verweisen, leere Benutzerrelationen.
</Warning>
---
## Pre-Import Checklist
## Checkliste vor dem Import
Avoid errors by checking these before importing:
Vermeiden Sie Fehler, indem Sie vor dem Import Folgendes prüfen:
### File Requirements
### Dateianforderungen
<Check>File is CSV, XLSX, or XLS format</Check>
<Check>File has fewer than 10,000 records</Check>
<Check>File uses UTF-8 encoding</Check>
<Check>Datei ist im CSV-, XLSX- oder XLS-Format</Check>
<Check>Datei enthält weniger als 10.000 Datensätze</Check>
<Check>Datei verwendet UTF-8-Kodierung</Check>
### Data Quality
### Datenqualität
<Check>No duplicate emails (for People)</Check>
<Check>No duplicate domains (for Companies)</Check>
<Check>All dates use consistent format</Check>
<Check>All domains use `https://domain.com` format</Check>
<Check>Keine doppelten E-Mails (für Personen)</Check>
<Check>Keine doppelten Domains (für Unternehmen)</Check>
<Check>Alle Datumsangaben verwenden ein einheitliches Format</Check>
<Check>Alle Domains verwenden das Format `https://domain.com`</Check>
### Field Formats
### Feldformate
<Check>Boolean fields use `TRUE` or `FALSE` (uppercase)</Check>
<Check>Select fields use API names, not display labels</Check>
<Check>Phone fields have all required columns</Check>
<Check>Currency fields have both Amount and Currency Code</Check>
<Check>Boolesche Felder verwenden `TRUE` oder `FALSE` (Großbuchstaben)</Check>
<Check>Auswahlfelder verwenden API-Namen, nicht Anzeigenamen</Check>
<Check>Telefonfelder enthalten alle erforderlichen Spalten</Check>
<Check>Währungsfelder enthalten sowohl Betrag als auch Währungscode</Check>
### Beziehungen
<Check>Parent records imported before child records</Check>
<Check>Relation columns reference existing records</Check>
<Check>Domain format matches Twenty's format exactly</Check>
<Check>Übergeordnete Datensätze vor untergeordneten Datensätzen importiert</Check>
<Check>Relationsspalten verweisen auf vorhandene Datensätze</Check>
<Check>Domain-Format entspricht exakt dem Format von Twenty</Check>
### Datenmodell
<Check>All custom fields exist in Settings → Data Model</Check>
<Check>Select options exist before importing</Check>
<Check>Alle benutzerdefinierten Felder existieren in Einstellungen → Datenmodell</Check>
<Check>Auswahloptionen existieren vor dem Import</Check>
---
## Still Having Issues?
## Gibt es weiterhin Probleme?
If you've tried the above solutions:
Wenn Sie die obigen Lösungen ausprobiert haben:
1. **Download the sample file** — see the exact format Twenty expects
2. **Export existing records** — compare your file to working data
3. **Test with a small batch** — try 5-10 rows first
4. **Check the reference articles:**
* [Field Mapping](/l/de/user-guide/data-migration/capabilities/field-mapping)
* [Uniqueness Constraints](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import Relations](/l/de/user-guide/data-migration/capabilities/import-relations)
* [Error Handling](/l/de/user-guide/data-migration/capabilities/error-handling)
1. **Beispieldatei herunterladen** — sehen Sie das genaue Format, das Twenty erwartet
2. **Bestehende Datensätze exportieren** — vergleichen Sie Ihre Datei mit funktionierenden Daten
3. **Testen Sie mit einer kleinen Stichprobe** — probieren Sie zuerst 5-10 Zeilen
4. **Prüfen Sie die Referenzartikel:**
* [Feldzuordnung](/l/de/user-guide/data-migration/capabilities/field-mapping)
* [Eindeutigkeitsbeschränkungen](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Beziehungen importieren](/l/de/user-guide/data-migration/capabilities/import-relations)
* [Fehlerbehandlung](/l/de/user-guide/data-migration/capabilities/error-handling)
@@ -1,103 +1,103 @@
---
title: Import Relations Between Objects via CSV
description: Complete step-by-step guide to linking records during CSV import.
title: Beziehungen zwischen Objekten per CSV importieren
description: Vollständige Schritt-für-Schritt-Anleitung zum Verknüpfen von Datensätzen während des CSV-Imports.
---
## Übersicht
This guide walks you through importing relations between objects—for example, linking People to Companies, or Opportunities to People.
Diese Anleitung führt Sie durch den Import von Beziehungen zwischen Objekten zum Beispiel das Verknüpfen von Personen mit Unternehmen oder von Opportunities mit Personen.
<Note>**What can be imported:** Only one-to-many relations pointing to a single object type. Relations pointing to multiple object types (like Notes linking to People AND Companies) are not yet supported for import.</Note>
<Note>**Was kann importiert werden:** Nur Eins-zu-Viele-Beziehungen, die auf einen einzelnen Objekttyp verweisen. Beziehungen, die auf mehrere Objekttypen verweisen (z. B. Notizen, die sowohl mit Personen als auch mit Unternehmen verknüpft sind), werden beim Import noch nicht unterstützt.</Note>
## Understanding Relations
## Beziehungen verstehen
### What is a "One-to-Many" Relation?
### Was ist eine "Eins-zu-Viele"-Beziehung?
In a one-to-many relation:
In einer Eins-zu-Viele-Beziehung:
* **One** Company has **many** People (employees)
* **One** Company has **many** Opportunities
* **One** Person has **many** Tasks
* **Ein** Unternehmen hat **viele** Personen (Mitarbeitende)
* **Ein** Unternehmen hat **viele** Opportunities
* **Eine** Person hat **viele** Aufgaben
The "one" side is the **parent**. The "many" side is the **child**.
Die "Eins"-Seite ist die **übergeordnete**. Die "Viele"-Seite ist die **untergeordnete**.
### Common Relations in Twenty
### Häufige Beziehungen in Twenty
| Beziehung | "One" Side (Parent) | "Many" Side (Child) |
| ------------------------- | ------------------- | ------------------- |
| Companies → People | Unternehmen | Personen |
| Companies → Opportunities | Unternehmen | Opportunities |
| People → Tasks | Person | Aufgaben |
| People → Notes | Person | Notizen |
| Beziehung | "Eins"-Seite (übergeordnet) | "Viele"-Seite (untergeordnet) |
| --------------------------- | --------------------------- | ----------------------------- |
| Unternehmen → Personen | Unternehmen | Personen |
| Unternehmen → Opportunities | Unternehmen | Opportunities |
| Personen → Aufgaben | Person | Aufgaben |
| Personen → Notizen | Person | Notizen |
## Step 1: Identify the "One" and "Many" Sides
## Schritt 1: Identifizieren Sie die "Eins"- und "Viele"-Seiten
Before importing, determine which object is the parent and which is the child.
Bestimmen Sie vor dem Import, welches Objekt übergeordnet und welches untergeordnet ist.
**Ask yourself:** "Does ONE [Object A] have MANY [Object B]?"
**Fragen Sie sich:** "Hat EIN [Objekt A] VIELE [Objekt B]?"
* One Company → Many People ✓ (Company is parent)
* One Person → Many Companies ✗ (This is wrong—a person belongs to one company)
* Ein Unternehmen → Viele Personen ✓ (Unternehmen ist übergeordnet)
* Eine Person → Viele Unternehmen ✗ (Das ist falsch eine Person gehört zu einem Unternehmen)
## Step 2: Import the Parent Records First
## Schritt 2: Importieren Sie zuerst die übergeordneten Datensätze
The parent ("one" side) must exist in Twenty before you can reference it.
Das übergeordnete Objekt ("Eins"-Seite) muss in Twenty existieren, bevor Sie darauf verweisen können.
**Import order:**
**Importreihenfolge:**
1. **Companies** first (no dependencies)
2. **People** second (link to Companies)
3. **Opportunities** third (link to Companies and/or People)
4. **Tasks/Notes** (link to any of the above)
1. Zuerst **Unternehmen** (keine Abhängigkeiten)
2. **Personen** an zweiter Stelle (mit Unternehmen verknüpfen)
3. **Opportunities** an dritter Stelle (mit Unternehmen und/oder Personen verknüpfen)
4. **Aufgaben/Notizen** (mit einem der oben genannten verknüpfen)
<Warning>
**If the parent record doesn't exist, the import will fail.**
**Wenn der übergeordnete Datensatz nicht existiert, schlägt der Import fehl.**
Always verify that Companies are imported before importing People with company references.
Stellen Sie stets sicher, dass Unternehmen importiert sind, bevor Sie Personen mit Unternehmensreferenzen importieren.
</Warning>
## Step 3: Note the Parent's Unique Identifier
## Schritt 3: Notieren Sie den eindeutigen Bezeichner des übergeordneten Objekts
You need to reference the parent record using a **unique identifier**. Available options:
Sie müssen auf den übergeordneten Datensatz mit einem eindeutigen Bezeichner verweisen. Verfügbare Optionen:
| Parent Object | Available Unique Identifiers |
| ------------------------------ | --------------------------------------------------------------- |
| **Companies** | `id` (UUID), `domain` (recommended), or any custom unique field |
| **People** | `id` (UUID), `email`, or any custom unique field |
| **Arbeitsbereichsmitglieder** | `id` (UUID), `email` (not name) |
| **Benutzerdefinierte Objekte** | `id` (UUID), or any field marked as unique |
| Übergeordnetes Objekt | Verfügbare eindeutige Bezeichner |
| ------------------------------ | ------------------------------------------------------------------------------------------ |
| **Unternehmen** | `id` (UUID), `domain` (empfohlen) oder ein beliebiges benutzerdefiniertes eindeutiges Feld |
| **Personen** | `id` (UUID), `email` oder ein beliebiges benutzerdefiniertes eindeutiges Feld |
| **Arbeitsbereichsmitglieder** | `id` (UUID), `email` (nicht Name) |
| **Benutzerdefinierte Objekte** | `id` (UUID) oder ein beliebiges als eindeutig markiertes Feld |
<Note>**Recommended:** Use `domain` for Companies and `email` for People. These are human-readable and easy to verify in your spreadsheet.</Note>
<Note>**Empfehlung:** Verwenden Sie `domain` für Unternehmen und `email` für Personen. Diese sind menschenlesbar und in Ihrer Tabelle leicht zu überprüfen.</Note>
### Finding the Identifier
### Den Bezeichner finden
If you need the `id`:
Wenn Sie die `id` benötigen:
1. Export the parent records from Twenty
2. The export includes the `id` column
3. Use these IDs in your child records file
1. Exportieren Sie die übergeordneten Datensätze aus Twenty
2. Der Export enthält die Spalte `id`
3. Verwenden Sie diese IDs in Ihrer Datei mit untergeordneten Datensätzen
## Step 4: Verify the Relation Field Exists
## Schritt 4: Überprüfen Sie, ob das Beziehungsfeld existiert
Before importing, ensure the relation field exists between your objects.
Stellen Sie vor dem Import sicher, dass das Beziehungsfeld zwischen Ihren Objekten existiert.
**To check or create:**
**So prüfen oder erstellen Sie es:**
1. Go to **Settings → Data Model**
2. Select your child object (e.g., People)
3. Look for a relation field pointing to the parent (e.g., Company)
4. If it doesn't exist, create it:
* Click **+ Add field**
* Select **Relation** type
* Choose the parent object
1. Gehen Sie zu **Einstellungen → Datenmodell**
2. Wählen Sie Ihr untergeordnetes Objekt aus (z. B. Personen)
3. Suchen Sie nach einem Beziehungsfeld, das auf das übergeordnete Objekt zeigt (z. B. Unternehmen)
4. Wenn es nicht existiert, erstellen Sie es:
* Klicken Sie auf **+ Feld hinzufügen**
* Wählen Sie den Typ **Relation**
* Wählen Sie das übergeordnete Objekt
## Step 5: Prepare Your CSV File
## Schritt 5: Bereiten Sie Ihre CSV-Datei vor
Add a column to your child CSV that references the parent using its unique identifier.
Fügen Sie Ihrer untergeordneten CSV eine Spalte hinzu, die mit dem eindeutigen Bezeichner auf das übergeordnete Objekt verweist.
### Example: People Linking to Companies
### Beispiel: Personen, die mit Unternehmen verknüpft werden
**Your People CSV:**
**Ihre Personen-CSV:**
```csv
firstName,lastName,email,jobTitle,companyDomain
@@ -106,66 +106,66 @@ Jane,Doe,jane@widgets.co,CTO,https://widgets.co
Bob,Johnson,bob@techstart.io,Developer,https://techstart.io
```
The `companyDomain` column references the Company's domain.
Die Spalte `companyDomain` verweist auf die Domain des Unternehmens.
### Format Requirements
### Formatvorgaben
| Kennung | Format | Beispiel |
| ------- | -------------- | -------------------------------------- |
| Domäne | URL format | `https://acme.com` |
| E-Mail | Standard email | `john@acme.com` |
| ID | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
| Kennung | Format | Beispiel |
| ------- | --------------- | -------------------------------------- |
| Domäne | URL-Format | `https://acme.com` |
| E-Mail | Standard-E-Mail | `john@acme.com` |
| ID | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Warning>
**Domain format matters!**
**Das Domain-Format ist wichtig!**
Use `https://domain.com` (not just `domain.com`). This matches how Twenty stores Company domains and prevents matching errors.
Verwenden Sie `https://domain.com` (nicht nur `domain.com`). Dies entspricht der Art, wie Twenty Unternehmensdomains speichert, und verhindert Zuordnungsfehler.
</Warning>
### Important Rules
### Wichtige Regeln
1. **Exact match required** — the value must exactly match the parent record
2. **Map only ONE unique identifier** — don't include both `companyId` AND `companyDomain`
3. **Case sensitive** — `Acme.com` ≠ `acme.com`
1. **Exakte Übereinstimmung erforderlich** — der Wert muss exakt dem übergeordneten Datensatz entsprechen
2. **Nur EINEN eindeutigen Bezeichner zuordnen** — geben Sie nicht sowohl `companyId` als auch `companyDomain` an
3. **Groß-/Kleinschreibung beachten** — `Acme.com` ≠ `acme.com`
## Step 6: Upload and Map the Relation
## Schritt 6: Beziehung hochladen und zuordnen
1. Navigate to the child object (e.g., People)
2. Click **⋮** → **Import records**
3. Upload your CSV file
4. In the field mapping step:
* Find your relation column (e.g., `companyDomain`)
* Map it to the **Company** relation field
5. Complete the remaining mapping
6. Review errors and confirm
1. Navigieren Sie zum untergeordneten Objekt (z. B. Personen)
2. Klicken Sie auf **⋮** → **Datensätze importieren**
3. Laden Sie Ihre CSV-Datei hoch
4. Im Schritt zur Feldzuordnung:
* Suchen Sie Ihre Beziehungsspalte (z. B. `companyDomain`)
* Ordnen Sie sie dem **Company**-Beziehungsfeld zu
5. Schließen Sie die übrige Zuordnung ab
6. Prüfen Sie Fehler und bestätigen Sie
Twenty will automatically link each child record to the matching parent.
Twenty verknüpft automatisch jeden untergeordneten Datensatz mit dem passenden übergeordneten Datensatz.
## Step 7: Verify the Import
## Schritt 7: Überprüfen Sie den Import
After importing:
Nach dem Import:
1. Open a few child records (e.g., People)
2. Verify the relation field shows the correct parent (e.g., Company)
3. Open a parent record and check the related records section
1. Öffnen Sie einige untergeordnete Datensätze (z. B. Personen)
2. Überprüfen Sie, ob das Beziehungsfeld das richtige übergeordnete Objekt anzeigt (z. B. Unternehmen)
3. Öffnen Sie einen übergeordneten Datensatz und prüfen Sie den Bereich mit den zugehörigen Datensätzen
## Common Mistakes to Avoid
## Häufige Fehler, die Sie vermeiden sollten
| Mistake | Problem | Solution |
| -------------------------- | -------------------------------------------------- | ------------------------------------------------------- |
| **Wrong import order** | Importing People before Companies | Always import parents first, then children |
| **Wrong domain format** | Using `acme.com` instead of `https://acme.com` | Use full URL format with `https://` |
| **Multiple unique fields** | Mapping both `companyId` AND `companyDomain` | Map only ONE unique identifier |
| **Missing relation field** | The relation field doesn't exist in the data model | Create it in **Settings → Data Model** before importing |
| **Non-existent records** | The parent record doesn't exist in Twenty | Import parent records first, or check for typos |
| **Case mismatch** | `Acme.com` in file but `acme.com` in Twenty | Ensure exact case matching |
| Fehler | Problem | Lösung |
| ------------------------------------------ | --------------------------------------------------------- | -------------------------------------------------------------------------------- |
| **Falsche Importreihenfolge** | Personen vor Unternehmen importieren | Importieren Sie immer zuerst übergeordnete, dann untergeordnete Datensätze |
| **Falsches Domain-Format** | Verwendung von `acme.com` statt `https://acme.com` | Verwenden Sie das vollständige URL-Format mit `https://` |
| **Mehrere eindeutige Felder** | Zuordnung sowohl von `companyId` als auch `companyDomain` | Ordnen Sie nur EINEN eindeutigen Bezeichner zu |
| **Beziehungsfeld fehlt** | Das Beziehungsfeld existiert nicht im Datenmodell | Erstellen Sie es vor dem Import unter **Einstellungen → Datenmodell** |
| **Nicht vorhandene Datensätze** | Der übergeordnete Datensatz existiert in Twenty nicht | Importieren Sie zunächst übergeordnete Datensätze oder prüfen Sie auf Tippfehler |
| **Unterschiedliche Groß-/Kleinschreibung** | `Acme.com` in der Datei, aber `acme.com` in Twenty | Achten Sie auf exakt übereinstimmende Groß-/Kleinschreibung |
## Linking to Workspace Members
## Verknüpfen mit Teammitgliedern
When linking to Workspace Members (your team):
Beim Verknüpfen mit Teammitgliedern (Ihrem Team):
* Use their **email address**, not their name
* Example: `owner@yourcompany.com`, not "John Smith"
* Verwenden Sie ihre **E-Mail-Adresse**, nicht ihren Namen
* Beispiel: `owner@yourcompany.com`, nicht "John Smith"
```csv
taskName,assignedTo
@@ -176,53 +176,53 @@ Review proposal,jane@yourcompany.com
## FAQ
<AccordionGroup>
<Accordion title="What if my parent record doesn't have a domain or email?">
You have two options:
<Accordion title="Was ist, wenn mein übergeordneter Datensatz keine Domain oder E-Mail hat?">
Sie haben zwei Optionen:
1. Use the Twenty `id` (export parent records to get their IDs)
2. Create a custom unique field in your data model to store an external ID from your previous system
1. Verwenden Sie die Twenty-`id` (exportieren Sie übergeordnete Datensätze, um ihre IDs zu erhalten)
2. Erstellen Sie ein benutzerdefiniertes eindeutiges Feld in Ihrem Datenmodell, um eine externe ID aus Ihrem vorherigen System zu speichern
</Accordion>
<Accordion title="Can I update relations on existing records?">
Ja! Include the child record's unique identifier (e.g., `email` for People) and the new relation value. The import will update the relation.
<Accordion title="Kann ich Beziehungen bei bestehenden Datensätzen aktualisieren?">
Ja! Geben Sie den eindeutigen Bezeichner des untergeordneten Datensatzes (z. B. `email` für Personen) und den neuen Beziehungswert an. Beim Import wird die Beziehung aktualisiert.
</Accordion>
<Accordion title="Can I import Many-to-Many relationships?">
Many-to-Many relations are not yet supported for import. This is planned for H1 2026.
<Accordion title="Kann ich Viele-zu-Viele-Beziehungen importieren?">
Viele-zu-Viele-Beziehungen werden beim Import noch nicht unterstützt. Dies ist für H1 2026 geplant.
</Accordion>
<Accordion title="Can I link to multiple object types (like Notes to People AND Companies)?">
Relations pointing to multiple object types are not yet supported for import/export. This is on our roadmap.
<Accordion title="Kann ich mit mehreren Objekttypen verknüpfen (z. B. Notizen mit Personen UND Unternehmen)?">
Beziehungen, die auf mehrere Objekttypen zeigen, werden für Import/Export noch nicht unterstützt. Dies steht auf unserer Roadmap.
</Accordion>
<Accordion title="What happens if a parent record doesn't exist?">
The import will show an error for that row. Sie können entweder:
<Accordion title="Was passiert, wenn ein übergeordneter Datensatz nicht existiert?">
Der Import zeigt für diese Zeile einen Fehler an. Sie können entweder:
* Import the parent record first, then re-import
* Fix the reference value
* Remove the row from import
* Importieren Sie zuerst den übergeordneten Datensatz und importieren Sie dann erneut
* Korrigieren Sie den Referenzwert
* Entfernen Sie die Zeile aus dem Import
</Accordion>
<Accordion title="Why is my relation not linking correctly?">
Common causes:
<Accordion title="Warum wird meine Beziehung nicht korrekt verknüpft?">
Häufige Ursachen:
* Wrong format (use `https://domain.com` for domains)
* Case mismatch (check exact spelling)
* Parent doesn't exist (import parents first)
* Mapping multiple identifiers (use only one)
* Falsches Format (verwenden Sie für Domains `https://domain.com`)
* Abweichende Groß-/Kleinschreibung (prüfen Sie die exakte Schreibweise)
* Übergeordneter Datensatz existiert nicht (zuerst übergeordnete Datensätze importieren)
* Zuordnung mehrerer Bezeichner (verwenden Sie nur einen)
</Accordion>
</AccordionGroup>
<Warning>
**Remember: Soft-deleted records count toward uniqueness.**
**Denken Sie daran: soft gelöschte Datensätze zählen für die Eindeutigkeit.**
If you're getting "not found" errors but the record seems to exist, check Command Menu → See deleted records. The parent may have been soft-deleted.
Wenn Sie "not found"-Fehler erhalten, der Datensatz aber zu existieren scheint, prüfen Sie im Befehlsmenü → Gelöschte Datensätze anzeigen. Der übergeordnete Datensatz wurde möglicherweise soft gelöscht.
</Warning>
## Fehlerbehebung
Having issues? Check:
Gibt es Probleme? Prüfen Sie:
* [How to Fix Import Errors](/l/de/user-guide/data-migration/how-tos/fix-import-errors)
* [Import Relations Capabilities](/l/de/user-guide/data-migration/capabilities/import-relations)
* [Uniqueness Constraints](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints)
* [So beheben Sie Importfehler](/l/de/user-guide/data-migration/how-tos/fix-import-errors)
* [Funktionen zum Import von Beziehungen](/l/de/user-guide/data-migration/capabilities/import-relations)
* [Eindeutigkeitsbeschränkungen](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints)
@@ -1,43 +1,43 @@
---
title: Migration von anderen CRMs
description: Step-by-step guide to migrate your data from any CRM to Twenty.
description: Schritt-für-Schritt-Anleitung zur Migration Ihrer Daten von jedem CRM zu Twenty.
---
## Übersicht
This guide walks you through migrating your data from any CRM to Twenty. The process involves auditing your data, preparing your Twenty workspace, exporting from your current system, and importing into Twenty.
Diese Anleitung führt Sie durch die Migration Ihrer Daten von jedem CRM zu Twenty. Der Prozess umfasst die Überprüfung Ihrer Daten, die Vorbereitung Ihres Twenty-Arbeitsbereichs, den Export aus Ihrem aktuellen System und den Import in Twenty.
<Note>Views, workflows, and permissions must be recreated manually after migration. Plan time for this configuration work.</Note>
<Note>Ansichten, Workflows und Berechtigungen müssen nach der Migration manuell neu erstellt werden. Planen Sie Zeit für diese Konfigurationsarbeiten ein.</Note>
## Step 1: Audit Your Current Data
## Schritt 1: Überprüfen Sie Ihre aktuellen Daten
Migration is an opportunity for a fresh start. Don't bring over clutter.
Eine Migration ist eine Chance für einen Neuanfang. Übernehmen Sie keinen Ballast.
**What to keep:**
**Was Sie behalten sollten:**
* Active contacts and companies
* Open opportunities and deals
* Important notes and activities
* Custom fields you actually use
* Aktive Kontakte und Unternehmen
* Offene Opportunities und Deals
* Wichtige Notizen und Aktivitäten
* Benutzerdefinierte Felder, die Sie tatsächlich verwenden
**What to leave behind:**
**Was Sie zurücklassen sollten:**
* Outdated contacts (no activity in 2+ years)
* Duplicate records
* Test data
* Unused custom fields
* Veraltete Kontakte (keine Aktivität seit über 2 Jahren)
* Doppelte Datensätze
* Testdaten
* Nicht verwendete benutzerdefinierte Felder
## Step 2: Map Your Data Model
## Schritt 2: Ihr Datenmodell abbilden
Create a mapping document between your current CRM and Twenty:
Erstellen Sie ein Zuordnungsdokument zwischen Ihrem aktuellen CRM und Twenty:
| Your CRM | Twenty |
| ---------------------- | -------------------- |
| Account / Organization | **Company** |
| Contact / Person | **People** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| Ihr CRM | Twenty |
| -------------------- | -------------------- |
| Konto / Organisation | **Unternehmen** |
| Kontakt / Person | **Personen** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
**For each field, document:**
@@ -1,23 +1,23 @@
---
title: Workflow Triggers
description: Learn about the different triggers that start your workflows.
title: Workflow-Auslöser
description: Erfahren Sie mehr über die verschiedenen Auslöser, die Ihre Workflows starten.
---
## About Triggers
## Über Auslöser
Workflows always start with a single trigger that defines when the automation should run.
Workflows beginnen immer mit einem einzelnen Auslöser, der festlegt, wann die Automatisierung ausgeführt werden soll.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Advanced objects are supported!** Beyond standard CRM objects (People, Companies, Opportunities), you can also trigger workflows and perform actions on:
**Erweiterte Objekte werden unterstützt!** Über die standardmäßigen CRM-Objekte hinaus (Personen, Unternehmen, Chancen) können Sie auch Workflows auslösen und Aktionen ausführen für:
* Arbeitsbereichsmitglieder
* Calendar Events
* Messages (Emails)
* Tasks, Notes, and many other system objects
* Kalenderereignisse
* Nachrichten (E-Mails)
* Aufgaben, Notizen und viele andere Systemobjekte
This opens up powerful automations like notifying team members when calendar events are created, or processing incoming emails automatically.
Dies ermöglicht leistungsstarke Automatisierungen, etwa das Benachrichtigen von Teammitgliedern, wenn Kalenderereignisse erstellt werden, oder das automatische Verarbeiten eingehender E-Mails.
</Tip>
## Datensatz wird erstellt
@@ -27,9 +27,9 @@ Startet den Workflow, wenn ein neuer Datensatz in einem ausgewählten Objekt (Pe
**Konfiguration**: Wählen Sie den Objekttyp aus, der auf neue Datensätze überwacht werden soll.
<Note>
* This trigger is great for records created by csv, mailbox and calendar synchronization, API.
* **It is not recommended for records created manually**: with this trigger, workflows start as soon as the record is created. Since Twenty UI offers auto-save on the fly (there is not an edit mode and then a validation to save records), the workflow will be triggered before the user inputs all the fields.
To trigger this workflow on records created manually, it is recommended to use the trigger `Record is created or updated` instead.
* Dieser Auslöser eignet sich hervorragend für Datensätze, die durch CSV-, Postfach- und Kalender-Synchronisierung oder per API erstellt wurden.
* **Für manuell erstellte Datensätze nicht empfohlen**: Mit diesem Auslöser starten Workflows, sobald der Datensatz erstellt wird. Da Twenty UI ein automatisches Speichern in Echtzeit bietet (es gibt keinen Bearbeitungsmodus und anschließend eine Validierung zum Speichern von Datensätzen), wird der Workflow ausgelöst, bevor der Benutzer alle Felder eingibt.
Um diesen Workflow bei manuell erstellten Datensätzen auszulösen, wird empfohlen, stattdessen den Auslöser `Record is created or updated` zu verwenden.
</Note>
## Datensatz wird aktualisiert
@@ -62,26 +62,26 @@ Startet den Workflow, wenn ein Datensatz aus einem Objekt entfernt wird.
**Konfiguration**: Wählen Sie den Objekttyp aus, der auf Löschungen überwacht werden soll.
## Manual Trigger
## Manueller Auslöser
Startet den Workflow, wenn er durch eine Benutzeraktion ausgelöst wird. This trigger can be accessed through the `Cmd+K` menu or via a custom button that will be displayed in the top navbar after selecting record(s).
Startet den Workflow, wenn er durch eine Benutzeraktion ausgelöst wird. Dieser Auslöser ist über das `Cmd+K`-Menü oder über eine benutzerdefinierte Schaltfläche zugänglich, die nach Auswahl von Datensätzen in der oberen Navigationsleiste angezeigt wird.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Verfügbarkeitskonfiguration**: Wählen Sie aus, wie der Workflow die Datensatzauswahl handhaben soll:
* **Global**: No record is required to trigger this workflow. The workflow is triggered from the command menu `Cmd + K` anywhere (from any object) and does not use record(s) as input.
* **Global**: Für das Auslösen dieses Workflows ist kein Datensatz erforderlich. Der Workflow wird überall (von jedem Objekt aus) über das Befehlsmenü `Cmd + K` ausgelöst und verwendet keine Datensätze als Eingabe.
* **Einzeln**: Die ausgewählten Datensätze werden an Ihren Workflow übergeben. Dies ist für ein bestimmtes Objekt konfiguriert. Es können mehrere Datensätze ausgewählt werden, bevor der Workflow ausgelöst wird. The workflow will run from beginning to end as many times as there are records selected.
* **Einzeln**: Die ausgewählten Datensätze werden an Ihren Workflow übergeben. Dies ist für ein bestimmtes Objekt konfiguriert. Es können mehrere Datensätze ausgewählt werden, bevor der Workflow ausgelöst wird. Der Workflow wird von Anfang bis Ende so oft ausgeführt, wie Datensätze ausgewählt sind.
<Note>
**Soft limit: 100 runs/minute**. Beyond this, workflows remain in "Not Started" status and are processed gradually—either by a background job or when another workflow enters the queue. This means you can select more than 100 records with a Single trigger; execution will just be slower.
**Soft-Limit: 100 Ausführungen/Minute**. Darüber hinaus verbleiben Workflows im Status "Nicht gestartet" und werden schrittweise verarbeitet—entweder durch einen Hintergrundauftrag oder wenn ein anderer Workflow in die Warteschlange gelangt. Das bedeutet, Sie können mit einem einzelnen Auslöser mehr als 100 Datensätze auswählen; die Ausführung wird dann lediglich langsamer.
</Note>
* **Bulk**: Die ausgewählten Datensätze werden an Ihren Workflow übergeben. Dies ist für ein bestimmtes Objekt konfiguriert. Es können mehrere Datensätze ausgewählt werden, bevor der Workflow ausgelöst wird. Der Workflow wird einmal ausgeführt, wobei die gesamte Liste der Datensätze als Eingabe verwendet wird. This means the workflow needs to contain an [Iterator action](/l/de/user-guide/workflows/capabilities/workflow-actions#iterator).
* **Bulk**: Die ausgewählten Datensätze werden an Ihren Workflow übergeben. Dies ist für ein bestimmtes Objekt konfiguriert. Es können mehrere Datensätze ausgewählt werden, bevor der Workflow ausgelöst wird. Der Workflow wird einmal ausgeführt, wobei die gesamte Liste der Datensätze als Eingabe verwendet wird. Das bedeutet, dass der Workflow eine [Iterator-Aktion](/l/de/user-guide/workflows/capabilities/workflow-actions#iterator) enthalten muss.
<Note>
This is more advanced, and best for people who want to optimize the number of workflow runs.
Dies ist fortgeschrittener und am besten für Personen geeignet, die die Anzahl der Workflow-Ausführungen optimieren möchten.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
@@ -94,10 +94,10 @@ Startet den Workflow, wenn er durch eine Benutzeraktion ausgelöst wird. This tr
**Zugriffsmethoden**:
* `Cmd+K` menu to find and launch manual workflows
* `Cmd+K`-Menü zum Finden und Starten manueller Workflows
* Benutzerdefinierte Schaltfläche in der oberen Navigationsleiste (falls konfiguriert)
## Time-Based Trigger: On a Schedule
## Zeitbasierter Auslöser: Nach Zeitplan
Startet den Workflow auf regelmäßiger Basis, die Sie definieren.
@@ -107,10 +107,10 @@ Startet den Workflow auf regelmäßiger Basis, die Sie definieren.
* Geben Sie einen Wert ein oder verwenden Sie benutzerdefinierte Cron-Ausdrücke für erweitertes Scheduling
<Note>
**Timezone**: Scheduled workflows run in **UTC**. When setting hours for daily schedules, convert your local time to UTC.
**Zeitzone**: Geplante Workflows laufen in **UTC**. Wenn Sie Uhrzeiten für tägliche Zeitpläne festlegen, konvertieren Sie Ihre lokale Zeit in UTC.
</Note>
## External Trigger: Webhook
## Externer Auslöser: Webhook
Startet den Workflow, wenn eine GET- oder POST-Anfrage von einem externen Dienst empfangen wird.
@@ -118,18 +118,18 @@ Startet den Workflow, wenn eine GET- oder POST-Anfrage von einem externen Dienst
**Konfiguration**:
* The workflow provides a unique webhook URL—copy this and add it to your external system as the endpoint to call.
* For POST requests, define the expected body structure so Twenty knows what data to expect. Add here the fields you will receive that will be needed below in your workflow.
* Configure authentication (coming soon).
* Der Workflow stellt eine eindeutige Webhook-URL bereit—kopieren Sie diese und fügen Sie sie in Ihrem externen System als aufzurufenden Endpunkt hinzu.
* Für POST-Anfragen definieren Sie die erwartete Body-Struktur, damit Twenty weiß, welche Daten zu erwarten sind. Fügen Sie hier die Felder hinzu, die Sie erhalten und die weiter unten in Ihrem Workflow benötigt werden.
* Konfigurieren Sie die Authentifizierung (bald verfügbar).
## Choosing the Right Trigger
## Den richtigen Auslöser wählen
| Use Case | Recommended Trigger |
| --------------------------- | ----------------------------------------- |
| New leads need processing | Datensatz wird erstellt |
| Data changes need sync | Datensatz wird aktualisiert |
| Import/manual data handling | Datensatz wird aktualisiert oder erstellt |
| Cleanup after deletion | Datensatz wird gelöscht |
| User-initiated action | Manuell auslösen |
| Recurring reports | Nach Zeitplan |
| External integration | Webhook or On a Schedule |
| Anwendungsfall | Empfohlener Auslöser |
| -------------------------------------------- | ----------------------------------------- |
| Neue Leads müssen verarbeitet werden | Datensatz wird erstellt |
| Datenänderungen müssen synchronisiert werden | Datensatz wird aktualisiert |
| Import/manuelle Datenverarbeitung | Datensatz wird aktualisiert oder erstellt |
| Bereinigung nach dem Löschen | Datensatz wird gelöscht |
| Vom Benutzer initiierte Aktion | Manuell auslösen |
| Wiederkehrende Berichte | Nach Zeitplan |
| Externe Integration | Webhook oder Nach Zeitplan |
@@ -1,170 +1,170 @@
---
title: Workflow-Fehlerbehebung
description: Common workflow issues and how to resolve them.
description: Häufige Workflow-Probleme und wie Sie sie beheben.
---
## Häufige Probleme und Lösungen
### Workflow wird nicht ausgelöst
**Symptoms**: Your workflow doesn't run when you expect it to.
**Symptome**: Ihr Workflow wird nicht ausgeführt, wenn Sie es erwarten.
**Possible Causes**:
**Mögliche Ursachen**:
1. **Workflow not activated**: Ensure the workflow is set to "Active" not "Draft"
2. **Trigger conditions not met**: Verify the trigger matches your expected event
3. **Field not monitored**: For "Record is Updated" triggers, ensure the specific field is being watched
4. **Permissions**: Check you have permission to run workflows
1. **Workflow nicht aktiviert**: Stellen Sie sicher, dass der Workflow auf "Active" und nicht auf "Draft" gesetzt ist
2. **Trigger-Bedingungen nicht erfüllt**: Überprüfen Sie, ob der Trigger Ihrem erwarteten Ereignis entspricht
3. **Feld nicht überwacht**: Bei "Record is Updated"-Triggern stellen Sie sicher, dass das betreffende Feld überwacht wird
4. **Berechtigungen**: Prüfen Sie, ob Sie die Berechtigung haben, Workflows auszuführen
**Lösungen**:
* Verify workflow status in the workflow list
* Test with the specific action you expect to trigger it
* Review trigger configuration
* Contact your admin about permissions
* Überprüfen Sie den Workflow-Status in der Workflow-Liste
* Testen Sie mit der spezifischen Aktion, von der Sie erwarten, dass sie ihn auslöst
* Überprüfen Sie die Trigger-Konfiguration
* Wenden Sie sich wegen der Berechtigungen an Ihren Administrator
### Workflow Triggers Too Early (Empty Fields)
### Workflow-Trigger zu früh (leere Felder)
**Symptoms**: When manually creating a record in the UI, your workflow triggers before you've had time to fill in all the fields. The workflow runs with mostly empty field values.
**Symptome**: Beim manuellen Erstellen eines Datensatzes in der UI wird Ihr Workflow ausgelöst, bevor Sie alle Felder ausfüllen konnten. Der Workflow läuft mit überwiegend leeren Feldwerten.
**Why this happens**: Twenty saves everything in real-time — there's no separate "edit" vs "read" mode. When you create a record, it's saved immediately, triggering the "Record is created" event before you can fill in additional fields.
**Warum das passiert**: Twenty speichert alles in Echtzeit — es gibt keinen separaten "edit"- vs. "read"-Modus. Wenn Sie einen Datensatz erstellen, wird er sofort gespeichert und löst das Ereignis "Record is created" aus, bevor Sie weitere Felder ausfüllen können.
**When "Record is created" works well**:
**Wann "Record is created" gut funktioniert**:
* Records created via API calls (fields are populated in a single request)
* Records created via import
* Automated record creation from other workflows
* Über API-Aufrufe erstellte Datensätze (Felder werden in einer einzigen Anfrage befüllt)
* Über Import erstellte Datensätze
* Automatisches Erstellen von Datensätzen aus anderen Workflows
**Solution**: For records created manually in the UI, use **"Record is created or updated"** as your trigger instead. This way:
**Lösung**: Für Datensätze, die manuell in der UI erstellt werden, verwenden Sie stattdessen **"Record is created or updated"** als Trigger. Auf diese Weise:
* The workflow triggers after the user has finished filling in and saving the fields
* You get the complete data rather than empty values
* Der Workflow wird ausgelöst, nachdem der Benutzer das Ausfüllen und Speichern der Felder abgeschlossen hat
* Sie erhalten die vollständigen Daten statt leerer Werte
<Tip>
If you only want the workflow to run once per record, add a Filter action to check a field like `createdAt equals updatedAt` (first save) or use a custom checkbox field to track if the workflow has already run.
Wenn der Workflow nur einmal pro Datensatz ausgeführt werden soll, fügen Sie eine Filter-Aktion hinzu, um ein Feld wie `createdAt equals updatedAt` (erste Speicherung) zu prüfen, oder verwenden Sie ein benutzerdefiniertes Kontrollkästchen, um zu verfolgen, ob der Workflow bereits ausgeführt wurde.
</Tip>
### Actions Failing
### Fehlgeschlagene Aktionen
**Symptoms**: Workflow runs but some actions fail.
**Symptome**: Der Workflow wird ausgeführt, aber einige Aktionen schlagen fehl.
**Possible Causes**:
**Mögliche Ursachen**:
1. **Missing data**: Required fields are empty
2. **Invalid references**: Variables from previous steps don't exist
3. **API errors**: External services returning errors
4. **Permission issues**: Action requires permissions you don't have
1. **Fehlende Daten**: Erforderliche Felder sind leer
2. **Ungültige Verweise**: Variablen aus vorherigen Schritten existieren nicht
3. **API-Fehler**: Externe Dienste liefern Fehler zurück
4. **Berechtigungsprobleme**: Die Aktion erfordert Berechtigungen, die Sie nicht haben
**Lösungen**:
* Check the workflow run details for error messages
* Verify all required fields have values
* Test API connections independently
* Review role permissions
* Überprüfen Sie die Details der Workflow-Ausführung auf Fehlermeldungen
* Stellen Sie sicher, dass alle Pflichtfelder Werte haben
* Testen Sie die API-Verbindungen separat
* Überprüfen Sie die Rollenberechtigungen
### HTTP Request Errors
### Fehler bei HTTP-Anfragen
**Symptoms**: HTTP Request actions fail or return unexpected results.
**Symptome**: HTTP-Request-Aktionen schlagen fehl oder liefern unerwartete Ergebnisse.
**Common Error Codes**:
**Häufige Fehlercodes**:
* **400**: Bad request - check your request body format
* **401**: Unauthorized - verify API key
* **403**: Forbidden - check API permissions
* **404**: Not found - verify endpoint URL
* **429**: Too many requests - implement rate limiting
* **500**: Server error - external service issue
* **400**: Ungültige Anfrage - überprüfen Sie das Format des Request-Body
* **401**: Nicht autorisiert - überprüfen Sie den API-Schlüssel
* **403**: Verboten - überprüfen Sie die API-Berechtigungen
* **404**: Nicht gefunden - überprüfen Sie die Endpunkt-URL
* **429**: Zu viele Anfragen - implementieren Sie eine Ratenbegrenzung
* **500**: Serverfehler - Problem mit dem externen Dienst
**Lösungen**:
* Verify API endpoint URL
* Check authentication headers
* Test the API call outside of Twenty first
* Add error handling in Code actions
* Überprüfen Sie die API-Endpunkt-URL
* Überprüfen Sie die Authentifizierungs-Header
* Testen Sie den API-Aufruf zunächst außerhalb von Twenty
* Fügen Sie Fehlerbehandlung in Code-Aktionen hinzu
### Code Action Errors
### Fehler in Code-Aktionen
**Symptoms**: JavaScript code fails to execute.
**Symptome**: JavaScript-Code wird nicht ausgeführt.
**Common Issues**:
**Häufige Probleme**:
1. **Syntax errors**: Typos or invalid JavaScript
2. **Undefined variables**: Referencing variables that don't exist
3. **Type errors**: Operations on wrong data types
4. **Timeouts**: Code taking too long to execute
1. **Syntaxfehler**: Tippfehler oder ungültiges JavaScript
2. **Undefinierte Variablen**: Verweise auf Variablen, die nicht existieren
3. **Typfehler**: Operationen auf falschen Datentypen
4. **Timeouts**: Code benötigt zu lange zur Ausführung
**Lösungen**:
* Use the built-in code editor validation
* Test code logic in a JavaScript console first
* Add console.log statements for debugging
* Simplify complex operations
* Verwenden Sie die integrierte Validierung des Code-Editors
* Testen Sie die Code-Logik zuerst in einer JavaScript-Konsole
* Fügen Sie console.log-Anweisungen zum Debuggen hinzu
* Vereinfachen Sie komplexe Operationen
### Email Not Sending
### E-Mail wird nicht gesendet
**Symptoms**: Send Email action doesn't deliver emails.
**Symptome**: Die Aktion "Send Email" liefert keine E-Mails aus.
**Possible Causes**:
**Mögliche Ursachen**:
1. **No email account connected**: Check Settings → Accounts
2. **Invalid email address**: Recipient email is malformed
3. **Sending limits**: Email provider rate limits reached
4. **Spam filters**: Emails being blocked
1. **Kein E-Mail-Konto verbunden**: Prüfen Sie Settings → Accounts
2. **Ungültige E-Mail-Adresse**: Die E-Mail-Adresse des Empfängers ist fehlerhaft
3. **Sendelimits**: Ratenbegrenzung des E-Mail-Anbieters erreicht
4. **Spamfilter**: E-Mails werden blockiert
**Lösungen**:
* Verify email account connection
* Validate recipient email addresses
* Check email provider limits
* Review email content for spam triggers
* Überprüfen Sie die Verbindung des E-Mail-Kontos
* Validieren Sie die E-Mail-Adressen der Empfänger
* Überprüfen Sie die Limits des E-Mail-Anbieters
* Überprüfen Sie den E-Mail-Inhalt auf Spam-Auslöser
## Debugging Workflows
## Workflows debuggen
### Using Workflow Runs
### Workflow-Läufe verwenden
1. Go to the workflow editor
2. Open the **Runs** panel
3. Find the failed run
4. Click to see step-by-step details
5. Review error messages and output data
1. Gehen Sie zum Workflow-Editor
2. Öffnen Sie das Panel **Runs**
3. Finden Sie den fehlgeschlagenen Lauf
4. Klicken Sie, um die Details Schritt für Schritt zu sehen
5. Überprüfen Sie Fehlermeldungen und Ausgabedaten
### Testing Individual Steps
### Einzelschritte testen
1. For Code actions, use the **Test** button
2. For HTTP requests, test the endpoint separately
3. Create test records to trigger workflows
4. Use manual triggers for controlled testing
1. Für Code-Aktionen verwenden Sie die Schaltfläche **Test**
2. Für HTTP-Anfragen testen Sie den Endpunkt separat
3. Erstellen Sie Testdatensätze, um Workflows auszulösen
4. Verwenden Sie manuelle Trigger für kontrollierte Tests
### Common Debugging Patterns
### Häufige Debugging-Muster
**Add logging**:
Use Code actions to log intermediate values for debugging.
**Logging hinzufügen**:
Verwenden Sie Code-Aktionen, um Zwischenwerte zum Debuggen zu protokollieren.
**Isolate steps**:
Test each step independently to identify failures.
**Schritte isolieren**:
Testen Sie jeden Schritt unabhängig, um Fehler zu identifizieren.
**Check data flow**:
Verify that each step receives the expected input data.
**Datenfluss prüfen**:
Stellen Sie sicher, dass jeder Schritt die erwarteten Eingabedaten erhält.
## Best Practices to Avoid Issues
## Bewährte Verfahren zur Vermeidung von Problemen
### Before Activation
### Vor der Aktivierung
* Test thoroughly in draft mode
* Validate all API connections
* Review trigger conditions carefully
* Document expected behavior
* Testen Sie im Entwurfsmodus gründlich
* Validieren Sie alle API-Verbindungen
* Überprüfen Sie die Trigger-Bedingungen sorgfältig
* Dokumentieren Sie das erwartete Verhalten
### During Development
### Während der Entwicklung
* Use descriptive step names
* Add comments in Code actions
* Test with realistic data
* Plan for edge cases
* Verwenden Sie aussagekräftige Schrittnamen
* Fügen Sie Kommentare in Code-Aktionen hinzu
* Testen Sie mit realistischen Daten
* Planen Sie für Randfälle
### After Activation
### Nach der Aktivierung
* Monitor initial runs closely
* Set up alerts for failures
* Review run history regularly
* Keep workflows simple when possible
* Überwachen Sie die ersten Läufe genau
* Richten Sie Benachrichtigungen für Fehler ein
* Überprüfen Sie den Ausführungsverlauf regelmäßig
* Halten Sie Workflows nach Möglichkeit einfach
@@ -5,118 +5,118 @@ description: Guida completa alla risoluzione degli errori di importazione CSV.
## Panoramica
L'importazione non funziona? This guide helps you identify and fix common import errors step by step.
L'importazione non funziona? Questa guida ti aiuta a identificare e correggere, passo dopo passo, gli errori di importazione più comuni.
## How Import Validation Works
## Come funziona la convalida dell'importazione
After uploading your file and mapping columns, Twenty validates your data:
Dopo aver caricato il file e mappato le colonne, Twenty convalida i tuoi dati:
1. **Validation runs** — Twenty checks each row for errors
2. **Errors are highlighted** — problematic rows appear in **yellow**
3. **You can fix in-place** — edit cells directly in the import UI
4. **Or remove rows** — skip problematic records entirely
1. **Esecuzione della convalida** — Twenty controlla ogni riga per individuare errori
2. **Gli errori sono evidenziati** — le righe problematiche appaiono in **giallo**
3. **Puoi correggere direttamente** — modifica le celle direttamente nell'interfaccia di importazione
4. **Oppure rimuovi le righe** — salta completamente i record problematici
<Note>**Fix errors in the UI.** You don't need to go back to your spreadsheet. Edit cells directly during import to save time.</Note>
<Note>**Correggi gli errori nell'interfaccia.** Non è necessario tornare al tuo foglio di calcolo. Modifica le celle direttamente durante l'importazione per risparmiare tempo.</Note>
## Step-by-Step Troubleshooting
## Risoluzione dei problemi passo passo
### Step 1: Identify the Error Type
### Passaggio 1: Identifica il tipo di errore
Click on a highlighted row to see the specific error message. Common error types:
Fai clic su una riga evidenziata per vedere il messaggio di errore specifico. Tipi di errore comuni:
| Messaggio di errore | What It Means |
| --------------------------------------------------------------------- | ------------------------------------------------------------ |
| Duplicate values highlighted in yellow | Value already exists in Twenty or appears twice in your file |
| `{field} is not a valid {type}` (hover on yellow cell) | Data doesn't match expected format |
| Required field highlighted | A required field is empty |
| `Can't connect to {object}. No unique record found...` (import fails) | Referenced record doesn't exist |
| `Too many records. Up to 10000 allowed` (upload blocked) | File has more than 10,000 records |
| Messaggio di errore | Cosa significa |
| ---------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| Valori duplicati evidenziati in giallo | Il valore esiste già in Twenty o compare due volte nel tuo file |
| `{field} is not a valid {type}` (passa il mouse sulla cella gialla) | I dati non corrispondono al formato previsto |
| Campo obbligatorio evidenziato | Un campo obbligatorio è vuoto |
| `Can't connect to {object}. No unique record found...` (importazione non riuscita) | Il record di riferimento non esiste |
| `Too many records. Up to 10000 allowed` (caricamento bloccato) | Il file contiene più di 10.000 record |
### Step 2: Fix the Error
### Passaggio 2: Correggi l'errore
Follow the specific instructions below for each error type.
Segui le istruzioni specifiche qui sotto per ciascun tipo di errore.
---
## Error: Duplicate Value
## Errore: valore duplicato
### Cosa vedrai
Rows with duplicate values are **highlighted in yellow** in the import UI before the import starts.
Le righe con valori duplicati vengono **evidenziate in giallo** nell'interfaccia di importazione prima che l'importazione inizi.
### What It Means
### Cosa significa
A unique field (email, domain) either:
Un campo univoco (email, dominio) può:
* Already exists in Twenty
* Appears twice in your file
* Esistere già in Twenty
* Comparire due volte nel tuo file
### How to Fix
### Come risolvere
**Option 1: Edit the duplicate value**
**Opzione 1: Modifica il valore duplicato**
1. Click the cell with the error
2. Change to a unique value
3. Continue with import
1. Fai clic sulla cella con l'errore
2. Modifica con un valore univoco
3. Continua con l'importazione
**Option 2: Remove the duplicate row**
**Opzione 2: Rimuovi la riga duplicata**
1. Click the X next to the row
2. The row will be skipped during import
1. Fai clic sulla X accanto alla riga
2. La riga verrà saltata durante l'importazione
**Option 3: Let Twenty update the existing record**
**Opzione 3: Consenti a Twenty di aggiornare il record esistente**
1. Ensure your file includes a unique identifier (`email`, `domain`, or `id`)
2. Map the unique identifier field
3. Twenty will update the existing record instead of creating a duplicate
1. Assicurati che il tuo file includa un identificatore univoco (`email`, `domain` o `id`)
2. Mappa il campo identificatore univoco
3. Twenty aggiornerà il record esistente invece di creare un duplicato
<Note>
**You can update unique fields too.**
**Puoi aggiornare anche i campi univoci.**
* If you keep the `id` but change the `email` → the email will be updated
* If you keep the `email` but change the `id` → the id will be updated
* Se mantieni l'`id` ma cambi l'`email` → l'email verrà aggiornata
* Se mantieni l'`email` ma cambi l'`id` → l'id verrà aggiornato
As long as one unique identifier matches, Twenty updates the record.
Finché almeno un identificatore univoco corrisponde, Twenty aggiorna il record.
</Note>
### How to Prevent This Error
### Come prevenire questo errore
Before importing:
Prima di importare:
1. Sort your spreadsheet by the unique field
2. Remove duplicate rows
3. Check if records already exist in Twenty
1. Ordina il foglio di calcolo per il campo univoco
2. Rimuovi le righe duplicate
3. Verifica se i record esistono già in Twenty
<Warning>
**Soft-deleted records count toward uniqueness.**
**I record eliminati in modo non definitivo contano ai fini dell'unicità.**
Check Command Menu → See deleted records. Records there still enforce uniqueness. Permanently delete them or restore and update.
Controlla il menu Comandi → Visualizza i record eliminati. I record presenti lì impongono comunque l'unicità. Eliminali definitivamente oppure ripristinali e aggiornali.
</Warning>
For more details: [Uniqueness Constraints](/l/it/user-guide/data-migration/capabilities/uniqueness-constraints)
Per maggiori dettagli: [Vincoli di unicità](/l/it/user-guide/data-migration/capabilities/uniqueness-constraints)
---
## Error: Invalid Format
## Errore: formato non valido
### Cosa vedrai
The cell value is highlighted in yellow. Hover over it to see the error message:
Il valore della cella è evidenziato in giallo. Passa il mouse sopra per vedere il messaggio di errore:
```
{field name} is not a valid {field type}
```
### What It Means
### Cosa significa
The data doesn't match the expected format for that field type.
I dati non corrispondono al formato previsto per quel tipo di campo.
### How to Fix — By Field Type
### Come risolvere — in base al tipo di campo
#### Email
**Problem:** Invalid email format
**Solution:** Use format `name@domain.com`
**Problema:** formato email non valido
**Soluzione:** usa il formato `name@domain.com`
```
❌ john.smith@
@@ -126,8 +126,8 @@ The data doesn't match the expected format for that field type.
#### Dominio
**Problem:** Inconsistent format may cause duplicates
**Solution:** Use `https://domain.com` format (recommended)
**Problema:** un formato incoerente può causare duplicati
**Soluzione:** usa il formato `https://domain.com` (consigliato)
```
⚠️ acme.com (valid, but not recommended)
@@ -135,12 +135,12 @@ The data doesn't match the expected format for that field type.
✅ https://acme.com (recommended)
```
<Note>All formats are valid, but `https://domain.com` is recommended because it matches the format used by email/calendar sync. Using other formats may create duplicate companies.</Note>
<Note>Tutti i formati sono validi, ma `https://domain.com` è consigliato perché corrisponde al formato utilizzato dalla sincronizzazione email/calendario. Usare altri formati può creare aziende duplicate.</Note>
#### Data
**Problem:** Unrecognized date format
**Solution:** Use consistent format throughout file
**Problema:** formato data non riconosciuto
**Soluzione:** usa un formato coerente in tutto il file
```
✓ 2024-03-15 (YYYY-MM-DD - recommended)
@@ -150,19 +150,19 @@ The data doesn't match the expected format for that field type.
#### Telefono
**Problem:** Missing required columns
**Solution:** Include all phone columns
**Problema:** colonne obbligatorie mancanti
**Soluzione:** includi tutte le colonne del telefono
| Column | Esempio |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
| Colonna | Esempio |
| ---------------------------------------------------------- | ------------ |
| **Telefoni / Numero di telefono principale** | `4159095555` |
| **Telefoni / Codice paese del telefono principale** | `US` |
| **Telefoni / Prefisso telefonico del telefono principale** | `+1` |
#### Booleano
**Problem:** Wrong boolean value
**Solution:** Use uppercase `TRUE` or `FALSE`
**Problema:** valore booleano errato
**Soluzione:** usa `TRUE` o `FALSE` in maiuscolo
```
❌ true
@@ -172,17 +172,17 @@ The data doesn't match the expected format for that field type.
✓ FALSE
```
#### Select / Multi-Select
#### Selezione / Selezione multipla
**Problem:** Value doesn't match existing options
**Solution:** Use **API names**, not display labels
**Problema:** il valore non corrisponde alle opzioni esistenti
**Soluzione:** usa i **nomi API**, non le etichette visualizzate
How to find API names:
Come trovare i nomi API:
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at bottom right)
4. Use the API name (e.g., `OPTION_1`, not "Option 1")
1. Vai a **Impostazioni → Modello dati**
2. Seleziona l'oggetto e il campo
3. Abilita la **Modalità avanzata** (interruttore in basso a destra)
4. Usa il nome API (ad es., `OPTION_1`, non "Option 1")
```
❌ High Priority
@@ -191,18 +191,18 @@ How to find API names:
#### Valuta
**Problem:** Missing amount or currency code
**Solution:** Fill both columns
**Problema:** importo o codice valuta mancanti
**Soluzione:** compila entrambe le colonne
| Column | Esempio |
| Colonna | Esempio |
| --------------------- | --------- |
| **Amount / Amount** | `1234.56` |
| **Amount / Currency** | `USD` |
| **Importo / Importo** | `1234.56` |
| **Importo / Valuta** | `USD` |
#### Numero
**Problem:** Non-numeric characters
**Solution:** Numbers only, period for decimals
**Problema:** caratteri non numerici
**Soluzione:** solo numeri, punto per i decimali
```
❌ $1,234.56
@@ -210,221 +210,221 @@ How to find API names:
✓ 1234.56
```
For complete format reference: [Field Mapping](/l/it/user-guide/data-migration/capabilities/field-mapping)
Per il riferimento completo ai formati: [Riferimento alla mappatura dei campi](/l/it/user-guide/data-migration/capabilities/field-mapping)
---
## Error: Required Field Missing
## Errore: campo obbligatorio mancante
### Cosa vedrai
The row is highlighted in yellow with the required field cell marked.
La riga è evidenziata in giallo con la cella del campo obbligatorio contrassegnata.
### What It Means
### Cosa significa
A required field is empty for this row.
Un campo obbligatorio è vuoto per questa riga.
### How to Fix
### Come risolvere
**Option 1: Enter a value**
**Opzione 1: Inserisci un valore**
1. Click the empty cell
2. Enter a value
3. Continue with import
1. Fai clic sulla cella vuota
2. Inserisci un valore
3. Continua con l'importazione
**Option 2: Remove the row**
**Opzione 2: Rimuovi la riga**
1. If you don't have the data, click X to skip the row
1. Se non disponi dei dati, fai clic su X per saltare la riga
### How to Prevent This Error
### Come prevenire questo errore
Before importing, identify required fields:
Prima di importare, identifica i campi obbligatori:
1. Go to **Settings → Data Model**
2. Select your object
3. Check which fields are marked as required
1. Vai a **Impostazioni → Modello dati**
2. Seleziona il tuo oggetto
3. Verifica quali campi sono contrassegnati come obbligatori
---
## Error: Relation Not Found
## Errore: relazione non trovata
### Cosa vedrai
This error appears **after the import starts** — the import fails with a message like:
Questo errore compare **dopo l'avvio dell'importazione** — l'importazione non riesce con un messaggio come:
```
Can't connect to company. No unique record found with condition: id = 7776ee49-f608-4a77-8cc8-6fe96ae1e43f
```
This means there is no Company in Twenty with that specific identifier.
Ciò significa che non esiste alcuna Azienda in Twenty con quello specifico identificatore.
<Note>Unlike other errors, this one is not caught during the data review step. The import will start and then fail when it encounters the missing relation.</Note>
<Note>A differenza di altri errori, questo non viene intercettato durante la fase di revisione dei dati. L'importazione inizierà e poi non riuscirà quando incontrerà la relazione mancante.</Note>
### What It Means
### Cosa significa
You're trying to link to a record that doesn't exist in Twenty.
Stai tentando di collegarti a un record che non esiste in Twenty.
### How to Fix
### Come risolvere
**Option 1: Import parent records first**
**Opzione 1: importa prima i record genitore**
1. Cancel the current import
2. Import the parent records (e.g., Companies)
3. Then import the child records (e.g., People)
1. Annulla l'importazione corrente
2. Importa i record genitore (ad es., Aziende)
3. Quindi importa i record figlio (ad es., Persone)
**Option 2: Fix the reference value**
**Opzione 2: correggi il valore di riferimento**
1. Check the reference value in your file
2. Ensure it exactly matches an existing record
3. Verify format: domains should be `https://domain.com`
1. Controlla il valore di riferimento nel tuo file
2. Assicurati che corrisponda esattamente a un record esistente
3. Verifica il formato: i domini devono essere `https://domain.com`
**Option 3: Remove the relation**
**Opzione 3: rimuovi la relazione**
1. Clear the cell to import without the relation
2. Add the relation manually later
1. Svuota la cella per importare senza la relazione
2. Aggiungi la relazione manualmente in seguito
### How to Prevent This Error
### Come prevenire questo errore
1. **Import in the correct order:**
* Companies first
* People second (with company references)
* Opportunities third
1. **Importa nell'ordine corretto:**
* Prima le Aziende
* Poi le Persone (con riferimenti all'Azienda)
* Le Opportunità al terzo posto
2. **Verify reference values:**
* Export parent records to get exact identifiers
* Use domain format `https://domain.com`
* Check for typos and case sensitivity
2. **Verifica i valori di riferimento:**
* Esporta i record genitore per ottenere identificatori esatti
* Usa il formato dominio `https://domain.com`
* Verifica errori di battitura e differenze tra maiuscole/minuscole
<Warning>
**Import will fail if a reference is made to a non-existent record.**
**L'importazione non riuscirà se viene fatto riferimento a un record inesistente.**
Always import parent objects before child objects.
Importa sempre gli oggetti genitore prima degli oggetti figlio.
</Warning>
For more details: [Import Relations](/l/it/user-guide/data-migration/capabilities/import-relations)
Per maggiori dettagli: [Importazione delle relazioni](/l/it/user-guide/data-migration/capabilities/import-relations)
---
## Error: File Too Large
## Errore: file troppo grande
### Cosa vedrai
This error appears **when uploading your file** — the upload is blocked entirely:
Questo errore compare **quando carichi il file** — il caricamento viene completamente bloccato:
```
Too many records. Up to 10000 allowed
```
You won't be able to proceed to the data review step until you reduce the file size.
Non potrai procedere alla fase di revisione dei dati finché non riduci la dimensione del file.
### What It Means
### Cosa significa
Your file has more than 10,000 records.
Il tuo file contiene più di 10.000 record.
### How to Fix
### Come risolvere
**Option 1: Split into multiple files**
**Opzione 1: Dividi in più file**
1. Divide your data into files of 10,000 records or fewer
2. Import each file separately
3. Maintain import order (Companies before People)
1. Dividi i tuoi dati in file da 10.000 record o meno
2. Importa ogni file separatamente
3. Mantieni l'ordine di importazione (Aziende prima delle Persone)
**Option 2: Use API import**
For very large datasets, use the API which has no record limit.
See: [How to Import Data via API](/l/it/user-guide/data-migration/how-tos/import-data-via-api)
**Opzione 2: Usa l'importazione tramite API**
Per set di dati molto grandi, usa le API che non hanno un limite di record.
Vedi: [Come importare i dati tramite API](/l/it/user-guide/data-migration/how-tos/import-data-via-api)
---
## Error: Field Not Recognized
## Errore: campo non riconosciuto
### What It Means
### Cosa significa
A column in your file can't be mapped because the field doesn't exist in Twenty.
Una colonna del tuo file non può essere mappata perché il campo non esiste in Twenty.
### How to Fix
### Come risolvere
1. Go to **Settings → Data Model**
2. Select the object you're importing
3. Click **+ Add field**
4. Create the custom field with the appropriate type
5. Re-upload your file
1. Vai a **Impostazioni → Modello dati**
2. Seleziona l'oggetto che stai importando
3. Fai clic su **+ Aggiungi campo**
4. Crea il campo personalizzato con il tipo appropriato
5. Carica di nuovo il tuo file
<Note>The CSV import creates records, not fields. All fields must exist before importing.</Note>
<Note>L'importazione CSV crea record, non campi. Tutti i campi devono esistere prima dell'importazione.</Note>
---
## Error: User Relation Empty
## Errore: relazione utente vuota
### What It Means
### Cosa significa
You're trying to assign a record to a user (Owner, Assignee) but the relation isn't being mapped.
Stai tentando di assegnare un record a un utente (Proprietario, Assegnatario) ma la relazione non viene mappata.
### Common Causes
### Cause comuni
1. **User hasn't accepted their invitation** — the user doesn't exist in Twenty yet
2. **Using user ID from old system** — Twenty can't match IDs from another system
3. **Wrong email format** — the email doesn't match the user's Twenty account
1. **L'utente non ha accettato l'invito** — l'utente non esiste ancora in Twenty
2. **Uso dell'ID utente dal vecchio sistema** — Twenty non può abbinare gli ID di un altro sistema
3. **Formato email errato** — l'email non corrisponde all'account Twenty dell'utente
### How to Fix
### Come risolvere
1. Ensure all users have **accepted their invitation** to your Twenty workspace
2. Use the user's **email address** (not their name or old system ID)
3. Use the same email they used to join Twenty
1. Assicurati che tutti gli utenti abbiano **accettato il loro invito** al tuo spazio di lavoro Twenty
2. Usa l'**indirizzo email** dell'utente (non il nome o l'ID del vecchio sistema)
3. Usa la stessa email che hanno utilizzato per aderire a Twenty
<Warning>
**Users must accept invitations before importing.**
**Gli utenti devono accettare gli inviti prima di importare.**
If a user hasn't accepted their invitation, records referencing them will have empty user relations.
Se un utente non ha accettato l'invito, i record che fanno riferimento a quell'utente avranno relazioni utente vuote.
</Warning>
---
## Pre-Import Checklist
## Lista di controllo pre-importazione
Avoid errors by checking these before importing:
Evita errori verificando questi elementi prima di importare:
### File Requirements
### Requisiti del file
<Check>File is CSV, XLSX, or XLS format</Check>
<Check>File has fewer than 10,000 records</Check>
<Check>File uses UTF-8 encoding</Check>
<Check>Il file è in formato CSV, XLSX o XLS</Check>
<Check>Il file contiene meno di 10.000 record</Check>
<Check>Il file utilizza la codifica UTF-8</Check>
### Data Quality
### Qualità dei dati
<Check>No duplicate emails (for People)</Check>
<Check>No duplicate domains (for Companies)</Check>
<Check>All dates use consistent format</Check>
<Check>All domains use `https://domain.com` format</Check>
<Check>Nessuna email duplicata (per Persone)</Check>
<Check>Nessun dominio duplicato (per Aziende)</Check>
<Check>Tutte le date utilizzano un formato coerente</Check>
<Check>Tutti i domini utilizzano il formato `https://domain.com`</Check>
### Field Formats
### Formati dei campi
<Check>Boolean fields use `TRUE` or `FALSE` (uppercase)</Check>
<Check>Select fields use API names, not display labels</Check>
<Check>Phone fields have all required columns</Check>
<Check>Currency fields have both Amount and Currency Code</Check>
<Check>I campi booleani utilizzano `TRUE` o `FALSE` (maiuscolo)</Check>
<Check>I campi Selezione utilizzano i nomi API, non le etichette visualizzate</Check>
<Check>I campi Telefono hanno tutte le colonne richieste</Check>
<Check>I campi Valuta hanno sia Importo che Codice valuta</Check>
### Relazioni
<Check>Parent records imported before child records</Check>
<Check>Relation columns reference existing records</Check>
<Check>Domain format matches Twenty's format exactly</Check>
<Check>I record genitore sono importati prima dei record figlio</Check>
<Check>Le colonne di relazione fanno riferimento a record esistenti</Check>
<Check>Il formato del dominio corrisponde esattamente al formato di Twenty</Check>
### Modello dati
<Check>All custom fields exist in Settings → Data Model</Check>
<Check>Select options exist before importing</Check>
<Check>Tutti i campi personalizzati esistono in Impostazioni → Modello dati</Check>
<Check>Le opzioni Selezione esistono prima dell'importazione</Check>
---
## Still Having Issues?
## Hai ancora problemi?
If you've tried the above solutions:
Se hai provato le soluzioni sopra:
1. **Download the sample file** — see the exact format Twenty expects
2. **Export existing records** — compare your file to working data
3. **Test with a small batch** — try 5-10 rows first
4. **Check the reference articles:**
* [Field Mapping](/l/it/user-guide/data-migration/capabilities/field-mapping)
* [Uniqueness Constraints](/l/it/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Import Relations](/l/it/user-guide/data-migration/capabilities/import-relations)
* [Error Handling](/l/it/user-guide/data-migration/capabilities/error-handling)
1. **Scarica il file di esempio** — vedi il formato esatto che Twenty si aspetta
2. **Esporta i record esistenti** — confronta il tuo file con i dati funzionanti
3. **Esegui un test con un piccolo lotto** — prova prima con 5-10 righe
4. **Consulta gli articoli di riferimento:**
* [Mappatura dei campi](/l/it/user-guide/data-migration/capabilities/field-mapping)
* [Vincoli di unicità](/l/it/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Importazione delle relazioni](/l/it/user-guide/data-migration/capabilities/import-relations)
* [Gestione degli errori](/l/it/user-guide/data-migration/capabilities/error-handling)
@@ -1,43 +1,43 @@
---
title: Migrazione da altri CRM
description: Step-by-step guide to migrate your data from any CRM to Twenty.
description: Guida passo-passo per migrare i tuoi dati da qualsiasi CRM a Twenty.
---
## Panoramica
This guide walks you through migrating your data from any CRM to Twenty. The process involves auditing your data, preparing your Twenty workspace, exporting from your current system, and importing into Twenty.
Questa guida ti accompagna nella migrazione dei tuoi dati da qualsiasi CRM a Twenty. Il processo prevede la revisione dei tuoi dati, la preparazione del tuo spazio di lavoro Twenty, l'esportazione dal sistema attuale e l'importazione in Twenty.
<Note>Views, workflows, and permissions must be recreated manually after migration. Plan time for this configuration work.</Note>
<Note>Le viste, i flussi di lavoro e le autorizzazioni devono essere ricreati manualmente dopo la migrazione. Pianifica il tempo per questo lavoro di configurazione.</Note>
## Step 1: Audit Your Current Data
## Passaggio 1: Verifica dei tuoi dati correnti
Migration is an opportunity for a fresh start. Don't bring over clutter.
La migrazione è un'opportunità per un nuovo inizio. Non trasferire il superfluo.
**What to keep:**
**Cosa mantenere:**
* Active contacts and companies
* Open opportunities and deals
* Important notes and activities
* Custom fields you actually use
* Contatti e aziende attivi
* Opportunità e trattative aperte
* Note e attività importanti
* Campi personalizzati che utilizzi effettivamente
**What to leave behind:**
**Cosa lasciare indietro:**
* Outdated contacts (no activity in 2+ years)
* Duplicate records
* Test data
* Unused custom fields
* Contatti obsoleti (nessuna attività da 2 o più anni)
* Record duplicati
* Dati di test
* Campi personalizzati inutilizzati
## Step 2: Map Your Data Model
## Passaggio 2: Mappa il tuo modello di dati
Create a mapping document between your current CRM and Twenty:
Crea un documento di mappatura tra il tuo CRM attuale e Twenty:
| Your CRM | Twenty |
| ---------------------- | -------------------- |
| Account / Organization | **Company** |
| Contact / Person | **People** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| Il tuo CRM | Twenty |
| ------------------------ | -------------------- |
| Account / Organizzazione | **Azienda** |
| Contatto / Persona | **Persone** |
| Trattativa / Opportunità | **Opportunità** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
**For each field, document:**
@@ -1,40 +1,40 @@
---
title: Workflow Triggers
description: Learn about the different triggers that start your workflows.
title: Attivatori dei flussi di lavoro
description: Scopri i diversi attivatori che avviano i tuoi flussi di lavoro.
---
## About Triggers
## Informazioni sugli attivatori
Workflows always start with a single trigger that defines when the automation should run.
I flussi di lavoro iniziano sempre con un singolo attivatore che definisce quando deve essere eseguita l'automazione.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Advanced objects are supported!** Beyond standard CRM objects (People, Companies, Opportunities), you can also trigger workflows and perform actions on:
**Gli oggetti avanzati sono supportati!** Oltre agli oggetti CRM standard (Persone, Aziende, Opportunità), puoi anche avviare flussi di lavoro ed eseguire azioni su:
* Membri dello spazio di lavoro
* Calendar Events
* Messages (Emails)
* Tasks, Notes, and many other system objects
* Eventi del calendario
* Messaggi (email)
* Attività, note e molti altri oggetti di sistema
This opens up powerful automations like notifying team members when calendar events are created, or processing incoming emails automatically.
Questo consente potenti automazioni, come notificare i membri del team quando vengono creati eventi del calendario oppure elaborare automaticamente le email in arrivo.
</Tip>
## Record Creato
Starts the workflow when a new record is created in a selected object (People, Companies, Opportunities, or any custom object).
Avvia il flusso di lavoro quando viene creato un nuovo record in un oggetto selezionato (Persone, Aziende, Opportunità o un qualsiasi oggetto personalizzato).
**Configuration**: Select the object type to monitor for new records.
**Configurazione**: Seleziona il tipo di oggetto da monitorare per i nuovi record.
<Note>
* This trigger is great for records created by csv, mailbox and calendar synchronization, API.
* **It is not recommended for records created manually**: with this trigger, workflows start as soon as the record is created. Since Twenty UI offers auto-save on the fly (there is not an edit mode and then a validation to save records), the workflow will be triggered before the user inputs all the fields.
To trigger this workflow on records created manually, it is recommended to use the trigger `Record is created or updated` instead.
* Questo attivatore è ottimo per i record creati tramite csv, sincronizzazione della casella di posta e del calendario, API.
* **Non è consigliato per i record creati manualmente**: con questo attivatore, i flussi di lavoro iniziano non appena il record viene creato. Poiché Twenty UI offre il salvataggio automatico al volo (non esiste una modalità di modifica e poi una validazione per salvare i record), il flusso di lavoro verrà attivato prima che l'utente inserisca tutti i campi.
Per attivare questo flusso di lavoro sui record creati manualmente, si consiglia invece di usare l'attivatore `Record is created or updated`.
</Note>
## Record Aggiornato
Starts the workflow when changes are made to an existing record.
Avvia il flusso di lavoro quando vengono apportate modifiche a un record esistente.
**Configurazione**:
@@ -43,7 +43,7 @@ Starts the workflow when changes are made to an existing record.
## Record Aggiornato o Creato
Starts the workflow when a record is either created or updated in a selected object.
Avvia il flusso di lavoro quando un record viene creato o aggiornato in un oggetto selezionato.
**Perché è Importante:** Questo trigger è particolarmente utile perché i record creati tramite diversi metodi si comportano diversamente:
@@ -54,35 +54,35 @@ Starts the workflow when a record is either created or updated in a selected obj
* Seleziona il tipo di oggetto da monitorare
* Specifica opzionalmente quali campi monitorare per le modifiche
* The workflow will trigger both on initial creation and any subsequent updates
* Il flusso di lavoro verrà attivato sia alla creazione iniziale sia a qualsiasi aggiornamento successivo
## Record Eliminato
Starts the workflow when a record is removed from an object.
Avvia il flusso di lavoro quando un record viene rimosso da un oggetto.
**Configuration**: Select the object type to monitor for deletions.
**Configurazione**: Seleziona il tipo di oggetto da monitorare per le eliminazioni.
## Manual Trigger
## Attivatore manuale
Starts the workflow when triggered by a user action. This trigger can be accessed through the `Cmd+K` menu or via a custom button that will be displayed in the top navbar after selecting record(s).
Avvia il flusso di lavoro quando viene attivato da un'azione dell'utente. È possibile accedere a questo attivatore tramite il menu `Cmd+K` o tramite un pulsante personalizzato che verrà visualizzato nella barra di navigazione superiore dopo aver selezionato uno o più record.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Configurazione di Disponibilità:**
Scegli come il flusso di lavoro dovrebbe gestire la selezione dei record:
* **Globale:** Non è richiesto alcun record per attivare questo flusso di lavoro. The workflow is triggered from the command menu `Cmd + K` anywhere (from any object) and does not use record(s) as input.
* **Globale:** Non è richiesto alcun record per attivare questo flusso di lavoro. Il flusso di lavoro viene attivato dal menu comandi `Cmd + K` ovunque (da qualsiasi oggetto) e non utilizza record come input.
* **Single**: The selected record(s) will be passed to your workflow. Questo è configurato per un determinato oggetto. Diversi record possono essere selezionati prima di attivare il flusso di lavoro. The workflow will run from beginning to end as many times as there are records selected.
* **Singolo**: I record selezionati verranno passati al tuo flusso di lavoro. Questo è configurato per un determinato oggetto. Diversi record possono essere selezionati prima di attivare il flusso di lavoro. Il flusso di lavoro verrà eseguito dall'inizio alla fine tante volte quanti sono i record selezionati.
<Note>
**Soft limit: 100 runs/minute**. Beyond this, workflows remain in "Not Started" status and are processed gradually—either by a background job or when another workflow enters the queue. This means you can select more than 100 records with a Single trigger; execution will just be slower.
**Limite soft: 100 esecuzioni/minuto**. Oltre questa soglia, i flussi di lavoro rimangono nello stato "Not Started" e vengono elaborati gradualmente—o da un processo in background oppure quando un altro flusso di lavoro entra in coda. Questo significa che puoi selezionare più di 100 record con un attivatore Singolo; l'esecuzione sarà semplicemente più lenta.
</Note>
* **Bulk**: I record selezionati verranno passati al tuo flusso di lavoro. Questo è configurato per un determinato oggetto. Diversi record possono essere selezionati prima di attivare il flusso di lavoro. The workflow will run once, providing the entire list of records as input. This means the workflow needs to contain an [Iterator action](/l/it/user-guide/workflows/capabilities/workflow-actions#iterator).
* **Bulk**: I record selezionati verranno passati al tuo flusso di lavoro. Questo è configurato per un determinato oggetto. Diversi record possono essere selezionati prima di attivare il flusso di lavoro. Il flusso di lavoro verrà eseguito una sola volta, fornendo l'intero elenco di record come input. Questo significa che il flusso di lavoro deve contenere un'[azione Iteratore](/l/it/user-guide/workflows/capabilities/workflow-actions#iterator).
<Note>
This is more advanced, and best for people who want to optimize the number of workflow runs.
È più avanzato ed è ideale per chi vuole ottimizzare il numero di esecuzioni del flusso di lavoro.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
@@ -95,12 +95,12 @@ Scegli come il flusso di lavoro dovrebbe gestire la selezione dei record:
**Metodi di Accesso**:
* `Cmd+K` menu to find and launch manual workflows
* Menu `Cmd+K` per trovare e avviare flussi di lavoro manuali
* Pulsante personalizzato nella barra di navigazione in alto (se configurato)
## Time-Based Trigger: On a Schedule
## Attivatore basato sul tempo: Su pianificazione
Starts the workflow on a recurring basis you define.
Avvia il flusso di lavoro con una ricorrenza da te definita.
**Configurazione**:
@@ -108,29 +108,29 @@ Starts the workflow on a recurring basis you define.
* Inserisci un valore o usa espressioni cron personalizzate per pianificazioni avanzate
<Note>
**Timezone**: Scheduled workflows run in **UTC**. When setting hours for daily schedules, convert your local time to UTC.
**Fuso orario**: I flussi di lavoro pianificati vengono eseguiti in **UTC**. Quando imposti gli orari per le pianificazioni giornaliere, converti la tua ora locale in UTC.
</Note>
## External Trigger: Webhook
## Attivatore esterno: Webhook
Starts the workflow when a GET or POST request is received from an external service.
Avvia il flusso di lavoro quando viene ricevuta una richiesta GET o POST da un servizio esterno.
<img src="/images/user-guide/workflows/webhook_trigger.png" style={{width:'100%'}} />
**Configurazione**:
* The workflow provides a unique webhook URL—copy this and add it to your external system as the endpoint to call.
* For POST requests, define the expected body structure so Twenty knows what data to expect. Add here the fields you will receive that will be needed below in your workflow.
* Configure authentication (coming soon).
* Il flusso di lavoro fornisce un URL webhook univoco: copialo e aggiungilo al tuo sistema esterno come endpoint da chiamare.
* Per le richieste POST, definisci la struttura del body prevista in modo che Twenty sappia quali dati aspettarsi. Aggiungi qui i campi che riceverai e che saranno necessari più avanti nel tuo flusso di lavoro.
* Configura l'autenticazione (presto disponibile).
## Choosing the Right Trigger
## Scegliere l'attivatore giusto
| Use Case | Recommended Trigger |
| --------------------------- | -------------------------- |
| New leads need processing | Record Creato |
| Data changes need sync | Record Aggiornato |
| Import/manual data handling | Record Aggiornato o Creato |
| Cleanup after deletion | Record Eliminato |
| User-initiated action | Avvia Manualmente |
| Recurring reports | On a Schedule |
| External integration | Webhook or On a Schedule |
| Caso d'uso | Attivatore consigliato |
| ------------------------------------- | --------------------------- |
| Nuovi lead da elaborare | Record Creato |
| Modifiche ai dati da sincronizzare | Record Aggiornato |
| Gestione dati da importazione/manuale | Record Aggiornato o Creato |
| Pulizia dopo l'eliminazione | Record Eliminato |
| Azione avviata dall'utente | Avvia Manualmente |
| Report ricorrenti | Su pianificazione |
| Integrazione esterna | Webhook o Su pianificazione |
@@ -1,170 +1,170 @@
---
title: Risoluzione dei problemi del flusso di lavoro
description: Common workflow issues and how to resolve them.
description: Problemi comuni dei flussi di lavoro e come risolverli.
---
## Problemi comuni e soluzioni
### Flusso di lavoro non attivato
**Symptoms**: Your workflow doesn't run when you expect it to.
**Sintomi**: Il flusso di lavoro non viene eseguito quando previsto.
**Possible Causes**:
**Possibili cause**:
1. **Workflow not activated**: Ensure the workflow is set to "Active" not "Draft"
2. **Trigger conditions not met**: Verify the trigger matches your expected event
3. **Field not monitored**: For "Record is Updated" triggers, ensure the specific field is being watched
4. **Permissions**: Check you have permission to run workflows
1. **Flusso di lavoro non attivato**: Assicurati che il flusso di lavoro sia impostato su "Attivo" e non su "Bozza"
2. **Condizioni del trigger non soddisfatte**: Verifica che il trigger corrisponda all'evento previsto
3. **Campo non monitorato**: Per i trigger "Record is Updated", assicurati che il campo specifico sia monitorato
4. **Autorizzazioni**: Verifica di avere l'autorizzazione per eseguire i flussi di lavoro
**Soluzioni**:
* Verify workflow status in the workflow list
* Test with the specific action you expect to trigger it
* Review trigger configuration
* Contact your admin about permissions
* Verifica lo stato del flusso di lavoro nell'elenco dei flussi di lavoro
* Esegui un test con l'azione specifica che dovrebbe attivarlo
* Rivedi la configurazione del trigger
* Contatta l'amministratore per le autorizzazioni
### Workflow Triggers Too Early (Empty Fields)
### Il flusso di lavoro si attiva troppo presto (campi vuoti)
**Symptoms**: When manually creating a record in the UI, your workflow triggers before you've had time to fill in all the fields. The workflow runs with mostly empty field values.
**Sintomi**: Quando crei manualmente un record nell'interfaccia utente, il flusso di lavoro si attiva prima che tu abbia il tempo di compilare tutti i campi. Il flusso di lavoro viene eseguito con valori di campo per la maggior parte vuoti.
**Why this happens**: Twenty saves everything in real-time — there's no separate "edit" vs "read" mode. When you create a record, it's saved immediately, triggering the "Record is created" event before you can fill in additional fields.
**Perché accade**: Twenty salva tutto in tempo reale — non esiste una modalità separata "modifica" vs "lettura". Quando crei un record, questo viene salvato immediatamente, attivando l'evento "Record is created" prima che tu possa compilare i campi aggiuntivi.
**When "Record is created" works well**:
**Quando "Record is created" funziona bene**:
* Records created via API calls (fields are populated in a single request)
* Records created via import
* Automated record creation from other workflows
* Record creati tramite chiamate API (i campi vengono popolati in un'unica richiesta)
* Record creati tramite importazione
* Creazione automatizzata di record da altri flussi di lavoro
**Solution**: For records created manually in the UI, use **"Record is created or updated"** as your trigger instead. This way:
**Soluzione**: Per i record creati manualmente nell'interfaccia utente, usa **"Record is created or updated"** come trigger. In questo modo:
* The workflow triggers after the user has finished filling in and saving the fields
* You get the complete data rather than empty values
* Il flusso di lavoro si attiva dopo che l'utente ha terminato di compilare e salvare i campi
* Ottieni i dati completi invece di valori vuoti
<Tip>
If you only want the workflow to run once per record, add a Filter action to check a field like `createdAt equals updatedAt` (first save) or use a custom checkbox field to track if the workflow has already run.
Se desideri che il flusso di lavoro venga eseguito solo una volta per record, aggiungi un'azione Filter per verificare un campo come `createdAt equals updatedAt` (primo salvataggio) oppure usa un campo casella di controllo personalizzato per tracciare se il flusso di lavoro è già stato eseguito.
</Tip>
### Actions Failing
### Azioni non riuscite
**Symptoms**: Workflow runs but some actions fail.
**Sintomi**: Il flusso di lavoro viene eseguito ma alcune azioni non riescono.
**Possible Causes**:
**Possibili cause**:
1. **Missing data**: Required fields are empty
2. **Invalid references**: Variables from previous steps don't exist
3. **API errors**: External services returning errors
4. **Permission issues**: Action requires permissions you don't have
1. **Dati mancanti**: I campi obbligatori sono vuoti
2. **Riferimenti non validi**: Le variabili dei passaggi precedenti non esistono
3. **Errori API**: I servizi esterni restituiscono errori
4. **Problemi di autorizzazioni**: L'azione richiede autorizzazioni che non possiedi
**Soluzioni**:
* Check the workflow run details for error messages
* Verify all required fields have values
* Test API connections independently
* Review role permissions
* Controlla i dettagli dell'esecuzione del flusso di lavoro per eventuali messaggi di errore
* Verifica che tutti i campi obbligatori abbiano un valore
* Testa le connessioni API in modo indipendente
* Rivedi le autorizzazioni del ruolo
### HTTP Request Errors
### Errori delle richieste HTTP
**Symptoms**: HTTP Request actions fail or return unexpected results.
**Sintomi**: Le azioni HTTP Request non riescono o restituiscono risultati inattesi.
**Common Error Codes**:
**Codici di errore comuni**:
* **400**: Bad request - check your request body format
* **401**: Unauthorized - verify API key
* **403**: Forbidden - check API permissions
* **404**: Not found - verify endpoint URL
* **429**: Too many requests - implement rate limiting
* **500**: Server error - external service issue
* **400**: Richiesta non valida - controlla il formato del corpo della richiesta
* **401**: Non autorizzato - verifica la chiave API
* **403**: Vietato - controlla le autorizzazioni dell'API
* **404**: Non trovato - verifica l'URL dell'endpoint
* **429**: Troppe richieste - implementa la limitazione della frequenza
* **500**: Errore del server - problema del servizio esterno
**Soluzioni**:
* Verify API endpoint URL
* Check authentication headers
* Test the API call outside of Twenty first
* Add error handling in Code actions
* Verifica l'URL dell'endpoint API
* Controlla le intestazioni di autenticazione
* Esegui prima il test della chiamata API al di fuori di Twenty
* Aggiungi la gestione degli errori nelle azioni di Codice
### Code Action Errors
### Errori delle azioni di Codice
**Symptoms**: JavaScript code fails to execute.
**Sintomi**: Il codice JavaScript non viene eseguito.
**Common Issues**:
**Problemi comuni**:
1. **Syntax errors**: Typos or invalid JavaScript
2. **Undefined variables**: Referencing variables that don't exist
3. **Type errors**: Operations on wrong data types
4. **Timeouts**: Code taking too long to execute
1. **Errori di sintassi**: Refusi o JavaScript non valido
2. **Variabili non definite**: Riferimento a variabili che non esistono
3. **Errori di tipo**: Operazioni su tipi di dati errati
4. **Timeout**: Il codice impiega troppo tempo per essere eseguito
**Soluzioni**:
* Use the built-in code editor validation
* Test code logic in a JavaScript console first
* Add console.log statements for debugging
* Simplify complex operations
* Usa la convalida dell'editor di codice integrato
* Verifica prima la logica del codice in una console JavaScript
* Aggiungi istruzioni console.log per il debug
* Semplifica le operazioni complesse
### Email Not Sending
### Le email non vengono inviate
**Symptoms**: Send Email action doesn't deliver emails.
**Sintomi**: L'azione Invia email non recapita le email.
**Possible Causes**:
**Possibili cause**:
1. **No email account connected**: Check Settings → Accounts
2. **Invalid email address**: Recipient email is malformed
3. **Sending limits**: Email provider rate limits reached
4. **Spam filters**: Emails being blocked
1. **Nessun account email connesso**: Controlla Impostazioni → Account
2. **Indirizzo email non valido**: L'email del destinatario non è valida
3. **Limiti di invio**: Raggiunti i limiti di frequenza del provider email
4. **Filtri antispam**: Le email vengono bloccate
**Soluzioni**:
* Verify email account connection
* Validate recipient email addresses
* Check email provider limits
* Review email content for spam triggers
* Verifica la connessione dell'account email
* Convalida gli indirizzi email dei destinatari
* Controlla i limiti del provider email
* Rivedi il contenuto dell'email per possibili trigger di spam
## Debugging Workflows
## Debug dei flussi di lavoro
### Using Workflow Runs
### Utilizzo delle esecuzioni del flusso di lavoro
1. Go to the workflow editor
2. Open the **Runs** panel
3. Find the failed run
4. Click to see step-by-step details
5. Review error messages and output data
1. Vai all'editor dei flussi di lavoro
2. Apri il pannello **Esecuzioni**
3. Trova l'esecuzione non riuscita
4. Fai clic per vedere i dettagli passo dopo passo
5. Rivedi i messaggi di errore e i dati di output
### Testing Individual Steps
### Test dei singoli passaggi
1. For Code actions, use the **Test** button
2. For HTTP requests, test the endpoint separately
3. Create test records to trigger workflows
4. Use manual triggers for controlled testing
1. Per le azioni di Codice, usa il pulsante **Test**
2. Per le richieste HTTP, testa separatamente l'endpoint
3. Crea record di test per attivare i flussi di lavoro
4. Usa trigger manuali per test controllati
### Common Debugging Patterns
### Schemi comuni di debug
**Add logging**:
Use Code actions to log intermediate values for debugging.
**Aggiungi logging**:
Usa le azioni di Codice per registrare valori intermedi per il debug.
**Isolate steps**:
Test each step independently to identify failures.
**Isola i passaggi**:
Testa ogni passaggio in modo indipendente per identificare gli errori.
**Check data flow**:
Verify that each step receives the expected input data.
**Controlla il flusso dei dati**:
Verifica che ogni passaggio riceva i dati di input previsti.
## Best Practices to Avoid Issues
## Buone pratiche per evitare problemi
### Before Activation
### Prima dell'attivazione
* Test thoroughly in draft mode
* Validate all API connections
* Review trigger conditions carefully
* Document expected behavior
* Esegui test approfonditi in modalità bozza
* Convalida tutte le connessioni API
* Rivedi attentamente le condizioni del trigger
* Documenta il comportamento previsto
### During Development
### Durante lo sviluppo
* Use descriptive step names
* Add comments in Code actions
* Test with realistic data
* Plan for edge cases
* Usa nomi di passaggio descrittivi
* Aggiungi commenti nelle azioni di Codice
* Testa con dati realistici
* Pianifica i casi limite
### After Activation
### Dopo l'attivazione
* Monitor initial runs closely
* Set up alerts for failures
* Review run history regularly
* Keep workflows simple when possible
* Monitora attentamente le esecuzioni iniziali
* Configura avvisi per gli errori
* Rivedi regolarmente la cronologia delle esecuzioni
* Mantieni i flussi di lavoro semplici quando possibile