i18n - docs translations (#16799)

Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
github-actions[bot]
2025-12-25 10:12:14 +01:00
committed by GitHub
parent 06d0ac13c4
commit 6547c11862
59 changed files with 3139 additions and 3139 deletions
@@ -1,42 +1,42 @@
---
title: Connect Several Mailboxes per User
description: Connect multiple email accounts for a single user.
title: ربط عدة صناديق بريد لكل مستخدم
description: اربط عدة حسابات بريد إلكتروني لمستخدم واحد.
---
## نظرة عامة
Twenty supports **unlimited email accounts per user**. This is useful if you manage multiple inboxes, such as:
يدعم Twenty **عدد غير محدود من حسابات البريد الإلكتروني لكل مستخدم**. هذا مفيد إذا كنت تدير عدة صناديق بريد وارد، مثل:
* Personal work email + shared team inbox
* Multiple client-facing email addresses
* Different email accounts for different roles
* بريد العمل الشخصي + صندوق وارد مشترك للفريق
* عدة عناوين بريد إلكتروني موجهة للعملاء
* حسابات بريد إلكتروني مختلفة لأدوار مختلفة
## How to Add Multiple Mailboxes
## كيفية إضافة صناديق بريد متعددة
1. اذهب إلى **الإعدادات → الحسابات**
2. انقر على **إضافة حساب**
3. Connect your additional Google or Microsoft account
4. Configure sync settings for this mailbox
5. Repeat for each mailbox you want to connect
3. اربط حساب Google أو Microsoft الإضافي لديك
4. قم بتكوين إعدادات المزامنة لهذا الصندوق
5. كرر ذلك لكل صندوق بريد تريد ربطه
## Managing Multiple Accounts
## إدارة حسابات متعددة
Each connected mailbox has its own settings:
لكل صندوق بريد متصل إعداداته الخاصة:
* **Email visibility**: Choose what teammates can see
* **Contact auto-creation**: Enable/disable per mailbox
* **Folder selection**: Choose which folders to sync (Lab feature)
* **عرض البريد الإلكتروني**: اختر ما يمكن لزملائك رؤيته
* **الإنشاء التلقائي لجهات الاتصال**: تمكين/تعطيل لكل صندوق بريد
* **اختيار المجلدات**: اختر المجلدات التي تريد مزامنتها (ميزة مختبرية)
## How Emails Appear
## كيف تظهر رسائل البريد الإلكتروني
Emails from all your connected mailboxes are synced to Twenty and appear on:
تتم مزامنة رسائل البريد الإلكتروني من جميع صناديق البريد المتصلة لديك مع Twenty وتظهر في:
* **People records**: Based on the contact's email address
* **Company records**: Based on the email domain
* **Opportunities**: Based on the linked company
* **سجلات الأشخاص**: بناء على عنوان البريد الإلكتروني لجهة الاتصال
* **سجلات الشركات**: بناء على نطاق البريد الإلكتروني
* **الفرص**: بناء على الشركة المرتبطة
<Note>Each email shows which mailbox it was sent from/received to, so you can track which account was used for each communication.</Note>
<Note>تظهر كل رسالة صندوق البريد الذي أرسلت منه/استقبلت فيه، بحيث يمكنك تتبع أي حساب تم استخدامه في كل تواصل.</Note>
## Important Notes
## ملاحظات مهمة
<Warning>Only true mailboxes can be connected. Email aliases that forward to another mailbox cannot be connected separately—they'll sync through the main mailbox.</Warning>
<Warning>يمكن ربط صناديق البريد الحقيقية فقط. لا يمكن ربط الأسماء المستعارة للبريد الإلكتروني التي تعيد التوجيه إلى صندوق بريد آخر بشكل منفصل — ستتم مزامنتها عبر صندوق البريد الرئيسي.</Warning>
@@ -1,6 +1,6 @@
---
title: لوحات القيادة
description: Learn the basics of reporting and dashboards in Twenty.
description: تعلّم أساسيات إعداد التقارير ولوحات المعلومات في Twenty.
image: /images/user-guide/reporting/pie-chart.png
---
@@ -8,72 +8,72 @@ image: /images/user-guide/reporting/pie-chart.png
<img src="/images/user-guide/reporting/pie-chart.png" alt="لوحات القيادة" />
</Frame>
## Understanding Dashboards
## فهم لوحات المعلومات
Dashboards in Twenty provide a visual way to track your key performance metrics and gain insights from your CRM data.
توفّر لوحات المعلومات في Twenty طريقة مرئية لتتبّع مقاييس الأداء الأساسية لديك واستخلاص الرؤى من بيانات إدارة علاقات العملاء (CRM) لديك.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="لوحات القيادة" />
## Key Concepts
## المفاهيم الأساسية
### لوحات القيادة
A dashboard is a collection of tabs that display your CRM data at a glance. You can create multiple dashboards for different purposes:
لوحة المعلومات عبارة عن مجموعة من علامات التبويب التي تعرض بيانات إدارة علاقات العملاء (CRM) لديك بنظرة سريعة. يمكنك إنشاء عدة لوحات معلومات لأغراض مختلفة:
* Sales performance
* Team activity
* Pipeline health
* Custom metrics
* أداء المبيعات
* نشاط الفريق
* صحة مسار الصفقات
* مقاييس مخصصة
### علامات التبويب
Tabs allow you to organize your dashboard into sections. Each tab contains one or more widgets.
تتيح لك علامات التبويب تنظيم لوحة المعلومات إلى أقسام. تحتوي كل علامة تبويب على أداة واحدة أو أكثر.
### الأدوات
Widgets are individual visualizations that display specific data. Types include:
الأدوات هي تصورات مرئية فردية تعرض بيانات محددة. تشمل الأنواع:
* Bar charts
* Pie charts
* Line charts
* Number metrics
* مخططات الأعمدة
* مخططات دائرية
* مخططات خطية
* مقاييس رقمية
* iFrames
<Note>
**Current limitations**:
**القيود الحالية**:
* Exporting dashboards and sharing with external users (non-Twenty users) are not available at the moment.
* Gauge charts and tables are not yet available.
* تصدير لوحات المعلومات ومشاركتها مع المستخدمين الخارجيين (غير مستخدمي Twenty) غير متاحين في الوقت الحالي.
* مخططات القياس والجداول غير متاحة بعد.
</Note>
## البدء
### Creating Your First Dashboard
### إنشاء أول لوحة معلومات لك
1. Navigate to the **Dashboards** section
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Add tabs to organize your content
5. Add widgets to display your data
1. انتقل إلى قسم **لوحات المعلومات**
2. انقر **+ لوحة معلومات جديدة**
3. امنح لوحة المعلومات اسمًا
4. أضِف علامات تبويب لتنظيم محتواك
5. أضِف أدوات لعرض بياناتك
6. حفظ
### Adding Widgets
### إضافة أدوات
1. Open a tab on your dashboard
2. Click **+ Add Widget**
3. Select the widget type
4. Choose the data source (object)
5. Configure the widget settings
6. Save and view your widget
1. افتح علامة تبويب في لوحة المعلومات الخاصة بك
2. انقر **+ إضافة أداة**
3. اختر نوع الأداة
4. اختر مصدر البيانات (الكائن)
5. كوّن إعدادات الأداة
6. احفظ واعرض أداتك
## أفضل الممارسات
* **Start simple**: Begin with a few key metrics and add more over time
* **Focus on actionable data**: Display metrics that drive decisions
* **Regular review**: Check your dashboards regularly to spot trends
* **Share with team**: Make dashboards visible to relevant team members
* **ابدأ ببساطة**: ابدأ ببعض المقاييس الأساسية وأضف المزيد مع مرور الوقت
* **ركّز على البيانات القابلة للتنفيذ**: اعرض المقاييس التي تقود اتخاذ القرارات
* **مراجعة منتظمة**: تحقّق من لوحات المعلومات بانتظام لاكتشاف الاتجاهات
* **المشاركة مع الفريق**: اجعل لوحات المعلومات مرئية لأعضاء الفريق المعنيين
## الخطوات التالية
* [Widgets and visualizations](/l/ar/user-guide/dashboards/capabilities/widgets)
* [Dashboards FAQ](/l/ar/user-guide/dashboards/how-tos/dashboards-faq)
* [الأدوات والتصورات](/l/ar/user-guide/dashboards/capabilities/widgets)
* [الأسئلة الشائعة حول لوحات المعلومات](/l/ar/user-guide/dashboards/how-tos/dashboards-faq)
@@ -147,96 +147,96 @@ Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
<Warning>
**طابق معرّفًا فريدًا واحدًا فقط للعلاقات.**
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
لا تقم بتعيين كلٍّ من `companyId` و`companyDomain` معًا. اختر واحدًا — ويفضَّل استخدام النطاق لأنه مقروء للبشر.
</Warning>
## Step 5: Map Select Field Values
## الخطوة 5: تعيين قيم حقل الاختيار
If you have Select or Multi-Select fields (like Lead Source):
إذا كانت لديك حقول اختيار أو اختيار متعدد (مثل مصدر العميل المحتمل):
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. تعرض Twenty قيمك إلى جانب الخيارات الموجودة
2. طابِق كل قيمة في ملفك مع خيار في Twenty
3. أو أنشئ خيارات جديدة عند الحاجة
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
تستخدم خيارات الاختيار **أسماء API**، وليس تسميات العرض. تحقّق من **الإعدادات → نموذج البيانات** → فعِّل **الوضع المتقدم** لمشاهدة أسماء API.
</Note>
## Step 6: Review and Fix Errors
## الخطوة 6: مراجعة الأخطاء وإصلاحها
Before completing the import, Twenty validates your data:
قبل إكمال الاستيراد، تقوم Twenty بالتحقق من صحة بياناتك:
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. انقر على **الخطوات التالية**
2. يتم تمييز الصفوف التي تحتوي على أخطاء باللون **الأصفر**
3. **أصلِح الأخطاء مباشرةً** — انقر على خلية وعدّل القيمة
4. **أزِل الصفوف التي بها مشكلات** — انقر على X لتخطي ذلك الصف
### Common Contact Import Errors
### أخطاء شائعة عند استيراد جهات الاتصال
| خطأ | Cause | Solution |
| -------------------------- | -------------------------------------- | ------------------------------------------- |
| **Duplicate email** | Email already exists in Twenty or file | Remove duplicate or update existing record |
| **Invalid email format** | Email format incorrect | Fix to `name@domain.com` |
| **Relation not found** | Company doesn't exist | Import Companies first or fix the reference |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| خطأ | السبب | الحل |
| -------------------------------- | ---------------------------------------------------- | ------------------------------------ |
| **بريد إلكتروني مكرر** | البريد الإلكتروني موجود مسبقًا في Twenty أو في الملف | أزِل التكرار أو حدِّث السجل الموجود |
| **تنسيق بريد إلكتروني غير صالح** | تنسيق البريد الإلكتروني غير صحيح | صحّحه إلى `name@domain.com` |
| **العلاقة غير موجودة** | الشركة غير موجودة | استورد الشركات أولًا أو أصلِح المرجع |
| **حقل مطلوب مفقود** | الحقل المطلوب فارغ | املأ القيمة أو أزِل الصف |
## Step 7: Complete the Import
## الخطوة 7: إكمال الاستيراد
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records and their Company links
1. راجِع ملخص الاستيراد
2. انقر على **تأكيد** للاستيراد
3. انتظر حتى يكتمل الاستيراد
4. تحقَّق بفحص عدد قليل من السجلات وروابطها بالشركة
## After Importing Contacts
## بعد استيراد جهات الاتصال
Your contacts are now in Twenty! Next steps:
جهات الاتصال الخاصة بك موجودة الآن في Twenty! الخطوات التالية:
1. **Verify Company links** — open a few People records to confirm they're linked to the right Company
2. **Import Opportunities** — if needed, link them to People and Companies
3. **Set up email sync** — connect your mailbox to see email history on contact records
1. **تحقَّق من روابط الشركة** — افتح عددًا قليلًا من سجلات الأشخاص للتأكد من أنها مرتبطة بالشركة الصحيحة
2. **استورد الفرص** — واربطها عند الحاجة بالأشخاص والشركات
3. **اضبط مزامنة البريد الإلكتروني** — وصّل صندوق بريدك لعرض سجل البريد الإلكتروني في سجلات جهات الاتصال
## Updating Existing Contacts
## تحديث جهات الاتصال الموجودة
To update contacts instead of creating new ones:
لتحديث جهات الاتصال بدلًا من إنشاء جهات جديدة:
1. Include the `email` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing contacts are updated; new ones are created
1. ضمّن عمود `email` أو `id` في ملفك
2. تقوم Twenty بمطابقة السجلات باستخدام هذا المعرّف الفريد
3. يتم تحديث جهات الاتصال الموجودة؛ ويتم إنشاء جهات جديدة
See [How to Update Existing Records](/l/ar/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
راجع [كيفية تحديث السجلات الموجودة](/l/ar/user-guide/data-migration/how-tos/update-existing-records-via-import) للتفاصيل.
## FAQ
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="Why can't two People have the same email?">
Email is a unique identifier in Twenty. This prevents duplicate contacts and ensures email sync correctly links emails to the right person.
<Accordion title="لماذا لا يمكن لشخصين أن يمتلكا البريد الإلكتروني نفسه؟">
البريد الإلكتروني معرّف فريد في Twenty. هذا يمنع تكرار جهات الاتصال ويضمن أن مزامنة البريد الإلكتروني تربط الرسائل بالشخص الصحيح على نحوٍ صحيح.
</Accordion>
<Accordion title="What if I have people without an email?">
You can leave the email empty. However, we recommend adding emails when possible for better data quality and email sync functionality.
<Accordion title="ماذا لو كان لديّ أشخاص بلا بريد إلكتروني؟">
يمكنك ترك البريد الإلكتروني فارغًا. مع ذلك، نوصي بإضافة عناوين البريد الإلكتروني عندما يكون ذلك ممكنًا لتحسين جودة البيانات ووظائف مزامنة البريد الإلكتروني.
</Accordion>
<Accordion title="How do I link People to Companies during import?">
Add a column with the Company's domain (e.g., `https://acme.com`) or ID. During mapping, connect this column to the Company relation field.
<Accordion title="كيف أربط الأشخاص بالشركات أثناء الاستيراد؟">
أضِف عمودًا يحتوي على نطاق الشركة (مثلًا، `https://acme.com`) أو المعرّف. أثناء عملية التعيين، اربط هذا العمود بحقل علاقة الشركة.
</Accordion>
<Accordion title="What if the Company doesn't exist yet?">
Import Companies first, then import People. The Company must exist before you can reference it.
<Accordion title="ماذا لو لم تكن الشركة موجودة بعد؟">
استورد الشركات أولًا، ثم استورد الأشخاص. يجب أن تكون الشركة موجودة قبل أن تتمكّن من الإشارة إليها.
</Accordion>
<Accordion title="Can I import the ID from my previous CRM?">
نعم! Create a custom field marked as "unique" in your data model to store the external ID. Note: the field name `id` is reserved for Twenty's internal ID.
<Accordion title="هل يمكنني استيراد المعرّف من نظام إدارة علاقات العملاء (CRM) السابق لديّ؟">
نعم! أنشئ حقلًا مخصصًا موسومًا بأنه "unique" في نموذج بياناتك لتخزين المعرّف الخارجي. ملاحظة: اسم الحقل `id` محجوز للمعرّف الداخلي الخاص بـ Twenty.
</Accordion>
<Accordion title="How do I fix 'relation not found' errors?">
The Company you're referencing doesn't exist. Either import the Company first, or check that the domain/ID exactly matches an existing Company.
<Accordion title="كيف أصلِح أخطاء 'العلاقة غير موجودة'؟">
الشركة التي تشير إليها غير موجودة. إما أن تستورد الشركة أولًا، أو تأكّد من أن النطاق/المعرّف يطابق تمامًا شركةً موجودة.
</Accordion>
</AccordionGroup>
## استكشاف الأخطاء وإصلاحها
Having issues? Check:
هل تواجه مشكلات؟ اطّلع على:
* [How to Fix Import Errors](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
* [How to Import Relations](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Field Mapping Reference](/l/ar/user-guide/data-migration/capabilities/field-mapping)
* [كيفية إصلاح أخطاء الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
* [كيفية استيراد العلاقات](/l/ar/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [مرجع تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping)
@@ -1,67 +1,67 @@
---
title: Update Existing Records via Import
description: Complete step-by-step guide to bulk updating records using CSV import.
title: تحديث السجلات الموجودة عبر الاستيراد
description: دليل كامل خطوة بخطوة لتحديث السجلات بشكل مجمّع باستخدام استيراد CSV.
---
## نظرة عامة
Need to update many records at once? Instead of editing them one by one, use the CSV import to bulk update existing records.
هل تحتاج إلى تحديث العديد من السجلات دفعة واحدة؟ بدلاً من تعديلها واحدًا تلو الآخر، استخدم استيراد CSV لتحديث السجلات الموجودة بشكل مجمّع.
**حالات الاستخدام:**
* Update job titles for multiple people
* Change company information in bulk
* Add data to new custom fields
* Correct data errors across many records
* حدّث المسمّيات الوظيفية لعدة أشخاص
* غيّر معلومات الشركة بشكل مجمّع
* أضِف بيانات إلى حقول مخصّصة جديدة
* صحّح أخطاء البيانات عبر العديد من السجلات
## كيف يعمل
When you import a file containing a **unique identifier** that matches an existing record, Twenty updates that record instead of creating a duplicate.
عند استيراد ملف يحتوي على **معرّف فريد** يطابق سجلًا موجودًا، يقوم Twenty بتحديث ذلك السجل بدلاً من إنشاء نسخة مكررة.
| If unique identifier... | Twenty will... |
| -------------------------- | ------------------------------------------------ |
| Matches an existing record | **Update** the existing record |
| Doesn't match any record | **Create** a new record |
| Is missing from your file | **Create** a new record (with auto-generated ID) |
| إذا كان المعرّف الفريد... | سيقوم Twenty بـ... |
| ------------------------- | ------------------------------------------------ |
| يطابق سجلًا موجودًا | **تحديث** السجل الموجود |
| لا يطابق أي سجل | **إنشاء** سجل جديد |
| مفقود من ملفك | **إنشاء** سجل جديد (بمُعرّف يتم إنشاؤه تلقائيًا) |
<Warning>
**Multi-Select fields are overwritten, not merged.**
**يتم استبدال حقول الاختيار المتعدد، ولا يتم دمجها.**
If a record has `Option A` and `Option B` selected, and you import `["Option C"]`, the record will only have `Option C` after import. The import replaces all previous selections—it does not add to them.
إذا كان السجل محدّدًا فيه `Option A` و`Option B`، وقمتَ باستيراد `[\"Option C\"]`، فسيحتوي السجل على `Option C` فقط بعد الاستيراد. تستبدل عملية الاستيراد جميع الاختيارات السابقة — ولا تضيف إليها.
To keep existing values, include them all in your import: `["Option A","Option B","Option C"]`
للاحتفاظ بالقيم الحالية، ضمّنها جميعًا في عملية الاستيراد: `[\"Option A\",\"Option B\",\"Option C\"]`
</Warning>
## Step 1: Export Your Current Data
## الخطوة 1: تصدير بياناتك الحالية
First, export the records you want to update:
أولًا، صدّر السجلات التي تريد تحديثها:
1. Navigate to the object (People, Companies, etc.)
2. **Add the columns you need** — click **Options → Fields** to show the fields you want to update
3. **Filter if needed** — narrow down to only the records you want to update
4. Click **⋮** → **Export view**
5. Save the CSV file
1. انتقل إلى الكائن (الأشخاص، الشركات، إلخ)
2. **أضِف الأعمدة التي تحتاجها** — انقر **Options → Fields** لعرض الحقول التي تريد تحديثها
3. **رشّح إذا لزم الأمر** — ضيّق النطاق ليقتصر على السجلات التي تريد تحديثها
4. انقر **⋮** → **Export view**
5. احفظ ملف CSV
<Note>**Why export first?** The exported file has the correct format, includes unique identifiers, and maps automatically during import.</Note>
<Note>**لماذا نُصدِّر أولًا؟** يحتوي الملف المُصدَّر على التنسيق الصحيح، ويتضمن معرّفات فريدة، ويتم تعيينه تلقائيًا أثناء الاستيراد.</Note>
### What Gets Exported
### ما الذي يتم تصديره
* All visible columns in your current view
* The record's unique identifiers (`id`, `email`, `domain`)
* Current field values you can modify
* جميع الأعمدة المرئية في العرض الحالي
* المعرّفات الفريدة للسجل (`id`، `email`، `domain`)
* قيم الحقول الحالية التي يمكنك تعديلها
## Step 2: Edit the CSV File
## الخطوة 2: تحرير ملف CSV
Open the exported file in your spreadsheet application (Excel, Google Sheets, etc.):
افتح الملف المُصدَّر في تطبيق الجداول الحسابية لديك (Excel، Google Sheets، إلخ):
1. **Keep the unique identifier column** — don't delete `id`, `email`, or `domain`
2. **Update the values** in the columns you want to change
3. **Remove columns you don't need to update** (optional, but cleaner)
4. **Don't change unique identifier values** — or Twenty will create new records
1. **أبقِ عمود المعرّف الفريد** — لا تحذف `id` أو `email` أو `domain`
2. **حدّث القيم** في الأعمدة التي تريد تغييرها
3. **أزِل الأعمدة التي لا تحتاج إلى تحديثها** (اختياري، لكنه أنظف)
4. **لا تغيّر قيم المعرّفات الفريدة** — وإلا فسيقوم Twenty بإنشاء سجلات جديدة
### Example: Updating Job Titles
### مثال: تحديث المسمّيات الوظيفية
**Exported file:**
**الملف المُصدَّر:**
```csv
id,email,firstName,lastName,jobTitle
@@ -70,7 +70,7 @@ id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**After your edits:**
**بعد تعديلاتك:**
```csv
id,email,firstName,lastName,jobTitle
@@ -80,63 +80,63 @@ id,email,firstName,lastName,jobTitle
```
<Warning>
**Don't change the unique identifier values.**
**لا تغيّر قيم المعرّفات الفريدة.**
If you change `john@acme.com` to `john.smith@acme.com`, Twenty will create a new record instead of updating the existing one.
إذا غيّرتَ `john@acme.com` إلى `john.smith@acme.com`، فسيقوم Twenty بإنشاء سجل جديد بدلاً من تحديث السجل الموجود.
</Warning>
## Step 3: Import the Updated File
## الخطوة 3: استيراد الملف المُحدَّث
1. Navigate to the object
2. Click **⋮** → **Import records**
3. Upload your edited CSV file
4. **Ensure the unique identifier is mapped** — verify `email`, `domain`, or `id` is mapped correctly
5. Review the field mappings
6. Check for errors
7. Click **Confirm**
1. انتقل إلى الكائن
2. انقر **⋮** → **Import records**
3. حمّل ملف CSV الذي تم تحريره
4. **تأكّد من تعيين المعرّف الفريد** — تحقّق من تعيين `email` أو `domain` أو `id` بشكل صحيح
5. راجع تعيينات الحقول
6. تحقّق من الأخطاء
7. انقر **Confirm**
Twenty matches records by the unique identifier and updates them with new values.
يطابق Twenty السجلات باستخدام المعرّف الفريد ويحدّثها بالقيم الجديدة.
## Choosing the Right Unique Identifier
## اختيار المعرّف الفريد المناسب
| كائن | Recommended | Alternative | الملاحظات |
| ---------------- | ------------------- | ----------- | ---------------------------- |
| **People** | `البريد الإلكتروني` | `id` | Email is human-readable |
| **الشركات** | `النطاق` | `id` | Domain is human-readable |
| **كائنات مخصصة** | Any unique field | `id` | Use your custom unique field |
| كائن | مُوصى به | بديل | الملاحظات |
| ---------------- | ------------------- | ---- | -------------------------------- |
| **الأشخاص** | `البريد الإلكتروني` | `id` | البريد الإلكتروني مقروء للبشر |
| **الشركات** | `النطاق` | `id` | النطاق مقروء للبشر |
| **كائنات مخصصة** | أي حقل فريد | `id` | استخدم الحقل الفريد المخصّص لديك |
<Note>**Use only ONE unique identifier.** Don't map both `email` AND `id`. This can cause confusion and errors.</Note>
<Note>**استخدم مُعرّفًا فريدًا واحدًا فقط.** لا تقُم بتعيين كلٍّ من `email` و`id`. قد يسبب هذا ارتباكًا وأخطاء.</Note>
### Using Custom Unique Fields
### استخدام حقول فريدة مخصّصة
If you have a custom field marked as unique (like an external ID from another system):
إذا كان لديك حقل مخصّص مُعلَّم كفريد (مثل مُعرّف خارجي من نظام آخر):
1. Include that field in your export and import
2. Map it during import
3. Twenty will match on that field
1. ضمّن ذلك الحقل في التصدير والاستيراد
2. قم بتعيينه أثناء الاستيراد
3. سيطابق Twenty بناءً على ذلك الحقل
## Step 4: Verify the Updates
## الخطوة 4: التحقق من التحديثات
After importing:
بعد الاستيراد:
1. Open a few updated records
2. Verify the changes were applied
3. Check that no duplicate records were created
1. افتح بعض السجلات التي تم تحديثها
2. تحقّق من تطبيق التغييرات
3. تحقّق من عدم إنشاء سجلات مكررة
## What About Fields Not in Your File?
## ماذا عن الحقول غير الموجودة في ملفك؟
**Fields not included in your import file remain unchanged.**
**الحقول غير المُدرجة في ملف الاستيراد تبقى دون تغيير.**
| Your file includes... | النتيجة |
| ---------------------------- | ------------------------------------------------------ |
| `email`, `jobTitle` | Only `jobTitle` is updated; other fields stay the same |
| `email`, `jobTitle`, `phone` | `jobTitle` and `phone` are updated |
| يحتوي ملفك على... | النتيجة |
| ---------------------------- | ---------------------------------------------------- |
| `email`, `jobTitle` | يتم تحديث `jobTitle` فقط؛ وتبقى الحقول الأخرى كما هي |
| `email`, `jobTitle`, `phone` | يتم تحديث `jobTitle` و`phone` |
This means you only need to include the fields you want to change (plus the unique identifier).
هذا يعني أنك تحتاج فقط إلى تضمين الحقول التي تريد تغييرها (بالإضافة إلى المعرّف الفريد).
## Combining Updates and New Records
## الجمع بين التحديثات والسجلات الجديدة
You can update existing records AND create new ones in the same import:
يمكنك تحديث السجلات الموجودة وإنشاء سجلات جديدة في نفس عملية الاستيراد:
```csv
email,firstName,lastName,jobTitle
@@ -144,55 +144,55 @@ john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Common Mistakes to Avoid
## أخطاء شائعة يجب تجنّبها
| Mistake | Problem | النتيجة | Solution |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| **Changing unique identifier** | Changed `john@acme.com` to `john.smith@acme.com` | Creates new record instead of updating | Keep unique identifiers unchanged |
| **Multiple unique fields** | Mapping both `email` AND `id` | Potential matching conflicts | Map only ONE unique identifier |
| **No unique identifier** | File only has `firstName`, `lastName`, `jobTitle` | All rows create new records | Always include `email`, `domain`, or `id` |
| **Case mismatch** | File has `John@acme.com` but Twenty has `john@acme.com` | Creates new record | Export from Twenty to get exact values |
| الخطأ | المشكلة | النتيجة | الحل |
| ------------------------- | -------------------------------------------------------------------- | ----------------------------------- | -------------------------------------------- |
| **تغيير المعرّف الفريد** | تغيير `john@acme.com` إلى `john.smith@acme.com` | يُنشئ سجلًا جديدًا بدلًا من التحديث | أبقِ المعرّفات الفريدة كما هي |
| **حقول فريدة متعددة** | تعيين كلٍّ من `email` و`id` | احتمال حدوث تعارضات في المطابقة | قم بتعيين مُعرّف فريد واحد فقط |
| **لا يوجد معرّف فريد** | يحتوي الملف فقط على `firstName` و`lastName` و`jobTitle` | كل الصفوف تُنشئ سجلات جديدة | قم دائمًا بتضمين `email` أو `domain` أو `id` |
| **عدم تطابق حالة الأحرف** | الملف يحتوي على `John@acme.com` لكن Twenty يحتوي على `john@acme.com` | ينشئ سجلًا جديدًا | صدّر من Twenty للحصول على القيم الدقيقة |
## FAQ
## الأسئلة الشائعة
<AccordionGroup>
<Accordion title="What if some records don't exist yet?">
Records with unique identifiers that don't match existing records will be created as new records. This lets you update and create in the same import.
<Accordion title="ماذا لو لم تكن بعض السجلات موجودة بعد؟">
السجلات ذات المعرّفات الفريدة التي لا تطابق سجلات موجودة سيتم إنشاؤها كسجلات جديدة. يتيح لك هذا التحديث والإنشاء في نفس عملية الاستيراد.
</Accordion>
<Accordion title="Can I clear/empty a field value?">
Yes, leave the cell empty in your CSV. The import will clear that field's value on the existing record.
<Accordion title="هل يمكنني مسح/إفراغ قيمة حقل؟">
نعم، اترك الخلية فارغة في ملف CSV. ستقوم عملية الاستيراد بمسح قيمة ذلك الحقل في السجل الموجود.
</Accordion>
<Accordion title="What happens to fields I don't include in the import?">
Fields not in your import file remain unchanged on existing records. Only fields you include are updated.
<Accordion title="ماذا يحدث للحقول التي لا أضمّنها في الاستيراد؟">
الحقول غير الموجودة في ملف الاستيراد تبقى دون تغيير في السجلات الموجودة. يتم تحديث الحقول التي تضمّنها فقط.
</Accordion>
<Accordion title="Can I update relation fields (like Company)?">
نعم! Include the relation's unique identifier (e.g., `companyDomain`) and map it to the relation field. The relation will be updated.
<Accordion title="هل يمكنني تحديث حقول العلاقات (مثل الشركة)؟">
نعم! ضمّن المعرّف الفريد للعلاقة (مثلًا، `companyDomain`) وعيّنه لحقل العلاقة. سيتم تحديث العلاقة.
</Accordion>
<Accordion title="How do I know which records will be updated vs. created?">
During the import review step, Twenty shows you how many records will be updated vs. created based on unique identifier matches.
<Accordion title="كيف أعرف أي السجلات سيتم تحديثها وأيها سيتم إنشاؤه؟">
أثناء خطوة مراجعة الاستيراد، يعرض لك Twenty عدد السجلات التي سيتم تحديثها مقابل إنشائها بناءً على تطابقات المعرّف الفريد.
</Accordion>
<Accordion title="Can I undo a bulk update?">
There's no automatic undo. We recommend exporting your data as a backup before making bulk updates.
<Accordion title="هل يمكنني التراجع عن تحديث مجمّع؟">
لا يوجد تراجع تلقائي. نوصي بتصدير بياناتك كنسخة احتياطية قبل إجراء تحديثات مجمّعة.
</Accordion>
</AccordionGroup>
## أفضل الممارسات
1. **Export first** — always start from an export to ensure correct format
2. **Backup before updating** — export your data before making bulk changes
3. **Test with a few records** — try updating 5-10 records first before doing a large batch
4. **Use human-readable identifiers** — `email` and `domain` are easier to verify than `id`
5. **Only include necessary columns** — fewer columns means less chance for errors
1. **ابدأ بالتصدير أولًا** — ابدأ دائمًا من تصدير لضمان التنسيق الصحيح
2. **قم بإنشاء نسخة احتياطية قبل التحديث** — صدّر بياناتك قبل إجراء تغييرات مجمّعة
3. **اختبر على عدد قليل من السجلات** — جرّب تحديث 510 سجلات أولًا قبل تنفيذ دفعة كبيرة
4. **استخدم معرّفات مقروءة للبشر** — يعدّ `email` و`domain` أسهل في التحقق منهما من `id`
5. **ضمّن الأعمدة اللازمة فقط** — فكلما قلّ عدد الأعمدة قلّ احتمال حدوث الأخطاء
## استكشاف الأخطاء وإصلاحها
Having issues? Check:
هل تواجه مشكلات؟ اطّلع على:
* [How to Fix Import Errors](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
* [Uniqueness Constraints](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Field Mapping Reference](/l/ar/user-guide/data-migration/capabilities/field-mapping)
* [كيفية إصلاح أخطاء الاستيراد](/l/ar/user-guide/data-migration/how-tos/fix-import-errors)
* [قيود التفرد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints)
* [مرجع تعيين الحقول](/l/ar/user-guide/data-migration/capabilities/field-mapping)
@@ -1,149 +1,149 @@
---
title: Send Emails from Workflows
description: Send personalized emails automatically using workflow actions.
title: إرسال رسائل البريد الإلكتروني عبر سير العمل
description: أرسل رسائل بريد إلكتروني مُخصّصة تلقائياً باستخدام إجراءات سير العمل.
image: /images/user-guide/workflows/workflow.png
---
Automatically send emails when specific events occur in your CRM—welcome new contacts, follow up on opportunities, or notify team members.
أرسل رسائل البريد الإلكتروني تلقائياً عند حدوث أحداث معيّنة في نظام إدارة علاقات العملاء (CRM) لديك—رحّب بجهات الاتصال الجديدة، وتابع الفرص، أو أخطر أعضاء الفريق.
## Prerequisites
## المتطلبات الأساسية
Before you can send emails from workflows:
قبل أن تتمكن من إرسال رسائل البريد الإلكتروني من سير العمل:
1. Connect an email account under **Settings → Accounts**
2. Ensure the account has sending permissions enabled
1. وصّل حساب بريد إلكتروني ضمن **الإعدادات → الحسابات**
2. تأكد من أن الحساب لديه أذونات إرسال مفعّلة
## Basic Email Workflow
## سير عمل أساسي للبريد الإلكتروني
### Example: Welcome Email for New Contacts
### مثال: رسالة ترحيب لجهات الاتصال الجديدة
**Goal**: Send a welcome email when a new person is added to the CRM.
**الهدف**: إرسال رسالة ترحيب عند إضافة شخص جديد إلى نظام إدارة علاقات العملاء (CRM).
**الإعداد**:
1. **Create workflow**: Go to **Settings → Workflows** and click **+ New Workflow**
1. **إنشاء سير عمل**: انتقل إلى **الإعدادات → سير العمل** ثم انقر **+ سير عمل جديد**
2. **Add trigger**: Select **Record is Created** → **People**
2. **إضافة مشغّل**: اختر **تم إنشاء سجل** → **الأشخاص**
3. **Add Send Email action**:
* Click **+** to add an action
* Select **Send Email**
* Configure the email:
3. **إضافة إجراء إرسال بريد إلكتروني**:
* انقر **+** لإضافة إجراء
* اختر **إرسال بريد إلكتروني**
* قم بتهيئة البريد الإلكتروني:
| الحقل | القيمة |
| ----------- | -------------------------------------- |
| **To** | `{{trigger.object.email}}` |
| **Subject** | `مرحبا بك في {{Your Company Name}}` |
| **Body** | `Hi {{trigger.object.firstName}}, ...` |
| **إلى** | `{{trigger.object.email}}` |
| **الموضوع** | `مرحبا بك في {{Your Company Name}}` |
| **المحتوى** | `Hi {{trigger.object.firstName}}, ...` |
4. **Test and activate**: Test with a sample record, then activate
4. **الاختبار والتفعيل**: اختبر باستخدام سجل عينة، ثم فعِّل
## Using Variables in Emails
## استخدام المتغيرات في رسائل البريد الإلكتروني
Reference data from previous steps using `{{variable}}` syntax:
استدعِ البيانات من الخطوات السابقة باستخدام صيغة `{{variable}}`:
```text
Hi {{trigger.object.firstName}},
مرحباً {{trigger.object.firstName}},
Thank you for connecting with us!
شكراً لتواصلك معنا!
Your company, {{trigger.object.company.name}}, is now in our system.
تم الآن إدراج شركتك، {{trigger.object.company.name}}، في نظامنا.
Best regards,
The Team
أطيب التحيات،
الفريق
```
### Available Variables from Triggers
### المتغيرات المتاحة من المشغّلات
| نوع المُحفِز | Common Variables |
| -------------------------- | -------------------------------------- |
| **Record Created/Updated** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
| نوع المُحفِز | المتغيرات الشائعة |
| ------------------------ | -------------------------------------- |
| **تم إنشاء/تحديث السجل** | `{{trigger.object.fieldName}}` |
| **يدوي** | `{{trigger.selectedRecord.fieldName}}` |
| **الويب هوك** | `{{trigger.body.fieldName}}` |
## Advanced: Conditional Emails
## متقدم: رسائل بريد إلكتروني مشروطة
### Example: Different Emails Based on Lead Source
### مثال: رسائل بريد إلكتروني مختلفة بناءً على مصدر العميل المحتمل
**Goal**: Send different welcome emails based on where the lead came from.
**الهدف**: إرسال رسائل ترحيب مختلفة بناءً على مصدر قدوم العميل المحتمل.
**الإعداد**:
1. **Trigger**: Record is Created (People)
1. **المشغّل**: تم إنشاء سجل (الأشخاص)
2. **Add Filter action**:
* Condition: `{{trigger.object.source}}` equals `"Website"`
* If true → continue to website welcome email
2. **إضافة إجراء تصفية**:
* الشرط: `{{trigger.object.source}}` يساوي `"Website"`
* إذا كان صحيحاً → المتابعة إلى رسالة الترحيب الخاصة بالموقع الإلكتروني
3. **Branch for other sources**:
* Create parallel branches for different sources
* Each branch has its own Send Email action
3. **فرع للمصادر الأخرى**:
* أنشئ فروعاً متوازية لمصادر مختلفة
* لكل فرع إجراء إرسال بريد إلكتروني خاص به
## Sending Emails to Multiple Recipients
## إرسال رسائل البريد الإلكتروني إلى عدة مستلمين
### Example: Notify Team When Deal Closes
### مثال: إشعار الفريق عند إغلاق الصفقة
**Goal**: Email the sales rep and their manager when an opportunity is won.
**الهدف**: إرسال بريد إلكتروني إلى مندوب المبيعات ومديره عند ربح فرصة.
**الإعداد**:
1. **Trigger**: Record is Updated (Opportunities, Stage = "Closed Won")
1. **المشغّل**: تم تحديث السجل (الفرص، المرحلة = "Closed Won")
2. **Search Records**: Find the opportunity owner's manager
2. **البحث في السجلات**: اعثر على مدير مالك الفرصة
3. **Send Email #1**: To opportunity owner
* To: `{{trigger.object.owner.email}}`
* Subject: `Congratulations on closing {{trigger.object.name}}!`
3. **إرسال بريد إلكتروني #1**: إلى مالك الفرصة
* إلى: `{{trigger.object.owner.email}}`
* الموضوع: `تهانينا على إغلاق {{trigger.object.name}}!`
4. **Send Email #2**: To manager
* To: `{{searchRecords.manager.email}}`
* Subject: `Deal Won: {{trigger.object.name}}`
4. **إرسال بريد إلكتروني #2**: إلى المدير
* إلى: `{{searchRecords.manager.email}}`
* الموضوع: `تم ربح الصفقة: {{trigger.object.name}}`
## Scheduled Follow-up Emails
## رسائل متابعة مجدولة
### Example: Follow Up 3 Days After Meeting
### مثال: متابعة بعد 3 أيام من الاجتماع
**Goal**: Send a follow-up email 3 days after a meeting is logged.
**الهدف**: إرسال رسالة متابعة عبر البريد الإلكتروني بعد 3 أيام من تسجيل اجتماع.
**الإعداد**:
1. **Trigger**: Record is Created (Activities, Type = "Meeting")
1. **المشغّل**: تم إنشاء سجل (الأنشطة، النوع = "اجتماع")
2. **Delay action**: Wait 3 days
2. **إجراء تأخير**: الانتظار 3 أيام
3. **Send Email**:
* To: Meeting attendee
* Subject: Following up on our conversation
* Body: Reference meeting details from trigger
3. **إرسال البريد الإلكتروني**:
* إلى: مشارك الاجتماع
* الموضوع: متابعة لمحادثتنا
* المحتوى: الإشارة إلى تفاصيل الاجتماع من المشغّل
## أفضل الممارسات
### Email Content
### محتوى البريد الإلكتروني
* Keep subject lines concise and relevant
* Personalize with recipient's name
* Include a clear call to action
* Test emails before activating
* اجعل سطور الموضوع موجزة وذات صلة
* خصص الرسالة باسم المستلم
* ضمّن دعوة واضحة للإجراء
* اختبر رسائل البريد الإلكتروني قبل التفعيل
### Deliverability
### قابلية التسليم
* Don't send too many emails too quickly
* Use professional email signatures
* Avoid spam trigger words
* Ensure unsubscribe options for marketing emails
* لا ترسل عدداً كبيراً من الرسائل بسرعة كبيرة
* استخدم تواقيع بريد إلكتروني احترافية
* تجنب كلمات تُحفّز مرشحات البريد العشوائي
* احرص على توفير خيارات إلغاء الاشتراك لرسائل التسويق الإلكترونية
### استكشاف الأخطاء وإصلاحها
* Verify email account is connected and active
* Check recipient email address is valid
* Review workflow runs for error messages
* Test with your own email address first
* تحقّق من أن حساب البريد الإلكتروني متصل وفعّال
* تحقّق من صحة عنوان البريد الإلكتروني للمستلم
* راجِع عمليات تشغيل سير العمل بحثاً عن رسائل الخطأ
* اختبر باستخدام عنوان بريدك الإلكتروني أولاً
<Note>
**Coming soon**: Email attachments will be available in Q1 2026.
**قريباً**: ستكون مرفقات البريد الإلكتروني متاحة في الربع الأول من 2026.
</Note>
## Related
## ذات صلة
* [Workflow Triggers](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ar/user-guide/workflows/capabilities/workflow-actions)
* [مشغلات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
* [إجراءات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-actions)
@@ -1,21 +1,21 @@
---
title: إجراءات سير العمل
description: Learn about the actions available in Twenty workflows.
description: تعرّف على الإجراءات المتاحة في عمليات سير العمل في Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## About Actions
## حول الإجراءات
تحدد الإجراءات ما يحدث بعد تنفيذ الزناد. You can chain multiple actions together to build complex automations.
تحدد الإجراءات ما يحدث بعد تنفيذ الزناد. يمكنك تسلسل عدة إجراءات معًا لبناء عمليات أتمتة معقدة.
<Tip>
* Use the variable picker (click the `(x+)` icon) to browse available data from previous steps
* Hover over any input field to see which step a variable comes from — helpful when the same field (e.g., ID) exists in multiple previous steps
* Give each action a descriptive name for easier maintenance
* استخدم منتقي المتغيرات (انقر أيقونة `(x+)`) لاستعراض البيانات المتاحة من الخطوات السابقة
* مرّر المؤشر فوق أي حقل إدخال لمعرفة الخطوة التي يأتي منها المتغير — وهو أمر مفيد عندما يوجد الحقل نفسه (مثلًا، ID) في عدة خطوات سابقة
* امنح كل إجراء اسمًا وصفيًا لتسهيل الصيانة
</Tip>
## Record Actions
## إجراءات السجل
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
@@ -27,7 +27,7 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
* اختر الكائن المستهدف
* املأ الحقول الضرورية والاختيارية
* Use data from previous steps or input values manually to populate fields
* استخدم البيانات من الخطوات السابقة أو أدخِل القيم يدويًا لملء الحقول
**المخرجات**: بيانات السجل المنشأ حديثاً متاحة للاستخدام في الخطوات التالية.
@@ -41,8 +41,8 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
* اختر الكائن المستهدف
* اختر السجل المحدد لتحديثه.
* You can either choose a fixed record, using the drop down menu displaying all available records.
* Or you can have the record dynamically selected, by designating a record found in a previous step, using the `(x+)`. You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add a `Search Record` step before this `Update Record` step.
* يمكنك إما اختيار سجل ثابت، باستخدام القائمة المنسدلة التي تعرض جميع السجلات المتاحة.
* أو يمكنك اختيار السجل ديناميكيًا بتحديد سجل تم العثور عليه في خطوة سابقة، باستخدام `(x+)`. لا يمكنك البحث عن السجل بناءً على معايير مختلفة في هذه المرحلة. إذا لم تكن قد حدّدت السجل بعد، فأضِف خطوة `Search Record` قبل خطوة `Update Record`.
* اختر الحقول لتعديل القيم وأدخل القيم الجديدة
**المخرجات**: بيانات السجل المحدثة متاحة للاستخدام في الخطوات التالية.
@@ -71,25 +71,25 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
**المخرجات**: تعيد السجلات المطابقة التي يمكن استخدامها في الخطوات اللاحقة.
<Note>
**Limit**: Search Records returns a maximum of **200 records**. If you need to process more, add specific filters to reduce results or use scheduled workflows to process in batches.
**الحد**: تعيد Search Records بحد أقصى **200 سجل**. إذا كنت بحاجة إلى معالجة المزيد، فأضِف عوامل تصفية محددة لتقليل النتائج أو استخدم عمليات سير عمل مجدولة للمعالجة على دفعات.
</Note>
**Best Practice**: Use [branches](/l/ar/user-guide/workflows/capabilities/workflow-branches) after Search Records to handle "found" vs "not found" scenarios.
**أفضل الممارسات**: استخدم [الفروع](/l/ar/user-guide/workflows/capabilities/workflow-branches) بعد Search Records للتعامل مع سيناريوهات "تم العثور" مقابل "لم يتم العثور".
### Upsert Record
### إدراج أو تحديث سجل
Creates a new record or updates an existing one based on matching criteria. This is useful when you're not sure if a record already exists.
ينشئ سجلًا جديدًا أو يحدّث سجلًا موجودًا استنادًا إلى معايير المطابقة. يكون هذا مفيدًا عندما لا تكون متأكدًا مما إذا كان السجل موجودًا بالفعل.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**التكوين**:
* اختر الكائن المستهدف
* Note which fields can be used for matching: email for People, domain for Companies, ID for any object, or any field marked as Unique. You'll need to populate at least one of these below.
* Fill out the field values. Do not forget to populate at least one of the unique identifiers.
* لاحظ الحقول التي يمكن استخدامها للمطابقة: email لـ People، وdomain لـ Companies، وID لأي كائن، أو أي حقل مُعلَّم كـ Unique. ستحتاج إلى تعبئة واحد على الأقل من هذه الحقول أدناه.
* املأ قيم الحقول. لا تنسَ تعبئة معرّف فريد واحد على الأقل.
<Note>
**Matching usually works even better when adding only one unique identifier.** For example, the screenshot below will match companies based on their domain. The ID is not necessarily needed.
**تعمل المطابقة عادةً بشكل أفضل عند إضافة معرّف فريد واحد فقط.** على سبيل المثال، ستطابق لقطة الشاشة أدناه الشركات استنادًا إلى domain الخاص بها. لا تكون قيمة ID مطلوبة بالضرورة.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
@@ -1,49 +1,49 @@
---
title: Kredity pracovních postupů
description: Understanding workflow credits, consumption, and how to purchase more.
description: Pochopení kreditů pracovních postupů, jejich spotřeby a způsobu, jak zakoupit další.
---
## Přehled
Credits power your workflow automations in Twenty. Every workflow action consumes credits based on its complexity.
Kredity pracovních postupů pohánějí vaše automatizace v Twenty. Každá akce v pracovním postupu spotřebovává kredity podle své složitosti.
## Credit Allocation
## Přidělení kreditů
Credits are based on your billing cycle, not your plan:
Kredity se odvíjejí od vašeho fakturačního cyklu, nikoli od plánu:
| Billing Cycle | Credits |
| ------------- | --------------- |
| Měsíční | 5 million/month |
| Roční | 50 million/year |
| Fakturační cyklus | Kredity |
| ----------------- | --------------- |
| Měsíční | 5 milionů/měsíc |
| Roční | 50 milionů/rok |
<Note>
The 5 million monthly credits are designed to empower you to run automations without worrying about costs. For most workflows using standard actions, this is more than enough. You'll only need additional credits when running advanced code nodes or AI-powered features.
Těch 5 milionů měsíčních kreditů je navrženo tak, aby vám umožnilo spouštět automatizace bez obav o náklady. Pro většinu pracovních postupů využívajících standardní akce je to více než dostačující. Další kredity budete potřebovat pouze při spouštění pokročilých uzlů kódu nebo funkcí poháněných AI.
</Note>
## Credit Consumption
## Spotřeba kreditů
Different actions consume different amounts of credits:
Různé akce spotřebovávají různá množství kreditů:
| Action Type | Využití kreditu |
| ------------------------------------------------------- | ----------------------- |
| **Basic operations** (search, update, create records) | Minimal |
| **Complex operations** (code nodes, external API calls) | More credits |
| **AI prompts** (coming soon) | Variable based on usage |
| Typ akce | Využití kreditu |
| ------------------------------------------------------------------ | ------------------------ |
| **Základní operace** (vyhledávání, aktualizace, vytváření záznamů) | Minimální |
| **Komplex operace** (uzly kódu, volání externího API) | Více kreditů |
| **AI návrhy** (brzy k dispozici) | Proměnlivé podle využití |
Kredity jsou odečítány v reálném čase, když se pracovní postupy provádějí.
## Monitoring Usage
## Sledování využití
Track your credit consumption:
Sledujte svou spotřebu kreditů:
1. Přejděte na **Nastavení → Fakturace**
2. View your current usage and remaining credits
3. Monitor trends to plan for additional credits if needed
2. Zobrazte si své aktuální využití a zbývající kredity
3. Sledujte trendy, abyste v případě potřeby naplánovali pořízení dalších kreditů
## Nákup dalších kreditů
Need more credits?
Potřebujete více kreditů?
1. Přejděte na **Nastavení → Fakturace**
2. Click on the option to purchase additional credit packs
3. Select the amount you need
2. Klikněte na možnost koupit další balíčky kreditů
3. Vyberte množství, které potřebujete
@@ -1,28 +1,28 @@
---
title: Can I Book Meetings from Twenty?
description: Information about booking meetings directly from Twenty.
title: Mohu z Twenty plánovat schůzky?
description: Informace o plánování schůzek přímo z Twenty.
---
## Current Status
## Aktuální stav
**No, Twenty does not currently support booking meetings directly from the platform.**
**Ne, Twenty v současnosti nepodporuje plánování schůzek přímo z platformy.**
Twenty's calendar integration is designed to **sync and display** your existing calendar events, not to create new ones. All meeting scheduling should be done through your native calendar application (Google Calendar, Microsoft Outlook, etc.).
Kalendářová integrace Twenty je navržena tak, aby **synchronizovala a zobrazovala** vaše stávající události v kalendáři, nikoli aby vytvářela nové. Veškeré plánování schůzek by se mělo provádět prostřednictvím vaší nativní kalendářové aplikace (Google Calendar, Microsoft Outlook apod.).
## What You Can Do
## Co můžete dělat
* **View meeting history** on People, Companies, and Opportunities records
* **See upcoming meetings** with contacts in your CRM
* **Track meeting context** alongside email communications
* **Auto-create contacts** from meeting participants
* **Zobrazujte historii schůzek** u záznamů o Lidech, Podnicích a Příležitostech
* **Zobrazujte nadcházející schůzky** s kontakty ve vašem CRM
* **Sledujte kontext schůzek** spolu s e-mailovou komunikací
* **Automaticky vytvářejte kontakty** z účastníků schůzek
## How to Schedule Meetings
## Jak plánovat schůzky
1. Use your native calendar app (Google Calendar, Outlook, etc.)
2. Create the meeting as you normally would
3. The meeting will automatically sync to Twenty within 5 minutes
4. View the meeting on the relevant CRM records
1. Použijte svou nativní kalendářovou aplikaci (Google Calendar, Outlook apod.)
2. Vytvořte schůzku stejně jako obvykle
3. Schůzka se do 5 minut automaticky synchronizuje do Twenty
4. Zobrazte si schůzku u příslušných záznamů v CRM
## Future Plans
## Plány do budoucna
Meeting creation from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
Vytváření schůzek přímo v Twenty je v našem plánu. Připojte se k našim [diskuzím na GitHubu](https://github.com/twentyhq/twenty/discussions), podělte se o svůj případ použití a pomozte upřednostnit tuto funkci.
@@ -1,42 +1,42 @@
---
title: Connect Several Mailboxes per User
description: Connect multiple email accounts for a single user.
title: Připojte více poštovních schránek pro jednoho uživatele
description: Připojte více e-mailových účtů pro jednoho uživatele.
---
## Přehled
Twenty supports **unlimited email accounts per user**. This is useful if you manage multiple inboxes, such as:
Twenty podporuje **neomezený počet e-mailových účtů na uživatele**. To je užitečné, pokud spravujete více e-mailových schránek, například:
* Personal work email + shared team inbox
* Multiple client-facing email addresses
* Different email accounts for different roles
* Osobní pracovní e-mail + sdílená týmová schránka
* Více e-mailových adres pro komunikaci s klienty
* Různé e-mailové účty pro různé role
## How to Add Multiple Mailboxes
## Jak přidat více poštovních schránek
1. Přejděte na **Nastavení → Účty**
2. Klikněte na **Přidat účet**
3. Connect your additional Google or Microsoft account
4. Configure sync settings for this mailbox
5. Repeat for each mailbox you want to connect
3. Připojte svůj další účet Google nebo Microsoft
4. Nakonfigurujte nastavení synchronizace pro tuto schránku
5. Opakujte pro každou schránku, kterou chcete připojit
## Managing Multiple Accounts
## Správa více účtů
Each connected mailbox has its own settings:
Každá připojená schránka má vlastní nastavení:
* **Email visibility**: Choose what teammates can see
* **Contact auto-creation**: Enable/disable per mailbox
* **Folder selection**: Choose which folders to sync (Lab feature)
* **Viditelnost e-mailů**: Zvolte, co mohou vidět členové týmu
* **Automatické vytváření kontaktů**: Povolit/zakázat pro jednotlivé schránky
* **Výběr složek**: Zvolte, které složky synchronizovat (experimentální funkce)
## How Emails Appear
## Jak se e-maily zobrazují
Emails from all your connected mailboxes are synced to Twenty and appear on:
E-maily ze všech vašich připojených schránek se synchronizují do Twenty a zobrazují se v:
* **People records**: Based on the contact's email address
* **Company records**: Based on the email domain
* **Opportunities**: Based on the linked company
* **Záznamy osob**: Na základě e-mailové adresy kontaktu
* **Záznamy společností**: Na základě e-mailové domény
* **Příležitosti**: Na základě propojené společnosti
<Note>Each email shows which mailbox it was sent from/received to, so you can track which account was used for each communication.</Note>
<Note>Každý e-mail ukazuje, ze které schránky byl odeslán/do které byl přijat, takže můžete sledovat, který účet byl použit pro každou komunikaci.</Note>
## Important Notes
## Důležité poznámky
<Warning>Only true mailboxes can be connected. Email aliases that forward to another mailbox cannot be connected separately—they'll sync through the main mailbox.</Warning>
<Warning>Připojit lze pouze skutečné e-mailové schránky. E-mailové aliasy, které přeposílají do jiné schránky, nelze připojit samostatně—budou se synchronizovat prostřednictvím hlavní schránky.</Warning>
@@ -1,6 +1,6 @@
---
title: Panely
description: Learn the basics of reporting and dashboards in Twenty.
description: Naučte se základy vytváření sestav a řídicích panelů v Twenty.
image: /images/user-guide/reporting/pie-chart.png
---
@@ -8,72 +8,72 @@ image: /images/user-guide/reporting/pie-chart.png
<img src="/images/user-guide/reporting/pie-chart.png" alt="Panely" />
</Frame>
## Understanding Dashboards
## Porozumění řídicím panelům
Dashboards in Twenty provide a visual way to track your key performance metrics and gain insights from your CRM data.
Řídicí panely v Twenty poskytují vizuální způsob, jak sledovat klíčové výkonnostní metriky a získávat přehledy z dat vašeho CRM.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="Panely" />
## Key Concepts
## Klíčové pojmy
### Panely
A dashboard is a collection of tabs that display your CRM data at a glance. You can create multiple dashboards for different purposes:
Řídicí panel je soubor karet, které na první pohled zobrazují vaše data z CRM. Můžete vytvářet více řídicích panelů pro různé účely:
* Sales performance
* Team activity
* Pipeline health
* Custom metrics
* Výkonnost prodeje
* Aktivita týmu
* Zdraví pipeline
* Vlastní metriky
### Karty
Tabs allow you to organize your dashboard into sections. Each tab contains one or more widgets.
Karty vám umožňují uspořádat váš řídicí panel do sekcí. Každá karta obsahuje jeden nebo více widgetů.
### Widgety
Widgets are individual visualizations that display specific data. Types include:
Widgety jsou jednotlivé vizualizace, které zobrazují konkrétní data. Mezi typy patří:
* Bar charts
* Pie charts
* Line charts
* Number metrics
* iFrames
* Sloupcové grafy
* Koláčové grafy
* Liniové grafy
* Číselné metriky
* iFramy
<Note>
**Current limitations**:
**Aktuální omezení**:
* Exporting dashboards and sharing with external users (non-Twenty users) are not available at the moment.
* Gauge charts and tables are not yet available.
* Export řídicích panelů a sdílení s externími uživateli (mimo Twenty) v tuto chvíli nejsou k dispozici.
* Ukazatelové grafy a tabulky zatím nejsou k dispozici.
</Note>
## Getting Started
## Začínáme
### Creating Your First Dashboard
### Vytvoření prvního řídicího panelu
1. Navigate to the **Dashboards** section
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Add tabs to organize your content
5. Add widgets to display your data
1. Přejděte do části **Dashboards**
2. Klikněte na **+ New Dashboard**
3. Pojmenujte svůj řídicí panel
4. Přidejte karty pro uspořádání obsahu
5. Přidejte widgety pro zobrazení dat
6. Uložit
### Adding Widgets
### Přidávání widgetů
1. Open a tab on your dashboard
2. Click **+ Add Widget**
3. Select the widget type
4. Choose the data source (object)
5. Configure the widget settings
6. Save and view your widget
1. Otevřete kartu na svém řídicím panelu
2. Klikněte na **+ Add Widget**
3. Vyberte typ widgetu
4. Zvolte zdroj dat (objekt)
5. Nakonfigurujte nastavení widgetu
6. Uložte a zobrazte svůj widget
## Osvědčené postupy
* **Start simple**: Begin with a few key metrics and add more over time
* **Focus on actionable data**: Display metrics that drive decisions
* **Regular review**: Check your dashboards regularly to spot trends
* **Share with team**: Make dashboards visible to relevant team members
* **Začněte jednoduše**: Začněte s několika klíčovými metrikami a postupně přidávejte další
* **Soustřeďte se na prakticky využitelná data**: Zobrazujte metriky, které podporují rozhodování
* **Pravidelná kontrola**: Pravidelně kontrolujte své řídicí panely, abyste odhalili trendy
* **Sdílejte s týmem**: Zpřístupněte řídicí panely relevantním členům týmu
## Další kroky
* [Widgets and visualizations](/l/cs/user-guide/dashboards/capabilities/widgets)
* [Dashboards FAQ](/l/cs/user-guide/dashboards/how-tos/dashboards-faq)
* [Widgety a vizualizace](/l/cs/user-guide/dashboards/capabilities/widgets)
* [Nejčastější dotazy k řídicím panelům](/l/cs/user-guide/dashboards/how-tos/dashboards-faq)
@@ -1,209 +1,209 @@
---
title: Export Your Data
description: Complete step-by-step guide to exporting data from Twenty.
title: Exportujte svá data
description: Kompletní podrobný návod krok za krokem k exportu dat z Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Přehled
Export your workspace data to CSV for backups, reporting, or migration.
Exportujte data svého pracovního prostoru do CSV pro zálohování, vytváření přehledů nebo migraci.
**Případy použití:**
* **Regular backups** — keep copies of your data
* **External reporting** — analyze data in Excel, Google Sheets, or BI tools
* **Migration** — move data to another system
* **Bulk updates** — export, edit, and re-import to update records
* **Pravidelné zálohy** — uchovávejte kopie svých dat
* **Externí přehledy** — analyzujte data v Excelu, Google Sheets nebo nástrojích BI
* **Migrace** — přesuňte data do jiného systému
* **Hromadné aktualizace** — exportujte, upravte a znovu importujte pro aktualizaci záznamů
## What You Need to Know
## Co potřebujete vědět
### Export Limits
### Limity exportu
* **Maximum 20,000 records** per export
* Only **visible columns** are exported
* Only **filtered records** are exported (based on your current view)
* **Maximálně 20 000 záznamů** na jeden export
* Exportují se pouze **viditelné sloupce**
* Exportují se pouze **filtrované záznamy** (podle vašeho aktuálního zobrazení)
<Note>For larger exports (20,000+ records), use filters to export in batches or use the [API](/l/cs/developers/extend/capabilities/apis).</Note>
<Note>U větších exportů (20 000+ záznamů) použijte filtry pro export po dávkách nebo použijte [API](/l/cs/developers/extend/capabilities/apis).</Note>
### Oprávnění
You need the **"Export CSV"** permission to export data. Contact your workspace admin if you don't have this option.
K exportu dat potřebujete oprávnění **"Export CSV"**. Pokud tuto možnost nemáte, kontaktujte správce pracovního prostoru.
## Step 1: Navigate to the Object
## Krok 1: Přejděte na objekt
Go to the object you want to export:
Přejděte na objekt, který chcete exportovat:
* **People** — for contacts
* **Companies** — for organizations
* **Opportunities** — for deals
* **Custom objects** — any object you've created
* **Lidé** — pro kontakty
* **Společnosti** — pro organizace
* **Příležitosti** — pro obchodní případy
* **Vlastní objekty** — jakýkoli objekt, který jste vytvořili
## Step 2: Configure Your View
## Krok 2: Nakonfigurujte své zobrazení
**Important:** The export includes only what's visible in your current view.
**Důležité:** Export zahrnuje pouze to, co je viditelné ve vašem aktuálním zobrazení.
### Add/Remove Columns
### Přidat/Odebrat sloupce
1. Click **Options → Fields** (or the **+** at the end of columns)
2. Check the fields you want to export
3. Uncheck fields you don't need
1. Klikněte na **Možnosti → Pole** (nebo na **+** na konci sloupců)
2. Zaškrtněte pole, která chcete exportovat
3. Zrušte zaškrtnutí polí, která nepotřebujete
### Filter Records (Optional)
### Filtrování záznamů (volitelné)
If you only need a subset of data:
Pokud potřebujete pouze podmnožinu dat:
1. Click **Filter**
2. Add filter conditions (e.g., "Created date > January 1, 2024")
3. Only matching records will be exported
1. Klikněte na **Filtr**
2. Přidejte podmínky filtru (např. "Datum vytvoření > 1. ledna 2024")
3. Exportovány budou pouze odpovídající záznamy
### Sort Records (Optional)
### Řazení záznamů (volitelné)
1. Click a column header to sort
2. The export will follow your sort order
1. Kliknutím na záhlaví sloupce seřadíte
2. Export bude respektovat vaše pořadí řazení
<Note>**Create a dedicated export view.** Save a view specifically configured for exports so you don't need to reconfigure each time.</Note>
<Note>**Vytvořte vyhrazené zobrazení pro export.** Uložte si zobrazení speciálně nakonfigurované pro exporty, abyste je nemuseli pokaždé znovu nastavovat.</Note>
## Step 3: Export the Data
## Krok 3: Exportujte data
1. Click the **⋮** icon on the top right of the table
2. Select **Export view**
3. Choose where to save the CSV file
4. Wait for the download to complete
1. Klikněte na ikonu **⋮** vpravo nahoře v tabulce
2. Vyberte **Exportovat zobrazení**
3. Vyberte, kam uložit soubor CSV
4. Počkejte na dokončení stahování
## What Gets Exported
## Co se exportuje
| Included | Not Included |
| -------------------------------- | ---------------------- |
| All visible columns | Hidden columns |
| Records matching current filters | Filtered-out records |
| Custom field values | Fields not in the view |
| Record IDs | File attachments |
| Relation IDs | Images |
| Zahrnuto | Není zahrnuto |
| -------------------------------------- | ------------------------------- |
| Všechny viditelné sloupce | Skryté sloupce |
| Záznamy odpovídající aktuálním filtrům | Vyfiltrované záznamy |
| Hodnoty vlastních polí | Pole, která nejsou ve zobrazení |
| ID záznamů | Přílohy souborů |
| ID vztahů | Obrázky |
### Relační pole
Relation IDs are only exported on the **"many" side** of a relationship:
ID vztahů se exportují pouze na **"many" straně** vztahu:
* **People export** includes a `companyId` column (People → Company relation)
* **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
* **Export Lidé** obsahuje sloupec `companyId` (vztah Lidé → Společnost)
* **Export Společnosti** NEOBSAHUJE `peopleIds` (Společnosti jsou na "one" straně)
This means you can use the People export to re-import and maintain the Company link, but you'll need to re-import People after Companies to recreate the relationships.
To znamená, že můžete použít export objektu Lidé k opětovnému importu a zachování propojení na Společnost, ale budete muset znovu importovat objekt Lidé po objektu Společnosti, abyste znovu vytvořili vztahy.
## Exporting for Specific Purposes
## Export pro konkrétní účely
### For Backups
### Pro zálohování
1. Create a view with **all fields** visible
2. Remove all filters to include all records
3. Export each object type separately
4. Store exports in a secure location
5. Set a recurring reminder (weekly/monthly)
1. Vytvořte zobrazení, kde jsou viditelná **všechna pole**
2. Odstraňte všechny filtry, abyste zahrnuli všechny záznamy
3. Exportujte každý typ objektu samostatně
4. Ukládejte exporty na zabezpečeném místě
5. Nastavte opakované připomenutí (týdně/měsíčně)
### For External Reporting
### Pro externí přehledy
1. Include only the fields you need for analysis
2. Apply filters to focus on relevant data
3. Consider sorting by the field you'll analyze
1. Zahrňte pouze pole, která potřebujete pro analýzu
2. Použijte filtry, abyste se zaměřili na relevant data
3. Zvažte řazení podle pole, které budete analyzovat
### For Bulk Updates
### Pro hromadné aktualizace
1. Export the records you want to update
2. Include the unique identifier (`email`, `domain`, or `id`)
3. Edit the exported file
4. Re-import to update records
See: [How to Update Existing Records](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import)
1. Exportujte záznamy, které chcete aktualizovat
2. Zahrňte jedinečný identifikátor (`email`, `domain` nebo `id`)
3. Upravte exportovaný soubor
4. Znovu importujte pro aktualizaci záznamů
Viz: [Jak aktualizovat existující záznamy](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import)
### For Migration
### Pro migraci
If you're exporting to migrate to another system:
Pokud exportujete kvůli migraci do jiného systému:
1. **Export each object separately** — People, Companies, Opportunities, etc.
2. **Include ID fields** — these help maintain relationships
3. **Document field mappings** — note how Twenty fields map to your target system
1. **Exportujte každý objekt samostatně** — Lidé, Společnosti, Příležitosti atd.
2. **Zahrňte pole ID** — pomohou zachovat vztahy
3. **Zdokumentujte mapování polí** — poznamenejte si, jak se pole Twenty mapují na váš cílový systém
## Handling Large Datasets (20,000+ Records)
## Práce s velkými datovými sadami (20 000+ záznamů)
The export limit is 20,000 records. For larger datasets:
Limit exportu je 20 000 záznamů. Pro větší datové sady:
### Option 1: Export in Batches
### Možnost 1: Export po dávkách
1. Add a filter (e.g., "Created date" ranges)
2. Export the first batch
3. Change the filter
4. Export the next batch
5. Combine files in your spreadsheet
1. Přidejte filtr (např. rozsahy pole "Datum vytvoření")
2. Exportujte první dávku
3. Změňte filtr
4. Exportujte další dávku
5. Sloučte soubory v tabulkovém procesoru
**Example filters for batching:**
**Příklady filtrů pro dávkování:**
* By date range (January, February, March...)
* By owner (Team member A, Team member B...)
* By status (Active, Inactive...)
* Podle časového období (leden, únor, březen...)
* Podle vlastníka (Člen týmu A, Člen týmu B...)
* Podle stavu (Aktivní, Neaktiv...)
### Option 2: Use the API
### Možnost 2: Použijte API
The API has no record limit:
API nemá limit počtu záznamů:
1. Get your API key from **Settings → Developers**
2. Use the GraphQL API to query records
3. Process results in your application
1. Získejte svůj klíč API v **Nastavení → Vývojáři**
2. Použijte GraphQL API k dotazování na záznamy
3. Zpracujte výsledky ve své aplikaci
See: [API Documentation](/l/cs/developers/extend/capabilities/apis)
Viz: [Dokumentace API](/l/cs/developers/extend/capabilities/apis)
## Tips and Best Practices
## Tipy a osvědčené postupy
### Create Export Views
### Vytvářejte zobrazení pro export
Save views configured specifically for exports:
Ukládejte zobrazení nakonfigurovaná speciálně pro export:
1. Configure columns and filters
2. Click **View options** → **Save as new view**
3. Name it "Export - [Purpose]"
1. Nakonfigurujte sloupce a filtry
2. Klikněte na **Možnosti zobrazení** → **Uložit jako nové zobrazení**
3. Pojmenujte ho "Export - [účel]"
### Secure Your Exports
### Zabezpečte své exporty
Exported files may contain sensitive data:
Exportované soubory mohou obsahovat citlivá data:
* Store in secure locations
* Delete old exports when no longer needed
* Be careful sharing export files
* Ukládejte na zabezpečených místech
* Smažte staré exporty, když už nejsou potřeba
* Buďte opatrní při sdílení exportovaných souborů
### Check Before Exporting
### Kontrola před exportem
<Check>Correct columns are visible</Check>
<Check>Filters are set correctly (or removed for full export)</Check>
<Check>You have Export permission</Check>
<Check>Jsou viditelné správné sloupce</Check>
<Check>Filtry jsou nastaveny správně (nebo odstraněny pro plný export)</Check>
<Check>Máte oprávnění k exportu</Check>
## FAQ
## Časté dotazy
<AccordionGroup>
<Accordion title="Why are some columns missing from my export?">
Only visible columns are exported. Add the columns you need via **Options → Fields** before exporting.
<Accordion title="Proč v mém exportu chybí některé sloupce?">
Exportují se pouze viditelné sloupce. Před exportem přidejte požadované sloupce přes **Možnosti → Pole**.
</Accordion>
<Accordion title="Why doesn't my export have all records?">
Check your filters. The export only includes records matching your current view filters. Remove filters to export all records.
<Accordion title="Proč můj export neobsahuje všechny záznamy?">
Zkontrolujte své filtry. Export zahrnuje pouze záznamy odpovídající filtrům vašeho aktuálního zobrazení. Odstraňte filtry, abyste exportovali všechny záznamy.
</Accordion>
<Accordion title="Can I export more than 20,000 records?">
Not in a single export. Use filters to export in batches, or use the API for larger datasets.
<Accordion title="Mohu exportovat více než 20 000 záznamů?">
Ne v rámci jednoho exportu. Použijte filtry k exportu po dávkách, nebo pro větší datové sady použijte API.
</Accordion>
<Accordion title="What format is the export file?">
CSV (Comma Separated Values). Opens in Excel, Google Sheets, or any spreadsheet application.
<Accordion title="V jakém formátu je exportovaný soubor?">
CSV (Comma Separated Values). Otevírá se v Excelu, Google Sheets nebo libovolné tabulkové aplikaci.
</Accordion>
<Accordion title="Are relation IDs included?">
Yes, but only on the "many" side of relationships. For example, a People export includes `companyId`, but a Companies export does not include people IDs.
<Accordion title="Jsou zahrnuta ID vztahů?">
Ano, ale pouze na straně "many" u vztahů. Například export Lidé obsahuje `companyId`, ale export Společnosti neobsahuje ID lidí.
</Accordion>
<Accordion title="Can I automate exports?">
Not directly through the UI. Use the API to build automated export workflows.
<Accordion title="Mohu exporty automatizovat?">
Ne přímo přes uživatelské rozhraní. Použijte API k vytvoření automatizovaných exportních pracovních postupů.
</Accordion>
</AccordionGroup>
## Další kroky
* [How to Update Existing Records](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
* [How to Import Data via API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
* [API Documentation](/l/cs/developers/extend/capabilities/apis) — build custom export workflows
* [Jak aktualizovat existující záznamy](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import) — upravte a znovu importujte svůj export
* [Jak importovat data přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api) — pro velké datové sady
* [Dokumentace API](/l/cs/developers/extend/capabilities/apis) — vytvářejte vlastní pracovní postupy pro export
@@ -1,90 +1,90 @@
---
title: Import Contacts via CSV
description: Complete step-by-step guide to importing people/contacts into Twenty.
title: Importujte kontakty pomocí CSV
description: Kompletní podrobný návod krok za krokem k importu osob/kontaktů do Twenty.
---
## Přehled
This guide walks you through importing your contacts (People) into Twenty. **Import Companies first** if you want to link People to Companies.
Tento průvodce vás provede importem vašich kontaktů (People) do Twenty. **Nejprve importujte Společnosti**, pokud chcete propojovat osoby se Společnostmi.
## Než začnete
### Prerequisites Checklist
### Kontrolní seznam předpokladů
<Check>
Your file is CSV, XLSX, or XLS format
Váš soubor je ve formátu CSV, XLSX nebo XLS
</Check>
<Check>
File has fewer than 10,000 records
Soubor obsahuje méně než 10 000 záznamů
</Check>
<Check>
No duplicate email addresses in your file
Žádné duplicitní e-mailové adresy ve vašem souboru
</Check>
<Check>
**Companies imported first** (if linking People to Companies)
**Společnosti importovány jako první** (pokud propojujete osoby se Společnostmi)
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Všechna vlastní pole existují v **Settings → Data Model**
</Check>
<Warning>
**Import Companies Before People**
**Importujte Společnosti před osobami**
If you want to link People to Companies, import Companies first. The Company must exist before you can reference it.
Pokud chcete propojovat osoby se Společnostmi, nejprve importujte Společnosti. Společnost musí existovat dříve, než na ni můžete odkazovat.
</Warning>
## Step 1: Prepare Your Contact Data
## Krok 1: Připravte si data kontaktů
### Required and Recommended Fields
### Povinná a doporučená pole
| Pole | Required? | Formát | Poznámky |
| ----------------- | ----------- | ----------------- | ------------------------- |
| **Email** | Recommended | `name@domain.com` | Must be unique |
| **First Name** | Recommended | Text | |
| **Last Name** | Recommended | Text | |
| **Company** | Optional | Domain or ID | Links to existing Company |
| **Phone** | Optional | Multiple columns | See below |
| **Job Title** | Optional | Text | |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Pole | Povinné? | Formát | Poznámky |
| ------------------- | ---------- | ----------------- | --------------------------------- |
| **Email** | Doporučeno | `name@domain.com` | Musí být jedinečné |
| **Jméno** | Doporučeno | Text | |
| **Příjmení** | Doporučeno | Text | |
| **Společnost** | Volitelné | Doména nebo ID | Odkazuje na existující Společnost |
| **Telefon** | Volitelné | Více sloupců | Viz níže |
| **Pracovní pozice** | Volitelné | Text | |
| **Vlastní pole** | Volitelné | Různé | Musí existovat v Data Model |
### Email Format
### Formát e-mailu
* Must be valid email format: `name@domain.com`
* **Must be unique** — no duplicates in your file or in Twenty
* For additional emails, use the **Emails / Additional Emails** column:
* Musí mít platný formát e-mailu: `name@domain.com`
* **Musí být jedinečná** — žádné duplicity ve vašem souboru ani v Twenty
* Pro další e-mailové adresy použijte sloupec **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Phone Format
### Formát telefonu
Phone is a **nested field** requiring multiple columns:
Telefon je **vnořené pole**, které vyžaduje více sloupců:
| Column | Příklad |
| Sloupec | Příklad |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Linking to Companies
### Propojení se Společnostmi
Add a column with the Company's unique identifier:
Přidejte sloupec s jedinečným identifikátorem Společnosti:
| Column Name | Formát | Příklad |
| Název sloupce | Formát | Příklad |
| --------------- | ---------- | -------------------------------------- |
| `companyDomain` | URL format | `https://acme.com` |
| `companyDomain` | Formát URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Use Domain URL format** (`https://acme.com`), not the label. This matches how Companies are stored in Twenty.
**Použijte formát URL domény** (`https://acme.com`), ne název. To odpovídá způsobu, jakým jsou Společnosti uloženy v Twenty.
</Note>
### Sample CSV Structure
### Ukázková struktura CSV
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
@@ -93,150 +93,150 @@ Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<Note>
**Pro tip:** Click **Download sample file** during import or export a few existing People to see the exact column names Twenty expects.
**Tip pro profíky:** Během importu klikněte na **Download sample file** nebo vyexportujte několik existujících osob, abyste viděli přesné názvy sloupců, které Twenty očekává.
</Note>
## Step 2: Access the Import Feature
## Krok 2: Přejděte na funkci importu
**Option 1: From the People View**
**Možnost 1: Z pohledu People**
1. Navigate to **People** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Přejděte na **People** v levém postranním panelu
2. Klikněte na ikonu **⋮** vpravo nahoře
3. Vyberte **Import records**
**Option 2: Using Command Menu**
**Možnost 2: Pomocí příkazové nabídky**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **People**
1. Stiskněte `Cmd + K` (Mac) nebo `Ctrl + K` (Windows)
2. Napište "import"
3. Vyberte **Import records**
4. Zvolte **People**
## Step 3: Upload Your File
## Krok 3: Nahrajte svůj soubor
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. Klikněte na **Select file**
2. Vyberte svůj soubor CSV, XLSX nebo XLS
3. Počkejte, až Twenty analyzuje váš soubor
## Step 4: Map Your Columns
## Krok 4: Namapujte své sloupce
Twenty automatically tries to match your columns to fields. Review and adjust:
Twenty se automaticky pokusí přiřadit vaše sloupce k polím. Zkontrolujte a upravte:
1. **Check automatic mappings** — verify they're correct
2. **Fix incorrect mappings** — click the dropdown to select the right field
3. **Skip columns** — select **Do not map** for columns you don't want to import
1. **Zkontrolujte automatic mapování** — ověřte, že jsou správná
2. **Opravte nesprávná mapování** — klikněte na rozbalovací nabídku a vyberte správné pole
3. **Přeskočte sloupce** — vyberte **Do not map** u sloupců, které nechcete importovat
### Important Mapping Rules
### Důležitá pravidla mapování
| Column Type | Map To | Poznámky |
| ----------------- | ------------------------------ | ---------------------------------- |
| Company reference | **Company** relation field | Use domain OR id, not both |
| Email | **Email** | Primary email address |
| Additional emails | **Emails / Additional Emails** | Array format |
| Telefon | Separate columns | Number, Country Code, Calling Code |
| Typ sloupce | Mapovat na | Poznámky |
| ----------------------- | ------------------------------ | ------------------------------------ |
| Reference na Společnost | Relační pole **Společnost** | Použijte doménu NEBO ID, ne obojí |
| Email | **Email** | Primární e-mailová adresa |
| Další e-mailové adresy | **Emails / Additional Emails** | Formát pole |
| Telefon | Samostatné sloupce | Číslo, kód země, telefonní předvolba |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Mapping the Company Relation
### Mapování relace Společnost
When mapping the company column:
Při mapování sloupce společnosti:
1. Find your company reference column (e.g., `companyDomain`)
2. Map it to the **Company** relation field
3. Twenty will link each Person to the matching Company
1. Najděte svůj referenční sloupec společnosti (např. `companyDomain`)
2. Namapujte jej na relační pole **Společnost**
3. Twenty propojí každou osobu s odpovídající Společností
<Warning>
**Map only ONE unique identifier for relations.**
**Pro relace mapujte pouze JEDEN jedinečný identifikátor.**
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
Nemapujte současně `companyId` a `companyDomain`. Vyberte jednu možnost — ideálně doménu, protože je lidsky čitelná.
</Warning>
## Step 5: Map Select Field Values
## Krok 5: Mapujte hodnoty polí typu Select
If you have Select or Multi-Select fields (like Lead Source):
Pokud máte pole typu Select nebo Multi-Select (např. Zdroj leadu):
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. Twenty zobrazí vaše hodnoty vedle stávajících možností
2. Spárujte každou hodnotu ve svém souboru s možností v Twenty
3. Nebo podle potřeby vytvořte nové možnosti
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
Možnosti typu Select používají **názvy API**, nikoli zobrazované štítky. V části **Nastavení → Datový model** → povolte **Pokročilý režim**, abyste viděli názvy API.
</Note>
## Step 6: Review and Fix Errors
## Krok 6: Zkontrolujte a opravte chyby
Before completing the import, Twenty validates your data:
Před dokončením importu Twenty ověří vaše data:
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. Klikněte na **Další kroky**
2. Řádky s chybami jsou zvýrazněny **žlutě**
3. **Opravte chyby přímo** — klikněte na buňku a upravte hodnotu
4. **Odstraňte problematické řádky** — klikněte na X a řádek přeskočte
### Common Contact Import Errors
### Běžné chyby při importu kontaktů
| Chyba | Cause | Solution |
| -------------------------- | -------------------------------------- | ------------------------------------------- |
| **Duplicate email** | Email already exists in Twenty or file | Remove duplicate or update existing record |
| **Invalid email format** | Email format incorrect | Fix to `name@domain.com` |
| **Relation not found** | Company doesn't exist | Import Companies first or fix the reference |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Chyba | Příčina | Řešení |
| --------------------------- | ------------------------------------------- | ------------------------------------------------------ |
| **Duplicitní e-mail** | E-mail již existuje v Twenty nebo v souboru | Odstraňte duplikát nebo aktualizujte existující záznam |
| **Neplatný formát e-mailu** | Nesprávný formát e-mailu | Upravte na `name@domain.com` |
| **Vztah nebyl nalezen** | Společnost neexistuje | Nejprve importujte společnosti nebo opravte odkaz |
| **Chybí povinné pole** | Povinné pole je prázdné | Doplňte hodnotu nebo řádek odstraňte |
## Step 7: Complete the Import
## Krok 7: Dokončete import
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records and their Company links
1. Zkontrolujte souhrn importu
2. Klikněte na **Potvrdit** pro import
3. Počkejte na dokončení importu
4. Ověřte to kontrolou několika záznamů a jejich vazeb na společnost
## After Importing Contacts
## Po importu kontaktů
Your contacts are now in Twenty! Next steps:
Vaše kontakty jsou nyní v Twenty! Další kroky:
1. **Verify Company links** — open a few People records to confirm they're linked to the right Company
2. **Import Opportunities** — if needed, link them to People and Companies
3. **Set up email sync** — connect your mailbox to see email history on contact records
1. **Ověřte vazby na Společnosti** — otevřete několik záznamů Osob a potvrďte, že jsou propojené se správnou Společností
2. **Importujte Příležitosti** — v případě potřeby je propojte s Osobami a Společnostmi
3. **Nastavte synchronizaci e-mailů** — připojte svou poštovní schránku, abyste viděli historii e-mailů u záznamů kontaktů
## Updating Existing Contacts
## Aktualizace stávajících kontaktů
To update contacts instead of creating new ones:
Chcete-li aktualizovat kontakty místo vytváření nových:
1. Include the `email` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing contacts are updated; new ones are created
1. Zahrňte do svého souboru sloupec `email` nebo `id`
2. Twenty páruje záznamy podle tohoto jedinečného identifikátoru
3. Existující kontakty se aktualizují; nové se vytvoří
See [How to Update Existing Records](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
Podrobnosti viz [Jak aktualizovat existující záznamy](/l/cs/user-guide/data-migration/how-tos/update-existing-records-via-import).
## FAQ
## Časté dotazy
<AccordionGroup>
<Accordion title="Why can't two People have the same email?">
Email is a unique identifier in Twenty. This prevents duplicate contacts and ensures email sync correctly links emails to the right person.
<Accordion title="Proč nemohou mít dvě Osoby stejný e-mail?">
E-mail je v Twenty jedinečný identifikátor. Tím se předchází duplicitním kontaktům a zajišťuje se, že synchronizace e-mailů správně propojí e-maily se správnou osobou.
</Accordion>
<Accordion title="What if I have people without an email?">
You can leave the email empty. However, we recommend adding emails when possible for better data quality and email sync functionality.
<Accordion title="Co když mám osoby bez e-mailu?">
E-mail můžete nechat prázdný. Doporučujeme však e-maily přidat, kdykoli je to možné, pro lepší kvalitu dat a funkčnost synchronizace e-mailů.
</Accordion>
<Accordion title="How do I link People to Companies during import?">
Add a column with the Company's domain (e.g., `https://acme.com`) or ID. During mapping, connect this column to the Company relation field.
<Accordion title="Jak během importu propojit Osoby se Společnostmi?">
Přidejte sloupec s doménou Společnosti (např. `https://acme.com`) nebo s ID. Při mapování propojte tento sloupec s relačním polem Společnost.
</Accordion>
<Accordion title="What if the Company doesn't exist yet?">
Import Companies first, then import People. The Company must exist before you can reference it.
<Accordion title="Co když Společnost ještě neexistuje?">
Importujte Společnosti před osobami. Společnost musí existovat dříve, než na ni můžete odkazovat.
</Accordion>
<Accordion title="Can I import the ID from my previous CRM?">
Ano! Create a custom field marked as "unique" in your data model to store the external ID. Note: the field name `id` is reserved for Twenty's internal ID.
<Accordion title="Mohu importovat ID ze svého předchozího CRM?">
Ano! V datovém modelu vytvořte vlastní pole označené jako "unique" pro uložení externího ID. Poznámka: název pole `id` je vyhrazen pro interní ID Twenty.
</Accordion>
<Accordion title="How do I fix 'relation not found' errors?">
The Company you're referencing doesn't exist. Either import the Company first, or check that the domain/ID exactly matches an existing Company.
<Accordion title="Jak opravím chyby 'relation not found'?">
Společnost, na kterou odkazujete, neexistuje. Buď nejprve importujte Společnost, nebo ověřte, že doména/ID přesně odpovídá existující Společnosti.
</Accordion>
</AccordionGroup>
## Řešení potíží
Having issues? Check:
Máte potíže? Podívejte se na:
* [How to Fix Import Errors](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)
* [How to Import Relations](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Field Mapping Reference](/l/cs/user-guide/data-migration/capabilities/field-mapping)
* [Jak opravit chyby importu](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)
* [Jak importovat relace](/l/cs/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Referenční příručka mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)
@@ -1,67 +1,67 @@
---
title: Update Existing Records via Import
description: Complete step-by-step guide to bulk updating records using CSV import.
title: Aktualizace existujících záznamů pomocí importu
description: Kompletní podrobný průvodce hromadnou aktualizací záznamů pomocí importu CSV.
---
## Přehled
Need to update many records at once? Instead of editing them one by one, use the CSV import to bulk update existing records.
Potřebujete aktualizovat mnoho záznamů najednou? Místo ruční úpravy jednoho po druhém použijte import CSV k hromadné aktualizaci existujících záznamů.
**Případy použití:**
* Update job titles for multiple people
* Change company information in bulk
* Add data to new custom fields
* Correct data errors across many records
* Aktualizujte pracovní pozice pro více lidí
* Hromadně změňte informace o společnosti
* Přidejte data do nových vlastních polí
* Opravte chyby v datech napříč mnoha záznamy
## Jak to funguje
When you import a file containing a **unique identifier** that matches an existing record, Twenty updates that record instead of creating a duplicate.
Když naimportujete soubor obsahující **jedinečný identifikátor**, který odpovídá existujícímu záznamu, Twenty tento záznam aktualizuje místo vytvoření duplicitního.
| If unique identifier... | Twenty will... |
| -------------------------- | ------------------------------------------------ |
| Matches an existing record | **Update** the existing record |
| Doesn't match any record | **Create** a new record |
| Is missing from your file | **Create** a new record (with auto-generated ID) |
| Pokud jedinečný identifikátor... | Twenty provede... |
| -------------------------------- | ------------------------------------------------------- |
| Odpovídá existujícímu záznamu | **Aktualizovat** existující záznam |
| Neodpovídá žádnému záznamu | **Vytvořit** nový záznam |
| V souboru chybí | **Vytvořit** nový záznam (s automaticky generovaným ID) |
<Warning>
**Multi-Select fields are overwritten, not merged.**
**Pole s vícenásobným výběrem se přepisují, neslučují.**
If a record has `Option A` and `Option B` selected, and you import `["Option C"]`, the record will only have `Option C` after import. The import replaces all previous selections—it does not add to them.
Pokud má záznam vybrané `Option A` a `Option B` a vy importujete `["Option C"]`, záznam bude po importu obsahovat pouze `Option C`. Import nahradí všechny předchozí volby — nepřidává k nim.
To keep existing values, include them all in your import: `["Option A","Option B","Option C"]`
Chcete-li zachovat stávající hodnoty, zahrňte je všechny do importu: `["Option A","Option B","Option C"]`
</Warning>
## Step 1: Export Your Current Data
## Krok 1: Exportujte svá aktuální data
First, export the records you want to update:
Nejprve exportujte záznamy, které chcete aktualizovat:
1. Navigate to the object (People, Companies, etc.)
2. **Add the columns you need** — click **Options → Fields** to show the fields you want to update
3. **Filter if needed** — narrow down to only the records you want to update
4. Click **⋮** → **Export view**
5. Save the CSV file
1. Přejděte k objektu (Lidé, Společnosti atd.)
2. **Přidejte potřebné sloupce** — klikněte na **Options → Fields** a zobrazte pole, která chcete aktualizovat
3. **V případě potřeby filtrujte** — zúžte výběr jen na záznamy, které chcete aktualizovat
4. Klikněte na **⋮** → **Export view**
5. Uložte soubor CSV
<Note>**Why export first?** The exported file has the correct format, includes unique identifiers, and maps automatically during import.</Note>
<Note>**Proč nejdřív exportovat?** Exportovaný soubor má správný formát, obsahuje jedinečné identifikátory a během importu se mapuje automaticky.</Note>
### What Gets Exported
### Co se exportuje
* All visible columns in your current view
* The record's unique identifiers (`id`, `email`, `domain`)
* Current field values you can modify
* Všechny viditelné sloupce v aktuálním zobrazení
* Jedinečné identifikátory záznamu (`id`, `email`, `domain`)
* Aktuální hodnoty polí, které můžete upravit
## Step 2: Edit the CSV File
## Krok 2: Upravte soubor CSV
Open the exported file in your spreadsheet application (Excel, Google Sheets, etc.):
Otevřete exportovaný soubor v tabulkovém editoru (Excel, Google Sheets apod.):
1. **Keep the unique identifier column** — don't delete `id`, `email`, or `domain`
2. **Update the values** in the columns you want to change
3. **Remove columns you don't need to update** (optional, but cleaner)
4. **Don't change unique identifier values** — or Twenty will create new records
1. **Nechte sloupec s jedinečným identifikátorem** — nemažte `id`, `email` ani `domain`
2. **Aktualizujte hodnoty** ve sloupcích, které chcete změnit
3. **Odstraňte sloupce, které není třeba aktualizovat** (volitelné, ale přehlednější)
4. **Neměňte hodnoty jedinečných identifikátorů** — jinak Twenty vytvoří nové záznamy
### Example: Updating Job Titles
### Příklad: Aktualizace pracovních pozic
**Exported file:**
**Exportovaný soubor:**
```csv
id,email,firstName,lastName,jobTitle
@@ -70,7 +70,7 @@ id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**After your edits:**
**Po vašich úpravách:**
```csv
id,email,firstName,lastName,jobTitle
@@ -80,63 +80,63 @@ id,email,firstName,lastName,jobTitle
```
<Warning>
**Don't change the unique identifier values.**
**Neměňte hodnoty jedinečných identifikátorů.**
If you change `john@acme.com` to `john.smith@acme.com`, Twenty will create a new record instead of updating the existing one.
Pokud změníte `john@acme.com` na `john.smith@acme.com`, Twenty vytvoří nový záznam místo aktualizace stávajícího.
</Warning>
## Step 3: Import the Updated File
## Krok 3: Importujte aktualizovaný soubor
1. Navigate to the object
2. Click **⋮** → **Import records**
3. Upload your edited CSV file
4. **Ensure the unique identifier is mapped** — verify `email`, `domain`, or `id` is mapped correctly
5. Review the field mappings
6. Check for errors
7. Click **Confirm**
1. Přejděte k objektu
2. Klikněte na **⋮** → **Import records**
3. Nahrajte upravený soubor CSV
4. **Ujistěte se, že je jedinečný identifikátor namapován** — ověřte, že `email`, `domain` nebo `id` je namapováno správně
5. Zkontrolujte mapování polí
6. Zkontrolujte chyby
7. Klikněte na **Confirm**
Twenty matches records by the unique identifier and updates them with new values.
Twenty porovnává záznamy podle jedinečného identifikátoru a aktualizuje je novými hodnotami.
## Choosing the Right Unique Identifier
## Výběr správného jedinečného identifikátoru
| Objekt | Recommended | Alternative | Poznámky |
| ------------------- | ---------------- | ----------- | ---------------------------- |
| **People** | `email` | `id` | Email is human-readable |
| **Společnosti** | `doména` | `id` | Domain is human-readable |
| **Vlastní objekty** | Any unique field | `id` | Use your custom unique field |
| Objekt | Doporučeno | Alternativa | Poznámky |
| ------------------- | ----------------------- | ----------- | ----------------------------------- |
| **Osoby** | `email` | `id` | E-mail je pro lidi čitelný |
| **Společnosti** | `doména` | `id` | Doména je pro lidi čitelná |
| **Vlastní objekty** | Jakékoli jedinečné pole | `id` | Použijte své vlastní jedinečné pole |
<Note>**Use only ONE unique identifier.** Don't map both `email` AND `id`. This can cause confusion and errors.</Note>
<Note>**Použijte pouze JEDEN jedinečný identifikátor.** Nemapujte současně `email` A `id`. To může způsobit nejasnosti a chyby.</Note>
### Using Custom Unique Fields
### Použití vlastních jedinečných polí
If you have a custom field marked as unique (like an external ID from another system):
Pokud máte vlastní pole označené jako jedinečné (například externí ID z jiného systému):
1. Include that field in your export and import
2. Map it during import
3. Twenty will match on that field
1. Zahrňte toto pole do exportu i importu
2. Namapujte jej během importu
3. Twenty bude párovat podle tohoto pole
## Step 4: Verify the Updates
## Krok 4: Ověřte aktualizace
After importing:
Po importu:
1. Open a few updated records
2. Verify the changes were applied
3. Check that no duplicate records were created
1. Otevřete několik aktualizovaných záznamů
2. Ověřte, že byly změny použity
3. Zkontrolujte, že nevznikly duplicitní záznamy
## What About Fields Not in Your File?
## Co pole, která nejsou ve vašem souboru?
**Fields not included in your import file remain unchanged.**
**Pole, která nejsou v importním souboru zahrnuta, zůstávají beze změny.**
| Your file includes... | Výsledek |
| ---------------------------- | ------------------------------------------------------ |
| `email`, `jobTitle` | Only `jobTitle` is updated; other fields stay the same |
| `email`, `jobTitle`, `phone` | `jobTitle` and `phone` are updated |
| Váš soubor obsahuje... | Výsledek |
| ---------------------------- | -------------------------------------------------------------- |
| `email`, `jobTitle` | Aktualizuje se pouze `jobTitle`; ostatní pole zůstávají stejná |
| `email`, `jobTitle`, `phone` | `jobTitle` a `phone` jsou aktualizovány |
This means you only need to include the fields you want to change (plus the unique identifier).
To znamená, že stačí zahrnout pouze pole, která chcete změnit (plus jedinečný identifikátor).
## Combining Updates and New Records
## Kombinace aktualizací a nových záznamů
You can update existing records AND create new ones in the same import:
V rámci jednoho importu můžete aktualizovat existující záznamy A také vytvářet nové:
```csv
email,firstName,lastName,jobTitle
@@ -144,55 +144,55 @@ john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Common Mistakes to Avoid
## Časté chyby, kterým se vyhnout
| Mistake | Problem | Výsledek | Solution |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| **Changing unique identifier** | Changed `john@acme.com` to `john.smith@acme.com` | Creates new record instead of updating | Keep unique identifiers unchanged |
| **Multiple unique fields** | Mapping both `email` AND `id` | Potential matching conflicts | Map only ONE unique identifier |
| **No unique identifier** | File only has `firstName`, `lastName`, `jobTitle` | All rows create new records | Always include `email`, `domain`, or `id` |
| **Case mismatch** | File has `John@acme.com` but Twenty has `john@acme.com` | Creates new record | Export from Twenty to get exact values |
| Chyba | Problém | Výsledek | Řešení |
| ------------------------------------ | ------------------------------------------------------------- | ------------------------------------- | -------------------------------------------------- |
| **Změna jedinečného identifikátoru** | Změněno z `john@acme.com` na `john.smith@acme.com` | Vytvoří nový záznam místo aktualizace | Nechte jedinečné identifikátory beze změny |
| **Více jedinečných polí** | Mapování jak `email`, tak `id` | Potenciální konflikty při párování | Mapujte pouze JEDEN jedinečný identifikátor |
| **Žádný jedinečný identifikátor** | Soubor obsahuje pouze `firstName`, `lastName`, `jobTitle` | Všechny řádky vytvoří nové záznamy | Vždy zahrňte `email`, `domain` nebo `id` |
| **Rozdílná velikost písmen** | V souboru je `John@acme.com`, ale v Twenty je `john@acme.com` | Vytvoří nový záznam | Exportujte z Twenty, abyste získali přesné hodnoty |
## FAQ
## Časté dotazy
<AccordionGroup>
<Accordion title="What if some records don't exist yet?">
Records with unique identifiers that don't match existing records will be created as new records. This lets you update and create in the same import.
<Accordion title="Co když některé záznamy ještě neexistují?">
Záznamy s jedinečnými identifikátory, které neodpovídají existujícím záznamům, budou vytvořeny jako nové. To vám umožní aktualizovat i vytvářet v rámci jednoho importu.
</Accordion>
<Accordion title="Can I clear/empty a field value?">
Yes, leave the cell empty in your CSV. The import will clear that field's value on the existing record.
<Accordion title="Mohu vymazat/vyprázdnit hodnotu pole?">
Ano, v CSV nechte buňku prázdnou. Import vymaže hodnotu tohoto pole u existujícího záznamu.
</Accordion>
<Accordion title="What happens to fields I don't include in the import?">
Fields not in your import file remain unchanged on existing records. Only fields you include are updated.
<Accordion title="Co se stane s poli, která do importu nezahrnu?">
Pole, která nejsou ve vašem importním souboru, zůstávají u existujících záznamů beze změny. Aktualizují se pouze pole, která zahrnete.
</Accordion>
<Accordion title="Can I update relation fields (like Company)?">
Ano! Include the relation's unique identifier (e.g., `companyDomain`) and map it to the relation field. The relation will be updated.
<Accordion title="Mohu aktualizovat relační pole (například Company)?">
Ano! Zahrňte jedinečný identifikátor relace (např. `companyDomain`) a namapujte jej na relační pole. Relace bude aktualizována.
</Accordion>
<Accordion title="How do I know which records will be updated vs. created?">
During the import review step, Twenty shows you how many records will be updated vs. created based on unique identifier matches.
<Accordion title="Jak poznám, které záznamy se aktualizují a které se vytvoří?">
Během kroku kontroly importu vám Twenty zobrazí, kolik záznamů bude aktualizováno a kolik vytvořeno na základě shody jedinečných identifikátorů.
</Accordion>
<Accordion title="Can I undo a bulk update?">
There's no automatic undo. We recommend exporting your data as a backup before making bulk updates.
<Accordion title="Lze vrátit hromadnou aktualizaci zpět?">
Automatické vrácení zpět není k dispozici. Před provedením hromadných aktualizací doporučujeme exportovat svá data jako zálohu.
</Accordion>
</AccordionGroup>
## Osvědčené postupy
1. **Export first** — always start from an export to ensure correct format
2. **Backup before updating** — export your data before making bulk changes
3. **Test with a few records** — try updating 5-10 records first before doing a large batch
4. **Use human-readable identifiers** — `email` and `domain` are easier to verify than `id`
5. **Only include necessary columns** — fewer columns means less chance for errors
1. **Nejprve exportujte** — vždy začínejte exportem, abyste zajistili správný formát
2. **Zálohujte před aktualizací** — před hromadnými změnami exportujte svá data
3. **Otestujte na několika záznamech** — nejprve zkuste aktualizovat 510 záznamů, než spustíte velkou dávku
4. **Používejte lidem srozumitelné identifikátory** — `email` a `domain` se ověřují snáze než `id`
5. **Zahrňte pouze nezbytné sloupce** — méně sloupců znamená menší šanci na chyby
## Řešení potíží
Having issues? Check:
Máte potíže? Podívejte se na:
* [How to Fix Import Errors](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)
* [Uniqueness Constraints](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Field Mapping Reference](/l/cs/user-guide/data-migration/capabilities/field-mapping)
* [Jak opravit chyby importu](/l/cs/user-guide/data-migration/how-tos/fix-import-errors)
* [Omezení jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Referenční příručka mapování polí](/l/cs/user-guide/data-migration/capabilities/field-mapping)
@@ -1,149 +1,149 @@
---
title: Send Emails from Workflows
description: Send personalized emails automatically using workflow actions.
title: Odesílání e-mailů z pracovních postupů
description: Posílejte personalizované e-maily automaticky pomocí akcí pracovních postupů.
image: /images/user-guide/workflows/workflow.png
---
Automatically send emails when specific events occur in your CRM—welcome new contacts, follow up on opportunities, or notify team members.
Automaticky odesílejte e-maily, když ve vašem CRM nastanou konkrétní události—přivítejte nové kontakty, navazujte na příležitosti nebo upozorněte členy týmu.
## Předpoklady
Before you can send emails from workflows:
Než budete moci odesílat e-maily z pracovních postupů:
1. Connect an email account under **Settings → Accounts**
2. Ensure the account has sending permissions enabled
1. Připojte e-mailový účet v **Nastavení → Účty**
2. Ujistěte se, že má účet povolená oprávnění k odesílání
## Basic Email Workflow
## Základní e-mailový pracovní postup
### Example: Welcome Email for New Contacts
### Příklad: Vítací e-mail pro nové kontakty
**Goal**: Send a welcome email when a new person is added to the CRM.
**l**: Odeslat vítací e-mail, když je do CRM přidána nová osoba.
**Nastavení**:
1. **Create workflow**: Go to **Settings → Workflows** and click **+ New Workflow**
1. **Vytvořit pracovní postup**: Přejděte do **Nastavení → Pracovní postupy** a klikněte na **+ Nový pracovní postup**
2. **Add trigger**: Select **Record is Created** → **People**
2. **Přidat spouštěč**: Vyberte **Záznam je vytvořen** → **Lidé**
3. **Add Send Email action**:
* Click **+** to add an action
* Select **Send Email**
* Configure the email:
3. **Přidat akci Odeslat e-mail**:
* Klikněte na **+** pro přidání akce
* Vyberte **Odeslat e-mail**
* Nastavte e-mail:
| Pole | Hodnota |
| ----------- | -------------------------------------- |
| **To** | `{{trigger.object.email}}` |
| **Subject** | `Vítejte ve {{Your Company Name}}` |
| **Body** | `Hi {{trigger.object.firstName}}, ...` |
| Pole | Hodnota |
| --------------- | -------------------------------------- |
| **Komu** | `{{trigger.object.email}}` |
| **Předmět** | `Vítejte ve {{Your Company Name}}` |
| **Text zprávy** | `Hi {{trigger.object.firstName}}, ...` |
4. **Test and activate**: Test with a sample record, then activate
4. **Otestujte a aktivujte**: Otestujte s ukázkovým záznamem, poté aktivujte
## Using Variables in Emails
## Používání proměnných v e-mailech
Reference data from previous steps using `{{variable}}` syntax:
Odkazujte na data z předchozích kroků pomocí syntaxe `{{variable}}`:
```text
Hi {{trigger.object.firstName}},
Dobrý den {{trigger.object.firstName}},
Thank you for connecting with us!
Děkujeme, že jste se s námi spojili!
Your company, {{trigger.object.company.name}}, is now in our system.
Vaše společnost, {{trigger.object.company.name}}, je nyní v našem systému.
Best regards,
The Team
S pozdravem,
Tým
```
### Available Variables from Triggers
### Dostupné proměnné ze spouštěčů
| Typ spouštěče | Common Variables |
| -------------------------- | -------------------------------------- |
| **Record Created/Updated** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
| Typ spouštěče | Běžné proměnné |
| -------------------------------- | -------------------------------------- |
| **Záznam vytvořen/aktualizován** | `{{trigger.object.fieldName}}` |
| **Ruční** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
## Advanced: Conditional Emails
## Pokročilé: Podmíněné e-maily
### Example: Different Emails Based on Lead Source
### Příklad: Různé e-maily podle zdroje zájemce
**Goal**: Send different welcome emails based on where the lead came from.
**l**: Posílat různé vítací e-maily podle toho, odkud zájemce přišel.
**Nastavení**:
1. **Trigger**: Record is Created (People)
1. **Spouštěč**: Záznam je vytvořen (Lidé)
2. **Add Filter action**:
* Condition: `{{trigger.object.source}}` equals `"Website"`
* If true → continue to website welcome email
2. **Přidat akci Filtr**:
* Podmínka: `{{trigger.object.source}}` se rovná `\"Website\"`
* Pokud ano → pokračujte k vítacímu e-mailu pro web
3. **Branch for other sources**:
* Create parallel branches for different sources
* Each branch has its own Send Email action
3. **Větev pro jiné zdroje**:
* Vytvořte paralelní větve pro různé zdroje
* Každá větev má svou vlastní akci Odeslat e-mail
## Sending Emails to Multiple Recipients
## Odesílání e-mailů více příjemcům
### Example: Notify Team When Deal Closes
### Příklad: Upozornit tým při uzavření obchodu
**Goal**: Email the sales rep and their manager when an opportunity is won.
**l**: Poslat e-mail obchodníkovi a jeho manažerovi, když je příležitost vyhrána.
**Nastavení**:
1. **Trigger**: Record is Updated (Opportunities, Stage = "Closed Won")
1. **Spouštěč**: Záznam je aktualizován (Příležitosti, Stádium = "Uzavřeno/Vyhráno")
2. **Search Records**: Find the opportunity owner's manager
2. **Vyhledat záznamy**: Najděte manažera vlastníka příležitosti
3. **Send Email #1**: To opportunity owner
* To: `{{trigger.object.owner.email}}`
* Subject: `Congratulations on closing {{trigger.object.name}}!`
3. **Odeslat e-mail č. 1**: Vlastníkovi příležitosti
* Komu: `{{trigger.object.owner.email}}`
* Předmět: `Gratulujeme k uzavření {{trigger.object.name}}!`
4. **Send Email #2**: To manager
* To: `{{searchRecords.manager.email}}`
* Subject: `Deal Won: {{trigger.object.name}}`
4. **Odeslat e-mail č. 2**: Manažerovi
* Komu: `{{searchRecords.manager.email}}`
* Předmět: `Vyhraný obchod: {{trigger.object.name}}`
## Scheduled Follow-up Emails
## Naplánované navazující e-maily
### Example: Follow Up 3 Days After Meeting
### Příklad: Následný kontakt 3 dny po schůzce
**Goal**: Send a follow-up email 3 days after a meeting is logged.
**l**: Odeslat následný e-mail 3 dny poté, co je zaznamenána schůzka.
**Nastavení**:
1. **Trigger**: Record is Created (Activities, Type = "Meeting")
1. **Spouštěč**: Záznam je vytvořen (Aktivity, Typ = "Schůzka")
2. **Delay action**: Wait 3 days
2. **Zpoždění**: Počkejte 3 dny
3. **Send Email**:
* To: Meeting attendee
* Subject: Following up on our conversation
* Body: Reference meeting details from trigger
3. **Odeslat e-mail**:
* Komu: Účastník schůzky
* Předmět: Navazuji na náš rozhovor
* Text zprávy: Odkaz na podrobnosti schůzky ze spouštěče
## Osvědčené postupy
### Email Content
### Obsah e-mailu
* Keep subject lines concise and relevant
* Personalize with recipient's name
* Include a clear call to action
* Test emails before activating
* Udržujte předměty stručné a věcné
* Personalizujte pomocí jména příjemce
* Zahrňte jasnou výzvu k akci
* Před aktivací e-maily otestujte
### Deliverability
### Doručitelnost
* Don't send too many emails too quickly
* Use professional email signatures
* Avoid spam trigger words
* Ensure unsubscribe options for marketing emails
* Neodesílejte příliš mnoho e-mailů příliš rychle
* Používejte profesionální e-mailové podpisy
* Vyhýbejte se slovům, která spouštějí spam
* Zajistěte možnost odhlášení u marketingových e-mailů
### Řešení potíží
* Verify email account is connected and active
* Check recipient email address is valid
* Review workflow runs for error messages
* Test with your own email address first
* Ověřte, že je e-mailový účet připojen a aktiv
* Zkontrolujte, zda je e-mailová adresa příjemce platná
* Projděte běhy pracovních postupů kvůli chybovým zprávám
* Nejprve otestujte s vlastní e-mailovou adresou
<Note>
**Coming soon**: Email attachments will be available in Q1 2026.
**Již brzy**: E-mailové přílohy budou k dispozici v Q1 2026.
</Note>
## Related
## Související
* [Workflow Triggers](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Spouštěče pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Akce pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-actions)
@@ -1,21 +1,21 @@
---
title: Workflow Actions
description: Learn about the actions available in Twenty workflows.
title: Akce pracovních postupů
description: Zjistěte, jaké akce jsou k dispozici v pracovních postupech Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## About Actions
## O akcích
Akce definují, co se stane po spuštění. You can chain multiple actions together to build complex automations.
Akce definují, co se stane po spuštění. Můžete řetězit více akcí dohromady a vytvářet tak složité automatizace.
<Tip>
* Use the variable picker (click the `(x+)` icon) to browse available data from previous steps
* Hover over any input field to see which step a variable comes from — helpful when the same field (e.g., ID) exists in multiple previous steps
* Give each action a descriptive name for easier maintenance
* Použijte nástroj pro výběr proměnných (klikněte na ikonu `(x+)`) k procházení dostupných dat z předchozích kroků
* Najetím myší na libovolné vstupní pole zjistíte, ze kterého kroku proměnná pochází — užitečné, když stejné pole (např. ID) existuje ve více předchozích krocích
* Každé akci dejte výstižný název pro snazší údržbu
</Tip>
## Record Actions
## Akce se záznamy
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
@@ -27,7 +27,7 @@ Přidává nový záznam do vybraného objektu.
* Vyberte cílový objekt
* Vyplňte povinná a volitelná pole
* Use data from previous steps or input values manually to populate fields
* Použijte data z předchozích kroků nebo hodnoty zadané ručně k vyplnění polí
**Výstup**: Data nově vytvořeného záznamu jsou k dispozici pro použití v následujících krocích.
@@ -41,8 +41,8 @@ Mění existující záznam ve vybraném objektu.
* Vyberte cílový objekt
* Vyberte specifický záznam pro aktualizaci.
* You can either choose a fixed record, using the drop down menu displaying all available records.
* Or you can have the record dynamically selected, by designating a record found in a previous step, using the `(x+)`. You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add a `Search Record` step before this `Update Record` step.
* Můžete buď vybrat pevně daný záznam pomocí rozevírací nabídky zobrazující všechny dostupné záznamy.
* Nebo můžete nechat záznam vybrat dynamicky tím, že určíte záznam nalezený v předchozím kroku pomocí `(x+)`. V této fázi nemůžete vyhledávat záznam podle různých kritérií. Pokud jste zatím neurčili záznam, přidejte krok `Search Record` před tento krok `Update Record`.
* Vyberte pole k úpravě a zadejte nové hodnoty
**Výstup**: Data aktualizovaného záznamu jsou k dispozici pro použití v následujících krocích.
@@ -71,25 +71,25 @@ Najde záznamy ve vybraném objektu pomocí filtračních podmínek.
**Výstup**: Vrací odpovídající záznamy, které lze použít v následujících krocích.
<Note>
**Limit**: Search Records returns a maximum of **200 records**. If you need to process more, add specific filters to reduce results or use scheduled workflows to process in batches.
**Omezení**: Search Records vrací maximálně **200 záznamů**. Pokud potřebujete zpracovat více, přidejte konkrétní filtry k omezení výsledků nebo použijte naplánované pracovní postupy ke zpracování v dávkách.
</Note>
**Best Practice**: Use [branches](/l/cs/user-guide/workflows/capabilities/workflow-branches) after Search Records to handle "found" vs "not found" scenarios.
**Doporučená praxe**: Použijte [větve](/l/cs/user-guide/workflows/capabilities/workflow-branches) po kroku Search Records pro zpracování scénářů "nalezeno" vs "nenalezeno".
### Upsert Record
### Vložit nebo aktualizovat záznam
Creates a new record or updates an existing one based on matching criteria. This is useful when you're not sure if a record already exists.
Vytvoří nový záznam nebo aktualizuje existující na základě kritérií shody. Hodí se, když si nejste jisti, zda záznam již existuje.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Konfigurace**:
* Vyberte cílový objekt
* Note which fields can be used for matching: email for People, domain for Companies, ID for any object, or any field marked as Unique. You'll need to populate at least one of these below.
* Fill out the field values. Do not forget to populate at least one of the unique identifiers.
* Všimněte si, která pole lze použít pro shodu: e-mail u osob, doména u společností, ID u libovolného objektu nebo jakékoli pole označené jako jedinečné. Níže budete muset vyplnit alespoň jedno z nich.
* Vyplňte hodnoty polí. Nezapomeňte vyplnit alespoň jeden z jedinečných identifikátorů.
<Note>
**Matching usually works even better when adding only one unique identifier.** For example, the screenshot below will match companies based on their domain. The ID is not necessarily needed.
**Shoda obvykle funguje ještě lépe, když přidáte pouze jeden jedinečný identifikátor.** Například snímek obrazovky níže bude párovat společnosti podle jejich domény. ID není nutně potřeba.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
@@ -1,24 +1,24 @@
---
title: Handle Arrays in Code Actions
description: Learn how to properly handle array inputs in workflow Code actions.
title: Zpracování polí v akcích Code
description: Naučte se správně pracovat se vstupy typu pole v akcích Code v pracovních postupech.
---
When working with arrays in Code actions, you may encounter two common challenges:
Při práci s poli v akcích Code se můžete setkat se dvěma běžnými problémy:
1. **Arrays passed as strings** — data from external systems or previous steps arrives as a string instead of an actual array
2. **Can't select individual items** — you can only select the entire array, not specific fields within it
1. **Pole předaná jako řetězce** — data z externích systémů nebo předchozích kroků dorazí jako řetězec místo skutečného pole
2. **Nelze vybírat jednotlivé položky** — můžete vybrat pouze celé pole, nikoli konkrétní pole objektů v něm
Both can be solved with a Code node.
Obojí lze vyřešit pomocí uzlu Code.
## Parsing Arrays from Strings
## Parsování polí z řetězců
Arrays are often passed between workflow steps as strings or JSON rather than native arrays. This happens when:
Pole se mezi kroky pracovního postupu často předávají jako řetězce nebo JSON, nikoli jako nativní pole. K tomu dochází, když:
* Receiving data from external APIs via HTTP Request
* Processing webhook payloads
* Passing data between workflow steps
* Příjem dat z externích API pomocí HTTP Request
* Zpracování dat webhooků
* Předávání dat mezi kroky pracovního postupu
**Solution**: Add this pattern at the start of your Code action:
**Řešení**: Přidejte tento vzor na začátek své akce Code:
```javascript
export const main = async (params: {
@@ -39,13 +39,13 @@ export const main = async (params: {
};
```
The key line `typeof users === "string" ? JSON.parse(users) : users` checks if the input is a string, parses it if needed, or uses it directly if it's already an array.
Klíčový řádek `typeof users === "string" ? JSON.parse(users) : users` ověřuje, zda je vstup řetězec, v případě potřeby jej rozparsuje, nebo jej použije přímo, pokud už jde o pole.
## Extracting Individual Fields from Arrays
## Extrahování jednotlivých atributů z polí
A webhook might return an array like `answers: [...]`, but in subsequent workflow steps you can only select the **entire array** — not individual items within it.
Webhook může vrátit pole jako `answers: [...]`, ale v následujících krocích pracovního postupu lze vybrat pouze celé pole — nikoli jednotlivé položky v něm.
**Solution**: Add a Code node to extract specific fields and return them as a structured object:
**Řešení**: Přidejte uzel Code, který extrahuje konkrétní pole a vrátí je jako strukturovaný objekt:
```javascript
export const main = async (params: {
@@ -71,12 +71,12 @@ export const main = async (params: {
};
```
The Code node returns a structured object instead of an array. In subsequent steps, you can now select individual fields like `answer.firstname` and `answer.name` from the variable picker.
Uzel Code vrátí místo pole strukturovaný objekt. V následujících krocích nyní můžete ve výběru proměnných vybrat jednotlivá pole, jako `answer.firstname` a `answer.name`.
<Note>
We're actively working on making array handling easier in future updates.
Aktivně pracujeme na tom, aby bylo zacházení s poli v budoucích aktualizacích snazší.
</Note>
<Tip>
Click the square icon at the top right of the code editor to display it in full screen — helpful since the default editor width is limited.
Klikněte na čtvercovou ikonu vpravo nahoře v editoru kódu a zobrazte jej na celou obrazovku — hodí se to, protože výchozí šířka editoru je omezená.
</Tip>
@@ -1,52 +1,52 @@
---
title: Generate a Quote or Invoice from Twenty
description: Automatically create invoices in external tools when deals close.
title: Vytvořte nabídku nebo fakturu z Twenty
description: Automaticky vytvářejte faktury v externích nástrojích, když se obchodní případy uzavřou.
---
Automatically send deal data to your invoicing system (Stripe, QuickBooks, Xero, etc.) when an opportunity is won.
Automaticky odesílejte data o obchodních případech do vašeho fakturačního systému (Stripe, QuickBooks, Xero atd.). když je příležitost vyhrána.
## Workflow Structure
## Struktura pracovního postupu
1. **Trigger**: Record is Updated (Opportunity)
2. **Filter**: Stage = Closed Won
3. **Search Record**: Get Company details
4. **Code** (optional): Format payload
5. **HTTP Request**: Send to invoicing system
1. **Spouštěč**: Záznam je aktualizován (Příležitost)
2. **Filtr**: Stav = Uzavřeno vyhráno
3. **Vyhledat záznam**: Získat podrobnosti o společnosti
4. **Kód** (volitelné): Formátovat payload
5. **Požadavek HTTP**: Odeslat do fakturačního systému
## Step 1: Set Up the Trigger
## Krok 1: Nastavení spouštěče
1. Create a new workflow
2. Select **Record is Updated** trigger
3. Choose **Opportunity** as the object
1. Vytvořte nový pracovní postup
2. Vyberte spouštěč **Záznam je aktualizován**
3. Vyberte jako objekt **Příležitost**
## Step 2: Filter for Closed Won
## Krok 2: Filtrování na Uzavřeno vyhráno
Add a **Filter** action to only continue when the deal is won:
Přidejte akci **Filtr**, aby se pokračovalo pouze tehdy, když je obchodní případ vyhraný:
| Setting | Hodnota |
| ------------- | --------------------------------- |
| **Field** | Fáze |
| **Condition** | Equals |
| **Value** | `CLOSED_WON` (or your stage name) |
| Nastavení | Hodnota |
| ------------ | -------------------------------------- |
| **Pole** | Fáze |
| **Podmínka** | Rovná se |
| **Hodnota** | `CLOSED_WON` (nebo název vašeho stavu) |
<Tip>
The trigger fires on any Opportunity update. The Filter ensures the workflow only continues when the stage changes to Closed Won.
Spouštěč se vyvolá při jakékoli aktualizaci Příležitosti. Filtr zajistí, že pracovní postup bude pokračovat pouze tehdy, když se stav změní na Uzavřeno vyhráno.
</Tip>
## Step 3: Get Company Details
## Krok 3: Získat podrobnosti o společnosti
The Opportunity record may not include all Company fields you need for the invoice. Add a **Search Record** action:
Záznam Příležitosti nemusí obsahovat všechna pole Společnosti, která potřebujete pro fakturu. Přidejte akci **Vyhledat záznam**:
| Setting | Hodnota |
| ------------ | ---------------------------------------- |
| **Object** | Společnost |
| **Match by** | ID equals `{{trigger.object.companyId}}` |
| Nastavení | Hodnota |
| --------------- | ------------------------------------------ |
| **Objekt** | Společnost |
| **Shoda podle** | ID se rovná `{{trigger.object.companyId}}` |
This retrieves the full Company record with billing address, tax ID, etc.
Tímto získáte úplný záznam Společnosti s fakturační adresou, daňovým ID atd.
## Step 4: Format the Payload (Optional)
## Krok 4: Formátování payloadu (volitelné)
If your invoicing system expects a specific format, add a **Code** action:
Pokud váš fakturační systém očekává specific formát, přidejte akci **Kód**:
```javascript
export const main = async (params: {
@@ -84,18 +84,18 @@ export const main = async (params: {
};
```
## Step 5: Send to Invoicing System
## Krok 5: Odeslání do fakturačního systému
Add an **HTTP Request** action:
Přidejte akci **Požadavek HTTP**:
| Setting | Hodnota |
| ----------- | ----------------------------------------- |
| **Method** | POST |
| **URL** | Your invoicing API endpoint |
| **Headers** | `Authorization: Bearer YOUR_API_KEY` |
| **Body** | `{{code.invoice}}` or map fields directly |
| Nastavení | Hodnota |
| ----------- | -------------------------------------------- |
| **Metoda** | POST |
| **URL** | Koncový bod API vašeho fakturačního systému |
| **Záhlaví** | `Authorization: Bearer YOUR_API_KEY` |
| **Tělo** | `{{code.invoice}}` nebo namapujte pole přímo |
### Example: Stripe Invoice
### Příklad: Faktura ve Stripe
```
POST https://api.stripe.com/v1/invoices
@@ -109,7 +109,7 @@ Body:
days_until_due: 30
```
### Example: QuickBooks Invoice
### Příklad: Faktura v QuickBooks
```
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice
@@ -120,24 +120,24 @@ Headers:
Body: {{code.invoice}}
```
## Complete Workflow Summary
## Shrnutí kompletního pracovního postupu
| Step | Akce | Purpose |
| ---- | ----------------------- | ------------------------------------ |
| 1 | Trigger: Record Updated | Fires when any Opportunity changes |
| 2 | Filtr | Only proceed if Stage = Closed Won |
| 3 | Search Record | Get full Company details for billing |
| 4 | Kód | Format data for invoicing API |
| 5 | HTTP požadavek | Create invoice in external system |
| Krok | Akce | Účel |
| ---- | ----------------------------- | ------------------------------------------------------ |
| 1 | Spouštěč: Záznam aktualizován | Spustí se při jakékoli změně Příležitosti |
| 2 | Filtr | Pokračujte pouze pokud Stav = Uzavřeno vyhráno |
| 3 | Vyhledat záznam | Získejte úplné podrobnosti o Společnosti pro fakturaci |
| 4 | Kód | Naformátujte data pro fakturační API |
| 5 | HTTP požadavek | Vytvořte fakturu v externím systému |
## Tips
## Tipy
* **Store external IDs**: Save the invoice ID returned by the API back to the Opportunity using an **Update Record** action
* **Error handling**: Add a branch to send a notification if the HTTP request fails
* **Test first**: Use your invoicing system's sandbox/test mode before going live
* **Ukládejte externí ID**: Uložte ID faktury vrácené API zpět do Příležitosti pomocí akce **Aktualizovat záznam**
* **Zpracování chyb**: Přidejte větev pro odeslání upozornění, pokud požadavek HTTP selže
* **Nejprve testujte**: Použijte sandbox/test režim vašeho fakturačního systému před ostrým spuštěním
## Related
## Související
* [Workflow Triggers](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Closed Won Automations](/l/cs/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
* [Spouštěče pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Akce pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Automatizace pro Uzavřeno vyhráno](/l/cs/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,49 +1,49 @@
---
title: Workflow-Guthaben
description: Understanding workflow credits, consumption, and how to purchase more.
description: Was Workflow-Guthaben sind, wie sie verbraucht werden und wie Sie mehr kaufen.
---
## Übersicht
Credits power your workflow automations in Twenty. Every workflow action consumes credits based on its complexity.
Guthaben ermöglichen Ihre Workflow-Automatisierungen in Twenty. Jede Workflow-Aktion verbraucht Guthaben abhängig von ihrer Komplexität.
## Credit Allocation
## Guthabenverteilung
Credits are based on your billing cycle, not your plan:
Guthaben richten sich nach Ihrem Abrechnungszeitraum, nicht nach Ihrem Tarif:
| Billing Cycle | Credits |
| ------------- | --------------- |
| Monatlich | 5 million/month |
| Jährlich | 50 million/year |
| Abrechnungszeitraum | Guthaben |
| ------------------- | ----------------- |
| Monatlich | 5 Millionen/Monat |
| Jährlich | 50 Millionen/Jahr |
<Note>
The 5 million monthly credits are designed to empower you to run automations without worrying about costs. For most workflows using standard actions, this is more than enough. You'll only need additional credits when running advanced code nodes or AI-powered features.
Die 5 Millionen monatlichen Guthaben sind dafür gedacht, dass Sie Automatisierungen ausführen können, ohne sich um Kosten zu kümmern. Für die meisten Workflows mit Standardaktionen ist das mehr als ausreichend. Zusätzliches Guthaben benötigen Sie nur bei der Ausführung fortgeschrittener Code-Knoten oder KI-gestützter Funktionen.
</Note>
## Credit Consumption
## Guthabenverbrauch
Different actions consume different amounts of credits:
Verschiedene Aktionen verbrauchen unterschiedliche Mengen an Guthaben:
| Action Type | Guthabenverbrauch |
| ------------------------------------------------------- | ----------------------- |
| **Basic operations** (search, update, create records) | Minimal |
| **Complex operations** (code nodes, external API calls) | More credits |
| **AI prompts** (coming soon) | Variable based on usage |
| Aktionstyp | Guthabenverbrauch |
| ---------------------------------------------------------------------------- | ------------------------ |
| **Grundlegende Vorgänge** (Suchen, Aktualisieren, Erstellen von Datensätzen) | Minimal |
| **Komplexe Vorgänge** (Code-Knoten, externe API-Aufrufe) | Mehr Guthaben |
| **AI-Eingabeaufforderungen** (demnächst verfügbar) | Variabel je nach Nutzung |
Credits werden in Echtzeit abgezogen, wenn Workflows ausgeführt werden.
## Monitoring Usage
## Nutzung überwachen
Track your credit consumption:
Verfolgen Sie Ihren Guthabenverbrauch:
1. Gehen Sie zu **Einstellungen → Abrechnung**
2. View your current usage and remaining credits
3. Monitor trends to plan for additional credits if needed
2. Sehen Sie sich Ihre aktuelle Nutzung und Ihr verbleibendes Guthaben an
3. Beobachten Sie Trends, um bei Bedarf zusätzliches Guthaben einzuplanen
## Zusätzliche Guthaben kaufen
Need more credits?
Benötigen Sie mehr Guthaben?
1. Gehen Sie zu **Einstellungen → Abrechnung**
2. Click on the option to purchase additional credit packs
3. Select the amount you need
2. Klicken Sie auf die Option, zusätzliche Guthabenpakete zu kaufen
3. Wählen Sie die benötigte Menge
@@ -1,28 +1,28 @@
---
title: Can I Book Meetings from Twenty?
description: Information about booking meetings directly from Twenty.
title: Kann ich Meetings aus Twenty buchen?
description: Informationen zum direkten Buchen von Meetings aus Twenty.
---
## Current Status
## Aktueller Status
**No, Twenty does not currently support booking meetings directly from the platform.**
**Nein, Twenty unterstützt derzeit nicht das Buchen von Meetings direkt über die Plattform.**
Twenty's calendar integration is designed to **sync and display** your existing calendar events, not to create new ones. All meeting scheduling should be done through your native calendar application (Google Calendar, Microsoft Outlook, etc.).
Die Kalenderintegration von Twenty ist dafür ausgelegt, Ihre vorhandenen Kalenderereignisse zu **synchronisieren und anzuzeigen**, nicht um neue zu erstellen. Die gesamte Terminplanung für Meetings sollte über Ihre native Kalenderanwendung (Google Kalender, Microsoft Outlook usw.) erfolgen.
## What You Can Do
## Was Sie tun können
* **View meeting history** on People, Companies, and Opportunities records
* **See upcoming meetings** with contacts in your CRM
* **Track meeting context** alongside email communications
* **Auto-create contacts** from meeting participants
* **Meeting-Verlauf anzeigen** bei Datensätzen zu Personen, Unternehmen und Gelegenheiten
* **Bevorstehende Meetings anzeigen** mit Kontakten in Ihrem CRM
* **Meeting-Kontext nachverfolgen** parallel zur E-Mail-Kommunikation
* **Kontakte automatisch erstellen** aus Meeting-Teilnehmenden
## How to Schedule Meetings
## So planen Sie Meetings
1. Use your native calendar app (Google Calendar, Outlook, etc.)
2. Create the meeting as you normally would
3. The meeting will automatically sync to Twenty within 5 minutes
4. View the meeting on the relevant CRM records
1. Verwenden Sie Ihre native Kalender-App (Google Kalender, Outlook usw.)
2. Erstellen Sie das Meeting wie gewohnt
3. Das Meeting wird innerhalb von 5 Minuten automatisch mit Twenty synchronisiert
4. Das Meeting in den relevanten CRM-Datensätzen anzeigen
## Future Plans
## Zukünftige Pläne
Meeting creation from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
Das Erstellen von Meetings direkt in Twenty steht auf unserer Roadmap. Beteiligen Sie sich an unseren [GitHub-Diskussionen](https://github.com/twentyhq/twenty/discussions), um Ihren Anwendungsfall zu teilen und bei der Priorisierung dieser Funktion zu helfen.
@@ -1,42 +1,42 @@
---
title: Connect Several Mailboxes per User
description: Connect multiple email accounts for a single user.
title: Mehrere Postfächer pro Nutzer verbinden
description: Mehrere E-Mail-Konten für einen einzelnen Nutzer verbinden.
---
## Übersicht
Twenty supports **unlimited email accounts per user**. This is useful if you manage multiple inboxes, such as:
Twenty unterstützt **unbegrenzte E-Mail-Konten pro Nutzer**. Dies ist nützlich, wenn Sie mehrere Posteingänge verwalten, zum Beispiel:
* Personal work email + shared team inbox
* Multiple client-facing email addresses
* Different email accounts for different roles
* Persönliche Arbeits-E-Mail + gemeinsamer Team-Posteingang
* Mehrere E-Mail-Adressen für die Kundenkommunikation
* Verschiedene E-Mail-Konten für unterschiedliche Rollen
## How to Add Multiple Mailboxes
## So fügen Sie mehrere Postfächer hinzu
1. Gehen Sie zu **Einstellungen → Konten**
2. Klicken Sie auf **Konto hinzufügen**
3. Connect your additional Google or Microsoft account
4. Configure sync settings for this mailbox
5. Repeat for each mailbox you want to connect
3. Verbinden Sie Ihr zusätzliches Google- oder Microsoft-Konto
4. Synchronisierungseinstellungen für dieses Postfach konfigurieren
5. Wiederholen Sie dies für jedes Postfach, das Sie verbinden möchten
## Managing Multiple Accounts
## Mehrere Konten verwalten
Each connected mailbox has its own settings:
Jedes verbundene Postfach hat eigene Einstellungen:
* **Email visibility**: Choose what teammates can see
* **Contact auto-creation**: Enable/disable per mailbox
* **Folder selection**: Choose which folders to sync (Lab feature)
* **E-Mail-Sichtbarkeit**: Wählen Sie aus, was Teammitglieder sehen können
* **Automatische Kontakterstellung**: Pro Postfach aktivieren/deaktivieren
* **Ordnerauswahl**: Wählen Sie, welche Ordner synchronisiert werden (Lab-Funktion)
## How Emails Appear
## So werden E-Mails angezeigt
Emails from all your connected mailboxes are synced to Twenty and appear on:
E-Mails aus all Ihren verbundenen Postfächern werden mit Twenty synchronisiert und erscheinen unter:
* **People records**: Based on the contact's email address
* **Company records**: Based on the email domain
* **Opportunities**: Based on the linked company
* **Personendatensätze**: Basierend auf der E-Mail-Adresse des Kontakts
* **Unternehmensdatensätze**: Basierend auf der E-Mail-Domain
* **Opportunities**: Basierend auf dem verknüpften Unternehmen
<Note>Each email shows which mailbox it was sent from/received to, so you can track which account was used for each communication.</Note>
<Note>Jede E-Mail zeigt, von welchem Postfach sie gesendet bzw. in welchem sie empfangen wurde, sodass Sie nachverfolgen können, welches Konto für jede Kommunikation verwendet wurde.</Note>
## Important Notes
## Wichtige Hinweise
<Warning>Only true mailboxes can be connected. Email aliases that forward to another mailbox cannot be connected separately—they'll sync through the main mailbox.</Warning>
<Warning>Nur echte Postfächer können verbunden werden. E-Mail-Aliase, die an ein anderes Postfach weiterleiten, können nicht separat verbunden werden—sie werden über das Hauptpostfach synchronisiert.</Warning>
@@ -1,6 +1,6 @@
---
title: Dashboards
description: Learn the basics of reporting and dashboards in Twenty.
description: Erfahren Sie die Grundlagen von Reporting und Dashboards in Twenty.
image: /images/user-guide/reporting/pie-chart.png
---
@@ -8,72 +8,72 @@ image: /images/user-guide/reporting/pie-chart.png
<img src="/images/user-guide/reporting/pie-chart.png" alt="Dashboards" />
</Frame>
## Understanding Dashboards
## Dashboards verstehen
Dashboards in Twenty provide a visual way to track your key performance metrics and gain insights from your CRM data.
Dashboards in Twenty bieten eine visuelle Möglichkeit, Ihre wichtigsten Leistungskennzahlen zu verfolgen und Erkenntnisse aus Ihren CRM-Daten zu gewinnen.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="Dashboards" />
## Key Concepts
## Wichtige Konzepte
### Dashboards
A dashboard is a collection of tabs that display your CRM data at a glance. You can create multiple dashboards for different purposes:
Ein Dashboard ist eine Sammlung von Registerkarten, die Ihre CRM-Daten auf einen Blick anzeigen. Sie können mehrere Dashboards für unterschiedliche Zwecke erstellen:
* Sales performance
* Team activity
* Pipeline health
* Custom metrics
* Vertriebsleistung
* Teamaktivität
* Gesundheit der Pipeline
* Benutzerdefinierte Kennzahlen
### Registerkarten
Tabs allow you to organize your dashboard into sections. Each tab contains one or more widgets.
Registerkarten ermöglichen es Ihnen, Ihr Dashboard in Abschnitte zu gliedern. Jede Registerkarte enthält ein oder mehrere Widgets.
### Widgets
Widgets are individual visualizations that display specific data. Types include:
Widgets sind einzelne Visualisierungen, die spezifische Daten anzeigen. Zu den Typen gehören:
* Bar charts
* Pie charts
* Line charts
* Number metrics
* Balkendiagramme
* Tortendiagramme
* Liniendiagramme
* Kennzahlen
* iFrames
<Note>
**Current limitations**:
**Aktuelle Einschränkungen**:
* Exporting dashboards and sharing with external users (non-Twenty users) are not available at the moment.
* Gauge charts and tables are not yet available.
* Das Exportieren von Dashboards und das Freigeben für externe Benutzer (Nicht-Twenty-Benutzer) sind derzeit nicht verfügbar.
* Gauge-Diagramme und Tabellen sind noch nicht verfügbar.
</Note>
## Erste Schritte
### Creating Your First Dashboard
### Ihr erstes Dashboard erstellen
1. Navigate to the **Dashboards** section
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Add tabs to organize your content
5. Add widgets to display your data
1. Navigieren Sie zum Bereich **Dashboards**
2. Klicken Sie auf **+ Neues Dashboard**
3. Geben Sie Ihrem Dashboard einen Namen
4. Fügen Sie Registerkarten hinzu, um Ihre Inhalte zu organisieren
5. Fügen Sie Widgets hinzu, um Ihre Daten anzuzeigen
6. Speichern
### Adding Widgets
### Widgets hinzufügen
1. Open a tab on your dashboard
2. Click **+ Add Widget**
3. Select the widget type
4. Choose the data source (object)
5. Configure the widget settings
6. Save and view your widget
1. Öffnen Sie eine Registerkarte in Ihrem Dashboard
2. Klicken Sie auf **+ Widget hinzufügen**
3. Wählen Sie den Widget-Typ aus
4. Wählen Sie die Datenquelle (Objekt)
5. Konfigurieren Sie die Widget-Einstellungen
6. Speichern Sie und zeigen Sie Ihr Widget an
## Beste Praktiken
* **Start simple**: Begin with a few key metrics and add more over time
* **Focus on actionable data**: Display metrics that drive decisions
* **Regular review**: Check your dashboards regularly to spot trends
* **Share with team**: Make dashboards visible to relevant team members
* **Einfach anfangen**: Beginnen Sie mit einigen wichtigen Kennzahlen und fügen Sie im Laufe der Zeit weitere hinzu
* **Auf umsetzbare Daten fokussieren**: Zeigen Sie Kennzahlen an, die Entscheidungen vorantreiben
* **Regelmäßige Überprüfung**: Prüfen Sie Ihre Dashboards regelmäßig, um Trends zu erkennen
* **Mit dem Team teilen**: Machen Sie Dashboards für relevante Teammitglieder sichtbar
## Nächste Schritte
* [Widgets and visualizations](/l/de/user-guide/dashboards/capabilities/widgets)
* [Dashboards FAQ](/l/de/user-guide/dashboards/how-tos/dashboards-faq)
* [Widgets und Visualisierungen](/l/de/user-guide/dashboards/capabilities/widgets)
* [FAQ zu Dashboards](/l/de/user-guide/dashboards/how-tos/dashboards-faq)
@@ -1,209 +1,209 @@
---
title: Export Your Data
description: Complete step-by-step guide to exporting data from Twenty.
title: Exportieren Sie Ihre Daten
description: Vollständige Schritt-für-Schritt-Anleitung zum Exportieren von Daten aus Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Überblick
Export your workspace data to CSV for backups, reporting, or migration.
Exportieren Sie die Daten Ihres Arbeitsbereichs als CSV für Backups, Berichte oder Migrationen.
**Anwendungsfälle:**
* **Regular backups** — keep copies of your data
* **External reporting** — analyze data in Excel, Google Sheets, or BI tools
* **Migration** — move data to another system
* **Bulk updates** — export, edit, and re-import to update records
* **Regelmäßige Backups** — behalten Sie Kopien Ihrer Daten
* **Externe Berichterstattung** — analysieren Sie Daten in Excel, Google Sheets oder BI-Tools
* **Migration** — übertragen Sie Daten in ein anderes System
* **Massenaktualisierungen** — exportieren, bearbeiten und erneut importieren, um Datensätze zu aktualisieren
## What You Need to Know
## Was Sie wissen müssen
### Export Limits
### Exportbeschränkungen
* **Maximum 20,000 records** per export
* Only **visible columns** are exported
* Only **filtered records** are exported (based on your current view)
* **Maximal 20.000 Datensätze** pro Export
* Nur **sichtbare Spalten** werden exportiert
* Nur **gefilterte Datensätze** werden exportiert (basierend auf Ihrer aktuellen Ansicht)
<Note>For larger exports (20,000+ records), use filters to export in batches or use the [API](/l/de/developers/extend/capabilities/apis).</Note>
<Note>Für größere Exporte (mehr als 20.000 Datensätze) verwenden Sie Filter, um stapelweise zu exportieren, oder nutzen Sie die [API](/l/de/developers/extend/capabilities/apis).</Note>
### Berechtigungen
You need the **"Export CSV"** permission to export data. Contact your workspace admin if you don't have this option.
Sie benötigen die Berechtigung **"Export CSV"**, um Daten zu exportieren. Kontaktieren Sie Ihren Workspace-Admin, wenn Sie diese Option nicht haben.
## Step 1: Navigate to the Object
## Schritt 1: Zum Objekt navigieren
Go to the object you want to export:
Gehen Sie zu dem Objekt, das Sie exportieren möchten:
* **People** — for contacts
* **Companies** — for organizations
* **Opportunities** — for deals
* **Custom objects** — any object you've created
* **People** — für Kontakte
* **Companies** — für Organisationen
* **Opportunities** — für Deals
* **Benutzerdefinierte Objekte** — jedes Objekt, das Sie erstellt haben
## Step 2: Configure Your View
## Schritt 2: Ansicht konfigurieren
**Important:** The export includes only what's visible in your current view.
**Wichtig:** Der Export enthält nur das, was in Ihrer aktuellen Ansicht sichtbar ist.
### Add/Remove Columns
### Spalten hinzufügen/entfernen
1. Click **Options → Fields** (or the **+** at the end of columns)
2. Check the fields you want to export
3. Uncheck fields you don't need
1. Klicken Sie auf **Optionen → Felder** (oder auf das **+** am Ende der Spalten)
2. Wählen Sie die Felder aus, die Sie exportieren möchten
3. Deaktivieren Sie Felder, die Sie nicht benötigen
### Filter Records (Optional)
### Datensätze filtern (optional)
If you only need a subset of data:
Wenn Sie nur einen Teil der Daten benötigen:
1. Click **Filter**
2. Add filter conditions (e.g., "Created date > January 1, 2024")
3. Only matching records will be exported
1. Klicken Sie auf **Filter**
2. Fügen Sie Filterbedingungen hinzu (z. B. "Erstellungsdatum > 1. Januar 2024")
3. Es werden nur übereinstimmende Datensätze exportiert
### Sort Records (Optional)
### Datensätze sortieren (optional)
1. Click a column header to sort
2. The export will follow your sort order
1. Klicken Sie auf eine Spaltenüberschrift, um zu sortieren
2. Der Export übernimmt Ihre Sortierreihenfolge
<Note>**Create a dedicated export view.** Save a view specifically configured for exports so you don't need to reconfigure each time.</Note>
<Note>**Erstellen Sie eine dedizierte Exportansicht.** Speichern Sie eine Ansicht, die speziell für Exporte konfiguriert ist, damit Sie sie nicht jedes Mal neu konfigurieren müssen.</Note>
## Step 3: Export the Data
## Schritt 3: Daten exportieren
1. Click the **⋮** icon on the top right of the table
2. Select **Export view**
3. Choose where to save the CSV file
4. Wait for the download to complete
1. Klicken Sie auf das Symbol **⋮** oben rechts in der Tabelle
2. Wählen Sie **Ansicht exportieren**
3. Wählen Sie den Speicherort für die CSV-Datei
4. Warten Sie, bis der Download abgeschlossen ist
## What Gets Exported
## Was exportiert wird
| Included | Not Included |
| -------------------------------- | ---------------------- |
| All visible columns | Hidden columns |
| Records matching current filters | Filtered-out records |
| Custom field values | Fields not in the view |
| Record IDs | File attachments |
| Relation IDs | Images |
| Enthalten | Nicht enthalten |
| ------------------------------------------------- | ------------------------------------- |
| Alle sichtbaren Spalten | Ausgeblendete Spalten |
| Datensätze, die den aktuellen Filtern entsprechen | Herausgefilterte Datensätze |
| Benutzerdefinierte Feldwerte | Felder, die nicht in der Ansicht sind |
| Datensatz-IDs | Dateianhänge |
| Beziehungs-IDs | Bilder |
### Relationsfelder
Relation IDs are only exported on the **"many" side** of a relationship:
Beziehungs-IDs werden nur auf der **"Many"-Seite** einer Beziehung exportiert:
* **People export** includes a `companyId` column (People → Company relation)
* **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
* **People-Export** enthält eine `companyId`-Spalte (Beziehung People → Company)
* **Companies-Export** enthält NICHT `peopleIds` (Companies ist die "One"-Seite)
This means you can use the People export to re-import and maintain the Company link, but you'll need to re-import People after Companies to recreate the relationships.
Das bedeutet, Sie können den People-Export zum Re-Import verwenden und die Verknüpfung zur Company beibehalten, müssen jedoch People nach Companies erneut importieren, um die Beziehungen wiederherzustellen.
## Exporting for Specific Purposes
## Exportieren für bestimmte Zwecke
### For Backups
### Für Backups
1. Create a view with **all fields** visible
2. Remove all filters to include all records
3. Export each object type separately
4. Store exports in a secure location
5. Set a recurring reminder (weekly/monthly)
1. Erstellen Sie eine Ansicht, in der **alle Felder** sichtbar sind
2. Entfernen Sie alle Filter, um alle Datensätze einzubeziehen
3. Exportieren Sie jeden Objekttyp separat
4. Speichern Sie Exporte an einem sicheren Ort
5. Richten Sie eine wiederkehrende Erinnerung ein (wöchentlich/monatlich)
### For External Reporting
### Für externe Berichterstattung
1. Include only the fields you need for analysis
2. Apply filters to focus on relevant data
3. Consider sorting by the field you'll analyze
1. Nehmen Sie nur die Felder auf, die Sie für die Analyse benötigen
2. Wenden Sie Filter an, um sich auf relevante Daten zu konzentrieren
3. Erwägen Sie, nach dem Feld zu sortieren, das Sie analysieren werden
### For Bulk Updates
### Für Massenaktualisierungen
1. Export the records you want to update
2. Include the unique identifier (`email`, `domain`, or `id`)
3. Edit the exported file
4. Re-import to update records
See: [How to Update Existing Records](/l/de/user-guide/data-migration/how-tos/update-existing-records-via-import)
1. Exportieren Sie die Datensätze, die Sie aktualisieren möchten
2. Fügen Sie den eindeutigen Bezeichner ein (`email`, `domain` oder `id`)
3. Bearbeiten Sie die exportierte Datei
4. Erneut importieren, um Datensätze zu aktualisieren
Siehe: [So aktualisieren Sie vorhandene Datensätze](/l/de/user-guide/data-migration/how-tos/update-existing-records-via-import)
### For Migration
### Für Migration
If you're exporting to migrate to another system:
Wenn Sie zum Zweck der Migration in ein anderes System exportieren:
1. **Export each object separately** — People, Companies, Opportunities, etc.
2. **Include ID fields** — these help maintain relationships
3. **Document field mappings** — note how Twenty fields map to your target system
1. **Exportieren Sie jedes Objekt separat** — People, Companies, Opportunities usw.
2. **ID-Felder einbeziehen** — diese helfen, Beziehungen beizubehalten
3. **Feldzuordnungen dokumentieren** — notieren Sie, wie Twenty-Felder Ihrem Zielsystem zugeordnet werden
## Handling Large Datasets (20,000+ Records)
## Umgang mit großen Datensätzen (mehr als 20.000 Datensätze)
The export limit is 20,000 records. For larger datasets:
Das Exportlimit beträgt 20.000 Datensätze. Für größere Datensätze:
### Option 1: Export in Batches
### Option 1: Stapelweiser Export
1. Add a filter (e.g., "Created date" ranges)
2. Export the first batch
3. Change the filter
4. Export the next batch
5. Combine files in your spreadsheet
1. Fügen Sie einen Filter hinzu (z. B. "Erstellungsdatum"-Bereiche)
2. Exportieren Sie den ersten Stapel
3. Ändern Sie den Filter
4. Exportieren Sie den nächsten Stapel
5. Kombinieren Sie die Dateien in Ihrer Tabellenkalkulation
**Example filters for batching:**
**Beispielfilter für die Stapelverarbeitung:**
* By date range (January, February, March...)
* By owner (Team member A, Team member B...)
* By status (Active, Inactive...)
* Nach Datumsbereich (Januar, Februar, März ...)
* Nach Eigentümer/in (Teammitglied A, Teammitglied B ...)
* Nach Status (Aktiv, Inaktiv ...)
### Option 2: Use the API
### Option 2: Verwenden Sie die API
The API has no record limit:
Die API hat kein Datensatzlimit:
1. Get your API key from **Settings → Developers**
2. Use the GraphQL API to query records
3. Process results in your application
1. Holen Sie sich Ihren API-Schlüssel unter **Einstellungen → Entwickler**
2. Verwenden Sie die GraphQL-API, um Datensätze abzufragen
3. Verarbeiten Sie die Ergebnisse in Ihrer Anwendung
See: [API Documentation](/l/de/developers/extend/capabilities/apis)
Siehe: [API-Dokumentation](/l/de/developers/extend/capabilities/apis)
## Tips and Best Practices
## Tipps und Best Practices
### Create Export Views
### Exportansichten erstellen
Save views configured specifically for exports:
Speichern Sie Ansichten, die speziell für Exporte konfiguriert sind:
1. Configure columns and filters
2. Click **View options** → **Save as new view**
3. Name it "Export - [Purpose]"
1. Konfigurieren Sie Spalten und Filter
2. Klicken Sie auf **Ansichtsoptionen** → **Als neue Ansicht speichern**
3. Benennen Sie sie "Export - [Zweck]"
### Secure Your Exports
### Sichern Sie Ihre Exporte
Exported files may contain sensitive data:
Exportierte Dateien können sensible Daten enthalten:
* Store in secure locations
* Delete old exports when no longer needed
* Be careful sharing export files
* Speichern Sie sie an sicheren Orten
* Löschen Sie alte Exporte, wenn sie nicht mehr benötigt werden
* Seien Sie vorsichtig beim Teilen von Exportdateien
### Check Before Exporting
### Vor dem Export prüfen
<Check>Correct columns are visible</Check>
<Check>Filters are set correctly (or removed for full export)</Check>
<Check>You have Export permission</Check>
<Check>Die richtigen Spalten sind sichtbar</Check>
<Check>Filter sind korrekt gesetzt (oder für den Vollexport entfernt)</Check>
<Check>Sie haben eine Exportberechtigung</Check>
## FAQ
<AccordionGroup>
<Accordion title="Why are some columns missing from my export?">
Only visible columns are exported. Add the columns you need via **Options → Fields** before exporting.
<Accordion title="Warum fehlen in meinem Export einige Spalten?">
Es werden nur sichtbare Spalten exportiert. Fügen Sie die benötigten Spalten vor dem Export über **Optionen → Felder** hinzu.
</Accordion>
<Accordion title="Why doesn't my export have all records?">
Check your filters. The export only includes records matching your current view filters. Remove filters to export all records.
<Accordion title="Warum enthält mein Export nicht alle Datensätze?">
Überprüfen Sie Ihre Filter. Der Export enthält nur Datensätze, die Ihren aktuellen Ansichtsfiltern entsprechen. Entfernen Sie Filter, um alle Datensätze zu exportieren.
</Accordion>
<Accordion title="Can I export more than 20,000 records?">
Not in a single export. Use filters to export in batches, or use the API for larger datasets.
<Accordion title="Kann ich mehr als 20.000 Datensätze exportieren?">
Nicht in einem einzigen Export. Verwenden Sie Filter, um stapelweise zu exportieren, oder nutzen Sie die API für größere Datensätze.
</Accordion>
<Accordion title="What format is the export file?">
CSV (Comma Separated Values). Opens in Excel, Google Sheets, or any spreadsheet application.
<Accordion title="Welches Format hat die Exportdatei?">
CSV (durch Kommas getrennte Werte). Lässt sich in Excel, Google Sheets oder jeder Tabellenkalkulationsanwendung öffnen.
</Accordion>
<Accordion title="Are relation IDs included?">
Yes, but only on the "many" side of relationships. For example, a People export includes `companyId`, but a Companies export does not include people IDs.
<Accordion title="Sind Beziehungs-IDs enthalten?">
Ja, aber nur auf der "Many"-Seite von Beziehungen. Beispielsweise enthält ein People-Export `companyId`, ein Companies-Export enthält jedoch keine People-IDs.
</Accordion>
<Accordion title="Can I automate exports?">
Not directly through the UI. Use the API to build automated export workflows.
<Accordion title="Kann ich Exporte automatisieren?">
Nicht direkt über die UI. Verwenden Sie die API, um automatisierte Export-Workflows zu erstellen.
</Accordion>
</AccordionGroup>
## Nächste Schritte
* [How to Update Existing Records](/l/de/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
* [How to Import Data via API](/l/de/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
* [API Documentation](/l/de/developers/extend/capabilities/apis) — build custom export workflows
* [So aktualisieren Sie vorhandene Datensätze](/l/de/user-guide/data-migration/how-tos/update-existing-records-via-import) — bearbeiten Sie Ihren Export und importieren Sie ihn erneut
* [So importieren Sie Daten über die API](/l/de/user-guide/data-migration/how-tos/import-data-via-api) — für große Datensätze
* [API-Dokumentation](/l/de/developers/extend/capabilities/apis) — erstellen Sie benutzerdefinierte Export-Workflows
@@ -1,90 +1,90 @@
---
title: Import Contacts via CSV
description: Complete step-by-step guide to importing people/contacts into Twenty.
title: Kontakte über CSV importieren
description: Vollständige Schritt-für-Schritt-Anleitung zum Importieren von Personen/Kontakten in Twenty.
---
## Übersicht
This guide walks you through importing your contacts (People) into Twenty. **Import Companies first** if you want to link People to Companies.
Diese Anleitung führt Sie durch den Import Ihrer Kontakte (Personen) in Twenty. **Importieren Sie zuerst Unternehmen**, wenn Sie Personen mit Unternehmen verknüpfen möchten.
## Bevor Sie beginnen
### Prerequisites Checklist
### Checkliste der Voraussetzungen
<Check>
Your file is CSV, XLSX, or XLS format
Ihre Datei ist im CSV-, XLSX- oder XLS-Format
</Check>
<Check>
File has fewer than 10,000 records
Die Datei enthält weniger als 10.000 Datensätze
</Check>
<Check>
No duplicate email addresses in your file
Keine doppelten E-Mail-Adressen in Ihrer Datei
</Check>
<Check>
**Companies imported first** (if linking People to Companies)
**Unternehmen zuerst importiert** (wenn Personen mit Unternehmen verknüpft werden)
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Alle benutzerdefinierten Felder existieren in **Einstellungen → Datenmodell**
</Check>
<Warning>
**Import Companies Before People**
**Unternehmen vor Personen importieren**
If you want to link People to Companies, import Companies first. The Company must exist before you can reference it.
Wenn Sie Personen mit Unternehmen verknüpfen möchten, importieren Sie zuerst Unternehmen. Das Unternehmen muss existieren, bevor Sie darauf verweisen können.
</Warning>
## Step 1: Prepare Your Contact Data
## Schritt 1: Bereiten Sie Ihre Kontaktdaten vor
### Required and Recommended Fields
### Erforderliche und empfohlene Felder
| Feld | Required? | Format | Notizen |
| ----------------- | ----------- | ----------------- | ------------------------- |
| **E-Mail** | Recommended | `name@domain.com` | Must be unique |
| **First Name** | Recommended | Text | |
| **Last Name** | Recommended | Text | |
| **Company** | Optional | Domain or ID | Links to existing Company |
| **Phone** | Optional | Multiple columns | See below |
| **Job Title** | Optional | Text | |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Feld | Erforderlich? | Format | Notizen |
| ----------------------------- | ------------- | ----------------- | ------------------------------------- |
| **E-Mail** | Empfohlen | `name@domain.com` | Muss eindeutig sein |
| **Vorname** | Empfohlen | Text | |
| **Nachname** | Empfohlen | Text | |
| **Unternehmen** | Optional | Domain oder ID | Verknüpft mit vorhandenem Unternehmen |
| **Telefon** | Optional | Mehrere Spalten | Siehe unten |
| **Berufsbezeichnung** | Optional | Text | |
| **Benutzerdefinierte Felder** | Optional | Variiert | Muss im Datenmodell existieren |
### Email Format
### E-Mail-Format
* Must be valid email format: `name@domain.com`
* **Must be unique** — no duplicates in your file or in Twenty
* For additional emails, use the **Emails / Additional Emails** column:
* Muss ein gültiges E-Mail-Format haben: `name@domain.com`
* **Muss eindeutig sein** — keine Duplikate in Ihrer Datei oder in Twenty
* Für zusätzliche E-Mails verwenden Sie die Spalte **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Phone Format
### Telefonformat
Phone is a **nested field** requiring multiple columns:
Telefon ist ein **verschachteltes Feld**, das mehrere Spalten erfordert:
| Column | Beispiel |
| Spalte | Beispiel |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Linking to Companies
### Verknüpfung mit Unternehmen
Add a column with the Company's unique identifier:
Fügen Sie eine Spalte mit dem eindeutigen Bezeichner des Unternehmens hinzu:
| Column Name | Format | Beispiel |
| Spaltenname | Format | Beispiel |
| --------------- | ---------- | -------------------------------------- |
| `companyDomain` | URL format | `https://acme.com` |
| `companyDomain` | URL-Format | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Use Domain URL format** (`https://acme.com`), not the label. This matches how Companies are stored in Twenty.
**Domain-URL-Format verwenden** (`https://acme.com`), nicht die Bezeichnung. Dies entspricht der Art, wie Unternehmen in Twenty gespeichert werden.
</Note>
### Sample CSV Structure
### Beispielhafte CSV-Struktur
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
@@ -93,150 +93,150 @@ Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<Note>
**Pro tip:** Click **Download sample file** during import or export a few existing People to see the exact column names Twenty expects.
**Profi-Tipp:** Klicken Sie während des Imports auf **Beispieldatei herunterladen** oder exportieren Sie einige vorhandene Personen, um die genauen Spaltennamen zu sehen, die Twenty erwartet.
</Note>
## Step 2: Access the Import Feature
## Schritt 2: Zugriff auf die Importfunktion
**Option 1: From the People View**
**Option 1: Aus der Personenansicht**
1. Navigate to **People** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Navigieren Sie zu **Personen** in der linken Seitenleiste
2. Klicken Sie auf das Symbol **⋮** oben rechts
3. Wählen Sie **Datensätze importieren**
**Option 2: Using Command Menu**
**Option 2: Über das Befehlsmenü**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **People**
1. Drücken Sie `Cmd + K` (Mac) oder `Strg + K` (Windows)
2. Geben Sie "import" ein
3. Wählen Sie **Datensätze importieren**
4. Wählen Sie **Personen**
## Step 3: Upload Your File
## Schritt 3: Laden Sie Ihre Datei hoch
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. Klicken Sie auf **Datei auswählen**
2. Wählen Sie Ihre CSV-, XLSX- oder XLS-Datei aus
3. Warten Sie, bis Twenty Ihre Datei analysiert
## Step 4: Map Your Columns
## Schritt 4: Ordnen Sie Ihre Spalten zu
Twenty automatically tries to match your columns to fields. Review and adjust:
Twenty versucht automatisch, Ihre Spalten den Feldern zuzuordnen. Prüfen und anpassen:
1. **Check automatic mappings** — verify they're correct
2. **Fix incorrect mappings** — click the dropdown to select the right field
3. **Skip columns** — select **Do not map** for columns you don't want to import
1. **Automatische Zuordnungen prüfen** — vergewissern Sie sich, dass sie korrekt sind
2. **Falsche Zuordnungen korrigieren** — klicken Sie auf das Dropdown, um das richtige Feld auszuwählen
3. **Spalten überspringen** — wählen Sie **Do not map** für Spalten, die Sie nicht importieren möchten
### Important Mapping Rules
### Wichtige Zuordnungsregeln
| Column Type | Map To | Notizen |
| ----------------- | ------------------------------ | ---------------------------------- |
| Company reference | **Company** relation field | Use domain OR id, not both |
| E-Mail | **E-Mail** | Primary email address |
| Additional emails | **Emails / Additional Emails** | Array format |
| Telefon | Separate columns | Number, Country Code, Calling Code |
| Spaltentyp | Zuordnen zu | Notizen |
| -------------------- | ------------------------------ | ------------------------------------------ |
| Unternehmensreferenz | **Company**-Beziehungsfeld | Verwenden Sie Domain ODER ID, nicht beides |
| E-Mail | **E-Mail** | Primäre E-Mail-Adresse |
| Zusätzliche E-Mails | **Emails / Additional Emails** | Array-Format |
| Telefon | Getrennte Spalten | Nummer, Ländercode, Telefonvorwahl |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Mapping the Company Relation
### Zuordnung der Unternehmensbeziehung
When mapping the company column:
Beim Zuordnen der Unternehmensspalte:
1. Find your company reference column (e.g., `companyDomain`)
2. Map it to the **Company** relation field
3. Twenty will link each Person to the matching Company
1. Suchen Sie Ihre Unternehmensreferenzspalte (z. B. `companyDomain`)
2. Ordnen Sie sie dem **Company**-Beziehungsfeld zu
3. Twenty verknüpft jede Person mit dem passenden Unternehmen
<Warning>
**Map only ONE unique identifier for relations.**
**Ordnen Sie für Beziehungen nur EINEN eindeutigen Bezeichner zu.**
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
Ordnen Sie nicht sowohl `companyId` als auch `companyDomain` zu. Wählen Sie eines — vorzugsweise die Domain, da sie menschenlesbar ist.
</Warning>
## Step 5: Map Select Field Values
## Schritt 5: Werte von Auswahlfeldern zuordnen
If you have Select or Multi-Select fields (like Lead Source):
Wenn Sie Auswahl- oder Mehrfachauswahlfelder haben (wie z. B. Lead-Quelle):
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. Twenty zeigt Ihre Werte neben den vorhandenen Optionen an
2. Ordnen Sie jeden Wert in Ihrer Datei einer Twenty-Option zu
3. Oder erstellen Sie bei Bedarf neue Optionen
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
Auswahloptionen verwenden **API-Namen**, nicht Anzeigenamen. Prüfen Sie **Einstellungen → Datenmodell** → Aktivieren Sie den **Erweiterten Modus**, um API-Namen zu sehen.
</Note>
## Step 6: Review and Fix Errors
## Schritt 6: Fehler prüfen und beheben
Before completing the import, Twenty validates your data:
Bevor der Import abgeschlossen wird, validiert Twenty Ihre Daten:
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. Klicken Sie auf **Nächste Schritte**
2. Zeilen mit Fehlern sind **gelb** hervorgehoben
3. **Fehler direkt beheben** — klicken Sie auf eine Zelle und bearbeiten Sie den Wert
4. **Problematische Zeilen entfernen** — klicken Sie auf das X, um die Zeile zu überspringen
### Common Contact Import Errors
### Häufige Fehler beim Kontaktimport
| Fehler | Cause | Solution |
| -------------------------- | -------------------------------------- | ------------------------------------------- |
| **Duplicate email** | Email already exists in Twenty or file | Remove duplicate or update existing record |
| **Invalid email format** | Email format incorrect | Fix to `name@domain.com` |
| **Relation not found** | Company doesn't exist | Import Companies first or fix the reference |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Fehler | Ursache | Lösung |
| ----------------------------- | ---------------------------------------------------- | -------------------------------------------------------------------- |
| **Doppelte E-Mail** | E-Mail existiert bereits in Twenty oder in der Datei | Duplikat entfernen oder bestehenden Datensatz aktualisieren |
| **Ungültiges E-Mail-Format** | E-Mail-Format ist falsch | Auf `name@domain.com` korrigieren |
| **Relation nicht gefunden** | Unternehmen existiert nicht | Importieren Sie zuerst Unternehmen oder korrigieren Sie die Referenz |
| **Erforderliches Feld fehlt** | Erforderliches Feld ist leer | Wert ausfüllen oder Zeile entfernen |
## Step 7: Complete the Import
## Schritt 7: Import abschließen
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records and their Company links
1. Importzusammenfassung prüfen
2. Klicken Sie auf **Bestätigen**, um zu importieren
3. Warten Sie, bis der Import abgeschlossen ist
4. Überprüfen Sie dies, indem Sie einige Datensätze und deren Unternehmensverknüpfungen kontrollieren
## After Importing Contacts
## Nach dem Import von Kontakten
Your contacts are now in Twenty! Next steps:
Ihre Kontakte sind jetzt in Twenty! Nächste Schritte:
1. **Verify Company links** — open a few People records to confirm they're linked to the right Company
2. **Import Opportunities** — if needed, link them to People and Companies
3. **Set up email sync** — connect your mailbox to see email history on contact records
1. **Unternehmensverknüpfungen überprüfen** — öffnen Sie einige Personen-Datensätze, um zu bestätigen, dass sie mit dem richtigen Unternehmen verknüpft sind
2. **Verkaufschancen importieren** — verknüpfen Sie sie bei Bedarf mit Personen und Unternehmen
3. **E-Mail-Synchronisierung einrichten** — verbinden Sie Ihr Postfach, um den E-Mail-Verlauf in Kontaktdatensätzen zu sehen
## Updating Existing Contacts
## Vorhandene Kontakte aktualisieren
To update contacts instead of creating new ones:
So aktualisieren Sie Kontakte, statt neue zu erstellen:
1. Include the `email` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing contacts are updated; new ones are created
1. Fügen Sie die Spalte `email` oder `id` in Ihrer Datei hinzu
2. Twenty gleicht Datensätze anhand dieses eindeutigen Bezeichners ab
3. Vorhandene Kontakte werden aktualisiert; neue werden erstellt
See [How to Update Existing Records](/l/de/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
Details finden Sie unter [So aktualisieren Sie vorhandene Datensätze](/l/de/user-guide/data-migration/how-tos/update-existing-records-via-import).
## FAQ
<AccordionGroup>
<Accordion title="Why can't two People have the same email?">
Email is a unique identifier in Twenty. This prevents duplicate contacts and ensures email sync correctly links emails to the right person.
<Accordion title="Warum können zwei Personen nicht dieselbe E-Mail haben?">
E-Mail ist ein eindeutiger Bezeichner in Twenty. Das verhindert doppelte Kontakte und stellt sicher, dass die E-Mail-Synchronisierung E-Mails der richtigen Person korrekt zuordnet.
</Accordion>
<Accordion title="What if I have people without an email?">
You can leave the email empty. However, we recommend adding emails when possible for better data quality and email sync functionality.
<Accordion title="Was ist, wenn ich Personen ohne E-Mail habe?">
Sie können das E-Mail-Feld leer lassen. Wir empfehlen jedoch, wenn möglich E-Mail-Adressen hinzuzufügen, um die Datenqualität und die E-Mail-Synchronisierung zu verbessern.
</Accordion>
<Accordion title="How do I link People to Companies during import?">
Add a column with the Company's domain (e.g., `https://acme.com`) or ID. During mapping, connect this column to the Company relation field.
<Accordion title="Wie verknüpfe ich Personen beim Import mit Unternehmen?">
Fügen Sie eine Spalte mit der Domain des Unternehmens (z. B. `https://acme.com`) oder der ID hinzu. Verbinden Sie diese Spalte beim Mapping mit dem Unternehmens-Relationsfeld.
</Accordion>
<Accordion title="What if the Company doesn't exist yet?">
Import Companies first, then import People. The Company must exist before you can reference it.
<Accordion title="Was ist, wenn das Unternehmen noch nicht existiert?">
Importieren Sie zuerst Unternehmen und dann Personen. Das Unternehmen muss existieren, bevor Sie darauf verweisen können.
</Accordion>
<Accordion title="Can I import the ID from my previous CRM?">
Ja! Create a custom field marked as "unique" in your data model to store the external ID. Note: the field name `id` is reserved for Twenty's internal ID.
<Accordion title="Kann ich die ID aus meinem vorherigen CRM importieren?">
Ja! Erstellen Sie in Ihrem Datenmodell ein benutzerdefiniertes Feld, das als "eindeutig" markiert ist, um die externe ID zu speichern. Hinweis: Der Feldname `id` ist für die interne ID von Twenty reserviert.
</Accordion>
<Accordion title="How do I fix 'relation not found' errors?">
The Company you're referencing doesn't exist. Either import the Company first, or check that the domain/ID exactly matches an existing Company.
<Accordion title="Wie behebe ich Fehler vom Typ 'Relation nicht gefunden'?">
Das Unternehmen, auf das Sie verweisen, existiert nicht. Importieren Sie entweder zuerst das Unternehmen oder prüfen Sie, dass die Domain/ID exakt mit einem vorhandenen Unternehmen übereinstimmt.
</Accordion>
</AccordionGroup>
## 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)
* [How to Import Relations](/l/de/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Field Mapping Reference](/l/de/user-guide/data-migration/capabilities/field-mapping)
* [So beheben Sie Importfehler](/l/de/user-guide/data-migration/how-tos/fix-import-errors)
* [So importieren Sie Beziehungen](/l/de/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Referenz zur Feldzuordnung](/l/de/user-guide/data-migration/capabilities/field-mapping)
@@ -1,67 +1,67 @@
---
title: Update Existing Records via Import
description: Complete step-by-step guide to bulk updating records using CSV import.
title: Vorhandene Datensätze per Import aktualisieren
description: Vollständige Schritt-für-Schritt-Anleitung zur Massenaktualisierung von Datensätzen per CSV-Import.
---
## Übersicht
Need to update many records at once? Instead of editing them one by one, use the CSV import to bulk update existing records.
Müssen Sie viele Datensätze auf einmal aktualisieren? Statt sie einzeln zu bearbeiten, verwenden Sie den CSV-Import, um vorhandene Datensätze massenhaft zu aktualisieren.
**Anwendungsfälle:**
* Update job titles for multiple people
* Change company information in bulk
* Add data to new custom fields
* Correct data errors across many records
* Positionsbezeichnungen für mehrere Personen aktualisieren
* Unternehmensinformationen in großem Umfang ändern
* Daten zu neuen benutzerdefinierten Feldern hinzufügen
* Datenfehler in vielen Datensätzen korrigieren
## Wie es funktioniert
When you import a file containing a **unique identifier** that matches an existing record, Twenty updates that record instead of creating a duplicate.
Wenn Sie eine Datei importieren, die einen **eindeutigen Bezeichner** enthält, der mit einem vorhandenen Datensatz übereinstimmt, aktualisiert Twenty diesen Datensatz, anstatt ein Duplikat zu erstellen.
| If unique identifier... | Twenty will... |
| -------------------------- | ------------------------------------------------ |
| Matches an existing record | **Update** the existing record |
| Doesn't match any record | **Create** a new record |
| Is missing from your file | **Create** a new record (with auto-generated ID) |
| Wenn der eindeutige Bezeichner... | Twenty wird... |
| ---------------------------------------------- | ------------------------------------------------------------------- |
| Stimmt mit einem vorhandenen Datensatz überein | **Aktualisiert** den vorhandenen Datensatz |
| Stimmt mit keinem Datensatz überein | **Erstellt** einen neuen Datensatz |
| Fehlt in Ihrer Datei | **Erstellt** einen neuen Datensatz (mit automatisch generierter ID) |
<Warning>
**Multi-Select fields are overwritten, not merged.**
**Mehrfachauswahl-Felder werden überschrieben, nicht zusammengeführt.**
If a record has `Option A` and `Option B` selected, and you import `["Option C"]`, the record will only have `Option C` after import. The import replaces all previous selections—it does not add to them.
Wenn in einem Datensatz `Option A` und `Option B` ausgewählt sind und Sie `[\"Option C\"]` importieren, hat der Datensatz nach dem Import nur noch `Option C`. Der Import ersetzt alle bisherigen Auswahlen — er fügt ihnen nichts hinzu.
To keep existing values, include them all in your import: `["Option A","Option B","Option C"]`
Um vorhandene Werte beizubehalten, schließen Sie sie alle in Ihren Import ein: `[\"Option A\",\"Option B\",\"Option C\"]`
</Warning>
## Step 1: Export Your Current Data
## Schritt 1: Exportieren Sie Ihre aktuellen Daten
First, export the records you want to update:
Exportieren Sie zunächst die Datensätze, die Sie aktualisieren möchten:
1. Navigate to the object (People, Companies, etc.)
2. **Add the columns you need** — click **Options → Fields** to show the fields you want to update
3. **Filter if needed** — narrow down to only the records you want to update
4. Click **⋮** → **Export view**
5. Save the CSV file
1. Navigieren Sie zum Objekt (Personen, Unternehmen usw.)
2. **Fügen Sie die benötigten Spalten hinzu** — klicken Sie auf **Optionen → Felder**, um die Felder anzuzeigen, die Sie aktualisieren möchten
3. **Filtern Sie bei Bedarf** — grenzen Sie auf genau die Datensätze ein, die Sie aktualisieren möchten
4. Klicken Sie auf **⋮** → **Ansicht exportieren**
5. Speichern Sie die CSV-Datei
<Note>**Why export first?** The exported file has the correct format, includes unique identifiers, and maps automatically during import.</Note>
<Note>**Warum zuerst exportieren?** Die exportierte Datei hat das richtige Format, enthält eindeutige Bezeichner und wird beim Import automatisch zugeordnet.</Note>
### What Gets Exported
### Was exportiert wird
* All visible columns in your current view
* The record's unique identifiers (`id`, `email`, `domain`)
* Current field values you can modify
* Alle sichtbaren Spalten in Ihrer aktuellen Ansicht
* Die eindeutigen Bezeichner des Datensatzes (`id`, `email`, `domain`)
* Aktuelle Feldwerte, die Sie ändern können
## Step 2: Edit the CSV File
## Schritt 2: Bearbeiten Sie die CSV-Datei
Open the exported file in your spreadsheet application (Excel, Google Sheets, etc.):
Öffnen Sie die exportierte Datei in Ihrer Tabellenkalkulation (Excel, Google Sheets usw.):
1. **Keep the unique identifier column** — don't delete `id`, `email`, or `domain`
2. **Update the values** in the columns you want to change
3. **Remove columns you don't need to update** (optional, but cleaner)
4. **Don't change unique identifier values** — or Twenty will create new records
1. **Behalten Sie die Spalte mit dem eindeutigen Bezeichner bei** — löschen Sie `id`, `email` oder `domain` nicht
2. **Aktualisieren Sie die Werte** in den Spalten, die Sie ändern möchten
3. **Entfernen Sie Spalten, die Sie nicht aktualisieren müssen** (optional, aber übersichtlicher)
4. **Ändern Sie die Werte der eindeutigen Bezeichner nicht** — sonst erstellt Twenty neue Datensätze
### Example: Updating Job Titles
### Beispiel: Aktualisieren von Positionsbezeichnungen
**Exported file:**
**Exportierte Datei:**
```csv
id,email,firstName,lastName,jobTitle
@@ -70,7 +70,7 @@ id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**After your edits:**
**Nach Ihren Änderungen:**
```csv
id,email,firstName,lastName,jobTitle
@@ -80,63 +80,63 @@ id,email,firstName,lastName,jobTitle
```
<Warning>
**Don't change the unique identifier values.**
**Ändern Sie die Werte der eindeutigen Bezeichner nicht.**
If you change `john@acme.com` to `john.smith@acme.com`, Twenty will create a new record instead of updating the existing one.
Wenn Sie `john@acme.com` in `john.smith@acme.com` ändern, erstellt Twenty einen neuen Datensatz, anstatt den vorhandenen zu aktualisieren.
</Warning>
## Step 3: Import the Updated File
## Schritt 3: Importieren Sie die aktualisierte Datei
1. Navigate to the object
2. Click **⋮** → **Import records**
3. Upload your edited CSV file
4. **Ensure the unique identifier is mapped** — verify `email`, `domain`, or `id` is mapped correctly
5. Review the field mappings
6. Check for errors
7. Click **Confirm**
1. Navigieren Sie zum Objekt
2. Klicken Sie auf **⋮** → **Datensätze importieren**
3. Laden Sie Ihre bearbeitete CSV-Datei hoch
4. **Stellen Sie sicher, dass der eindeutige Bezeichner zugeordnet ist** — prüfen Sie, ob `email`, `domain` oder `id` korrekt zugeordnet ist
5. Überprüfen Sie die Feldzuordnungen
6. Auf Fehler prüfen
7. Klicken Sie auf **Bestätigen**
Twenty matches records by the unique identifier and updates them with new values.
Twenty gleicht Datensätze anhand des eindeutigen Bezeichners ab und aktualisiert sie mit neuen Werten.
## Choosing the Right Unique Identifier
## Den richtigen eindeutigen Bezeichner wählen
| Objekt | Recommended | Alternative | Notizen |
| ------------------------------ | ---------------- | ----------- | ---------------------------- |
| **People** | `e-Mail` | `id` | Email is human-readable |
| **Companies** | `domäne` | `id` | Domain is human-readable |
| **Benutzerdefinierte Objekte** | Any unique field | `id` | Use your custom unique field |
| Objekt | Empfohlen | Alternative | Notizen |
| ------------------------------ | --------------------------- | ----------- | ------------------------------------------------------ |
| **Personen** | `e-Mail` | `id` | E-Mail ist menschenlesbar |
| **Unternehmen** | `domäne` | `id` | Domain ist menschenlesbar |
| **Benutzerdefinierte Objekte** | Beliebiges eindeutiges Feld | `id` | Verwenden Sie Ihr benutzerdefiniertes eindeutiges Feld |
<Note>**Use only ONE unique identifier.** Don't map both `email` AND `id`. This can cause confusion and errors.</Note>
<Note>**Verwenden Sie nur EINEN eindeutigen Bezeichner.** Ordnen Sie nicht sowohl `email` ALS AUCH `id` zu. Dies kann zu Verwirrung und Fehlern führen.</Note>
### Using Custom Unique Fields
### Benutzerdefinierte eindeutige Felder verwenden
If you have a custom field marked as unique (like an external ID from another system):
Wenn Sie ein benutzerdefiniertes Feld als eindeutig markiert haben (z. B. eine externe ID aus einem anderen System):
1. Include that field in your export and import
2. Map it during import
3. Twenty will match on that field
1. Schließen Sie dieses Feld in Ihren Export und Import ein
2. Ordnen Sie es beim Import zu
3. Twenty gleicht anhand dieses Feldes ab
## Step 4: Verify the Updates
## Schritt 4: Überprüfen Sie die Aktualisierungen
After importing:
Nach dem Import:
1. Open a few updated records
2. Verify the changes were applied
3. Check that no duplicate records were created
1. Öffnen Sie einige aktualisierte Datensätze
2. Prüfen Sie, ob die Änderungen übernommen wurden
3. Stellen Sie sicher, dass keine doppelten Datensätze erstellt wurden
## What About Fields Not in Your File?
## Was ist mit Feldern, die nicht in Ihrer Datei enthalten sind?
**Fields not included in your import file remain unchanged.**
**Felder, die nicht in Ihrer Importdatei enthalten sind, bleiben unverändert.**
| Your file includes... | Ergebnis |
| ---------------------------- | ------------------------------------------------------ |
| `email`, `jobTitle` | Only `jobTitle` is updated; other fields stay the same |
| `email`, `jobTitle`, `phone` | `jobTitle` and `phone` are updated |
| Ihre Datei enthält ... | Ergebnis |
| ---------------------------- | ------------------------------------------------------------------- |
| `email`, `jobTitle` | Nur `jobTitle` wird aktualisiert; andere Felder bleiben unverändert |
| `email`, `jobTitle`, `phone` | `jobTitle` und `phone` werden aktualisiert |
This means you only need to include the fields you want to change (plus the unique identifier).
Das heißt, Sie müssen nur die Felder einschließen, die Sie ändern möchten (plus den eindeutigen Bezeichner).
## Combining Updates and New Records
## Aktualisierungen und neue Datensätze kombinieren
You can update existing records AND create new ones in the same import:
Sie können vorhandene Datensätze aktualisieren UND neue im selben Import erstellen:
```csv
email,firstName,lastName,jobTitle
@@ -144,55 +144,55 @@ john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Common Mistakes to Avoid
## Häufige Fehler, die Sie vermeiden sollten
| Mistake | Problem | Ergebnis | Solution |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| **Changing unique identifier** | Changed `john@acme.com` to `john.smith@acme.com` | Creates new record instead of updating | Keep unique identifiers unchanged |
| **Multiple unique fields** | Mapping both `email` AND `id` | Potential matching conflicts | Map only ONE unique identifier |
| **No unique identifier** | File only has `firstName`, `lastName`, `jobTitle` | All rows create new records | Always include `email`, `domain`, or `id` |
| **Case mismatch** | File has `John@acme.com` but Twenty has `john@acme.com` | Creates new record | Export from Twenty to get exact values |
| Fehler | Problem | Ergebnis | Lösung |
| ------------------------------------------ | -------------------------------------------------------------- | ----------------------------------------------------- | ------------------------------------------------------- |
| **Eindeutigen Bezeichner ändern** | `john@acme.com` in `john.smith@acme.com` geändert | Erstellt einen neuen Datensatz statt zu aktualisieren | Eindeutige Bezeichner unverändert lassen |
| **Mehrere eindeutige Felder** | Zuordnung sowohl von `email` ALS AUCH `id` | Mögliche Abgleichkonflikte | Ordnen Sie nur EINEN eindeutigen Bezeichner zu |
| **Kein eindeutiger Bezeichner** | Datei enthält nur `firstName`, `lastName`, `jobTitle` | Alle Zeilen erstellen neue Datensätze | Schließen Sie immer `email`, `domain` oder `id` ein |
| **Unterschiedliche Groß-/Kleinschreibung** | Datei enthält `John@acme.com`, aber Twenty hat `john@acme.com` | Erstellt neuen Datensatz | Exportieren Sie aus Twenty, um exakte Werte zu erhalten |
## FAQ
<AccordionGroup>
<Accordion title="What if some records don't exist yet?">
Records with unique identifiers that don't match existing records will be created as new records. This lets you update and create in the same import.
<Accordion title="Was ist, wenn einige Datensätze noch nicht existieren?">
Datensätze mit eindeutigen Bezeichnern, die nicht mit vorhandenen Datensätzen übereinstimmen, werden als neue Datensätze erstellt. So können Sie im selben Import aktualisieren und erstellen.
</Accordion>
<Accordion title="Can I clear/empty a field value?">
Yes, leave the cell empty in your CSV. The import will clear that field's value on the existing record.
<Accordion title="Kann ich einen Feldwert löschen/leeren?">
Ja, lassen Sie die Zelle in Ihrer CSV leer. Der Import löscht den Wert dieses Feldes im vorhandenen Datensatz.
</Accordion>
<Accordion title="What happens to fields I don't include in the import?">
Fields not in your import file remain unchanged on existing records. Only fields you include are updated.
<Accordion title="Was passiert mit Feldern, die ich nicht in den Import aufnehme?">
Felder, die nicht in Ihrer Importdatei enthalten sind, bleiben in vorhandenen Datensätzen unverändert. Es werden nur die Felder aktualisiert, die Sie einschließen.
</Accordion>
<Accordion title="Can I update relation fields (like Company)?">
Ja! Include the relation's unique identifier (e.g., `companyDomain`) and map it to the relation field. The relation will be updated.
<Accordion title="Kann ich Beziehungsfelder (z. B. Unternehmen) aktualisieren?">
Ja! Fügen Sie den eindeutigen Bezeichner der Beziehung hinzu (z. B. `companyDomain`) und ordnen Sie ihn dem Beziehungsfeld zu. Die Beziehung wird aktualisiert.
</Accordion>
<Accordion title="How do I know which records will be updated vs. created?">
During the import review step, Twenty shows you how many records will be updated vs. created based on unique identifier matches.
<Accordion title="Woher weiß ich, welche Datensätze aktualisiert bzw. erstellt werden?">
Im Überprüfungsschritt des Imports zeigt Twenty Ihnen anhand der Übereinstimmungen der eindeutigen Bezeichner, wie viele Datensätze aktualisiert bzw. erstellt werden.
</Accordion>
<Accordion title="Can I undo a bulk update?">
There's no automatic undo. We recommend exporting your data as a backup before making bulk updates.
<Accordion title="Kann ich eine Massenaktualisierung rückgängig machen?">
Es gibt kein automatisches Rückgängigmachen. Wir empfehlen, Ihre Daten vor Massenaktualisierungen als Sicherung zu exportieren.
</Accordion>
</AccordionGroup>
## Beste Praktiken
1. **Export first** — always start from an export to ensure correct format
2. **Backup before updating** — export your data before making bulk changes
3. **Test with a few records** — try updating 5-10 records first before doing a large batch
4. **Use human-readable identifiers** — `email` and `domain` are easier to verify than `id`
5. **Only include necessary columns** — fewer columns means less chance for errors
1. **Zuerst exportieren** — beginnen Sie immer mit einem Export, um das richtige Format sicherzustellen
2. **Vor dem Aktualisieren sichern** — exportieren Sie Ihre Daten, bevor Sie umfangreiche Änderungen vornehmen
3. **Mit einigen Datensätzen testen** — versuchen Sie zunächst, 5-10 Datensätze zu aktualisieren, bevor Sie eine große Menge verarbeiten
4. **Verwenden Sie menschenlesbare Bezeichner** — `email` und `domain` sind leichter zu überprüfen als `id`
5. **Nur notwendige Spalten einschließen** — weniger Spalten bedeuten geringere Fehlerwahrscheinlichkeit
## 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)
* [Uniqueness Constraints](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Field Mapping Reference](/l/de/user-guide/data-migration/capabilities/field-mapping)
* [So beheben Sie Importfehler](/l/de/user-guide/data-migration/how-tos/fix-import-errors)
* [Eindeutigkeitsbeschränkungen](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Referenz zur Feldzuordnung](/l/de/user-guide/data-migration/capabilities/field-mapping)
@@ -31,11 +31,11 @@ Open-Source ist das Fundament unseres Ansatzes, das sicherstellt, dass Twenty si
* **Datenmigration:** Importieren und exportieren Sie Ihre Daten per CSV oder API. [Erste Schritte](/l/de/user-guide/data-migration/overview).
* **Ansichten & Pipelines:** Organisieren Sie Ihre Daten mit Tabellenansichten, Kanban-Boards und Vertriebspipelines. [Entdecken](/l/de/user-guide/views-pipelines/overview).
* **Workflows:** Automatisieren Sie Ihre Geschäftsprozesse und integrieren Sie externe Tools. [Automatisierungen erstellen](/l/de/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/de/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/de/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/de/user-guide/permissions-access/overview).
* **Notes & Tasks:** Create notes and tasks linked to your records for better collaboration.
* **API & Webhooks:** Connect to other apps and build custom integrations. [Integration starten](/l/de/developers/extend/capabilities/apis).
* **KI:** Erweitern Sie Ihr CRM mit KI-gestützten Funktionen und Agenten. [KI entdecken](/l/de/user-guide/ai/overview).
* **Dashboards:** Verfolgen Sie die Leistung mit benutzerdefinierten Berichten und Visualisierungen. [Dashboards anzeigen](/l/de/user-guide/dashboards/overview).
* **Berechtigungen & Zugriff:** Steuern Sie mithilfe rollenbasierter Berechtigungen, wer Ihre Daten anzeigen, bearbeiten und verwalten kann. [Zugriff konfigurieren](/l/de/user-guide/permissions-access/overview).
* **Notizen & Aufgaben:** Erstellen Sie Notizen und Aufgaben, die mit Ihren Datensätzen verknüpft sind, für eine bessere Zusammenarbeit.
* **API & Webhooks:** Verbinden Sie sich mit anderen Apps und erstellen Sie benutzerdefinierte Integrationen. [Integration starten](/l/de/developers/extend/capabilities/apis).
## Jetzt beitreten
@@ -1,149 +1,149 @@
---
title: Send Emails from Workflows
description: Send personalized emails automatically using workflow actions.
title: E-Mails über Workflows senden
description: Senden Sie personalisierte E-Mails automatisch mit Workflow-Aktionen.
image: /images/user-guide/workflows/workflow.png
---
Automatically send emails when specific events occur in your CRM—welcome new contacts, follow up on opportunities, or notify team members.
Senden Sie automatisch E-Mails, wenn bestimmte Ereignisse in Ihrem CRM auftreten—heißen Sie neue Kontakte willkommen, führen Sie Nachfassaktionen bei Verkaufschancen durch oder benachrichtigen Sie Teammitglieder.
## Voraussetzungen
Before you can send emails from workflows:
Bevor Sie E-Mails aus Workflows senden können:
1. Connect an email account under **Settings → Accounts**
2. Ensure the account has sending permissions enabled
1. Verbinden Sie ein E-Mail-Konto unter **Einstellungen → Konten**
2. Stellen Sie sicher, dass für das Konto Sendeberechtigungen aktiviert sind
## Basic Email Workflow
## Grundlegender E-Mail-Workflow
### Example: Welcome Email for New Contacts
### Beispiel: Willkommens-E-Mail für neue Kontakte
**Goal**: Send a welcome email when a new person is added to the CRM.
**Ziel**: Senden Sie eine Willkommens-E-Mail, wenn eine neue Person zum CRM hinzugefügt wird.
**Einrichtung**:
1. **Create workflow**: Go to **Settings → Workflows** and click **+ New Workflow**
1. **Workflow erstellen**: Gehen Sie zu **Einstellungen → Workflows** und klicken Sie auf **+ Neuer Workflow**
2. **Add trigger**: Select **Record is Created** → **People**
2. **Auslöser hinzufügen**: Wählen Sie **Datensatz wird erstellt** → **Personen**
3. **Add Send Email action**:
* Click **+** to add an action
* Select **Send Email**
* Configure the email:
3. **Aktion "E-Mail senden" hinzufügen**:
* Klicken Sie auf **+**, um eine Aktion hinzuzufügen
* Wählen Sie **E-Mail senden**
* Konfigurieren Sie die E-Mail:
| Feld | Wert |
| ----------- | -------------------------------------- |
| **To** | `{{trigger.object.email}}` |
| **Subject** | `Willkommen bei {{Your Company Name}}` |
| **Body** | `Hi {{trigger.object.firstName}}, ...` |
| **An** | `{{trigger.object.email}}` |
| **Betreff** | `Willkommen bei {{Your Company Name}}` |
| **Inhalt** | `Hi {{trigger.object.firstName}}, ...` |
4. **Test and activate**: Test with a sample record, then activate
4. **Testen und aktivieren**: Testen Sie mit einem Beispieldatensatz und aktivieren Sie anschließend
## Using Variables in Emails
## Variablen in E-Mails verwenden
Reference data from previous steps using `{{variable}}` syntax:
Verweisen Sie mit der Syntax `{{variable}}` auf Daten aus vorherigen Schritten:
```text
Hi {{trigger.object.firstName}},
Hallo {{trigger.object.firstName}},
Thank you for connecting with us!
Vielen Dank, dass Sie mit uns Kontakt aufgenommen haben!
Your company, {{trigger.object.company.name}}, is now in our system.
Ihr Unternehmen, {{trigger.object.company.name}}, ist jetzt in unserem System.
Best regards,
The Team
Mit freundlichen Grüßen,
Das Team
```
### Available Variables from Triggers
### Verfügbare Variablen aus Auslösern
| Auslöser-Typ | Common Variables |
| -------------------------- | -------------------------------------- |
| **Record Created/Updated** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
| Auslöser-Typ | Häufige Variablen |
| ----------------------------------- | -------------------------------------- |
| **Datensatz erstellt/aktualisiert** | `{{trigger.object.fieldName}}` |
| **Manuell** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
## Advanced: Conditional Emails
## Erweitert: Bedingte E-Mails
### Example: Different Emails Based on Lead Source
### Beispiel: Unterschiedliche E-Mails basierend auf der Lead-Quelle
**Goal**: Send different welcome emails based on where the lead came from.
**Ziel**: Senden Sie unterschiedliche Willkommens-E-Mails, je nachdem, woher der Lead stammt.
**Einrichtung**:
1. **Trigger**: Record is Created (People)
1. **Auslöser**: Datensatz wird erstellt (Personen)
2. **Add Filter action**:
* Condition: `{{trigger.object.source}}` equals `"Website"`
* If true → continue to website welcome email
2. **Aktion "Filter" hinzufügen**:
* Bedingung: `{{trigger.object.source}}` ist gleich `"Website"`
* Wenn wahr → mit der Website-Willkommens-E-Mail fortfahren
3. **Branch for other sources**:
* Create parallel branches for different sources
* Each branch has its own Send Email action
3. **Verzweigung für andere Quellen**:
* Erstellen Sie parallele Verzweigungen für verschiedene Quellen
* Jede Verzweigung hat ihre eigene Aktion "E-Mail senden"
## Sending Emails to Multiple Recipients
## E-Mails an mehrere Empfänger senden
### Example: Notify Team When Deal Closes
### Beispiel: Team benachrichtigen, wenn ein Deal abgeschlossen wird
**Goal**: Email the sales rep and their manager when an opportunity is won.
**Ziel**: Senden Sie E-Mails an den Vertriebsmitarbeiter und dessen Manager, wenn eine Verkaufschance gewonnen wird.
**Einrichtung**:
1. **Trigger**: Record is Updated (Opportunities, Stage = "Closed Won")
1. **Auslöser**: Datensatz wird aktualisiert (Chancen, Phase = "Closed Won")
2. **Search Records**: Find the opportunity owner's manager
2. **Datensätze durchsuchen**: Finden Sie den Manager des Eigentümers der Verkaufschance
3. **Send Email #1**: To opportunity owner
* To: `{{trigger.object.owner.email}}`
* Subject: `Congratulations on closing {{trigger.object.name}}!`
3. **E-Mail senden #1**: An den Eigentümer der Verkaufschance
* An: `{{trigger.object.owner.email}}`
* Betreff: `Glückwunsch zum Abschluss von {{trigger.object.name}}!`
4. **Send Email #2**: To manager
* To: `{{searchRecords.manager.email}}`
* Subject: `Deal Won: {{trigger.object.name}}`
4. **E-Mail senden #2**: An den Manager
* An: `{{searchRecords.manager.email}}`
* Betreff: `Deal gewonnen: {{trigger.object.name}}`
## Scheduled Follow-up Emails
## Geplante Nachfass-E-Mails
### Example: Follow Up 3 Days After Meeting
### Beispiel: 3 Tage nach der Besprechung nachfassen
**Goal**: Send a follow-up email 3 days after a meeting is logged.
**Ziel**: Senden Sie 3 Tage, nachdem eine Besprechung protokolliert wurde, eine Nachfass-E-Mail.
**Einrichtung**:
1. **Trigger**: Record is Created (Activities, Type = "Meeting")
1. **Auslöser**: Datensatz wird erstellt (Aktivitäten, Typ = "Besprechung")
2. **Delay action**: Wait 3 days
2. **Verzögerungsaktion**: 3 Tage warten
3. **Send Email**:
* To: Meeting attendee
* Subject: Following up on our conversation
* Body: Reference meeting details from trigger
3. **E-Mail senden**:
* An: Besprechungsteilnehmer
* Betreff: Rückmeldung zu unserem Gespräch
* Text: Verweisen Sie auf Besprechungsdetails aus dem Auslöser
## Beste Praktiken
### Email Content
### E-Mail-Inhalt
* Keep subject lines concise and relevant
* Personalize with recipient's name
* Include a clear call to action
* Test emails before activating
* Formulieren Sie Betreffzeilen prägnant und relevant
* Personalisieren Sie mit dem Namen des Empfängers
* Fügen Sie eine klare Handlungsaufforderung hinzu
* Testen Sie E-Mails vor der Aktivierung
### Deliverability
### Zustellbarkeit
* Don't send too many emails too quickly
* Use professional email signatures
* Avoid spam trigger words
* Ensure unsubscribe options for marketing emails
* Senden Sie nicht zu viele E-Mails in zu kurzer Zeit
* Verwenden Sie professionelle E-Mail-Signaturen
* Vermeiden Sie Spam-Trigger-Wörter
* Stellen Sie sicher, dass Marketing-E-Mails eine Abmeldemöglichkeit enthalten
### Fehlerbehebung
* Verify email account is connected and active
* Check recipient email address is valid
* Review workflow runs for error messages
* Test with your own email address first
* Überprüfen Sie, dass das E-Mail-Konto verbunden und aktiv ist
* Prüfen Sie, ob die E-Mail-Adresse des Empfängers gültig ist
* Überprüfen Sie Workflow-Ausführungen auf Fehlermeldungen
* Testen Sie zunächst mit Ihrer eigenen E-Mail-Adresse
<Note>
**Coming soon**: Email attachments will be available in Q1 2026.
**Bald verfügbar**: E-Mail-Anhänge werden im Q1 2026 verfügbar sein.
</Note>
## Related
## Verwandt
* [Workflow Triggers](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [Workflow-Trigger](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow-Aktionen](/l/de/user-guide/workflows/capabilities/workflow-actions)
@@ -1,21 +1,21 @@
---
title: Workflow-Aktionen
description: Learn about the actions available in Twenty workflows.
description: Erfahren Sie mehr über die in Twenty-Workflows verfügbaren Aktionen.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## About Actions
## Über Aktionen
Aktionen definieren, was nach dem Auslösen passiert. You can chain multiple actions together to build complex automations.
Aktionen definieren, was nach dem Auslösen passiert. Sie können mehrere Aktionen verketten, um komplexe Automatisierungen zu erstellen.
<Tip>
* Use the variable picker (click the `(x+)` icon) to browse available data from previous steps
* Hover over any input field to see which step a variable comes from — helpful when the same field (e.g., ID) exists in multiple previous steps
* Give each action a descriptive name for easier maintenance
* Verwenden Sie die Variablenauswahl (klicken Sie auf das Symbol `(x+)`), um verfügbare Daten aus vorherigen Schritten zu durchsuchen
* Bewegen Sie den Mauszeiger über ein beliebiges Eingabefeld, um zu sehen, aus welchem Schritt eine Variable stammt — hilfreich, wenn dasselbe Feld (z. B. ID) in mehreren vorherigen Schritten vorhanden ist
* Geben Sie jeder Aktion einen aussagekräftigen Namen, um die Wartung zu erleichtern
</Tip>
## Record Actions
## Datensatz-Aktionen
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
@@ -27,7 +27,7 @@ Fügt einem ausgewählten Objekt einen neuen Datensatz hinzu.
* Wählen Sie das Zielobjekt aus
* Füllen Sie die erforderlichen und optionalen Felder aus
* Use data from previous steps or input values manually to populate fields
* Verwenden Sie Daten aus vorherigen Schritten oder geben Sie Werte manuell ein, um Felder auszufüllen
**Ausgabe**: Die neu erstellten Datensatzdaten stehen in nachfolgenden Schritten zur Verfügung.
@@ -41,8 +41,8 @@ Fügt einem ausgewählten Objekt einen neuen Datensatz hinzu.
* Wählen Sie das Zielobjekt aus
* Wählen Sie den spezifischen Datensatz zum Aktualisieren aus.
* You can either choose a fixed record, using the drop down menu displaying all available records.
* Or you can have the record dynamically selected, by designating a record found in a previous step, using the `(x+)`. You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add a `Search Record` step before this `Update Record` step.
* Sie können entweder einen festen Datensatz auswählen, indem Sie das Dropdown-Menü verwenden, das alle verfügbaren Datensätze anzeigt.
* Oder Sie lassen den Datensatz dynamisch auswählen, indem Sie einen in einem vorherigen Schritt gefundenen Datensatz über `(x+)` angeben. In diesem Schritt können Sie den Datensatz nicht anhand verschiedener Kriterien suchen. Wenn Sie den Datensatz noch nicht identifiziert haben, fügen Sie vor diesem Schritt `Update Record` einen Schritt `Search Record` hinzu.
* Wählen Sie zu ändernde Felder aus und geben Sie neue Werte ein
**Ausgabe**: Die aktualisierten Datensatzdaten stehen in nachfolgenden Schritten zur Verfügung.
@@ -71,25 +71,25 @@ Findet Datensätze innerhalb eines ausgewählten Objekts mittels Filterkondition
**Ausgabe**: Gibt passende Datensätze zurück, die in nachfolgenden Schritten verwendet werden können.
<Note>
**Limit**: Search Records returns a maximum of **200 records**. If you need to process more, add specific filters to reduce results or use scheduled workflows to process in batches.
**Limit**: Search Records gibt maximal **200 Datensätze** zurück. Wenn Sie mehr verarbeiten müssen, fügen Sie spezifische Filter hinzu, um die Ergebnisse zu reduzieren, oder verwenden Sie geplante Workflows, um stapelweise zu verarbeiten.
</Note>
**Best Practice**: Use [branches](/l/de/user-guide/workflows/capabilities/workflow-branches) after Search Records to handle "found" vs "not found" scenarios.
**Best Practice**: Verwenden Sie [Verzweigungen](/l/de/user-guide/workflows/capabilities/workflow-branches) nach dem Durchsuchen von Datensätzen, um "gefunden" vs "nicht gefunden" Szenarien zu behandeln.
### Upsert Record
### Datensatz einfügen oder aktualisieren
Creates a new record or updates an existing one based on matching criteria. This is useful when you're not sure if a record already exists.
Erstellt einen neuen Datensatz oder aktualisiert einen vorhandenen anhand von Übereinstimmungskriterien. Das ist hilfreich, wenn Sie nicht sicher sind, ob ein Datensatz bereits vorhanden ist.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Konfiguration**:
* Wählen Sie das Zielobjekt aus
* Note which fields can be used for matching: email for People, domain for Companies, ID for any object, or any field marked as Unique. You'll need to populate at least one of these below.
* Fill out the field values. Do not forget to populate at least one of the unique identifiers.
* Beachten Sie, welche Felder für den Abgleich verwendet werden können: E-Mail für Personen, Domain für Unternehmen, ID für beliebige Objekte oder jedes Feld, das als eindeutig markiert ist. Unten müssen Sie mindestens eines davon ausfüllen.
* Füllen Sie die Feldwerte aus. Vergessen Sie nicht, mindestens einen der eindeutigen Bezeichner auszufüllen.
<Note>
**Matching usually works even better when adding only one unique identifier.** For example, the screenshot below will match companies based on their domain. The ID is not necessarily needed.
**Der Abgleich funktioniert in der Regel noch besser, wenn Sie nur einen eindeutigen Bezeichner hinzufügen.** Beispielsweise werden im untenstehenden Screenshot Unternehmen anhand ihrer Domain abgeglichen. Die ID ist nicht unbedingt erforderlich.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
@@ -1,24 +1,24 @@
---
title: Handle Arrays in Code Actions
description: Learn how to properly handle array inputs in workflow Code actions.
title: Arrays in Code-Aktionen verarbeiten
description: Erfahren Sie, wie Sie Array-Eingaben in Code-Aktionen innerhalb von Workflows korrekt verarbeiten.
---
When working with arrays in Code actions, you may encounter two common challenges:
Bei der Arbeit mit Arrays in Code-Aktionen stoßen Sie möglicherweise auf zwei häufige Herausforderungen:
1. **Arrays passed as strings** — data from external systems or previous steps arrives as a string instead of an actual array
2. **Can't select individual items** — you can only select the entire array, not specific fields within it
1. **Als Strings übergebene Arrays** — Daten aus externen Systemen oder vorherigen Schritten kommen als String statt als echtes Array an
2. **Einzelne Elemente nicht auswählbar** — Sie können nur das gesamte Array auswählen, nicht bestimmte Felder darin
Both can be solved with a Code node.
Beides lässt sich mit einem Code-Knoten lösen.
## Parsing Arrays from Strings
## Arrays aus Strings parsen
Arrays are often passed between workflow steps as strings or JSON rather than native arrays. This happens when:
Arrays werden zwischen Workflow-Schritten häufig als Strings oder JSON übergeben, statt als native Arrays. Dies geschieht, wenn:
* Receiving data from external APIs via HTTP Request
* Processing webhook payloads
* Passing data between workflow steps
* Empfangen von Daten aus externen APIs über HTTP Request
* Verarbeiten von Webhook-Payloads
* Weitergeben von Daten zwischen Workflow-Schritten
**Solution**: Add this pattern at the start of your Code action:
**Lösung**: Fügen Sie dieses Muster am Anfang Ihrer Code-Aktion hinzu:
```javascript
export const main = async (params: {
@@ -39,13 +39,13 @@ export const main = async (params: {
};
```
The key line `typeof users === "string" ? JSON.parse(users) : users` checks if the input is a string, parses it if needed, or uses it directly if it's already an array.
Die entscheidende Zeile `typeof users === "string" ? JSON.parse(users) : users` prüft, ob die Eingabe ein String ist, parst sie bei Bedarf oder verwendet sie direkt, wenn sie bereits ein Array ist.
## Extracting Individual Fields from Arrays
## Einzelne Felder aus Arrays extrahieren
A webhook might return an array like `answers: [...]`, but in subsequent workflow steps you can only select the **entire array** — not individual items within it.
Ein Webhook kann ein Array wie `answers: [...]` zurückgeben, aber in nachfolgenden Workflow-Schritten können Sie nur das **gesamte Array** auswählen — nicht einzelne Elemente darin.
**Solution**: Add a Code node to extract specific fields and return them as a structured object:
**Lösung**: Fügen Sie einen Code-Knoten hinzu, um bestimmte Felder zu extrahieren und als strukturiertes Objekt zurückzugeben:
```javascript
export const main = async (params: {
@@ -71,12 +71,12 @@ export const main = async (params: {
};
```
The Code node returns a structured object instead of an array. In subsequent steps, you can now select individual fields like `answer.firstname` and `answer.name` from the variable picker.
Der Code-Knoten gibt statt eines Arrays ein strukturiertes Objekt zurück. In den folgenden Schritten können Sie nun einzelne Felder wie `answer.firstname` und `answer.name` aus der Variablenauswahl auswählen.
<Note>
We're actively working on making array handling easier in future updates.
Wir arbeiten aktiv daran, die Arbeit mit Arrays in zukünftigen Updates zu vereinfachen.
</Note>
<Tip>
Click the square icon at the top right of the code editor to display it in full screen — helpful since the default editor width is limited.
Klicken Sie auf das quadratische Symbol oben rechts im Code-Editor, um ihn im Vollbild anzuzeigen — hilfreich, da die Standardbreite des Editors begrenzt ist.
</Tip>
@@ -1,52 +1,52 @@
---
title: Generate a Quote or Invoice from Twenty
description: Automatically create invoices in external tools when deals close.
title: Ein Angebot oder eine Rechnung aus Twenty erstellen.
description: Rechnungen in externen Tools automatisch erstellen, wenn Deals abgeschlossen werden.
---
Automatically send deal data to your invoicing system (Stripe, QuickBooks, Xero, etc.) when an opportunity is won.
Deal-Daten automatisch an Ihr Rechnungsstellungssystem senden (Stripe, QuickBooks, Xero usw.) wenn eine Opportunity gewonnen wird.
## Workflow Structure
## Workflow-Struktur
1. **Trigger**: Record is Updated (Opportunity)
2. **Filter**: Stage = Closed Won
3. **Search Record**: Get Company details
4. **Code** (optional): Format payload
5. **HTTP Request**: Send to invoicing system
1. **Auslöser**: Datensatz wird aktualisiert (Opportunity)
2. **Filter**: Phase = Closed Won
3. **Datensatz suchen**: Unternehmensdetails abrufen
4. **Code** (optional): Nutzlast formatieren
5. **HTTP-Anfrage**: An Rechnungsstellungssystem senden
## Step 1: Set Up the Trigger
## Schritt 1: Auslöser einrichten
1. Create a new workflow
2. Select **Record is Updated** trigger
3. Choose **Opportunity** as the object
1. Erstellen Sie einen neuen Workflow
2. Wählen Sie den Auslöser **Datensatz wird aktualisiert** aus
3. Wählen Sie **Opportunity** als Objekt
## Step 2: Filter for Closed Won
## Schritt 2: Nach Closed Won filtern
Add a **Filter** action to only continue when the deal is won:
Fügen Sie eine **Filter**-Aktion hinzu, damit nur fortgefahren wird, wenn der Deal gewonnen wurde:
| Setting | Wert |
| ------------- | --------------------------------- |
| **Field** | Phase |
| **Condition** | Equals |
| **Value** | `CLOSED_WON` (or your stage name) |
| Einstellung | Wert |
| ------------- | ---------------------------------------- |
| **Feld** | Phase |
| **Bedingung** | Gleich |
| **Wert** | `CLOSED_WON` (oder der Name Ihrer Phase) |
<Tip>
The trigger fires on any Opportunity update. The Filter ensures the workflow only continues when the stage changes to Closed Won.
Der Auslöser wird bei jeder Opportunity-Aktualisierung ausgelöst. Der Filter stellt sicher, dass der Workflow nur fortgesetzt wird, wenn die Phase auf Closed Won geändert wird.
</Tip>
## Step 3: Get Company Details
## Schritt 3: Unternehmensdetails abrufen
The Opportunity record may not include all Company fields you need for the invoice. Add a **Search Record** action:
Der Opportunity-Datensatz enthält möglicherweise nicht alle Unternehmensfelder, die Sie für die Rechnung benötigen. Fügen Sie eine **Datensatz suchen**-Aktion hinzu:
| Setting | Wert |
| ------------ | ---------------------------------------- |
| **Object** | Unternehmen |
| **Match by** | ID equals `{{trigger.object.companyId}}` |
| Einstellung | Wert |
| --------------------- | -------------------------------------------- |
| **Objekt** | Unternehmen |
| **Abgleichen anhand** | ID entspricht `{{trigger.object.companyId}}` |
This retrieves the full Company record with billing address, tax ID, etc.
Dadurch wird der vollständige Unternehmensdatensatz mit Rechnungsadresse, Steuernummer usw. abgerufen.
## Step 4: Format the Payload (Optional)
## Schritt 4: Nutzlast formatieren (optional)
If your invoicing system expects a specific format, add a **Code** action:
Wenn Ihr Rechnungsstellungssystem ein bestimmtes Format erwartet, fügen Sie eine **Code**-Aktion hinzu:
```javascript
export const main = async (params: {
@@ -84,18 +84,18 @@ export const main = async (params: {
};
```
## Step 5: Send to Invoicing System
## Schritt 5: An Rechnungsstellungssystem senden
Add an **HTTP Request** action:
Fügen Sie eine **HTTP-Anfrage**-Aktion hinzu:
| Setting | Wert |
| ----------- | ----------------------------------------- |
| **Method** | POST |
| **URL** | Your invoicing API endpoint |
| **Headers** | `Authorization: Bearer YOUR_API_KEY` |
| **Body** | `{{code.invoice}}` or map fields directly |
| Einstellung | Wert |
| ----------- | ---------------------------------------------- |
| **Methode** | POST |
| **URL** | Ihr API-Endpunkt für die Rechnungsstellung |
| **Header** | `Authorization: Bearer YOUR_API_KEY` |
| **Inhalt** | `{{code.invoice}}` oder Felder direkt zuordnen |
### Example: Stripe Invoice
### Beispiel: Stripe-Rechnung
```
POST https://api.stripe.com/v1/invoices
@@ -109,7 +109,7 @@ Body:
days_until_due: 30
```
### Example: QuickBooks Invoice
### Beispiel: QuickBooks-Rechnung
```
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice
@@ -120,24 +120,24 @@ Headers:
Body: {{code.invoice}}
```
## Complete Workflow Summary
## Vollständige Workflow-Zusammenfassung
| Step | Aktion | Purpose |
| ---- | ----------------------- | ------------------------------------ |
| 1 | Trigger: Record Updated | Fires when any Opportunity changes |
| 2 | Filter | Only proceed if Stage = Closed Won |
| 3 | Search Record | Get full Company details for billing |
| 4 | Code | Format data for invoicing API |
| 5 | HTTP-Anfrage | Create invoice in external system |
| Schritt | Aktion | Zweck |
| ------- | -------------------------------- | ------------------------------------------------------------------ |
| 1 | Auslöser: Datensatz aktualisiert | Wird ausgelöst, wenn sich eine beliebige Opportunity ändert |
| 2 | Filter | Nur fortfahren, wenn Phase = Closed Won |
| 3 | Datensatz suchen | Vollständige Unternehmensdetails für die Rechnungsstellung abrufen |
| 4 | Code | Daten für die Rechnungsstellungs-API formatieren |
| 5 | HTTP-Anfrage | Rechnung im externen System erstellen |
## Tips
## Tipps
* **Store external IDs**: Save the invoice ID returned by the API back to the Opportunity using an **Update Record** action
* **Error handling**: Add a branch to send a notification if the HTTP request fails
* **Test first**: Use your invoicing system's sandbox/test mode before going live
* **Externe IDs speichern**: Speichern Sie die von der API zurückgegebene Rechnungs-ID mithilfe einer **Datensatz aktualisieren**-Aktion in der Opportunity
* **Fehlerbehandlung**: Fügen Sie einen Zweig hinzu, um eine Benachrichtigung zu senden, wenn die HTTP-Anfrage fehlschlägt
* **Zuerst testen**: Verwenden Sie den Sandbox-/Testmodus Ihres Rechnungsstellungssystems, bevor Sie live gehen
## Related
## Verwandt
* [Workflow Triggers](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [Closed Won Automations](/l/de/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
* [Workflow-Trigger](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow-Aktionen](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [Automatisierungen für Closed Won](/l/de/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,49 +1,49 @@
---
title: Crediti del flusso di lavoro
description: Understanding workflow credits, consumption, and how to purchase more.
description: Comprendere i crediti dei flussi di lavoro, il consumo e come acquistarne di più.
---
## Panoramica
Credits power your workflow automations in Twenty. Every workflow action consumes credits based on its complexity.
I crediti alimentano le automazioni dei tuoi flussi di lavoro in Twenty. Ogni azione del flusso di lavoro consuma crediti in base alla sua complessità.
## Credit Allocation
## Allocazione dei crediti
Credits are based on your billing cycle, not your plan:
I crediti si basano sul tuo ciclo di fatturazione, non sul tuo piano:
| Billing Cycle | Credits |
| ------------- | --------------- |
| Mensile | 5 million/month |
| Annuale | 50 million/year |
| Ciclo di fatturazione | Crediti |
| --------------------- | --------------- |
| Mensile | 5 milioni/mese |
| Annuale | 50 milioni/anno |
<Note>
The 5 million monthly credits are designed to empower you to run automations without worrying about costs. For most workflows using standard actions, this is more than enough. You'll only need additional credits when running advanced code nodes or AI-powered features.
I 5 milioni di crediti mensili sono pensati per permetterti di eseguire automazioni senza preoccuparti dei costi. Per la maggior parte dei flussi di lavoro che utilizzano azioni standard, questo è più che sufficiente. Avrai bisogno di crediti aggiuntivi solo quando esegui nodi di codice avanzati o funzionalità basate sull'IA.
</Note>
## Credit Consumption
## Consumo di crediti
Different actions consume different amounts of credits:
Azioni diverse consumano quantità diverse di crediti:
| Action Type | Utilizzo dei Crediti |
| ------------------------------------------------------- | ----------------------- |
| **Basic operations** (search, update, create records) | Minimal |
| **Complex operations** (code nodes, external API calls) | More credits |
| **AI prompts** (coming soon) | Variable based on usage |
| Tipo di azione | Utilizzo dei Crediti |
| -------------------------------------------------------------------- | ------------------------------ |
| **Operazioni di base** (ricerca, aggiornamento, creazione di record) | Minimo |
| **Operazioni complesse** (nodi di codice, chiamate alle API esterne) | Più crediti |
| **Prompt IA** (in arrivo) | Variabile in base all'utilizzo |
I crediti vengono detratti in tempo reale quando i workflow vengono eseguiti.
## Monitoring Usage
## Monitoraggio dell'utilizzo
Track your credit consumption:
Monitora il consumo dei tuoi crediti:
1. Go to **Settings → Billing**
2. View your current usage and remaining credits
3. Monitor trends to plan for additional credits if needed
1. Vai a **Impostazioni → Fatturazione**
2. Visualizza il tuo utilizzo attuale e i crediti rimanenti
3. Monitora le tendenze per pianificare crediti aggiuntivi se necessario
## Acquisto di Crediti Aggiuntivi
Need more credits?
Hai bisogno di più crediti?
1. Go to **Settings → Billing**
2. Click on the option to purchase additional credit packs
3. Select the amount you need
1. Vai a **Impostazioni → Fatturazione**
2. Fai clic sull'opzione per acquistare pacchetti di crediti aggiuntivi
3. Seleziona la quantità di cui hai bisogno
@@ -1,28 +1,28 @@
---
title: Can I Book Meetings from Twenty?
description: Information about booking meetings directly from Twenty.
title: Posso prenotare riunioni da Twenty?
description: Informazioni sulla prenotazione di riunioni direttamente da Twenty.
---
## Current Status
## Stato attuale
**No, Twenty does not currently support booking meetings directly from the platform.**
**No, al momento Twenty non supporta la prenotazione di riunioni direttamente dalla piattaforma.**
Twenty's calendar integration is designed to **sync and display** your existing calendar events, not to create new ones. All meeting scheduling should be done through your native calendar application (Google Calendar, Microsoft Outlook, etc.).
L'integrazione del calendario di Twenty è progettata per **sincronizzare e visualizzare** gli eventi esistenti del tuo calendario, non per crearne di nuovi. Tutta la pianificazione delle riunioni va effettuata tramite la tua applicazione calendario nativa (Google Calendar, Microsoft Outlook, ecc.).
## What You Can Do
## Cosa puoi fare
* **View meeting history** on People, Companies, and Opportunities records
* **See upcoming meetings** with contacts in your CRM
* **Track meeting context** alongside email communications
* **Auto-create contacts** from meeting participants
* **Visualizzare la cronologia delle riunioni** sui record di Persone, Aziende e Opportunità
* **Vedere le riunioni in arrivo** con i contatti nel tuo CRM
* **Tenere traccia del contesto delle riunioni** insieme alle comunicazioni email
* **Creare automaticamente contatti** dai partecipanti alle riunioni
## How to Schedule Meetings
## Come pianificare le riunioni
1. Use your native calendar app (Google Calendar, Outlook, etc.)
2. Create the meeting as you normally would
3. The meeting will automatically sync to Twenty within 5 minutes
4. View the meeting on the relevant CRM records
1. Usa la tua app calendario nativa (Google Calendar, Outlook, ecc.)
2. Crea la riunione come faresti normalmente
3. La riunione si sincronizzerà automaticamente con Twenty entro 5 minuti
4. Visualizza la riunione sui record CRM pertinenti
## Future Plans
## Piani futuri
Meeting creation from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
La creazione di riunioni direttamente da Twenty è nella nostra roadmap. Partecipa alle nostre [discussioni su GitHub](https://github.com/twentyhq/twenty/discussions) per condividere il tuo caso d'uso e aiutarci a dare priorità a questa funzionalità.
@@ -1,42 +1,42 @@
---
title: Connect Several Mailboxes per User
description: Connect multiple email accounts for a single user.
title: Collega più caselle di posta per utente
description: Collega più account email per un singolo utente.
---
## Panoramica
Twenty supports **unlimited email accounts per user**. This is useful if you manage multiple inboxes, such as:
Twenty supporta **account email illimitati per utente**. Questo è utile se gestisci più caselle di posta, ad esempio:
* Personal work email + shared team inbox
* Multiple client-facing email addresses
* Different email accounts for different roles
* Email di lavoro personale + casella di posta condivisa del team
* Più indirizzi email rivolti ai clienti
* Account email diversi per ruoli diversi
## How to Add Multiple Mailboxes
## Come aggiungere più caselle di posta
1. Go to **Settings → Accounts**
1. Vai a **Impostazioni → Account**
2. Clicca su **Aggiungi account**
3. Connect your additional Google or Microsoft account
4. Configure sync settings for this mailbox
5. Repeat for each mailbox you want to connect
3. Collega il tuo account aggiuntivo Google o Microsoft
4. Configura le impostazioni di sincronizzazione per questa casella di posta
5. Ripeti per ogni casella di posta che desideri collegare
## Managing Multiple Accounts
## Gestire più account
Each connected mailbox has its own settings:
Ogni casella di posta collegata ha le proprie impostazioni:
* **Email visibility**: Choose what teammates can see
* **Contact auto-creation**: Enable/disable per mailbox
* **Folder selection**: Choose which folders to sync (Lab feature)
* **Visibilità email**: Scegli cosa possono vedere i membri del team
* **Creazione automatica dei contatti**: Abilita/disabilita per casella di posta
* **Selezione delle cartelle**: Scegli quali cartelle sincronizzare (funzione Lab)
## How Emails Appear
## Come vengono visualizzate le email
Emails from all your connected mailboxes are synced to Twenty and appear on:
Le email di tutte le caselle di posta collegate vengono sincronizzate con Twenty e appaiono su:
* **People records**: Based on the contact's email address
* **Company records**: Based on the email domain
* **Opportunities**: Based on the linked company
* **Record persone**: In base all'indirizzo email del contatto
* **Record aziende**: In base al dominio email
* **Opportunità**: In base all'azienda collegata
<Note>Each email shows which mailbox it was sent from/received to, so you can track which account was used for each communication.</Note>
<Note>Ogni email indica da quale casella è stata inviata/a quale è stata ricevuta, così puoi tracciare quale account è stato utilizzato per ogni comunicazione.</Note>
## Important Notes
## Note importanti
<Warning>Only true mailboxes can be connected. Email aliases that forward to another mailbox cannot be connected separately—they'll sync through the main mailbox.</Warning>
<Warning>Possono essere collegate solo caselle di posta effettive. Gli alias email che inoltrano a un'altra casella non possono essere collegati separatamente: si sincronizzeranno tramite la casella principale.</Warning>
@@ -1,6 +1,6 @@
---
title: Cruscotti
description: Learn the basics of reporting and dashboards in Twenty.
description: Scopri le basi della reportistica e delle dashboard in Twenty.
image: /images/user-guide/reporting/pie-chart.png
---
@@ -8,72 +8,72 @@ image: /images/user-guide/reporting/pie-chart.png
<img src="/images/user-guide/reporting/pie-chart.png" alt="Cruscotti" />
</Frame>
## Understanding Dashboards
## Comprendere le dashboard
Dashboards in Twenty provide a visual way to track your key performance metrics and gain insights from your CRM data.
Le dashboard in Twenty offrono un modo visivo per monitorare le tue metriche chiave delle prestazioni e ottenere informazioni approfondite dai dati del tuo CRM.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="Cruscotti" />
## Key Concepts
## Concetti chiave
### Cruscotti
A dashboard is a collection of tabs that display your CRM data at a glance. You can create multiple dashboards for different purposes:
Una dashboard è una raccolta di schede che mostra i dati del tuo CRM a colpo d'occhio. Puoi creare più dashboard per scopi diversi:
* Sales performance
* Team activity
* Pipeline health
* Custom metrics
* Prestazioni di vendita
* Attività del team
* Salute della pipeline
* Metriche personalizzate
### Schede
Tabs allow you to organize your dashboard into sections. Each tab contains one or more widgets.
Le schede ti consentono di organizzare la tua dashboard in sezioni. Ogni scheda contiene uno o più widget.
### Widget
Widgets are individual visualizations that display specific data. Types include:
I widget sono visualizzazioni singole che mostrano dati specifici. Tipi disponibili:
* Bar charts
* Pie charts
* Line charts
* Number metrics
* iFrames
* Grafici a barre
* Grafici a torta
* Grafici a linee
* Metriche numeriche
* iFrame
<Note>
**Current limitations**:
**Limitazioni attuali**:
* Exporting dashboards and sharing with external users (non-Twenty users) are not available at the moment.
* Gauge charts and tables are not yet available.
* L'esportazione delle dashboard e la condivisione con utenti esterni (utenti non Twenty) non sono disponibili al momento.
* I grafici a indicatore e le tabelle non sono ancora disponibili.
</Note>
## Getting Started
## Per iniziare
### Creating Your First Dashboard
### Creare la tua prima dashboard
1. Navigate to the **Dashboards** section
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Add tabs to organize your content
5. Add widgets to display your data
1. Vai alla sezione **Dashboard**
2. Fai clic su **+ Nuova dashboard**
3. Assegna un nome alla tua dashboard
4. Aggiungi schede per organizzare i tuoi contenuti
5. Aggiungi widget per visualizzare i tuoi dati
6. Salva
### Adding Widgets
### Aggiungere widget
1. Open a tab on your dashboard
2. Click **+ Add Widget**
3. Select the widget type
4. Choose the data source (object)
5. Configure the widget settings
6. Save and view your widget
1. Apri una scheda nella tua dashboard
2. Fai clic su **+ Aggiungi widget**
3. Seleziona il tipo di widget
4. Scegli l'origine dati (oggetto)
5. Configura le impostazioni del widget
6. Salva e visualizza il tuo widget
## Migliori Pratiche
* **Start simple**: Begin with a few key metrics and add more over time
* **Focus on actionable data**: Display metrics that drive decisions
* **Regular review**: Check your dashboards regularly to spot trends
* **Share with team**: Make dashboards visible to relevant team members
* **Inizia in modo semplice**: parti da alcune metriche chiave e aggiungine altre nel tempo
* **Concentrati sui dati azionabili**: mostra metriche che guidano le decisioni
* **Revisione regolare**: controlla regolarmente le tue dashboard per individuare le tendenze
* **Condividi con il team**: rendi le dashboard visibili ai membri del team pertinenti
## Prossimi Passi
* [Widgets and visualizations](/l/it/user-guide/dashboards/capabilities/widgets)
* [Dashboards FAQ](/l/it/user-guide/dashboards/how-tos/dashboards-faq)
* [Widget e visualizzazioni](/l/it/user-guide/dashboards/capabilities/widgets)
* [FAQ sulle dashboard](/l/it/user-guide/dashboards/how-tos/dashboards-faq)
@@ -1,209 +1,209 @@
---
title: Export Your Data
description: Complete step-by-step guide to exporting data from Twenty.
title: Esporta i tuoi dati
description: Guida completa passo per passo all'esportazione dei dati da Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Panoramica
Export your workspace data to CSV for backups, reporting, or migration.
Esporta i dati del tuo spazio di lavoro in CSV per backup, reportistica o migrazione.
**Casi di utilizzo:**
* **Regular backups** — keep copies of your data
* **External reporting** — analyze data in Excel, Google Sheets, or BI tools
* **Migration** — move data to another system
* **Bulk updates** — export, edit, and re-import to update records
* **Backup regolari** — conserva copie dei tuoi dati
* **Reportistica esterna** — analizza i dati in Excel, Google Sheets o strumenti BI
* **Migrazione** — sposta i dati in un altro sistema
* **Aggiornamenti massivi** — esporta, modifica e reimporta per aggiornare i record
## What You Need to Know
## Cosa devi sapere
### Export Limits
### Limiti di esportazione
* **Maximum 20,000 records** per export
* Only **visible columns** are exported
* Only **filtered records** are exported (based on your current view)
* **Massimo 20.000 record** per esportazione
* Vengono esportate solo le **colonne visibili**
* Vengono esportati solo i **record filtrati** (in base alla vista corrente)
<Note>For larger exports (20,000+ records), use filters to export in batches or use the [API](/l/it/developers/extend/capabilities/apis).</Note>
<Note>Per esportazioni più grandi (oltre 20.000 record), usa i filtri per esportare a lotti oppure usa le [API](/l/it/developers/extend/capabilities/apis).</Note>
### Permessi
You need the **"Export CSV"** permission to export data. Contact your workspace admin if you don't have this option.
Hai bisogno dell'autorizzazione **"Esporta CSV"** per esportare i dati. Contatta l'amministratore del tuo spazio di lavoro se non hai questa opzione.
## Step 1: Navigate to the Object
## Passaggio 1: Vai all'oggetto
Go to the object you want to export:
Vai all'oggetto che vuoi esportare:
* **People** — for contacts
* **Companies** — for organizations
* **Opportunities** — for deals
* **Custom objects** — any object you've created
* **Persone** — per i contatti
* **Aziende** — per le organizzazioni
* **Opportunità** — per le trattative
* **Oggetti personalizzati** — qualsiasi oggetto che hai creato
## Step 2: Configure Your View
## Passaggio 2: Configura la tua vista
**Important:** The export includes only what's visible in your current view.
**Importante:** L'esportazione include solo ciò che è visibile nella vista corrente.
### Add/Remove Columns
### Aggiungi/Rimuovi colonne
1. Click **OptionsFields** (or the **+** at the end of columns)
2. Check the fields you want to export
3. Uncheck fields you don't need
1. Fai clic su **OpzioniCampi** (oppure sul **+** alla fine delle colonne)
2. Seleziona i campi che vuoi esportare
3. Deseleziona i campi di cui non hai bisogno
### Filter Records (Optional)
### Filtra i record (opzionale)
If you only need a subset of data:
Se ti serve solo un sottoinsieme di dati:
1. Click **Filter**
2. Add filter conditions (e.g., "Created date > January 1, 2024")
3. Only matching records will be exported
1. Fai clic su **Filtro**
2. Aggiungi condizioni di filtro (es., "Data di creazione > 1 gennaio 2024")
3. Verranno esportati solo i record corrispondenti
### Sort Records (Optional)
### Ordina i record (opzionale)
1. Click a column header to sort
2. The export will follow your sort order
1. Fai clic sull'intestazione di una colonna per ordinare
2. L'esportazione seguirà il tuo ordinamento
<Note>**Create a dedicated export view.** Save a view specifically configured for exports so you don't need to reconfigure each time.</Note>
<Note>**Crea una vista dedicata all'esportazione.** Salva una vista configurata specificamente per le esportazioni così da non dover riconfigurare ogni volta.</Note>
## Step 3: Export the Data
## Passaggio 3: Esporta i dati
1. Click the **⋮** icon on the top right of the table
2. Select **Export view**
3. Choose where to save the CSV file
4. Wait for the download to complete
1. Fai clic sull'icona **⋮** in alto a destra della tabella
2. Seleziona **Esporta vista**
3. Scegli dove salvare il file CSV
4. Attendi il completamento del download
## What Gets Exported
## Cosa viene esportato
| Included | Not Included |
| -------------------------------- | ---------------------- |
| All visible columns | Hidden columns |
| Records matching current filters | Filtered-out records |
| Custom field values | Fields not in the view |
| Record IDs | File attachments |
| Relation IDs | Images |
| Incluso | Non incluso |
| ------------------------------------------- | ------------------------------ |
| Tutte le colonne visibili | Colonne nascoste |
| Record che corrispondono ai filtri correnti | Record esclusi dai filtri |
| Valori dei campi personalizzati | Campi non presenti nella vista |
| ID dei record | File allegati |
| ID delle relazioni | Immagini |
### Campi di Relazione
Relation IDs are only exported on the **"many" side** of a relationship:
Gli ID delle relazioni vengono esportati solo sul **lato "many"** di una relazione:
* **People export** includes a `companyId` column (People → Company relation)
* **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
* **L'esportazione Persone** include una colonna `companyId` (relazione Persone → Azienda)
* **L'esportazione Aziende** NON include `peopleIds` (Aziende è il lato "one")
This means you can use the People export to re-import and maintain the Company link, but you'll need to re-import People after Companies to recreate the relationships.
Ciò significa che puoi usare l'esportazione Persone per reimportare e mantenere il collegamento con l'Azienda, ma dovrai reimportare Persone dopo Aziende per ricreare le relazioni.
## Exporting for Specific Purposes
## Esportazione per scopi specifici
### For Backups
### Per i backup
1. Create a view with **all fields** visible
2. Remove all filters to include all records
3. Export each object type separately
4. Store exports in a secure location
5. Set a recurring reminder (weekly/monthly)
1. Crea una vista con **tutti i campi** visibili
2. Rimuovi tutti i filtri per includere tutti i record
3. Esporta ogni tipo di oggetto separatamente
4. Conserva le esportazioni in una posizione sicura
5. Imposta un promemoria ricorrente (settimanale/mensile)
### For External Reporting
### Per la reportistica esterna
1. Include only the fields you need for analysis
2. Apply filters to focus on relevant data
3. Consider sorting by the field you'll analyze
1. Includi solo i campi necessari all'analisi
2. Applica filtri per concentrarti sui dati rilevanti
3. Valuta di ordinare in base al campo che analizzerai
### For Bulk Updates
### Per aggiornamenti massivi
1. Export the records you want to update
2. Include the unique identifier (`email`, `domain`, or `id`)
3. Edit the exported file
4. Re-import to update records
See: [How to Update Existing Records](/l/it/user-guide/data-migration/how-tos/update-existing-records-via-import)
1. Esporta i record che vuoi aggiornare
2. Includi l'identificatore univoco (`email`, `domain` o `id`)
3. Modifica il file esportato
4. Reimporta per aggiornare i record
Vedi: [Come aggiornare i record esistenti](/l/it/user-guide/data-migration/how-tos/update-existing-records-via-import)
### For Migration
### Per la migrazione
If you're exporting to migrate to another system:
Se stai esportando per migrare a un altro sistema:
1. **Export each object separately** — People, Companies, Opportunities, etc.
2. **Include ID fields** — these help maintain relationships
3. **Document field mappings** — note how Twenty fields map to your target system
1. **Esporta ogni oggetto separatamente** — Persone, Aziende, Opportunità, ecc.
2. **Includi i campi ID** — aiutano a mantenere le relazioni
3. **Documenta le mappature dei campi** — annota come i campi di Twenty corrispondono al tuo sistema di destinazione
## Handling Large Datasets (20,000+ Records)
## Gestione di set di dati di grandi dimensioni (oltre 20.000 record)
The export limit is 20,000 records. For larger datasets:
Il limite di esportazione è di 20.000 record. Per set di dati più grandi:
### Option 1: Export in Batches
### Opzione 1: Esporta a lotti
1. Add a filter (e.g., "Created date" ranges)
2. Export the first batch
3. Change the filter
4. Export the next batch
5. Combine files in your spreadsheet
1. Aggiungi un filtro (ad es., intervalli di "Data di creazione")
2. Esporta il primo lotto
3. Modifica il filtro
4. Esporta il lotto successivo
5. Unisci i file nel tuo foglio di calcolo
**Example filters for batching:**
**Esempi di filtri per i lotti:**
* By date range (January, February, March...)
* By owner (Team member A, Team member B...)
* By status (Active, Inactive...)
* Per intervallo di date (gennaio, febbraio, marzo...)
* Per proprietario (membro del team A, membro del team B...)
* Per stato (attivo, inattivo...)
### Option 2: Use the API
### Opzione 2: Usa le API
The API has no record limit:
Le API non hanno un limite di record:
1. Get your API key from **Settings → Developers**
2. Use the GraphQL API to query records
3. Process results in your application
1. Ottieni la tua chiave API da **Impostazioni → Sviluppatori**
2. Usa le API GraphQL per interrogare i record
3. Elabora i risultati nella tua applicazione
See: [API Documentation](/l/it/developers/extend/capabilities/apis)
Vedi: [Documentazione API](/l/it/developers/extend/capabilities/apis)
## Tips and Best Practices
## Suggerimenti e buone pratiche
### Create Export Views
### Crea viste di esportazione
Save views configured specifically for exports:
Salva viste configurate specificamente per le esportazioni:
1. Configure columns and filters
2. Click **View options** → **Save as new view**
3. Name it "Export - [Purpose]"
1. Configura colonne e filtri
2. Fai clic su **Opzioni vista** → **Salva come nuova vista**
3. Assegnale il nome "Export - [Scopo]"
### Secure Your Exports
### Proteggi le tue esportazioni
Exported files may contain sensitive data:
I file esportati possono contenere dati sensibili:
* Store in secure locations
* Delete old exports when no longer needed
* Be careful sharing export files
* Conservali in posizioni sicure
* Elimina le esportazioni vecchie quando non sono più necessarie
* Fai attenzione quando condividi i file di esportazione
### Check Before Exporting
### Verifica prima di esportare
<Check>Correct columns are visible</Check>
<Check>Filters are set correctly (or removed for full export)</Check>
<Check>You have Export permission</Check>
<Check>Le colonne corrette sono visibili</Check>
<Check>I filtri sono impostati correttamente (o rimossi per l'esportazione completa)</Check>
<Check>Hai l'autorizzazione di esportazione</Check>
## FAQ
<AccordionGroup>
<Accordion title="Why are some columns missing from my export?">
Only visible columns are exported. Add the columns you need via **OptionsFields** before exporting.
<Accordion title="Perché mancano alcune colonne nella mia esportazione?">
Vengono esportate solo le colonne visibili. Aggiungi le colonne necessarie tramite **OpzioniCampi** prima di esportare.
</Accordion>
<Accordion title="Why doesn't my export have all records?">
Check your filters. The export only includes records matching your current view filters. Remove filters to export all records.
<Accordion title="Perché la mia esportazione non include tutti i record?">
Controlla i tuoi filtri. L'esportazione include solo i record che corrispondono ai filtri della vista corrente. Rimuovi i filtri per esportare tutti i record.
</Accordion>
<Accordion title="Can I export more than 20,000 records?">
Not in a single export. Use filters to export in batches, or use the API for larger datasets.
<Accordion title="Posso esportare più di 20.000 record?">
Non in un'unica esportazione. Usa i filtri per esportare a lotti oppure usa le API per set di dati più grandi.
</Accordion>
<Accordion title="What format is the export file?">
CSV (Comma Separated Values). Opens in Excel, Google Sheets, or any spreadsheet application.
<Accordion title="Qual è il formato del file di esportazione?">
CSV (valori separati da virgola). Si apre in Excel, Google Sheets o in qualsiasi applicazione per fogli di calcolo.
</Accordion>
<Accordion title="Are relation IDs included?">
Yes, but only on the "many" side of relationships. For example, a People export includes `companyId`, but a Companies export does not include people IDs.
<Accordion title="Gli ID delle relazioni sono inclusi?">
Sì, ma solo sul lato "many" delle relazioni. Ad esempio, un'esportazione Persone include `companyId`, ma un'esportazione Aziende non include gli ID delle persone.
</Accordion>
<Accordion title="Can I automate exports?">
Not directly through the UI. Use the API to build automated export workflows.
<Accordion title="Posso automatizzare le esportazioni?">
Non direttamente tramite l'interfaccia utente. Usa le API per creare flussi di lavoro di esportazione automatizzati.
</Accordion>
</AccordionGroup>
## Prossimi Passi
* [How to Update Existing Records](/l/it/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
* [How to Import Data via API](/l/it/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
* [API Documentation](/l/it/developers/extend/capabilities/apis) — build custom export workflows
* [Come aggiornare i record esistenti](/l/it/user-guide/data-migration/how-tos/update-existing-records-via-import) — modifica e reimporta la tua esportazione
* [Come importare i dati tramite API](/l/it/user-guide/data-migration/how-tos/import-data-via-api) — per set di dati di grandi dimensioni
* [Documentazione API](/l/it/developers/extend/capabilities/apis) — crea flussi di lavoro di esportazione personalizzati
@@ -1,90 +1,90 @@
---
title: Import Contacts via CSV
description: Complete step-by-step guide to importing people/contacts into Twenty.
title: Importa contatti tramite CSV
description: Guida completa passo per passo all'importazione di persone/contatti in Twenty.
---
## Panoramica
This guide walks you through importing your contacts (People) into Twenty. **Import Companies first** if you want to link People to Companies.
Questa guida ti accompagna nell'importazione dei tuoi contatti (Persone) in Twenty. **Importa prima le Aziende** se vuoi collegare le Persone alle Aziende.
## Prima di Iniziare
### Prerequisites Checklist
### Lista di controllo dei prerequisiti
<Check>
Your file is CSV, XLSX, or XLS format
Il file è in formato CSV, XLSX o XLS
</Check>
<Check>
File has fewer than 10,000 records
Il file contiene meno di 10.000 record
</Check>
<Check>
No duplicate email addresses in your file
Nessun indirizzo email duplicato nel file
</Check>
<Check>
**Companies imported first** (if linking People to Companies)
**Aziende importate per prime** (se colleghi Persone ad Aziende)
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Tutti i campi personalizzati esistono in **Impostazioni → Modello dati**
</Check>
<Warning>
**Import Companies Before People**
**Importa le Aziende prima delle Persone**
If you want to link People to Companies, import Companies first. The Company must exist before you can reference it.
Se vuoi collegare le Persone alle Aziende, importa prima le Aziende. L'Azienda deve esistere prima di potervi fare riferimento.
</Warning>
## Step 1: Prepare Your Contact Data
## Passo 1: Prepara i tuoi dati di contatto
### Required and Recommended Fields
### Campi obbligatori e consigliati
| Campo | Required? | Formato | Note |
| ----------------- | ----------- | ----------------- | ------------------------- |
| **Email** | Recommended | `name@domain.com` | Must be unique |
| **First Name** | Recommended | Testo | |
| **Last Name** | Recommended | Testo | |
| **Company** | Optional | Domain or ID | Links to existing Company |
| **Phone** | Optional | Multiple columns | See below |
| **Job Title** | Optional | Testo | |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Campo | Obbligatorio? | Formato | Note |
| ------------------------ | ------------- | ----------------- | ------------------------------ |
| **Email** | Consigliato | `name@domain.com` | Deve essere univoco |
| **Nome** | Consigliato | Testo | |
| **Cognome** | Consigliato | Testo | |
| **Azienda** | Facoltativo | Dominio o ID | Collega a un'Azienda esistente |
| **Telefono** | Facoltativo | Più colonne | Vedi sotto |
| **Titolo di lavoro** | Facoltativo | Testo | |
| **Campi personalizzati** | Facoltativo | Varia | Deve esistere nel Modello dati |
### Email Format
### Formato email
* Must be valid email format: `name@domain.com`
* **Must be unique** — no duplicates in your file or in Twenty
* For additional emails, use the **Emails / Additional Emails** column:
* Deve avere un formato email valido: `name@domain.com`
* **Deve essere univoca** — nessun duplicato nel tuo file o in Twenty
* Per email aggiuntive, usa la colonna **Email / Email aggiuntive**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Phone Format
### Formato telefono
Phone is a **nested field** requiring multiple columns:
Telefono è un **campo annidato** che richiede più colonne:
| 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` |
### Linking to Companies
### Collegamento alle Aziende
Add a column with the Company's unique identifier:
Aggiungi una colonna con l'identificatore univoco dell'Azienda:
| Column Name | Formato | Esempio |
| --------------- | ---------- | -------------------------------------- |
| `companyDomain` | URL format | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
| Nome colonna | Formato | Esempio |
| --------------- | ----------- | -------------------------------------- |
| `companyDomain` | Formato URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Use Domain URL format** (`https://acme.com`), not the label. This matches how Companies are stored in Twenty.
**Usa il formato URL del dominio** (`https://acme.com`), non l'etichetta. Questo corrisponde al modo in cui le Aziende sono memorizzate in Twenty.
</Note>
### Sample CSV Structure
### Esempio di struttura CSV
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
@@ -93,150 +93,150 @@ Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<Note>
**Pro tip:** Click **Download sample file** during import or export a few existing People to see the exact column names Twenty expects.
**Suggerimento avanzato:** Fai clic su **Scarica file di esempio** durante l'importazione oppure esporta alcune Persone esistenti per vedere i nomi di colonna esatti che Twenty si aspetta.
</Note>
## Step 2: Access the Import Feature
## Passo 2: Accedi alla funzione di importazione
**Option 1: From the People View**
**Opzione 1: dalla vista Persone**
1. Navigate to **People** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Vai a **Persone** nella barra laterale sinistra
2. Fai clic sull'icona **⋮** in alto a destra
3. Seleziona **Importa record**
**Option 2: Using Command Menu**
**Opzione 2: tramite Menu Comandi**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **People**
1. Premi `Cmd + K` (Mac) o `Ctrl + K` (Windows)
2. Digita "import"
3. Seleziona **Importa record**
4. Scegli **Persone**
## Step 3: Upload Your File
## Passo 3: Carica il tuo file
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. Fai clic su **Seleziona file**
2. Scegli il tuo file CSV, XLSX o XLS
3. Attendi che Twenty analizzi il tuo file
## Step 4: Map Your Columns
## Passo 4: Mappa le tue colonne
Twenty automatically tries to match your columns to fields. Review and adjust:
Twenty tenta automaticamente di associare le tue colonne ai campi. Verifica e regola:
1. **Check automatic mappings** — verify they're correct
2. **Fix incorrect mappings** — click the dropdown to select the right field
3. **Skip columns** — select **Do not map** for columns you don't want to import
1. **Controlla le mappature automatiche** — verifica che siano corrette
2. **Correggi le mappature errate** — fai clic sul menu a discesa per selezionare il campo corretto
3. **Salta colonne** — seleziona **Non mappare** per le colonne che non vuoi importare
### Important Mapping Rules
### Regole importanti di mappatura
| Column Type | Map To | Note |
| ----------------- | ------------------------------ | ---------------------------------- |
| Company reference | **Company** relation field | Use domain OR id, not both |
| Email | **Email** | Primary email address |
| Additional emails | **Emails / Additional Emails** | Array format |
| Telefono | Separate columns | Number, Country Code, Calling Code |
| Tipo di colonna | Mappa su | Note |
| ----------------------- | ------------------------------ | --------------------------------------------- |
| Riferimento all'Azienda | Campo di relazione **Azienda** | Usa il dominio O l'ID, non entrambi |
| Email | **Email** | Indirizzo email principale |
| Email aggiuntive | **Email / Email aggiuntive** | Formato array |
| Telefono | Colonne separate | Numero, Codice paese, Prefisso internazionale |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Mapping the Company Relation
### Mappare la relazione con l'Azienda
When mapping the company column:
Quando mappi la colonna dell'azienda:
1. Find your company reference column (e.g., `companyDomain`)
2. Map it to the **Company** relation field
3. Twenty will link each Person to the matching Company
1. Trova la tua colonna di riferimento dell'azienda (ad es., `companyDomain`)
2. Mappala al campo di relazione **Azienda**
3. Twenty collegherà ogni Persona all'Azienda corrispondente
<Warning>
**Map only ONE unique identifier for relations.**
**Mappa un solo identificatore univoco per le relazioni.**
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
Non mappare sia `companyId` che `companyDomain`. Scegline uno — preferibilmente il dominio, perché è facilmente leggibile.
</Warning>
## Step 5: Map Select Field Values
## Passaggio 5: Mappa i valori dei campi Selezione
If you have Select or Multi-Select fields (like Lead Source):
Se hai campi Selezione o Multiselezione (come Origine del lead):
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. Twenty mostra i tuoi valori insieme alle opzioni esistenti
2. Abbina ogni valore nel tuo file a un'opzione di Twenty
3. Oppure crea nuove opzioni se necessario
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
Le opzioni dei campi Selezione usano i **nomi API**, non le etichette visualizzate. Controlla **Impostazioni → Modello dati** → Abilita la **Modalità avanzata** per vedere i nomi API.
</Note>
## Step 6: Review and Fix Errors
## Passaggio 6: Rivedi e correggi gli errori
Before completing the import, Twenty validates your data:
Prima di completare l'importazione, Twenty convalida i tuoi dati:
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. Fai clic su **Passaggi successivi**
2. Le righe con errori sono evidenziate in **giallo**
3. **Correggi gli errori direttamente** — fai clic su una cella e modifica il valore
4. **Rimuovi le righe problematiche** — fai clic sulla X per saltare quella riga
### Common Contact Import Errors
### Errori comuni di importazione dei contatti
| Errore | Cause | Solution |
| -------------------------- | -------------------------------------- | ------------------------------------------- |
| **Duplicate email** | Email already exists in Twenty or file | Remove duplicate or update existing record |
| **Invalid email format** | Email format incorrect | Fix to `name@domain.com` |
| **Relation not found** | Company doesn't exist | Import Companies first or fix the reference |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Errore | Causa | Soluzione |
| ------------------------------- | --------------------------------------- | ------------------------------------------------------- |
| **Email duplicata** | L'email esiste già in Twenty o nel file | Rimuovi il duplicato o aggiorna il record esistente |
| **Formato email non valido** | Formato email errato | Correggi in `name@domain.com` |
| **Relazione non trovata** | L'Azienda non esiste | Importa prima le Aziende oppure correggi il riferimento |
| **Campo obbligatorio mancante** | Il campo obbligatorio è vuoto | Compila il valore oppure rimuovi la riga |
## Step 7: Complete the Import
## Passaggio 7: Completa l'importazione
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records and their Company links
1. Rivedi il riepilogo dell'importazione
2. Fai clic su **Conferma** per importare
3. Attendi il completamento dell'importazione
4. Verifica controllando alcuni record e i relativi collegamenti all'Azienda
## After Importing Contacts
## Dopo l'importazione dei contatti
Your contacts are now in Twenty! Next steps:
I tuoi contatti sono ora in Twenty! Prossimi passaggi:
1. **Verify Company links** — open a few People records to confirm they're linked to the right Company
2. **Import Opportunities** — if needed, link them to People and Companies
3. **Set up email sync** — connect your mailbox to see email history on contact records
1. **Verifica i collegamenti all'Azienda** — apri alcuni record Persone per confermare che siano collegati all'Azienda corretta
2. **Importa le Opportunità** — se necessario, collegale a Persone e Aziende
3. **Configura la sincronizzazione email** — collega la tua casella di posta per vedere lo storico delle email sui record dei contatti
## Updating Existing Contacts
## Aggiornare i contatti esistenti
To update contacts instead of creating new ones:
Per aggiornare i contatti invece di crearne di nuovi:
1. Include the `email` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing contacts are updated; new ones are created
1. Includi la colonna `email` o `id` nel tuo file
2. Twenty abbina i record tramite questo identificatore univoco
3. I contatti esistenti vengono aggiornati; quelli nuovi vengono creati
See [How to Update Existing Records](/l/it/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
Per i dettagli, vedi [Come aggiornare i record esistenti](/l/it/user-guide/data-migration/how-tos/update-existing-records-via-import).
## FAQ
<AccordionGroup>
<Accordion title="Why can't two People have the same email?">
Email is a unique identifier in Twenty. This prevents duplicate contacts and ensures email sync correctly links emails to the right person.
<Accordion title="Perché due Persone non possono avere la stessa email?">
L'email è un identificatore univoco in Twenty. Questo evita contatti duplicati e garantisce che la sincronizzazione delle email colleghi correttamente i messaggi alla persona giusta.
</Accordion>
<Accordion title="What if I have people without an email?">
You can leave the email empty. However, we recommend adding emails when possible for better data quality and email sync functionality.
<Accordion title="Cosa succede se ho persone senza email?">
Puoi lasciare vuota l'email. Tuttavia, consigliamo di aggiungere le email quando possibile per una migliore qualità dei dati e per la funzionalità di sincronizzazione delle email.
</Accordion>
<Accordion title="How do I link People to Companies during import?">
Add a column with the Company's domain (e.g., `https://acme.com`) or ID. During mapping, connect this column to the Company relation field.
<Accordion title="Come collego Persone ad Aziende durante l'importazione?">
Aggiungi una colonna con il dominio dell'Azienda (ad es., `https://acme.com`) o l'ID. Durante la mappatura, collega questa colonna al campo di relazione Azienda.
</Accordion>
<Accordion title="What if the Company doesn't exist yet?">
Import Companies first, then import People. The Company must exist before you can reference it.
<Accordion title="E se l'Azienda non esiste ancora?">
Importa prima le Aziende, poi importa le Persone. L'Azienda deve esistere prima di potervi fare riferimento.
</Accordion>
<Accordion title="Can I import the ID from my previous CRM?">
Sì! Create a custom field marked as "unique" in your data model to store the external ID. Note: the field name `id` is reserved for Twenty's internal ID.
<Accordion title="Posso importare l'ID dal mio precedente CRM?">
Sì! Crea un campo personalizzato contrassegnato come "univoco" nel tuo modello dati per archiviare l'ID esterno. Nota: il nome del campo `id` è riservato all'ID interno di Twenty.
</Accordion>
<Accordion title="How do I fix 'relation not found' errors?">
The Company you're referencing doesn't exist. Either import the Company first, or check that the domain/ID exactly matches an existing Company.
<Accordion title="Come risolvo gli errori &#x22;relazione non trovata&#x22;?">
L'Azienda a cui fai riferimento non esiste. Importa prima l'Azienda oppure verifica che il dominio/ID corrisponda esattamente a un'Azienda esistente.
</Accordion>
</AccordionGroup>
## Risoluzione dei problemi
Having issues? Check:
Problemi? Controlla:
* [How to Fix Import Errors](/l/it/user-guide/data-migration/how-tos/fix-import-errors)
* [How to Import Relations](/l/it/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Field Mapping Reference](/l/it/user-guide/data-migration/capabilities/field-mapping)
* [Come correggere gli errori di importazione](/l/it/user-guide/data-migration/how-tos/fix-import-errors)
* [Come importare le relazioni](/l/it/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Riferimento alla mappatura dei campi](/l/it/user-guide/data-migration/capabilities/field-mapping)
@@ -1,67 +1,67 @@
---
title: Update Existing Records via Import
description: Complete step-by-step guide to bulk updating records using CSV import.
title: Aggiorna i record esistenti tramite importazione
description: Guida completa passo dopo passo per aggiornare in blocco i record usando l'importazione CSV.
---
## Panoramica
Need to update many records at once? Instead of editing them one by one, use the CSV import to bulk update existing records.
Devi aggiornare molti record in una sola volta? Invece di modificarli uno per uno, usa l'importazione CSV per aggiornare in blocco i record esistenti.
**Casi di utilizzo:**
* Update job titles for multiple people
* Change company information in bulk
* Add data to new custom fields
* Correct data errors across many records
* Aggiorna i titoli professionali per più persone
* Modifica in blocco le informazioni sulle aziende
* Aggiungi dati ai nuovi campi personalizzati
* Correggi gli errori dei dati su molti record
## Come Funziona
When you import a file containing a **unique identifier** that matches an existing record, Twenty updates that record instead of creating a duplicate.
Quando importi un file che contiene un **identificatore univoco** corrispondente a un record esistente, Twenty aggiorna quel record invece di crearne un duplicato.
| If unique identifier... | Twenty will... |
| -------------------------- | ------------------------------------------------ |
| Matches an existing record | **Update** the existing record |
| Doesn't match any record | **Create** a new record |
| Is missing from your file | **Create** a new record (with auto-generated ID) |
| Se l'identificatore univoco... | Twenty farà... |
| --------------------------------- | ---------------------------------------------------------- |
| Corrisponde a un record esistente | **Aggiorna** il record esistente |
| Non corrisponde ad alcun record | **Crea** un nuovo record |
| Manca nel tuo file | **Crea** un nuovo record (con ID generato automaticamente) |
<Warning>
**Multi-Select fields are overwritten, not merged.**
**I campi Multi-Select vengono sovrascritti, non uniti.**
If a record has `Option A` and `Option B` selected, and you import `["Option C"]`, the record will only have `Option C` after import. The import replaces all previous selections—it does not add to them.
Se un record ha `Option A` e `Option B` selezionate e importi `["Option C"]`, il record avrà solo `Option C` dopo l'importazione. L'importazione sostituisce tutte le selezioni precedenti: non le aggiunge.
To keep existing values, include them all in your import: `["Option A","Option B","Option C"]`
Per mantenere i valori esistenti, includili tutti nella tua importazione: `["Option A","Option B","Option C"]`
</Warning>
## Step 1: Export Your Current Data
## Passaggio 1: Esporta i tuoi dati correnti
First, export the records you want to update:
Per prima cosa, esporta i record che vuoi aggiornare:
1. Navigate to the object (People, Companies, etc.)
2. **Add the columns you need** — click **Options → Fields** to show the fields you want to update
3. **Filter if needed** — narrow down to only the records you want to update
4. Click **⋮** → **Export view**
5. Save the CSV file
1. Vai all'oggetto (Persone, Aziende, ecc.)
2. **Aggiungi le colonne necessarie** — fai clic su **Options → Fields** per mostrare i campi che vuoi aggiornare
3. **Filtra se necessario** — limita ai soli record che vuoi aggiornare
4. Fai clic su **⋮** → **Esporta vista**
5. Salva il file CSV
<Note>**Why export first?** The exported file has the correct format, includes unique identifiers, and maps automatically during import.</Note>
<Note>**Perché esportare prima?** Il file esportato ha il formato corretto, include gli identificatori univoci e viene mappato automaticamente durante l'importazione.</Note>
### What Gets Exported
### Cosa viene esportato
* All visible columns in your current view
* The record's unique identifiers (`id`, `email`, `domain`)
* Current field values you can modify
* Tutte le colonne visibili nella vista corrente
* Gli identificatori univoci del record (`id`, `email`, `domain`)
* Valori attuali dei campi che puoi modificare
## Step 2: Edit the CSV File
## Passaggio 2: Modifica il file CSV
Open the exported file in your spreadsheet application (Excel, Google Sheets, etc.):
Apri il file esportato nella tua applicazione di fogli di calcolo (Excel, Google Sheets, ecc.):
1. **Keep the unique identifier column** — don't delete `id`, `email`, or `domain`
2. **Update the values** in the columns you want to change
3. **Remove columns you don't need to update** (optional, but cleaner)
4. **Don't change unique identifier values** — or Twenty will create new records
1. **Mantieni la colonna dell'identificatore univoco** — non eliminare `id`, `email` o `domain`
2. **Aggiorna i valori** nelle colonne che vuoi modificare
3. **Rimuovi le colonne che non devi aggiornare** (opzionale, ma più pulito)
4. **Non modificare i valori dell'identificatore univoco** — altrimenti Twenty creerà nuovi record
### Example: Updating Job Titles
### Esempio: aggiornare i titoli professionali
**Exported file:**
**File esportato:**
```csv
id,email,firstName,lastName,jobTitle
@@ -70,7 +70,7 @@ id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**After your edits:**
**Dopo le tue modifiche:**
```csv
id,email,firstName,lastName,jobTitle
@@ -80,119 +80,119 @@ id,email,firstName,lastName,jobTitle
```
<Warning>
**Don't change the unique identifier values.**
**Non modificare i valori dell'identificatore univoco.**
If you change `john@acme.com` to `john.smith@acme.com`, Twenty will create a new record instead of updating the existing one.
Se modifichi `john@acme.com` in `john.smith@acme.com`, Twenty creerà un nuovo record invece di aggiornare quello esistente.
</Warning>
## Step 3: Import the Updated File
## Passaggio 3: Importa il file aggiornato
1. Navigate to the object
2. Click **⋮** → **Import records**
3. Upload your edited CSV file
4. **Ensure the unique identifier is mapped** — verify `email`, `domain`, or `id` is mapped correctly
5. Review the field mappings
6. Check for errors
7. Click **Confirm**
1. Vai all'oggetto
2. Fai clic su **⋮** → **Importa record**
3. Carica il file CSV modificato
4. **Assicurati che l'identificatore univoco sia mappato** — verifica che `email`, `domain` o `id` siano mappati correttamente
5. Rivedi le mappature dei campi
6. Verifica la presenza di errori
7. Fai clic su **Conferma**
Twenty matches records by the unique identifier and updates them with new values.
Twenty abbina i record in base all'identificatore univoco e li aggiorna con i nuovi valori.
## Choosing the Right Unique Identifier
## Scegliere l'identificatore univoco giusto
| Oggetto | Recommended | Alternative | Note |
| -------------------------- | ---------------- | ----------- | ---------------------------- |
| **People** | `email` | `id` | Email is human-readable |
| **Aziende** | `dominio` | `id` | Domain is human-readable |
| **Oggetti personalizzati** | Any unique field | `id` | Use your custom unique field |
| Oggetto | Consigliato | Alternativa | Note |
| -------------------------- | ----------------------- | ----------- | --------------------------------------- |
| **Persone** | `email` | `id` | L'email è leggibile |
| **Aziende** | `dominio` | `id` | Il dominio è leggibile |
| **Oggetti personalizzati** | Qualsiasi campo univoco | `id` | Usa il tuo campo univoco personalizzato |
<Note>**Use only ONE unique identifier.** Don't map both `email` AND `id`. This can cause confusion and errors.</Note>
<Note>**Usa un solo identificatore univoco.** Non mappare sia `email` che `id`. Questo può causare confusione ed errori.</Note>
### Using Custom Unique Fields
### Utilizzo di campi univoci personalizzati
If you have a custom field marked as unique (like an external ID from another system):
Se hai un campo personalizzato contrassegnato come univoco (come un ID esterno da un altro sistema):
1. Include that field in your export and import
2. Map it during import
3. Twenty will match on that field
1. Includi quel campo nell'esportazione e nell'importazione
2. Mappalo durante l'importazione
3. Twenty abbinerà in base a quel campo
## Step 4: Verify the Updates
## Passaggio 4: Verifica gli aggiornamenti
After importing:
Dopo l'importazione:
1. Open a few updated records
2. Verify the changes were applied
3. Check that no duplicate records were created
1. Apri alcuni record aggiornati
2. Verifica che le modifiche siano state applicate
3. Controlla che non siano stati creati record duplicati
## What About Fields Not in Your File?
## Che cosa succede ai campi non presenti nel tuo file?
**Fields not included in your import file remain unchanged.**
**I campi non inclusi nel file di importazione rimangono invariati.**
| Your file includes... | Risultato |
| ---------------------------- | ------------------------------------------------------ |
| `email`, `jobTitle` | Only `jobTitle` is updated; other fields stay the same |
| `email`, `jobTitle`, `phone` | `jobTitle` and `phone` are updated |
| Il tuo file include... | Risultato |
| ---------------------------- | ------------------------------------------------------------------- |
| `email`, `jobTitle` | Viene aggiornato solo `jobTitle`; gli altri campi restano invariati |
| `email`, `jobTitle`, `phone` | Vengono aggiornati `jobTitle` e `phone` |
This means you only need to include the fields you want to change (plus the unique identifier).
Ciò significa che devi includere solo i campi che vuoi modificare (più l'identificatore univoco).
## Combining Updates and New Records
## Combinare aggiornamenti e nuovi record
You can update existing records AND create new ones in the same import:
Puoi aggiornare i record esistenti E creare nuovi record nella stessa importazione:
```csv
email,firstName,lastName,jobTitle
john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
john@acme.com,John,Smith,Senior Manager ← Aggiorna esistente (l'email corrisponde)
newperson@acme.com,New,Person,Analyst ← Crea nuovo (l'email non corrisponde)
```
## Common Mistakes to Avoid
## Errori comuni da evitare
| Mistake | Problem | Risultato | Solution |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| **Changing unique identifier** | Changed `john@acme.com` to `john.smith@acme.com` | Creates new record instead of updating | Keep unique identifiers unchanged |
| **Multiple unique fields** | Mapping both `email` AND `id` | Potential matching conflicts | Map only ONE unique identifier |
| **No unique identifier** | File only has `firstName`, `lastName`, `jobTitle` | All rows create new records | Always include `email`, `domain`, or `id` |
| **Case mismatch** | File has `John@acme.com` but Twenty has `john@acme.com` | Creates new record | Export from Twenty to get exact values |
| Errore | Problema | Risultato | Soluzione |
| ----------------------------------------- | --------------------------------------------------------- | ----------------------------------------- | ---------------------------------------------- |
| **Modifica dell'identificatore univoco** | Modificato `john@acme.com` in `john.smith@acme.com` | Crea un nuovo record invece di aggiornare | Mantieni invariati gli identificatori univoci |
| **Più campi univoci** | Mappare sia `email` che `id` | Possibili conflitti di corrispondenza | Mappa un solo identificatore univoco |
| **Nessun identificatore univoco** | Il file contiene solo `firstName`, `lastName`, `jobTitle` | Tutte le righe creano nuovi record | Includi sempre `email`, `domain` o `id` |
| **Discrepanza tra maiuscole e minuscole** | Il file ha `John@acme.com` ma Twenty ha `john@acme.com` | Crea un nuovo record | Esporta da Twenty per ottenere i valori esatti |
## FAQ
<AccordionGroup>
<Accordion title="What if some records don't exist yet?">
Records with unique identifiers that don't match existing records will be created as new records. This lets you update and create in the same import.
<Accordion title="Cosa succede se alcuni record non esistono ancora?">
I record con identificatori univoci che non corrispondono a record esistenti verranno creati come nuovi record. Questo ti consente di aggiornare e creare nella stessa importazione.
</Accordion>
<Accordion title="Can I clear/empty a field value?">
Yes, leave the cell empty in your CSV. The import will clear that field's value on the existing record.
<Accordion title="Posso svuotare il valore di un campo?">
Sì, lascia la cella vuota nel tuo CSV. L'importazione cancellerà il valore di quel campo nel record esistente.
</Accordion>
<Accordion title="What happens to fields I don't include in the import?">
Fields not in your import file remain unchanged on existing records. Only fields you include are updated.
<Accordion title="Cosa succede ai campi che non includo nell'importazione?">
I campi non presenti nel file di importazione rimangono invariati nei record esistenti. Vengono aggiornati solo i campi che includi.
</Accordion>
<Accordion title="Can I update relation fields (like Company)?">
Sì! Include the relation's unique identifier (e.g., `companyDomain`) and map it to the relation field. The relation will be updated.
<Accordion title="Posso aggiornare i campi di relazione (come Azienda)?">
Sì! Includi l'identificatore univoco della relazione (ad es., `companyDomain`) e mappalo sul campo di relazione. La relazione verrà aggiornata.
</Accordion>
<Accordion title="How do I know which records will be updated vs. created?">
During the import review step, Twenty shows you how many records will be updated vs. created based on unique identifier matches.
<Accordion title="Come faccio a sapere quali record saranno aggiornati e quali creati?">
Durante la fase di revisione dell'importazione, Twenty ti mostra quanti record verranno aggiornati e quanti creati in base alle corrispondenze dell'identificatore univoco.
</Accordion>
<Accordion title="Can I undo a bulk update?">
There's no automatic undo. We recommend exporting your data as a backup before making bulk updates.
<Accordion title="Posso annullare un aggiornamento in blocco?">
Non è disponibile un annullamento automatico. Ti consigliamo di esportare i tuoi dati come backup prima di effettuare aggiornamenti in blocco.
</Accordion>
</AccordionGroup>
## Migliori Pratiche
1. **Export first** — always start from an export to ensure correct format
2. **Backup before updating** — export your data before making bulk changes
3. **Test with a few records** — try updating 5-10 records first before doing a large batch
4. **Use human-readable identifiers** — `email` and `domain` are easier to verify than `id`
5. **Only include necessary columns** — fewer columns means less chance for errors
1. **Esporta per prima cosa** — inizia sempre da un'esportazione per assicurarti del formato corretto
2. **Fai un backup prima di aggiornare** — esporta i tuoi dati prima di effettuare modifiche in blocco
3. **Esegui una prova con pochi record** — prova ad aggiornare prima 5-10 record, prima di eseguire un lotto di grandi dimensioni
4. **Usa identificatori leggibili** — `email` e `domain` sono più facili da verificare rispetto a `id`
5. **Includi solo le colonne necessarie** — meno colonne significa meno possibilità di errori
## Risoluzione dei problemi
Having issues? Check:
Hai problemi? Controlla:
* [How to Fix Import Errors](/l/it/user-guide/data-migration/how-tos/fix-import-errors)
* [Uniqueness Constraints](/l/it/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Field Mapping Reference](/l/it/user-guide/data-migration/capabilities/field-mapping)
* [Come correggere gli errori di importazione](/l/it/user-guide/data-migration/how-tos/fix-import-errors)
* [Vincoli di unicità](/l/it/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Riferimento alla mappatura dei campi](/l/it/user-guide/data-migration/capabilities/field-mapping)
@@ -31,11 +31,11 @@ L'open-source è la base del nostro approccio, garantendo che Twenty evolva con
* **Migrazione dei dati:** Importa ed esporta i tuoi dati via CSV o API. [Inizia qui](/l/it/user-guide/data-migration/overview).
* **Viste e pipeline:** Organizza i tuoi dati con viste tabellari, bacheche Kanban e pipeline di vendita. [Scopri](/l/it/user-guide/views-pipelines/overview).
* **Flussi di lavoro:** Automatizza i tuoi processi aziendali e integra con strumenti esterni. [Crea automazioni](/l/it/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/it/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/it/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/it/user-guide/permissions-access/overview).
* **Notes & Tasks:** Create notes and tasks linked to your records for better collaboration.
* **API & Webhooks:** Connect to other apps and build custom integrations. [Inizia a integrare](/l/it/developers/extend/capabilities/apis).
* **AI:** Potenzia il tuo CRM con funzionalità e agenti basati sull'IA. [Esplora l'IA](/l/it/user-guide/ai/overview).
* **Dashboard:** Monitora le prestazioni con report e visualizzazioni personalizzati. [Visualizza le dashboard](/l/it/user-guide/dashboards/overview).
* **Autorizzazioni e accesso:** Controlla chi può visualizzare, modificare e gestire i tuoi dati con autorizzazioni basate sui ruoli. [Configura l'accesso](/l/it/user-guide/permissions-access/overview).
* **Note e attività:** Crea note e attività collegate ai tuoi record per una collaborazione migliore.
* **API e Webhooks:** Connettiti ad altre app e crea integrazioni personalizzate. [Inizia a integrare](/l/it/developers/extend/capabilities/apis).
## Unisciti ora
@@ -1,149 +1,149 @@
---
title: Send Emails from Workflows
description: Send personalized emails automatically using workflow actions.
title: Invia email dai flussi di lavoro
description: Invia automaticamente email personalizzate utilizzando le azioni dei flussi di lavoro.
image: /images/user-guide/workflows/workflow.png
---
Automatically send emails when specific events occur in your CRM—welcome new contacts, follow up on opportunities, or notify team members.
Invia automaticamente email quando si verificano eventi specifici nel tuo CRM—dai il benvenuto ai nuovi contatti, effettua il follow-up delle opportunità o avvisa i membri del team.
## Prerequisiti
Before you can send emails from workflows:
Prima di poter inviare email dai flussi di lavoro:
1. Connect an email account under **Settings → Accounts**
2. Ensure the account has sending permissions enabled
1. Collega un account email in **Impostazioni → Account**
2. Assicurati che l'account abbia le autorizzazioni di invio abilitate
## Basic Email Workflow
## Flusso di lavoro email di base
### Example: Welcome Email for New Contacts
### Esempio: Email di benvenuto per i nuovi contatti
**Goal**: Send a welcome email when a new person is added to the CRM.
**Obiettivo**: Inviare un'email di benvenuto quando una nuova persona viene aggiunta al CRM.
**Impostazione**:
1. **Create workflow**: Go to **Settings → Workflows** and click **+ New Workflow**
1. **Crea flusso di lavoro**: Vai su **Impostazioni → Flussi di lavoro** e fai clic su **+ Nuovo flusso di lavoro**
2. **Add trigger**: Select **Record is Created** → **People**
2. **Aggiungi trigger**: Seleziona **Record creato** → **Persone**
3. **Add Send Email action**:
* Click **+** to add an action
* Select **Send Email**
* Configure the email:
3. **Aggiungi l'azione Invia email**:
* Fai clic su **+** per aggiungere un'azione
* Seleziona **Invia email**
* Configura l'email:
| Campo | Valore |
| ----------- | -------------------------------------- |
| **To** | `{{trigger.object.email}}` |
| **Subject** | `Benvenuto in {{Your Company Name}}` |
| **Body** | `Hi {{trigger.object.firstName}}, ...` |
| **A** | `{{trigger.object.email}}` |
| **Oggetto** | `Benvenuto in {{Your Company Name}}` |
| **Corpo** | `Hi {{trigger.object.firstName}}, ...` |
4. **Test and activate**: Test with a sample record, then activate
4. **Testa e attiva**: Esegui un test con un record di esempio, quindi attiva
## Using Variables in Emails
## Uso delle variabili nelle email
Reference data from previous steps using `{{variable}}` syntax:
Richiama i dati dai passaggi precedenti usando la sintassi `{{variable}}`:
```text
Hi {{trigger.object.firstName}},
Ciao {{trigger.object.firstName}},
Thank you for connecting with us!
Grazie per esserti messo in contatto con noi!
Your company, {{trigger.object.company.name}}, is now in our system.
La tua azienda, {{trigger.object.company.name}}, è ora nel nostro sistema.
Best regards,
The Team
Cordiali saluti,
Il Team
```
### Available Variables from Triggers
### Variabili disponibili dai trigger
| Tipo di trigger | Common Variables |
| -------------------------- | -------------------------------------- |
| **Record Created/Updated** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
| Tipo di trigger | Variabili comuni |
| ---------------------------- | -------------------------------------- |
| **Record creato/aggiornato** | `{{trigger.object.fieldName}}` |
| **Manuale** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
## Advanced: Conditional Emails
## Avanzato: Email condizionali
### Example: Different Emails Based on Lead Source
### Esempio: Email diverse in base all'origine del lead
**Goal**: Send different welcome emails based on where the lead came from.
**Obiettivo**: Inviare email di benvenuto diverse in base alla provenienza del lead.
**Impostazione**:
1. **Trigger**: Record is Created (People)
1. **Trigger**: Record creato (Persone)
2. **Add Filter action**:
* Condition: `{{trigger.object.source}}` equals `"Website"`
* If true → continue to website welcome email
2. **Aggiungi l'azione Filtro**:
* Condizione: `{{trigger.object.source}}` uguale a `"Website"`
* Se vero → continua con l'email di benvenuto per il sito web
3. **Branch for other sources**:
* Create parallel branches for different sources
* Each branch has its own Send Email action
3. **Diramazione per altre origini**:
* Crea diramazioni parallele per origini diverse
* Ogni diramazione ha la propria azione Invia email
## Sending Emails to Multiple Recipients
## Inviare email a più destinatari
### Example: Notify Team When Deal Closes
### Esempio: Notifica al team quando un'opportunità viene chiusa
**Goal**: Email the sales rep and their manager when an opportunity is won.
**Obiettivo**: Inviare un'email al commerciale e al suo responsabile quando un'opportunità viene vinta.
**Impostazione**:
1. **Trigger**: Record is Updated (Opportunities, Stage = "Closed Won")
1. **Trigger**: Record aggiornato (Opportunità, Fase = "Chiusa vinta")
2. **Search Records**: Find the opportunity owner's manager
2. **Cerca record**: Trova il responsabile del proprietario dell'opportunità
3. **Send Email #1**: To opportunity owner
* To: `{{trigger.object.owner.email}}`
* Subject: `Congratulations on closing {{trigger.object.name}}!`
3. **Invia email n. 1**: Al proprietario dell'opportunità
* A: `{{trigger.object.owner.email}}`
* Oggetto: `Congratulazioni per la chiusura di {{trigger.object.name}}!`
4. **Send Email #2**: To manager
* To: `{{searchRecords.manager.email}}`
* Subject: `Deal Won: {{trigger.object.name}}`
4. **Invia email n. 2**: Al responsabile
* A: `{{searchRecords.manager.email}}`
* Oggetto: `Opportunità vinta: {{trigger.object.name}}`
## Scheduled Follow-up Emails
## Email di follow-up programmate
### Example: Follow Up 3 Days After Meeting
### Esempio: Follow-up 3 giorni dopo la riunione
**Goal**: Send a follow-up email 3 days after a meeting is logged.
**Obiettivo**: Inviare un'email di follow-up 3 giorni dopo la registrazione di una riunione.
**Impostazione**:
1. **Trigger**: Record is Created (Activities, Type = "Meeting")
1. **Trigger**: Record creato (Attività, Tipo = "Riunione")
2. **Delay action**: Wait 3 days
2. **Azione di ritardo**: Attendi 3 giorni
3. **Send Email**:
* To: Meeting attendee
* Subject: Following up on our conversation
* Body: Reference meeting details from trigger
3. **Invia email**:
* A: Partecipante alla riunione
* Oggetto: Seguito alla nostra conversazione
* Corpo: Richiama i dettagli della riunione dal trigger
## Migliori Pratiche
### Email Content
### Contenuto dell'email
* Keep subject lines concise and relevant
* Personalize with recipient's name
* Include a clear call to action
* Test emails before activating
* Mantieni le righe dell'oggetto concise e pertinenti
* Personalizza con il nome del destinatario
* Includi una chiara chiamata all'azione
* Testa le email prima di attivare
### Deliverability
### Recapito
* Don't send too many emails too quickly
* Use professional email signatures
* Avoid spam trigger words
* Ensure unsubscribe options for marketing emails
* Non inviare troppe email troppo rapidamente
* Usa firme email professionali
* Evita parole che attivano i filtri antispam
* Assicurati che le email di marketing includano opzioni di disiscrizione
### Risoluzione dei problemi
* Verify email account is connected and active
* Check recipient email address is valid
* Review workflow runs for error messages
* Test with your own email address first
* Verifica che l'account email sia connesso e attivo
* Controlla che l'indirizzo email del destinatario sia valido
* Esamina le esecuzioni dei flussi di lavoro per eventuali messaggi di errore
* Prova prima con il tuo indirizzo email
<Note>
**Coming soon**: Email attachments will be available in Q1 2026.
**In arrivo**: Gli allegati email saranno disponibili nel Q1 2026.
</Note>
## Related
## Correlati
* [Workflow Triggers](/l/it/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/it/user-guide/workflows/capabilities/workflow-actions)
* [Trigger dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-triggers)
* [Azioni dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-actions)
@@ -1,21 +1,21 @@
---
title: Workflow Actions
description: Learn about the actions available in Twenty workflows.
title: Azioni del workflow
description: Scopri le azioni disponibili nei workflow di Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## About Actions
## Informazioni sulle azioni
Actions define what happens after a trigger fires. You can chain multiple actions together to build complex automations.
Le azioni definiscono cosa accade dopo l'attivazione di un trigger. Puoi concatenare più azioni per creare automazioni complesse.
<Tip>
* Use the variable picker (click the `(x+)` icon) to browse available data from previous steps
* Hover over any input field to see which step a variable comes from — helpful when the same field (e.g., ID) exists in multiple previous steps
* Give each action a descriptive name for easier maintenance
* Usa il selettore di variabili (fai clic sull'icona `(x+)`) per sfogliare i dati disponibili dai passaggi precedenti
* Passa il mouse su qualsiasi campo di input per vedere da quale passaggio proviene una variabile — utile quando lo stesso campo (ad es., ID) esiste in più passaggi precedenti
* Assegna a ogni azione un nome descrittivo per una manutenzione più semplice
</Tip>
## Record Actions
## Azioni sui record
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
@@ -27,7 +27,7 @@ Aggiunge un nuovo record a un oggetto selezionato.
* Seleziona l'oggetto di destinazione
* Compila i campi richiesti e opzionali
* Use data from previous steps or input values manually to populate fields
* Usa i dati dai passaggi precedenti oppure inserisci i valori manualmente per popolare i campi
**Output**: I dati del nuovo record creato sono disponibili per l'uso in passaggi successivi.
@@ -41,8 +41,8 @@ Modifica un record esistente in un oggetto selezionato.
* Seleziona l'oggetto di destinazione
* Scegli il record specifico da aggiornare.
* You can either choose a fixed record, using the drop down menu displaying all available records.
* Or you can have the record dynamically selected, by designating a record found in a previous step, using the `(x+)`. You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add a `Search Record` step before this `Update Record` step.
* Puoi scegliere un record fisso, utilizzando il menu a discesa che mostra tutti i record disponibili.
* Oppure puoi selezionare dinamicamente il record, indicando un record trovato in un passaggio precedente, usando `(x+)`. In questa fase non è possibile cercare il record in base a criteri diversi. Se non hai ancora identificato il record, aggiungi un passaggio `Search Record` prima di questo passaggio `Update Record`.
* Seleziona i campi da modificare e inserisci nuovi valori
**Output**: I dati del record aggiornato sono disponibili per l'uso in passaggi successivi.
@@ -71,25 +71,25 @@ Trova i record all'interno di un oggetto selezionato utilizzando condizioni di f
**Output**: Restituisce i record corrispondenti utilizzabili in passaggi successivi.
<Note>
**Limit**: Search Records returns a maximum of **200 records**. If you need to process more, add specific filters to reduce results or use scheduled workflows to process in batches.
**Limite**: Search Records restituisce un massimo di **200 record**. Se devi elaborarne di più, aggiungi filtri specifici per ridurre i risultati oppure usa workflow pianificati per elaborare a lotti.
</Note>
**Best Practice**: Use [branches](/l/it/user-guide/workflows/capabilities/workflow-branches) after Search Records to handle "found" vs "not found" scenarios.
**Migliore Pratica**: Usa [rami](/l/it/user-guide/workflows/capabilities/workflow-branches) dopo Search Records per gestire scenari "trovato" vs "non trovato".
### Upsert Record
### Inserisci o aggiorna Record
Creates a new record or updates an existing one based on matching criteria. This is useful when you're not sure if a record already exists.
Crea un nuovo record o aggiorna uno esistente in base ai criteri di corrispondenza. È utile quando non sei sicuro che un record esista già.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Configurazione**:
* Seleziona l'oggetto di destinazione
* Note which fields can be used for matching: email for People, domain for Companies, ID for any object, or any field marked as Unique. You'll need to populate at least one of these below.
* Fill out the field values. Do not forget to populate at least one of the unique identifiers.
* Tieni presente quali campi possono essere utilizzati per la corrispondenza: email per Persone, dominio per Aziende, ID per qualsiasi oggetto o qualsiasi campo contrassegnato come Univoco. Dovrai compilare almeno uno di questi qui sotto.
* Compila i valori dei campi. Non dimenticare di valorizzare almeno uno degli identificatori univoci.
<Note>
**Matching usually works even better when adding only one unique identifier.** For example, the screenshot below will match companies based on their domain. The ID is not necessarily needed.
**La corrispondenza di solito funziona ancora meglio aggiungendo un solo identificatore univoco.** Ad esempio, lo screenshot qui sotto abbinerà le aziende in base al loro dominio. L'ID non è necessariamente richiesto.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
@@ -1,24 +1,24 @@
---
title: Handle Arrays in Code Actions
description: Learn how to properly handle array inputs in workflow Code actions.
title: Gestire gli array nelle azioni Code
description: Scopri come gestire correttamente gli input di tipo array nelle azioni Code dei workflow.
---
When working with arrays in Code actions, you may encounter two common challenges:
Quando lavori con gli array nelle azioni Code, potresti incontrare due problemi comuni:
1. **Arrays passed as strings** — data from external systems or previous steps arrives as a string instead of an actual array
2. **Can't select individual items** — you can only select the entire array, not specific fields within it
1. **Array passati come stringhe** — i dati provenienti da sistemi esterni o da passaggi precedenti arrivano come stringa invece che come un vero array
2. **Impossibile selezionare singoli elementi** — puoi selezionare solo l'intero array, non i campi specifici al suo interno
Both can be solved with a Code node.
Entrambi i casi si possono risolvere con un nodo Code.
## Parsing Arrays from Strings
## Analizzare gli array dalle stringhe
Arrays are often passed between workflow steps as strings or JSON rather than native arrays. This happens when:
Gli array vengono spesso passati tra i passaggi del workflow come stringhe o JSON invece che come array nativi. Ciò accade quando:
* Receiving data from external APIs via HTTP Request
* Processing webhook payloads
* Passing data between workflow steps
* Ricezione di dati da API esterne tramite HTTP Request
* Elaborazione dei payload dei webhook
* Passaggio di dati tra i passaggi del workflow
**Solution**: Add this pattern at the start of your Code action:
**Soluzione**: aggiungi questo pattern all'inizio della tua azione Code:
```javascript
export const main = async (params: {
@@ -39,13 +39,13 @@ export const main = async (params: {
};
```
The key line `typeof users === "string" ? JSON.parse(users) : users` checks if the input is a string, parses it if needed, or uses it directly if it's already an array.
La riga chiave `typeof users === "string" ? JSON.parse(users) : users` verifica se l'input è una stringa, lo analizza se necessario o lo usa direttamente se è già un array.
## Extracting Individual Fields from Arrays
## Estrazione di campi specifici dagli array
A webhook might return an array like `answers: [...]`, but in subsequent workflow steps you can only select the **entire array** — not individual items within it.
Un webhook potrebbe restituire un array come `answers: [...]`, ma nei passaggi successivi del workflow puoi selezionare solo l'**intero array** — non i singoli elementi al suo interno.
**Solution**: Add a Code node to extract specific fields and return them as a structured object:
**Soluzione**: aggiungi un nodo Code per estrarre campi specifici e restituirli come oggetto strutturato:
```javascript
export const main = async (params: {
@@ -71,12 +71,12 @@ export const main = async (params: {
};
```
The Code node returns a structured object instead of an array. In subsequent steps, you can now select individual fields like `answer.firstname` and `answer.name` from the variable picker.
Il nodo Code restituisce un oggetto strutturato invece di un array. Nei passaggi successivi, ora puoi selezionare campi individuali come `answer.firstname` e `answer.name` dal selettore delle variabili.
<Note>
We're actively working on making array handling easier in future updates.
Stiamo lavorando attivamente per rendere la gestione degli array più semplice nei prossimi aggiornamenti.
</Note>
<Tip>
Click the square icon at the top right of the code editor to display it in full screen — helpful since the default editor width is limited.
Fai clic sull'icona quadrata in alto a destra dell'editor di codice per visualizzarlo a tutto schermo — utile poiché la larghezza predefinita dell'editor è limitata.
</Tip>
@@ -1,52 +1,52 @@
---
title: Generate a Quote or Invoice from Twenty
description: Automatically create invoices in external tools when deals close.
title: Genera un preventivo o una fattura da Twenty
description: Crea automaticamente fatture negli strumenti esterni quando le opportunità vengono chiuse.
---
Automatically send deal data to your invoicing system (Stripe, QuickBooks, Xero, etc.) when an opportunity is won.
Invia automaticamente i dati dell'opportunità al tuo sistema di fatturazione (Stripe, QuickBooks, Xero, ecc.) quando un'opportunità è chiusa come vinta.
## Workflow Structure
## Struttura del flusso di lavoro
1. **Trigger**: Record is Updated (Opportunity)
2. **Filter**: Stage = Closed Won
3. **Search Record**: Get Company details
4. **Code** (optional): Format payload
5. **HTTP Request**: Send to invoicing system
1. **Trigger**: Il Record è Aggiornato (Opportunità)
2. **Filtro**: Fase = Closed Won
3. **Search Record**: Recupera i dettagli dell'azienda
4. **Code** (opzionale): Formatta il payload
5. **HTTP Request**: Invia al sistema di fatturazione
## Step 1: Set Up the Trigger
## Passaggio 1: Configura il trigger
1. Create a new workflow
2. Select **Record is Updated** trigger
3. Choose **Opportunity** as the object
1. Crea un nuovo flusso di lavoro
2. Seleziona il trigger **Record is Updated**
3. Scegli **Opportunity** come oggetto
## Step 2: Filter for Closed Won
## Passaggio 2: Filtra per Closed Won
Add a **Filter** action to only continue when the deal is won:
Aggiungi un'azione **Filtro** per proseguire solo quando l'opportunità è chiusa come vinta:
| Setting | Valore |
| ------------- | --------------------------------- |
| **Field** | Fase |
| **Condition** | Equals |
| **Value** | `CLOSED_WON` (or your stage name) |
| Impostazione | Valore |
| -------------- | --------------------------------------- |
| **Campo** | Fase |
| **Condizione** | Uguale a |
| **Valore** | `CLOSED_WON` (o il nome della tua fase) |
<Tip>
The trigger fires on any Opportunity update. The Filter ensures the workflow only continues when the stage changes to Closed Won.
Il trigger si attiva a ogni aggiornamento di un'Opportunità. Il filtro garantisce che il flusso di lavoro prosegua solo quando la fase cambia in Closed Won.
</Tip>
## Step 3: Get Company Details
## Passaggio 3: Ottieni i dettagli dell'azienda
The Opportunity record may not include all Company fields you need for the invoice. Add a **Search Record** action:
Il record Opportunity potrebbe non includere tutti i campi dell'azienda necessari per la fattura. Aggiungi un'azione **Search Record**:
| Setting | Valore |
| ------------ | ---------------------------------------- |
| **Object** | Azienda |
| **Match by** | ID equals `{{trigger.object.companyId}}` |
| Impostazione | Valore |
| ---------------------- | ------------------------------------------ |
| **Oggetto** | Azienda |
| **Corrispondenza per** | ID uguale a `{{trigger.object.companyId}}` |
This retrieves the full Company record with billing address, tax ID, etc.
Questo recupera il record completo dell'azienda con indirizzo di fatturazione, partita IVA, ecc.
## Step 4: Format the Payload (Optional)
## Passaggio 4: Formatta il payload (opzionale)
If your invoicing system expects a specific format, add a **Code** action:
Se il tuo sistema di fatturazione richiede un formato specifico, aggiungi un'azione **Code**:
```javascript
export const main = async (params: {
@@ -84,18 +84,18 @@ export const main = async (params: {
};
```
## Step 5: Send to Invoicing System
## Passaggio 5: Invia al sistema di fatturazione
Add an **HTTP Request** action:
Aggiungi un'azione **HTTP Request**:
| Setting | Valore |
| ----------- | ----------------------------------------- |
| **Method** | POST |
| **URL** | Your invoicing API endpoint |
| **Headers** | `Authorization: Bearer YOUR_API_KEY` |
| **Body** | `{{code.invoice}}` or map fields directly |
| Impostazione | Valore |
| ---------------- | ----------------------------------------------- |
| **Metodo** | POST |
| **URL** | L'endpoint API del tuo sistema di fatturazione |
| **Intestazioni** | `Authorization: Bearer YOUR_API_KEY` |
| **Corpo** | `{{code.invoice}}` o mappa direttamente i campi |
### Example: Stripe Invoice
### Esempio: Fattura Stripe
```
POST https://api.stripe.com/v1/invoices
@@ -109,7 +109,7 @@ Body:
days_until_due: 30
```
### Example: QuickBooks Invoice
### Esempio: Fattura QuickBooks
```
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice
@@ -120,24 +120,24 @@ Headers:
Body: {{code.invoice}}
```
## Complete Workflow Summary
## Riepilogo completo del flusso di lavoro
| Step | Azione | Purpose |
| ---- | ----------------------- | ------------------------------------ |
| 1 | Trigger: Record Updated | Fires when any Opportunity changes |
| 2 | Filtro | Only proceed if Stage = Closed Won |
| 3 | Search Record | Get full Company details for billing |
| 4 | Codice | Format data for invoicing API |
| 5 | Richiesta HTTP | Create invoice in external system |
| Passaggio | Azione | Scopo |
| --------- | ----------------------- | --------------------------------------------------------- |
| 1 | Trigger: Record Updated | Si attiva a ogni modifica di un'Opportunità |
| 2 | Filtro | Procedi solo se Fase = Closed Won |
| 3 | Search Record | Ottieni tutti i dettagli dell'azienda per la fatturazione |
| 4 | Codice | Formatta i dati per l'API di fatturazione |
| 5 | Richiesta HTTP | Crea la fattura in un sistema esterno |
## Tips
## Suggerimenti
* **Store external IDs**: Save the invoice ID returned by the API back to the Opportunity using an **Update Record** action
* **Error handling**: Add a branch to send a notification if the HTTP request fails
* **Test first**: Use your invoicing system's sandbox/test mode before going live
* **Memorizza gli ID esterni**: Salva l'ID della fattura restituito dall'API nell'Opportunity utilizzando un'azione **Update Record**
* **Gestione degli errori**: Aggiungi un ramo per inviare una notifica se la richiesta HTTP non riesce
* **Prima prova**: Usa la modalità sandbox/test del tuo sistema di fatturazione prima di andare in produzione
## Related
## Correlati
* [Workflow Triggers](/l/it/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/it/user-guide/workflows/capabilities/workflow-actions)
* [Closed Won Automations](/l/it/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
* [Trigger dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-triggers)
* [Azioni dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-actions)
* [Automazioni Closed Won](/l/it/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,42 +1,42 @@
---
title: Connect Several Mailboxes per User
description: Connect multiple email accounts for a single user.
title: Conectați mai multe căsuțe poștale per utilizator
description: Conectați mai multe conturi de e-mail pentru un singur utilizator.
---
## Prezentare generală
Twenty supports **unlimited email accounts per user**. This is useful if you manage multiple inboxes, such as:
Twenty acceptă **un număr nelimitat de conturi de e-mail pentru fiecare utilizator**. Acest lucru este util dacă gestionați mai multe căsuțe poștale, de exemplu:
* Personal work email + shared team inbox
* Multiple client-facing email addresses
* Different email accounts for different roles
* E-mail de serviciu personal + căsuță poștală de echipă partajată
* Mai multe adrese de e-mail pentru relația cu clienții
* Conturi de e-mail diferite pentru roluri diferite
## How to Add Multiple Mailboxes
## Cum să adăugați mai multe căsuțe poștale
1. Mergeți la **Setări → Conturi**
2. Faceți clic pe **Adăugați cont**
3. Connect your additional Google or Microsoft account
4. Configure sync settings for this mailbox
5. Repeat for each mailbox you want to connect
3. Conectați contul suplimentar Google sau Microsoft
4. Configurați setările de sincronizare pentru această căsuță poștală
5. Repetați pentru fiecare căsuță poștală pe care doriți să o conectați
## Managing Multiple Accounts
## Gestionarea mai multor conturi
Each connected mailbox has its own settings:
Fiecare căsuță poștală conectată are propriile setări:
* **Email visibility**: Choose what teammates can see
* **Contact auto-creation**: Enable/disable per mailbox
* **Folder selection**: Choose which folders to sync (Lab feature)
* **Vizibilitatea e-mailurilor**: Alegeți ce pot vedea membrii echipei
* **Creare automată a contactelor**: Activați/dezactivați pentru fiecare căsuță poștală
* **Selectarea folderelor**: Alegeți ce foldere să sincronizați (funcție Lab)
## How Emails Appear
## Cum apar e-mailurile
Emails from all your connected mailboxes are synced to Twenty and appear on:
E-mailurile din toate căsuțele poștale conectate sunt sincronizate cu Twenty și apar în:
* **People records**: Based on the contact's email address
* **Company records**: Based on the email domain
* **Opportunities**: Based on the linked company
* **Înregistrări persoane**: Pe baza adresei de e-mail a contactului
* **Înregistrări companii**: Pe baza domeniului adresei de e-mail
* **Oportunități**: Pe baza companiei asociate
<Note>Each email shows which mailbox it was sent from/received to, so you can track which account was used for each communication.</Note>
<Note>Fiecare e-mail afișează din ce căsuță poștală a fost trimis/în ce căsuță a fost primit, astfel încât să puteți urmări ce cont a fost utilizat pentru fiecare comunicare.</Note>
## Important Notes
## Note importante
<Warning>Only true mailboxes can be connected. Email aliases that forward to another mailbox cannot be connected separately—they'll sync through the main mailbox.</Warning>
<Warning>Doar căsuțele poștale propriu-zise pot fi conectate. Aliasurile de e-mail care redirecționează către o altă căsuță poștală nu pot fi conectate separat — se vor sincroniza prin căsuța poștală principală.</Warning>
@@ -1,6 +1,6 @@
---
title: Tablouri de Bord
description: Learn the basics of reporting and dashboards in Twenty.
description: Învățați noțiunile de bază despre raportare și tablouri de bord în Twenty.
image: /images/user-guide/reporting/pie-chart.png
---
@@ -8,72 +8,72 @@ image: /images/user-guide/reporting/pie-chart.png
<img src="/images/user-guide/reporting/pie-chart.png" alt="Tablouri de Bord" />
</Frame>
## Understanding Dashboards
## Înțelegerea tablourilor de bord
Dashboards in Twenty provide a visual way to track your key performance metrics and gain insights from your CRM data.
Tablourile de bord din Twenty oferă o modalitate vizuală de a urmări indicatorii cheie de performanță și de a obține informații din datele dvs. din CRM.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="Tablouri de Bord" />
## Key Concepts
## Concepte cheie
### Tablouri de Bord
A dashboard is a collection of tabs that display your CRM data at a glance. You can create multiple dashboards for different purposes:
Un tablou de bord este o colecție de file care afișează dintr-o privire datele dvs. din CRM. Puteți crea mai multe tablouri de bord pentru scopuri diferite:
* Sales performance
* Team activity
* Pipeline health
* Custom metrics
* Performanța vânzărilor
* Activitatea echipei
* Starea pipeline-ului
* Indicatori personalizați
### Taburi
Tabs allow you to organize your dashboard into sections. Each tab contains one or more widgets.
Filele vă permit să organizați tabloul de bord în secțiuni. Fiecare filă conține unul sau mai multe widgeturi.
### Widgeturi
Widgets are individual visualizations that display specific data. Types include:
Widgeturile sunt vizualizări individuale care afișează date specifice. Tipurile includ:
* Bar charts
* Pie charts
* Line charts
* Number metrics
* Grafice cu bare
* Grafice circulare
* Grafice liniare
* Indicatori numerici
* iFrames
<Note>
**Current limitations**:
**Limitări actuale**:
* Exporting dashboards and sharing with external users (non-Twenty users) are not available at the moment.
* Gauge charts and tables are not yet available.
* Exportarea tablourilor de bord și partajarea cu utilizatori externi (utilizatori non-Twenty) nu sunt disponibile în acest moment.
* Graficele de tip indicator (gauge) și tabelele nu sunt încă disponibile.
</Note>
## Getting Started
## Începeți
### Creating Your First Dashboard
### Crearea primului dvs. tablou de bord
1. Navigate to the **Dashboards** section
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Add tabs to organize your content
5. Add widgets to display your data
1. Navigați la secțiunea **Tablouri de bord**
2. Faceți clic pe **+ Tablou de bord nou**
3. Dați un nume tabloului de bord
4. Adăugați file pentru a vă organiza conținutul
5. Adăugați widgeturi pentru a vă afișa datele
6. Salvează
### Adding Widgets
### Adăugarea de widgeturi
1. Open a tab on your dashboard
2. Click **+ Add Widget**
3. Select the widget type
4. Choose the data source (object)
5. Configure the widget settings
6. Save and view your widget
1. Deschideți o filă în tabloul de bord
2. Faceți clic pe **+ Adaugă widget**
3. Selectați tipul de widget
4. Alegeți sursa de date (obiect)
5. Configurați setările widgetului
6. Salvați și vizualizați widgetul
## Cele mai bune practici
* **Start simple**: Begin with a few key metrics and add more over time
* **Focus on actionable data**: Display metrics that drive decisions
* **Regular review**: Check your dashboards regularly to spot trends
* **Share with team**: Make dashboards visible to relevant team members
* **Începeți simplu**: Începeți cu câțiva indicatori cheie și adăugați mai mulți în timp
* **Concentrați-vă pe date acționabile**: Afișați indicatori care stau la baza deciziilor
* **Revizuire periodică**: Verificați tablourile de bord în mod regulat pentru a identifica tendințele
* **Partajați cu echipa**: Faceți tablourile de bord vizibile membrilor relevanți ai echipei
## Pașii următori
* [Widgets and visualizations](/l/ro/user-guide/dashboards/capabilities/widgets)
* [Dashboards FAQ](/l/ro/user-guide/dashboards/how-tos/dashboards-faq)
* [Widgeturi și vizualizări](/l/ro/user-guide/dashboards/capabilities/widgets)
* [Întrebări frecvente despre tablourile de bord](/l/ro/user-guide/dashboards/how-tos/dashboards-faq)
@@ -147,96 +147,96 @@ Când mapați coloana companiei:
<Warning>
**Mapați un singur identificator unic pentru relații.**
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
Nu mapați atât `companyId`, cât și `companyDomain`. Alegeți una — de preferat domeniul, deoarece este ușor de citit de către oameni.
</Warning>
## Step 5: Map Select Field Values
## Pasul 5: Mapați valorile câmpurilor Select
If you have Select or Multi-Select fields (like Lead Source):
Dacă aveți câmpuri Select sau Multi-Select (cum ar fi Sursa leadului):
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. Twenty afișează valorile dvs. alături de opțiunile existente
2. Asociați fiecare valoare din fișierul dvs. cu o opțiune Twenty
3. Sau creați opțiuni noi, dacă este necesar
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
Opțiunile Select folosesc **nume API**, nu etichete de afișare. Accesați **Setări → Model de date** → activați **Mod avansat** pentru a vedea numele API.
</Note>
## Step 6: Review and Fix Errors
## Pasul 6: Revizuiți și remediați erorile
Before completing the import, Twenty validates your data:
Înainte de a finaliza importul, Twenty validează datele:
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. Faceți clic pe **Pașii următori**
2. Rândurile cu erori sunt evidențiate cu **galben**
3. **Remediați erorile direct** — faceți clic pe o celulă și editați valoarea
4. **Eliminați rândurile problematice** — faceți clic pe X pentru a sări peste acel rând
### Common Contact Import Errors
### Erori frecvente la importul contactelor
| Eroare | Cause | Solution |
| -------------------------- | -------------------------------------- | ------------------------------------------- |
| **Duplicate email** | Email already exists in Twenty or file | Remove duplicate or update existing record |
| **Invalid email format** | Email format incorrect | Fix to `name@domain.com` |
| **Relation not found** | Company doesn't exist | Import Companies first or fix the reference |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Eroare | Cau | Soluție |
| ---------------------------- | ------------------------------------------- | ------------------------------------------------------------ |
| **Email duplicat** | Emailul există deja în Twenty sau în fișier | Eliminați duplicatul sau actualizați înregistrarea existentă |
| **Format de email invalid** | Formatul emailului este incorect | Corectați la `name@domain.com` |
| **Relația nu a fost găsită** | Compania nu există | Importați mai întâi Companiile sau corectați referința |
| **Câmp obligatoriu lipsă** | Câmpul obligatoriu este gol | Completați valoarea sau eliminați rândul |
## Step 7: Complete the Import
## Pasul 7: Finalizați importul
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records and their Company links
1. Revizuiți rezumatul importului
2. Faceți clic pe **Confirmă** pentru a importa
3. Așteptați finalizarea importului
4. Verificați examinând câteva înregistrări și linkurile lor către Companie
## After Importing Contacts
## După importarea contactelor
Your contacts are now in Twenty! Next steps:
Contactele dvs. sunt acum în Twenty! Pașii următori:
1. **Verify Company links** — open a few People records to confirm they're linked to the right Company
2. **Import Opportunities** — if needed, link them to People and Companies
3. **Set up email sync** — connect your mailbox to see email history on contact records
1. **Verificați linkurile către Companie** — deschideți câteva înregistrări de tip Persoană pentru a confirma că sunt legate de Compania corectă
2. **Importați Oportunități** — dacă este nevoie, legați-le de Persoane și Companii
3. **Configurați sincronizarea emailului** — conectați căsuța poștală pentru a vedea istoricul emailurilor în înregistrările de contact
## Updating Existing Contacts
## Actualizarea contactelor existente
To update contacts instead of creating new ones:
Pentru a actualiza contactele în loc să creați unele noi:
1. Include the `email` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing contacts are updated; new ones are created
1. Includeți coloana `email` sau `id` în fișierul dvs.
2. Twenty potrivește înregistrările după acest identificator unic
3. Contactele existente sunt actualizate; cele noi sunt create
See [How to Update Existing Records](/l/ro/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
Consultați [Cum să actualizați înregistrările existente](/l/ro/user-guide/data-migration/how-tos/update-existing-records-via-import) pentru detalii.
## FAQ
## Întrebări frecvente
<AccordionGroup>
<Accordion title="Why can't two People have the same email?">
Email is a unique identifier in Twenty. This prevents duplicate contacts and ensures email sync correctly links emails to the right person.
<Accordion title="De ce nu pot două Persoane să aibă același email?">
Emailul este un identificator unic în Twenty. Acest lucru previne contactele duplicate și asigură că sincronizarea emailului leagă corect emailurile de persoana potrivită.
</Accordion>
<Accordion title="What if I have people without an email?">
You can leave the email empty. However, we recommend adding emails when possible for better data quality and email sync functionality.
<Accordion title="Ce fac dacă am Persoane fără email?">
Puteți lăsa câmpul email necompletat. Totuși, recomandăm să adăugați emailuri când este posibil, pentru o calitate mai bună a datelor și pentru o funcționalitate mai bună a sincronizării emailului.
</Accordion>
<Accordion title="How do I link People to Companies during import?">
Add a column with the Company's domain (e.g., `https://acme.com`) or ID. During mapping, connect this column to the Company relation field.
<Accordion title="Cum leg Persoanele de Companii în timpul importului?">
Adăugați o coloană cu domeniul Companiei (de ex., `https://acme.com`) sau ID-ul. În timpul mapării, conectați această coloană la câmpul de relație al Companiei.
</Accordion>
<Accordion title="What if the Company doesn't exist yet?">
Import Companies first, then import People. The Company must exist before you can reference it.
<Accordion title="Ce fac dacă Compania nu există încă?">
Importați mai întâi Companiile, apoi importați Persoanele. Compania trebuie să existe înainte de a o putea referi.
</Accordion>
<Accordion title="Can I import the ID from my previous CRM?">
Da! Create a custom field marked as "unique" in your data model to store the external ID. Note: the field name `id` is reserved for Twenty's internal ID.
<Accordion title="Pot importa ID-ul din CRM-ul meu anterior?">
Da! Creați un câmp personalizat marcat ca "unic" în modelul dvs. de date pentru a stoca ID-ul extern. Notă: numele câmpului `id` este rezervat pentru ID-ul intern al Twenty.
</Accordion>
<Accordion title="How do I fix 'relation not found' errors?">
The Company you're referencing doesn't exist. Either import the Company first, or check that the domain/ID exactly matches an existing Company.
<Accordion title="Cum remediez erorile 'relation not found'?">
Compania la care faceți referire nu există. Importați mai întâi Compania sau verificați că domeniul/ID-ul corespunde exact unei Companii existente.
</Accordion>
</AccordionGroup>
## Depanare
Having issues? Check:
Aveți probleme? Verificați:
* [How to Fix Import Errors](/l/ro/user-guide/data-migration/how-tos/fix-import-errors)
* [How to Import Relations](/l/ro/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Field Mapping Reference](/l/ro/user-guide/data-migration/capabilities/field-mapping)
* [Cum să remediați erorile de import](/l/ro/user-guide/data-migration/how-tos/fix-import-errors)
* [Cum să importați relații](/l/ro/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Referință pentru maparea câmpurilor](/l/ro/user-guide/data-migration/capabilities/field-mapping)
@@ -1,67 +1,67 @@
---
title: Update Existing Records via Import
description: Complete step-by-step guide to bulk updating records using CSV import.
title: Actualizați înregistrările existente prin import
description: Ghid complet, pas cu pas, pentru actualizarea în masă a înregistrărilor folosind importul CSV.
---
## Prezentare generală
Need to update many records at once? Instead of editing them one by one, use the CSV import to bulk update existing records.
Trebuie să actualizați multe înregistrări deodată? În loc să le editați una câte una, folosiți importul CSV pentru a actualiza în masă înregistrările existente.
**Cazuri de utilizare:**
* Update job titles for multiple people
* Change company information in bulk
* Add data to new custom fields
* Correct data errors across many records
* Actualizați titlurile de post pentru mai multe persoane
* Modificați în masă informațiile companiilor
* Adăugați date în câmpuri personalizate noi
* Corectați erorile de date din multe înregistrări
## Cum Funcționează
When you import a file containing a **unique identifier** that matches an existing record, Twenty updates that record instead of creating a duplicate.
Când importați un fișier care conține un **identificator unic** ce se potrivește unei înregistrări existente, Twenty actualizează acea înregistrare în loc să creeze un duplicat.
| If unique identifier... | Twenty will... |
| -------------------------- | ------------------------------------------------ |
| Matches an existing record | **Update** the existing record |
| Doesn't match any record | **Create** a new record |
| Is missing from your file | **Create** a new record (with auto-generated ID) |
| Dacă identificatorul unic... | Twenty va... |
| ----------------------------------------- | ------------------------------------------------------- |
| Se potrivește cu o înregistrare existentă | **Actualizează** înregistrarea existentă |
| Nu se potrivește cu nicio înregistrare | **Creea** o înregistrare nouă |
| Lipsește din fișierul dvs. | **Creează** o înregistrare nouă (cu ID generat automat) |
<Warning>
**Multi-Select fields are overwritten, not merged.**
**Câmpurile Multi-Select sunt suprascrise, nu îmbinate.**
If a record has `Option A` and `Option B` selected, and you import `["Option C"]`, the record will only have `Option C` after import. The import replaces all previous selections—it does not add to them.
Dacă o înregistrare are selectate `Option A` și `Option B`, iar importați `["Option C"]`, înregistrarea va avea doar `Option C` după import. Importul înlocuiește toate selecțiile anterioare — nu le adaugă.
To keep existing values, include them all in your import: `["Option A","Option B","Option C"]`
Pentru a păstra valorile existente, includeți-le pe toate în import: ["Option A","Option B","Option C"]
</Warning>
## Step 1: Export Your Current Data
## Pasul 1: Exportați datele curente
First, export the records you want to update:
Mai întâi, exportați înregistrările pe care doriți să le actualizați:
1. Navigate to the object (People, Companies, etc.)
2. **Add the columns you need** — click **Options → Fields** to show the fields you want to update
3. **Filter if needed** — narrow down to only the records you want to update
4. Click **⋮** → **Export view**
5. Save the CSV file
1. Navigați la obiect (Persoane, Companii etc.)
2. **Adăugați coloanele de care aveți nevoie** — faceți clic pe **Options → Fields** pentru a afișa câmpurile pe care doriți să le actualizați
3. **Filtrați dacă este nevoie** — restrângeți la înregistrările pe care doriți să le actualizați
4. Faceți clic pe **⋮** → **Export view**
5. Salvați fișierul CSV
<Note>**Why export first?** The exported file has the correct format, includes unique identifiers, and maps automatically during import.</Note>
<Note>**De ce să exportați mai întâi?** Fișierul exportat are formatul corect, include identificatori unici și se mapează automat în timpul importului.</Note>
### What Gets Exported
### Ce se exportă
* All visible columns in your current view
* The record's unique identifiers (`id`, `email`, `domain`)
* Current field values you can modify
* Toate coloanele vizibile din vizualizarea curentă
* Identificatorii unici ai înregistrării (`id`, `email`, `domain`)
* Valorile actuale ale câmpurilor pe care le puteți modifica
## Step 2: Edit the CSV File
## Pasul 2: Editați fișierul CSV
Open the exported file in your spreadsheet application (Excel, Google Sheets, etc.):
Deschideți fișierul exportat în aplicația dvs. de calcul tabelar (Excel, Google Sheets etc.):
1. **Keep the unique identifier column** — don't delete `id`, `email`, or `domain`
2. **Update the values** in the columns you want to change
3. **Remove columns you don't need to update** (optional, but cleaner)
4. **Don't change unique identifier values** — or Twenty will create new records
1. **Păstrați coloana cu identificatorul unic** — nu ștergeți `id`, `email` sau `domain`
2. **Actualizați valorile** în coloanele pe care doriți să le modificați
3. **Eliminați coloanele pe care nu trebuie să le actualizați** (opțional, dar mai ordonat)
4. **Nu modificați valorile identificatorului unic** — altfel Twenty va crea înregistrări noi
### Example: Updating Job Titles
### Exemplu: Actualizarea titlurilor de post
**Exported file:**
**Fișier exportat:**
```csv
id,email,firstName,lastName,jobTitle
@@ -70,7 +70,7 @@ id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**After your edits:**
**După modificările dvs.:**
```csv
id,email,firstName,lastName,jobTitle
@@ -80,119 +80,119 @@ id,email,firstName,lastName,jobTitle
```
<Warning>
**Don't change the unique identifier values.**
**Nu modificați valorile identificatorului unic.**
If you change `john@acme.com` to `john.smith@acme.com`, Twenty will create a new record instead of updating the existing one.
Dacă modificați `john@acme.com` în `john.smith@acme.com`, Twenty va crea o înregistrare nouă în loc să o actualizeze pe cea existentă.
</Warning>
## Step 3: Import the Updated File
## Pasul 3: Importați fișierul actualizat
1. Navigate to the object
2. Click **⋮** → **Import records**
3. Upload your edited CSV file
4. **Ensure the unique identifier is mapped** — verify `email`, `domain`, or `id` is mapped correctly
5. Review the field mappings
6. Check for errors
7. Click **Confirm**
1. Navigați la obiect
2. Faceți clic pe **⋮** → **Import records**
3. Încărcați fișierul CSV editat
4. **Asigurați-vă că identificatorul unic este mapat** — verificați că `email`, `domain` sau `id` este mapat corect
5. Revizuiți mapările câmpurilor
6. Verificați erorile
7. Faceți clic pe **Confirm**
Twenty matches records by the unique identifier and updates them with new values.
Twenty potrivește înregistrările după identificatorul unic și le actualizează cu valorile noi.
## Choosing the Right Unique Identifier
## Alegerea identificatorului unic potrivit
| Obiect | Recommended | Alternative | Notițe |
| ------------------------- | ---------------- | ----------- | ---------------------------- |
| **People** | `email` | `id` | Email is human-readable |
| **Companii** | `domeniu` | `id` | Domain is human-readable |
| **Obiecte personalizate** | Any unique field | `id` | Use your custom unique field |
| Obiect | Recomandat | Alternativă | Notițe |
| ------------------------- | --------------- | ----------- | --------------------------------- |
| **Persoane** | `email` | `id` | Emailul este ușor de citit |
| **Companii** | `domeniu` | `id` | Domeniul este ușor de citit |
| **Obiecte personalizate** | Orice câmp unic | `id` | Folosiți câmpul unic personalizat |
<Note>**Use only ONE unique identifier.** Don't map both `email` AND `id`. This can cause confusion and errors.</Note>
<Note>**Folosiți un singur identificator unic.** Nu mapați atât `email`, cât și `id`. Acest lucru poate provoca confuzii și erori.</Note>
### Using Custom Unique Fields
### Utilizarea câmpurilor unice personalizate
If you have a custom field marked as unique (like an external ID from another system):
Dacă aveți un câmp personalizat marcat ca unic (cum ar fi un ID extern dintr-un alt sistem):
1. Include that field in your export and import
2. Map it during import
3. Twenty will match on that field
1. Includeți acel câmp în export și import
2. Mapați-l în timpul importului
3. Twenty va face potrivirea pe baza acelui câmp
## Step 4: Verify the Updates
## Pasul 4: Verificați actualizările
After importing:
După import:
1. Open a few updated records
2. Verify the changes were applied
3. Check that no duplicate records were created
1. Deschideți câteva înregistrări actualizate
2. Verificați că modificările au fost aplicate
3. Verificați că nu au fost create înregistrări duplicate
## What About Fields Not in Your File?
## Ce se întâmplă cu câmpurile care nu sunt în fișierul dvs.?
**Fields not included in your import file remain unchanged.**
**Câmpurile care nu sunt incluse în fișierul de import rămân neschimbate.**
| Your file includes... | Rezultat |
| ---------------------------- | ------------------------------------------------------ |
| `email`, `jobTitle` | Only `jobTitle` is updated; other fields stay the same |
| `email`, `jobTitle`, `phone` | `jobTitle` and `phone` are updated |
| Fișierul dvs. include... | Rezultat |
| ---------------------------- | --------------------------------------------------------------- |
| `email`, `jobTitle` | Doar `jobTitle` este actualizat; celelalte câmpuri rămân la fel |
| `email`, `jobTitle`, `phone` | `jobTitle` și `phone` sunt actualizate |
This means you only need to include the fields you want to change (plus the unique identifier).
Asta înseamnă că trebuie să includeți doar câmpurile pe care doriți să le modificați (plus identificatorul unic).
## Combining Updates and New Records
## Combinarea actualizărilor și a înregistrărilor noi
You can update existing records AND create new ones in the same import:
Puteți actualiza înregistrările existente ȘI crea unele noi în același import:
```csv
email,firstName,lastName,jobTitle
john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
john@acme.com,John,Smith,Senior Manager ← Actualizează existentul (emailul se potrivește)
newperson@acme.com,New,Person,Analyst ← Creează unul nou (emailul nu se potrivește)
```
## Common Mistakes to Avoid
## Greșeli comune de evitat
| Mistake | Problem | Rezultat | Solution |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| **Changing unique identifier** | Changed `john@acme.com` to `john.smith@acme.com` | Creates new record instead of updating | Keep unique identifiers unchanged |
| **Multiple unique fields** | Mapping both `email` AND `id` | Potential matching conflicts | Map only ONE unique identifier |
| **No unique identifier** | File only has `firstName`, `lastName`, `jobTitle` | All rows create new records | Always include `email`, `domain`, or `id` |
| **Case mismatch** | File has `John@acme.com` but Twenty has `john@acme.com` | Creates new record | Export from Twenty to get exact values |
| Greșeală | Problemă | Rezultat | Soluție |
| -------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------- | ---------------------------------------------------- |
| **Schimbarea identificatorului unic** | S-a schimbat `john@acme.com` în `john.smith@acme.com` | Creează o înregistrare nouă în loc să actualizeze | Păstrați identificatorii unici neschimbați |
| **Câmpuri unice multiple** | Maparea atât a `email`, cât și a `id` | Conflicte potențiale de potrivire | Mapați un singur identificator unic |
| **Fără identificator unic** | Fișierul conține doar `firstName`, `lastName`, `jobTitle` | Toate rândurile creează înregistrări noi | Includeți întotdeauna `email`, `domain` sau `id` |
| **Nepotrivire de majuscule/minuscule** | Fișierul are `John@acme.com`, dar Twenty are `john@acme.com` | Creează o înregistrare nouă | Exportați din Twenty pentru a obține valorile exacte |
## FAQ
## Întrebări frecvente
<AccordionGroup>
<Accordion title="What if some records don't exist yet?">
Records with unique identifiers that don't match existing records will be created as new records. This lets you update and create in the same import.
<Accordion title="Ce se întâmplă dacă unele înregistrări nu există încă?">
Înregistrările cu identificatori unici care nu se potrivesc cu înregistrările existente vor fi create ca înregistrări noi. Acest lucru vă permite să actualizați și să creați în cadrul aceluiași import.
</Accordion>
<Accordion title="Can I clear/empty a field value?">
Yes, leave the cell empty in your CSV. The import will clear that field's value on the existing record.
<Accordion title="Pot goli o valoare de câmp?">
Da, lăsați celula goală în CSV. Importul va goli valoarea acelui câmp în înregistrarea existentă.
</Accordion>
<Accordion title="What happens to fields I don't include in the import?">
Fields not in your import file remain unchanged on existing records. Only fields you include are updated.
<Accordion title="Ce se întâmplă cu câmpurile pe care nu le includ în import?">
Câmpurile care nu se află în fișierul de import rămân neschimbate în înregistrările existente. Sunt actualizate doar câmpurile pe care le includeți.
</Accordion>
<Accordion title="Can I update relation fields (like Company)?">
Da! Include the relation's unique identifier (e.g., `companyDomain`) and map it to the relation field. The relation will be updated.
<Accordion title="Pot actualiza câmpurile de relație (cum ar fi Compania)?">
Da! Includeți identificatorul unic al relației (de ex., `companyDomain`) și mapați-l la câmpul de relație. Relația va fi actualizată.
</Accordion>
<Accordion title="How do I know which records will be updated vs. created?">
During the import review step, Twenty shows you how many records will be updated vs. created based on unique identifier matches.
<Accordion title="Cum știu care înregistrări vor fi actualizate și care vor fi create?">
În etapa de revizuire a importului, Twenty vă arată câte înregistrări vor fi actualizate și câte vor fi create, pe baza potrivirilor după identificatorul unic.
</Accordion>
<Accordion title="Can I undo a bulk update?">
There's no automatic undo. We recommend exporting your data as a backup before making bulk updates.
<Accordion title="Pot anula o actualizare în masă?">
Nu există o anulare automată. Recomandăm să exportați datele ca o copie de siguranță înainte de a efectua actualizări în masă.
</Accordion>
</AccordionGroup>
## Cele mai bune practici
1. **Export first** — always start from an export to ensure correct format
2. **Backup before updating** — export your data before making bulk changes
3. **Test with a few records** — try updating 5-10 records first before doing a large batch
4. **Use human-readable identifiers** — `email` and `domain` are easier to verify than `id`
5. **Only include necessary columns** — fewer columns means less chance for errors
1. **Exportați mai întâi** — începeți întotdeauna de la un export pentru a vă asigura de formatul corect
2. **Faceți o copie de siguranță înainte de actualizare** — exportați-vă datele înainte de a face modificări în masă
3. **Testați cu câteva înregistrări** — încercați să actualizați mai întâi 510 înregistrări înainte de a face un lot mare
4. **Folosiți identificatori ușor de citit** — `email` și `domain` sunt mai ușor de verificat decât `id`
5. **Includeți doar coloanele necesare** — mai puține coloane înseamnă mai puține șanse de erori
## Depanare
Having issues? Check:
Aveți probleme? Verificați:
* [How to Fix Import Errors](/l/ro/user-guide/data-migration/how-tos/fix-import-errors)
* [Uniqueness Constraints](/l/ro/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Field Mapping Reference](/l/ro/user-guide/data-migration/capabilities/field-mapping)
* [Cum să remediați erorile de import](/l/ro/user-guide/data-migration/how-tos/fix-import-errors)
* [Constrângeri de unicitate](/l/ro/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Referință pentru maparea câmpurilor](/l/ro/user-guide/data-migration/capabilities/field-mapping)
@@ -1,149 +1,149 @@
---
title: Send Emails from Workflows
description: Send personalized emails automatically using workflow actions.
title: Trimiterea e-mailurilor prin fluxuri de lucru
description: Trimiteți automat e-mailuri personalizate folosind acțiunile fluxurilor de lucru.
image: /images/user-guide/workflows/workflow.png
---
Automatically send emails when specific events occur in your CRM—welcome new contacts, follow up on opportunities, or notify team members.
Trimiteți automat e-mailuri atunci când au loc evenimente specifice în CRM—întâmpinați noile contacte, urmăriți oportunitățile sau notificați membrii echipei.
## Cerințe
Before you can send emails from workflows:
Înainte de a putea trimite e-mailuri din fluxuri de lucru:
1. Connect an email account under **Settings → Accounts**
2. Ensure the account has sending permissions enabled
1. Conectați un cont de e-mail în **Settings → Accounts**
2. Asigurați-vă că contul are activate permisiunile de trimitere
## Basic Email Workflow
## Flux de lucru de bază pentru e-mail
### Example: Welcome Email for New Contacts
### Exemplu: E-mail de bun venit pentru contacte noi
**Goal**: Send a welcome email when a new person is added to the CRM.
**Obiectiv**: Trimiteți un e-mail de bun venit atunci când o persoană nouă este adăugată în CRM.
**Configurare**:
1. **Create workflow**: Go to **Settings → Workflows** and click **+ New Workflow**
1. **Creați fluxul de lucru**: Accesați **Settings → Workflows** și faceți clic pe **+ New Workflow**
2. **Add trigger**: Select **Record is Created** → **People**
2. **Adăugați declanșator**: Selectați **Record is Created** → **People**
3. **Add Send Email action**:
* Click **+** to add an action
* Select **Send Email**
* Configure the email:
3. **Adăugați acțiunea Send Email**:
* Faceți clic pe **+** pentru a adăuga o acțiune
* Selectați **Send Email**
* Configurați e-mailul:
| Câmp | Valoare |
| ----------- | -------------------------------------- |
| **To** | `{{trigger.object.email}}` |
| **Subject** | `Bun venit la {{Your Company Name}}` |
| **Body** | `Hi {{trigger.object.firstName}}, ...` |
| **Către** | `{{trigger.object.email}}` |
| **Subiect** | `Bun venit la {{Your Company Name}}` |
| **Corp** | `Hi {{trigger.object.firstName}}, ...` |
4. **Test and activate**: Test with a sample record, then activate
4. **Testați și activați**: Testați cu o înregistrare de probă, apoi activați
## Using Variables in Emails
## Utilizarea variabilelor în e-mailuri
Reference data from previous steps using `{{variable}}` syntax:
Faceți referire la date din pașii anteriori folosind sintaxa `{{variable}}`:
```text
Hi {{trigger.object.firstName}},
Bună, {{trigger.object.firstName}},
Thank you for connecting with us!
Vă mulțumim că ați luat legătura cu noi!
Your company, {{trigger.object.company.name}}, is now in our system.
Compania dvs., {{trigger.object.company.name}}, a fost adăugată în sistemul nostru.
Best regards,
The Team
Cu stimă,
Echipa
```
### Available Variables from Triggers
### Variabile disponibile din declanșatoare
| Tipul Trigger-ului | Common Variables |
| -------------------------- | -------------------------------------- |
| **Record Created/Updated** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
| Tipul Trigger-ului | Variabile comune |
| ----------------------------------- | -------------------------------------- |
| **Înregistrare creată/actualizată** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
## Advanced: Conditional Emails
## Avansat: e-mailuri condiționale
### Example: Different Emails Based on Lead Source
### Exemplu: E-mailuri diferite în funcție de sursa lead-ului
**Goal**: Send different welcome emails based on where the lead came from.
**Obiectiv**: Trimiteți e-mailuri de bun venit diferite în funcție de sursa lead-ului.
**Configurare**:
1. **Trigger**: Record is Created (People)
1. **Declanșator**: Record is Created (People)
2. **Add Filter action**:
* Condition: `{{trigger.object.source}}` equals `"Website"`
* If true → continue to website welcome email
2. **Adăugați acțiunea de filtrare**:
* Condiție: `{{trigger.object.source}}` este egal cu `"Website"`
* Dacă este adevărat → continuați către e-mailul de bun venit pentru website
3. **Branch for other sources**:
* Create parallel branches for different sources
* Each branch has its own Send Email action
3. **Ramificație pentru alte surse**:
* Creați ramificații paralele pentru surse diferite
* Fiecare ramificație are propria acțiune Send Email
## Sending Emails to Multiple Recipients
## Trimiterea e-mailurilor către mai mulți destinatari
### Example: Notify Team When Deal Closes
### Exemplu: Notificați echipa când se finalizează tranzacția
**Goal**: Email the sales rep and their manager when an opportunity is won.
**Obiectiv**: Trimiteți un e-mail reprezentantului de vânzări și managerului său atunci când o oportunitate este câștigată.
**Configurare**:
1. **Trigger**: Record is Updated (Opportunities, Stage = "Closed Won")
1. **Declanșator**: Record is Updated (Opportunities, Stage = "Closed Won")
2. **Search Records**: Find the opportunity owner's manager
2. **Search Records**: Găsiți managerul proprietarului oportunității
3. **Send Email #1**: To opportunity owner
* To: `{{trigger.object.owner.email}}`
* Subject: `Congratulations on closing {{trigger.object.name}}!`
3. **Send Email #1**: Către proprietarul oportunității
* Către: `{{trigger.object.owner.email}}`
* Subiect: `Felicitări pentru închiderea {{trigger.object.name}}!`
4. **Send Email #2**: To manager
* To: `{{searchRecords.manager.email}}`
* Subject: `Deal Won: {{trigger.object.name}}`
4. **Send Email #2**: Către manager
* Către: `{{searchRecords.manager.email}}`
* Subiect: `Tranzacție câștigată: {{trigger.object.name}}`
## Scheduled Follow-up Emails
## E-mailuri de urmărire programate
### Example: Follow Up 3 Days After Meeting
### Exemplu: Urmărire la 3 zile după întâlnire
**Goal**: Send a follow-up email 3 days after a meeting is logged.
**Obiectiv**: Trimiteți un e-mail de urmărire la 3 zile după ce o întâlnire este înregistrată.
**Configurare**:
1. **Trigger**: Record is Created (Activities, Type = "Meeting")
1. **Declanșator**: Record is Created (Activities, Type = "Meeting")
2. **Delay action**: Wait 3 days
2. **Acțiune de întârziere**: Așteptați 3 zile
3. **Send Email**:
* To: Meeting attendee
* Subject: Following up on our conversation
* Body: Reference meeting details from trigger
3. **Trimite email**:
* Către: Participantul la întâlnire
* Subiect: Revenire la discuția noastră
* Conținut: Faceți referire la detaliile întâlnirii din declanșator
## Cele mai bune practici
### Email Content
### Conținutul emailului
* Keep subject lines concise and relevant
* Personalize with recipient's name
* Include a clear call to action
* Test emails before activating
* Păstrați liniile de subiect concise și relevante
* Personalizați cu numele destinatarului
* Includeți un apel clar la acțiune
* Testați emailurile înainte de activare
### Deliverability
### Livrabilitate
* Don't send too many emails too quickly
* Use professional email signatures
* Avoid spam trigger words
* Ensure unsubscribe options for marketing emails
* Nu trimiteți prea multe emailuri prea repede
* Folosiți semnături de email profesionale
* Evitați cuvintele care declanșează filtrele de spam
* Asigurați opțiuni de dezabonare pentru emailurile de marketing
### Depanare
* Verify email account is connected and active
* Check recipient email address is valid
* Review workflow runs for error messages
* Test with your own email address first
* Verificați că contul de email este conectat și activ
* Verificați că adresa de email a destinatarului este validă
* Revizuiți rulările fluxului de lucru pentru mesaje de eroare
* Testați mai întâi cu propria dvs. adresă de email
<Note>
**Coming soon**: Email attachments will be available in Q1 2026.
**În curând**: Atașamentele de email vor fi disponibile în Q1 2026.
</Note>
## Related
## Conexe
* [Workflow Triggers](/l/ro/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ro/user-guide/workflows/capabilities/workflow-actions)
* [Declanșatoare ale fluxurilor de lucru](/l/ro/user-guide/workflows/capabilities/workflow-triggers)
* [Acțiuni ale fluxurilor de lucru](/l/ro/user-guide/workflows/capabilities/workflow-actions)
@@ -1,21 +1,21 @@
---
title: Acțiuni Workflow
description: Learn about the actions available in Twenty workflows.
description: Aflați despre acțiunile disponibile în fluxurile de lucru Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## About Actions
## Despre acțiuni
Acțiunile definesc ce se întâmplă după declanșarea unui trigger. You can chain multiple actions together to build complex automations.
Acțiunile definesc ce se întâmplă după declanșarea unui trigger. Puteți înlănțui mai multe acțiuni pentru a construi automatizări complexe.
<Tip>
* Use the variable picker (click the `(x+)` icon) to browse available data from previous steps
* Hover over any input field to see which step a variable comes from — helpful when the same field (e.g., ID) exists in multiple previous steps
* Give each action a descriptive name for easier maintenance
* Folosiți selectorul de variabile (faceți clic pe pictograma `(x+)`) pentru a răsfoi datele disponibile din pașii anteriori
* Plasați cursorul peste orice câmp de intrare pentru a vedea din care pas provine o variabilă — util atunci când același câmp (de ex., ID) există în mai mulți pași anteriori
* Dați fiecărei acțiuni un nume descriptiv pentru o mentenanță mai ușoară
</Tip>
## Record Actions
## Acțiuni asupra înregistrărilor
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
@@ -27,7 +27,7 @@ Adaugă o nouă înregistrare la un obiect selectat.
* Selectați obiectul țintă
* Completați câmpurile obligatorii și opționale
* Use data from previous steps or input values manually to populate fields
* Folosiți date din pașii anteriori sau introduceți manual valori pentru a completa câmpurile
**Output**: Datele noii înregistrări create sunt disponibile pentru utilizare în pașii următori.
@@ -41,8 +41,8 @@ Modifică o înregistrare existentă într-un obiect selectat.
* Selectați obiectul țintă
* Alegeți înregistrarea specifică de actualizat.
* You can either choose a fixed record, using the drop down menu displaying all available records.
* Or you can have the record dynamically selected, by designating a record found in a previous step, using the `(x+)`. You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add a `Search Record` step before this `Update Record` step.
* Puteți alege fie o înregistrare specifică, folosind meniul derulant care afișează toate înregistrările disponibile.
* Sau puteți selecta dinamic înregistrarea, desemnând o înregistrare găsită într-un pas anterior, folosind `(x+)`. Nu puteți căuta înregistrarea pe baza unor criterii diferite în această etapă. Dacă încă nu ați identificat înregistrarea, adăugați un pas `Search Record` înaintea acestui pas `Update Record`.
* Selectați câmpurile de modificat și introduceți valori noi
**Output**: Datele înregistrării actualizate sunt disponibile pentru utilizare în pașii următori.
@@ -71,25 +71,25 @@ Găsește înregistrări într-un obiect selectat folosind condițiile de filtra
**Output**: Returnează înregistrările care se potrivesc care pot fi utilizate în pașii următori.
<Note>
**Limit**: Search Records returns a maximum of **200 records**. If you need to process more, add specific filters to reduce results or use scheduled workflows to process in batches.
**Limită**: Search Records returnează maximum **200 de înregistrări**. Dacă aveți nevoie să procesați mai multe, adăugați filtre specifice pentru a reduce rezultatele sau folosiți fluxuri de lucru programate pentru a procesa în loturi.
</Note>
**Best Practice**: Use [branches](/l/ro/user-guide/workflows/capabilities/workflow-branches) after Search Records to handle "found" vs "not found" scenarios.
**Cea mai bună practică**: Utilizați [ramuri](/l/ro/user-guide/workflows/capabilities/workflow-branches) după Search Records pentru a gestiona scenariile "găsit" vs "ne-găsit".
### Upsert Record
Creates a new record or updates an existing one based on matching criteria. This is useful when you're not sure if a record already exists.
Creează o înregistrare nouă sau actualizează una existentă pe baza criteriilor de potrivire. Este util când nu sunteți sigur dacă o înregistrare există deja.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Configurare**:
* Selectați obiectul țintă
* Note which fields can be used for matching: email for People, domain for Companies, ID for any object, or any field marked as Unique. You'll need to populate at least one of these below.
* Fill out the field values. Do not forget to populate at least one of the unique identifiers.
* Rețineți ce câmpuri pot fi folosite pentru potrivire: email pentru Persoane, domeniu pentru Companii, ID pentru orice obiect sau orice câmp marcat ca Unique. Va trebui să completați cel puțin unul dintre acestea mai jos.
* Completați valorile câmpurilor. Nu uitați să completați cel puțin unul dintre identificatorii unici.
<Note>
**Matching usually works even better when adding only one unique identifier.** For example, the screenshot below will match companies based on their domain. The ID is not necessarily needed.
**Potrivirea funcționează de obicei și mai bine când adăugați un singur identificator unic.** De exemplu, captura de ecran de mai jos va potrivi companiile pe baza domeniului lor. ID-ul nu este neapărat necesar.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
@@ -1,42 +1,42 @@
---
title: Connect Several Mailboxes per User
description: Connect multiple email accounts for a single user.
title: Подключение нескольких почтовых ящиков на пользователя
description: Подключайте несколько почтовых аккаунтов для одного пользователя.
---
## Обзор
Twenty supports **unlimited email accounts per user**. This is useful if you manage multiple inboxes, such as:
Twenty поддерживает **неограниченное количество почтовых аккаунтов на пользователя**. Это полезно, если вы управляете несколькими почтовыми ящиками, например:
* Personal work email + shared team inbox
* Multiple client-facing email addresses
* Different email accounts for different roles
* Личная рабочая почта + общий командный почтовый ящик
* Несколько адресов электронной почты для работы с клиентами
* Разные почтовые аккаунты для разных ролей
## How to Add Multiple Mailboxes
## Как добавить несколько почтовых ящиков
1. Перейдите в **Настройки → Аккаунты**
2. Нажмите **Добавить аккаунт**
3. Connect your additional Google or Microsoft account
4. Configure sync settings for this mailbox
5. Repeat for each mailbox you want to connect
3. Подключите дополнительную учетную запись Google или Microsoft
4. Настройте параметры синхронизации для этого почтового ящика
5. Повторите для каждого почтового ящика, который вы хотите подключить
## Managing Multiple Accounts
## Управление несколькими почтовыми аккаунтами
Each connected mailbox has its own settings:
У каждого подключенного почтового ящика есть свои настройки:
* **Email visibility**: Choose what teammates can see
* **Contact auto-creation**: Enable/disable per mailbox
* **Folder selection**: Choose which folders to sync (Lab feature)
* **Видимость электронной почты**: выберите, что смогут видеть участники команды
* **Автоматическое создание контактов**: включать/выключать для каждого почтового ящика
* **Выбор папок**: выберите, какие папки синхронизировать (экспериментальная функция)
## How Emails Appear
## Как отображаются электронные письма
Emails from all your connected mailboxes are synced to Twenty and appear on:
Письма из всех ваших подключенных почтовых ящиков синхронизируются с Twenty и отображаются в:
* **People records**: Based on the contact's email address
* **Company records**: Based on the email domain
* **Opportunities**: Based on the linked company
* **Записи людей**: на основе адреса электронной почты контакта
* **Записи компаний**: на основе домена электронной почты
* **Возможности**: на основе связанной компании
<Note>Each email shows which mailbox it was sent from/received to, so you can track which account was used for each communication.</Note>
<Note>В каждом письме указано, из какого почтового ящика оно отправлено/в какой получено, поэтому вы можете отслеживать, какой аккаунт использовался для каждого общения.</Note>
## Important Notes
## Важные замечания
<Warning>Only true mailboxes can be connected. Email aliases that forward to another mailbox cannot be connected separately—they'll sync through the main mailbox.</Warning>
<Warning>Подключать можно только полноценные почтовые ящики. Псевдонимы электронной почты, которые пересылают в другой почтовый ящик, нельзя подключать отдельно — они будут синхронизироваться через основной почтовый ящик.</Warning>
@@ -1,6 +1,6 @@
---
title: Панели управления
description: Learn the basics of reporting and dashboards in Twenty.
description: Изучите основы отчетности и панелей мониторинга в Twenty.
image: /images/user-guide/reporting/pie-chart.png
---
@@ -8,72 +8,72 @@ image: /images/user-guide/reporting/pie-chart.png
<img src="/images/user-guide/reporting/pie-chart.png" alt="Панели управления" />
</Frame>
## Understanding Dashboards
## Понимание панелей мониторинга
Dashboards in Twenty provide a visual way to track your key performance metrics and gain insights from your CRM data.
Панели мониторинга в Twenty обеспечивают визуальный способ отслеживать ключевые показатели эффективности и получать инсайты из данных вашей CRM-системы.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="Панели управления" />
## Key Concepts
## Ключевые понятия
### Панели управления
A dashboard is a collection of tabs that display your CRM data at a glance. You can create multiple dashboards for different purposes:
Панель мониторинга — это набор вкладок, которые позволяют быстро просматривать данные вашей CRM-системы. Вы можете создавать несколько панелей мониторинга для разных целей:
* Sales performance
* Team activity
* Pipeline health
* Custom metrics
* Эффективность продаж
* Активность команды
* Состояние воронки
* Пользовательские метрики
### Вкладки
Tabs allow you to organize your dashboard into sections. Each tab contains one or more widgets.
Вкладки позволяют разделить панель мониторинга на разделы. Каждая вкладка содержит один или несколько виджетов.
### Виджеты
Widgets are individual visualizations that display specific data. Types include:
Виджеты — это отдельные визуализации, которые отображают конкретные данные. К типам относятся:
* Bar charts
* Pie charts
* Line charts
* Number metrics
* Гистограммы
* Круговые диаграммы
* Линейные диаграммы
* Числовые метрики
* iFrames
<Note>
**Current limitations**:
**Текущие ограничения**:
* Exporting dashboards and sharing with external users (non-Twenty users) are not available at the moment.
* Gauge charts and tables are not yet available.
* Экспорт панелей мониторинга и предоставление доступа внешним пользователям (не являющимся пользователями Twenty) в настоящее время недоступны.
* Индикаторные диаграммы и таблицы пока недоступны.
</Note>
## Getting Started
## Начало работы
### Creating Your First Dashboard
### Создание первой панели мониторинга
1. Navigate to the **Dashboards** section
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Add tabs to organize your content
5. Add widgets to display your data
1. Перейдите в раздел **Панели мониторинга**
2. Нажмите **+ Новая панель мониторинга**
3. Назовите панель мониторинга
4. Добавьте вкладки, чтобы организовать содержимое
5. Добавьте виджеты для отображения данных
6. Сохранить
### Adding Widgets
### Добавление виджетов
1. Open a tab on your dashboard
2. Click **+ Add Widget**
3. Select the widget type
4. Choose the data source (object)
5. Configure the widget settings
6. Save and view your widget
1. Откройте вкладку на панели мониторинга
2. Нажмите **+ Добавить виджет**
3. Выберите тип виджета
4. Выберите источник данных (объект)
5. Настройте параметры виджета
6. Сохраните и просмотрите виджет
## Лучшие практики
* **Start simple**: Begin with a few key metrics and add more over time
* **Focus on actionable data**: Display metrics that drive decisions
* **Regular review**: Check your dashboards regularly to spot trends
* **Share with team**: Make dashboards visible to relevant team members
* **Начните с простого**: выберите несколько ключевых метрик и со временем добавляйте новые
* **Сосредоточьтесь на данных, по которым можно действовать**: отображайте метрики, влияющие на принятие решений
* **Регулярный обзор**: проверяйте панели мониторинга, чтобы выявлять тенденции
* **Делитесь с командой**: сделайте панели мониторинга видимыми для соответствующих участников команды
## Следующие шаги
* [Widgets and visualizations](/l/ru/user-guide/dashboards/capabilities/widgets)
* [Dashboards FAQ](/l/ru/user-guide/dashboards/how-tos/dashboards-faq)
* [Виджеты и визуализации](/l/ru/user-guide/dashboards/capabilities/widgets)
* [FAQ по панелям мониторинга](/l/ru/user-guide/dashboards/how-tos/dashboards-faq)
@@ -145,98 +145,98 @@ Twenty автоматически пытается сопоставить ваш
3. Twenty свяжет каждого человека с соответствующей Компанией
<Warning>
**Map only ONE unique identifier for relations.**
**Сопоставляйте только ОДИН уникальный идентификатор для связей.**
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
Не сопоставляйте одновременно `companyId` И `companyDomain`. Выберите один — предпочтительно домен, так как он понятен человеку.
</Warning>
## Step 5: Map Select Field Values
## Шаг 5: Сопоставление значений полей Select
If you have Select or Multi-Select fields (like Lead Source):
Если у вас есть поля Select или Multi-Select (например, Lead Source):
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. Twenty показывает ваши значения рядом с существующими вариантами
2. Сопоставьте каждое значение в вашем файле с вариантом Twenty
3. Или при необходимости создайте новые варианты
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
Для вариантов Select используются **имена API**, а не отображаемые метки. Перейдите в **Настройки → Модель данных** → включите **Расширенный режим**, чтобы увидеть имена API.
</Note>
## Step 6: Review and Fix Errors
## Шаг 6: Проверьте и исправьте ошибки
Before completing the import, Twenty validates your data:
Перед завершением импорта Twenty проверяет ваши данные:
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. Нажмите **Следующие шаги**
2. Строки с ошибками выделены **желтым**
3. **Исправляйте ошибки напрямую** — нажмите на ячейку и отредактируйте значение
4. **Удалите проблемные строки** — нажмите X, чтобы пропустить эту строку
### Common Contact Import Errors
### Распространенные ошибки импорта контактов
| Ошибка | Cause | Solution |
| -------------------------- | -------------------------------------- | ------------------------------------------- |
| **Duplicate email** | Email already exists in Twenty or file | Remove duplicate or update existing record |
| **Invalid email format** | Email format incorrect | Fix to `name@domain.com` |
| **Relation not found** | Company doesn't exist | Import Companies first or fix the reference |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Ошибка | Причина | Решение |
| ------------------------------------------------ | ----------------------------------------------------------- | -------------------------------------------------- |
| **Дублирующийся адрес электронной почты** | Адрес электронной почты уже существует в Twenty или в файле | Удалите дубликат или обновите существующую запись |
| **Недопустимый формат адреса электронной почты** | Неверный формат адреса электронной почты | Исправьте на `name@domain.com` |
| **Связь не найдена** | Компания не существует | Сначала импортируйте Компании или исправьте ссылку |
| **Отсутствует обязательное поле** | Обязательное поле пусто | Заполните значение или удалите строку |
## Step 7: Complete the Import
## Шаг 7: Завершите импорт
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records and their Company links
1. Просмотрите сводку импорта
2. Нажмите **Подтвердить**, чтобы импортировать
3. Дождитесь завершения импорта
4. Проверьте, открыв несколько записей и их ссылки на Компанию
## After Importing Contacts
## После импорта контактов
Your contacts are now in Twenty! Next steps:
Ваши контакты теперь в Twenty! Следующие шаги:
1. **Verify Company links** — open a few People records to confirm they're linked to the right Company
2. **Import Opportunities** — if needed, link them to People and Companies
3. **Set up email sync** — connect your mailbox to see email history on contact records
1. **Проверьте связи с Компанией** — откройте несколько записей Людей, чтобы убедиться, что они связаны с нужной Компанией
2. **Импортируйте Сделки** — при необходимости свяжите их с Людьми и Компаниями
3. **Настройте синхронизацию электронной почты** — подключите свой почтовый ящик, чтобы видеть историю писем в записях контактов
## Updating Existing Contacts
## Обновление существующих контактов
To update contacts instead of creating new ones:
Чтобы обновлять контакты вместо создания новых:
1. Include the `email` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing contacts are updated; new ones are created
1. Добавьте в файл столбец `email` или `id`
2. Twenty сопоставляет записи по этому уникальному идентификатору
3. Существующие контакты обновляются; новые создаются
See [How to Update Existing Records](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
См. [Как обновить существующие записи](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import) для подробностей.
## FAQ
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="Why can't two People have the same email?">
Email is a unique identifier in Twenty. This prevents duplicate contacts and ensures email sync correctly links emails to the right person.
<Accordion title="Почему у двух Людей не может быть один и тот же адрес электронной почты?">
Адрес электронной почты — уникальный идентификатор в Twenty. Это предотвращает дубли контактов и обеспечивает корректную привязку писем к нужному контакту при синхронизации электронной почты.
</Accordion>
<Accordion title="What if I have people without an email?">
You can leave the email empty. However, we recommend adding emails when possible for better data quality and email sync functionality.
<Accordion title="Что делать, если у некоторых Людей нет адреса электронной почты?">
Вы можете оставить поле email пустым. Однако мы рекомендуем по возможности добавлять адреса электронной почты для лучшего качества данных и корректной работы синхронизации электронной почты.
</Accordion>
<Accordion title="How do I link People to Companies during import?">
Add a column with the Company's domain (e.g., `https://acme.com`) or ID. During mapping, connect this column to the Company relation field.
<Accordion title="Как связать Людей с Компаниями при импорте?">
Добавьте столбец с доменом Компании (например, `https://acme.com`) или ID. При сопоставлении свяжите этот столбец с полем связи с Компанией.
</Accordion>
<Accordion title="What if the Company doesn't exist yet?">
Import Companies first, then import People. The Company must exist before you can reference it.
<Accordion title="Что, если Компания еще не существует?">
Сначала импортируйте Компании, затем импортируйте Людей. Компания должна существовать до того, как вы сможете на нее сослаться.
</Accordion>
<Accordion title="Can I import the ID from my previous CRM?">
Да! Create a custom field marked as "unique" in your data model to store the external ID. Note: the field name `id` is reserved for Twenty's internal ID.
<Accordion title="Можно ли импортировать ID из предыдущей CRM?">
Да! Создайте настраиваемое поле с пометкой "уникальное" в вашей модели данных для хранения внешнего ID. Примечание: имя поля `id` зарезервировано для внутреннего ID Twenty.
</Accordion>
<Accordion title="How do I fix 'relation not found' errors?">
The Company you're referencing doesn't exist. Either import the Company first, or check that the domain/ID exactly matches an existing Company.
<Accordion title="Как исправить ошибки 'relation not found'?">
Компания, на которую вы ссылаетесь, не существует. Либо сначала импортируйте Компанию, либо проверьте, что домен/ID в точности совпадает с существующей Компанией.
</Accordion>
</AccordionGroup>
## Устранение неполадок
Having issues? Check:
Возникли проблемы? Проверьте:
* [How to Fix Import Errors](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
* [How to Import Relations](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Field Mapping Reference](/l/ru/user-guide/data-migration/capabilities/field-mapping)
* [Как исправить ошибки импорта](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
* [Как импортировать связи](/l/ru/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Справочник по сопоставлению полей](/l/ru/user-guide/data-migration/capabilities/field-mapping)
@@ -1,67 +1,67 @@
---
title: Update Existing Records via Import
description: Complete step-by-step guide to bulk updating records using CSV import.
title: Обновление существующих записей через импорт
description: Полное пошаговое руководство по массовому обновлению записей с помощью импорта CSV.
---
## Обзор
Need to update many records at once? Instead of editing them one by one, use the CSV import to bulk update existing records.
Нужно обновить много записей сразу? Вместо того чтобы редактировать их по одной, используйте импорт CSV для массового обновления существующих записей.
**Сценарии использования:**
* Update job titles for multiple people
* Change company information in bulk
* Add data to new custom fields
* Correct data errors across many records
* Обновить должности для нескольких людей
* Массово изменить информацию о компаниях
* Добавить данные в новые настраиваемые поля
* Исправить ошибки данных во множестве записей
## Как это работает
When you import a file containing a **unique identifier** that matches an existing record, Twenty updates that record instead of creating a duplicate.
Когда вы импортируете файл, содержащий **уникальный идентификатор**, который совпадает с существующей записью, Twenty обновляет эту запись вместо создания дубликата.
| If unique identifier... | Twenty will... |
| -------------------------- | ------------------------------------------------ |
| Matches an existing record | **Update** the existing record |
| Doesn't match any record | **Create** a new record |
| Is missing from your file | **Create** a new record (with auto-generated ID) |
| Если уникальный идентификатор... | Twenty выполнит... |
| -------------------------------- | ------------------------------------------------------------- |
| Совпадает с существующей записью | **Обновит** существующую запись |
| Не совпадает ни с одной записью | **Создаст** новую запись |
| Отсутствует в вашем файле | **Создаст** новую запись (с автоматически сгенерированным ID) |
<Warning>
**Multi-Select fields are overwritten, not merged.**
**Поля с множественным выбором перезаписываются, а не объединяются.**
If a record has `Option A` and `Option B` selected, and you import `["Option C"]`, the record will only have `Option C` after import. The import replaces all previous selections—it does not add to them.
Если в записи выбраны `Option A` и `Option B`, и вы импортируете `["Option C"]`, после импорта в записи останется только `Option C`. Импорт заменяет все предыдущие выбранные значения — он не добавляет к ним новые.
To keep existing values, include them all in your import: `["Option A","Option B","Option C"]`
Чтобы сохранить существующие значения, включите их все в импорт: `["Option A","Option B","Option C"]`
</Warning>
## Step 1: Export Your Current Data
## Шаг 1: Экспортируйте текущие данные
First, export the records you want to update:
Сначала экспортируйте записи, которые хотите обновить:
1. Navigate to the object (People, Companies, etc.)
2. **Add the columns you need** — click **Options → Fields** to show the fields you want to update
3. **Filter if needed** — narrow down to only the records you want to update
4. Click **⋮** → **Export view**
5. Save the CSV file
1. Перейдите к объекту (Люди, Компании и т. д.)
2. **Добавьте нужные столбцы** — нажмите **Options → Fields**, чтобы отобразить поля, которые хотите обновить
3. **При необходимости примените фильтр** — сузьте выборку до тех записей, которые хотите обновить
4. Нажмите **⋮** → **Экспорт представления**
5. Сохраните файл CSV
<Note>**Why export first?** The exported file has the correct format, includes unique identifiers, and maps automatically during import.</Note>
<Note>**Зачем сначала экспорт?** Экспортированный файл имеет корректный формат, включает уникальные идентификаторы и автоматически сопоставляется при импорте.</Note>
### What Gets Exported
### Что экспортируется
* All visible columns in your current view
* The record's unique identifiers (`id`, `email`, `domain`)
* Current field values you can modify
* Все видимые столбцы в текущем представлении
* Уникальные идентификаторы записи (`id`, `email`, `domain`)
* Текущие значения полей, которые можно изменить
## Step 2: Edit the CSV File
## Шаг 2: Отредактируйте файл CSV
Open the exported file in your spreadsheet application (Excel, Google Sheets, etc.):
Откройте экспортированный файл в табличном редакторе (Excel, Google Sheets и т. д.):
1. **Keep the unique identifier column** — don't delete `id`, `email`, or `domain`
2. **Update the values** in the columns you want to change
3. **Remove columns you don't need to update** (optional, but cleaner)
4. **Don't change unique identifier values** — or Twenty will create new records
1. **Сохраните столбец с уникальным идентификатором** — не удаляйте `id`, `email` или `domain`
2. **Обновите значения** в столбцах, которые хотите изменить
3. **Удалите столбцы, которые не нужно обновлять** (необязательно, но так будет аккуратнее)
4. **Не изменяйте значения уникальных идентификаторов** — иначе Twenty создаст новые записи
### Example: Updating Job Titles
### Пример: обновление должностей
**Exported file:**
**Экспортированный файл:**
```csv
id,email,firstName,lastName,jobTitle
@@ -70,7 +70,7 @@ id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**After your edits:**
**После ваших изменений:**
```csv
id,email,firstName,lastName,jobTitle
@@ -80,63 +80,63 @@ id,email,firstName,lastName,jobTitle
```
<Warning>
**Don't change the unique identifier values.**
**Не изменяйте значения уникальных идентификаторов.**
If you change `john@acme.com` to `john.smith@acme.com`, Twenty will create a new record instead of updating the existing one.
Если вы измените `john@acme.com` на `john.smith@acme.com`, Twenty создаст новую запись вместо обновления существующей.
</Warning>
## Step 3: Import the Updated File
## Шаг 3: Импортируйте обновлённый файл
1. Navigate to the object
2. Click **⋮** → **Import records**
3. Upload your edited CSV file
4. **Ensure the unique identifier is mapped** — verify `email`, `domain`, or `id` is mapped correctly
5. Review the field mappings
6. Check for errors
7. Click **Confirm**
1. Перейдите к объекту
2. Нажмите **⋮** → **Импорт записей**
3. Загрузите отредактированный файл CSV
4. **Убедитесь, что уникальный идентификатор сопоставлен** — проверьте, что `email`, `domain` или `id` сопоставлены корректно
5. Проверьте сопоставление полей
6. Проверьте наличие ошибок
7. Нажмите **Подтвердить**
Twenty matches records by the unique identifier and updates them with new values.
Twenty сопоставляет записи по уникальному идентификатору и обновляет их новыми значениями.
## Choosing the Right Unique Identifier
## Выбор подходящего уникального идентификатора
| Объект | Recommended | Alternative | Заметки |
| ---------------------------- | ------------------- | ----------- | ---------------------------- |
| **People** | `электронная почта` | `id` | Email is human-readable |
| **Компании** | `домен` | `id` | Domain is human-readable |
| **Пользовательские объекты** | Any unique field | `id` | Use your custom unique field |
| Объект | Рекомендуется | Альтернатива | Заметки |
| ---------------------------- | --------------------- | ------------ | ------------------------------------------------- |
| **Люди** | `электронная почта` | `id` | Email человекочитаем |
| **Компании** | `домен` | `id` | Домен человекочитаем |
| **Пользовательские объекты** | Любое уникальное поле | `id` | Используйте своё пользовательское уникальное поле |
<Note>**Use only ONE unique identifier.** Don't map both `email` AND `id`. This can cause confusion and errors.</Note>
<Note>**Используйте только ОДИН уникальный идентификатор.** Не сопоставляйте одновременно `email` И `id`. Это может привести к путанице и ошибкам.</Note>
### Using Custom Unique Fields
### Использование пользовательских уникальных полей
If you have a custom field marked as unique (like an external ID from another system):
Если у вас есть пользовательское поле, помеченное как уникальное (например, внешний ID из другой системы):
1. Include that field in your export and import
2. Map it during import
3. Twenty will match on that field
1. Включите это поле в экспорт и импорт
2. Сопоставьте его при импорте
3. Twenty будет сопоставлять по этому полю
## Step 4: Verify the Updates
## Шаг 4: Проверьте обновления
After importing:
После импорта:
1. Open a few updated records
2. Verify the changes were applied
3. Check that no duplicate records were created
1. Откройте несколько обновлённых записей
2. Убедитесь, что изменения применены
3. Проверьте, что не были созданы дубликаты записей
## What About Fields Not in Your File?
## Что с полями, которых нет в вашем файле?
**Fields not included in your import file remain unchanged.**
**Поля, не включённые в файл импорта, остаются без изменений.**
| Your file includes... | Результат |
| ---------------------------- | ------------------------------------------------------ |
| `email`, `jobTitle` | Only `jobTitle` is updated; other fields stay the same |
| `email`, `jobTitle`, `phone` | `jobTitle` and `phone` are updated |
| Ваш файл включает... | Результат |
| ---------------------------- | --------------------------------------------------------------- |
| `email`, `jobTitle` | Обновляется только `jobTitle`; остальные поля остаются прежними |
| `email`, `jobTitle`, `phone` | Обновляются `jobTitle` и `phone` |
This means you only need to include the fields you want to change (plus the unique identifier).
Это означает, что нужно включать только те поля, которые вы хотите изменить (плюс уникальный идентификатор).
## Combining Updates and New Records
## Совмещение обновлений и новых записей
You can update existing records AND create new ones in the same import:
Вы можете обновлять существующие записи И создавать новые в одном и том же импорте:
```csv
email,firstName,lastName,jobTitle
@@ -144,55 +144,55 @@ john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Common Mistakes to Avoid
## Распространённые ошибки, которых следует избегать
| Mistake | Problem | Результат | Solution |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| **Changing unique identifier** | Changed `john@acme.com` to `john.smith@acme.com` | Creates new record instead of updating | Keep unique identifiers unchanged |
| **Multiple unique fields** | Mapping both `email` AND `id` | Potential matching conflicts | Map only ONE unique identifier |
| **No unique identifier** | File only has `firstName`, `lastName`, `jobTitle` | All rows create new records | Always include `email`, `domain`, or `id` |
| **Case mismatch** | File has `John@acme.com` but Twenty has `john@acme.com` | Creates new record | Export from Twenty to get exact values |
| Ошибка | Проблема | Результат | Решение |
| ---------------------------------------- | ----------------------------------------------------- | -------------------------------------- | ------------------------------------------------------- |
| **Изменение уникального идентификатора** | Заменили `john@acme.com` на `john.smith@acme.com` | Создаёт новую запись вместо обновления | Не изменяйте уникальные идентификаторы |
| **Несколько уникальных полей** | Сопоставлены одновременно `email` И `id` | Возможные конфликты сопоставления | Сопоставляйте только ОДИН уникальный идентификатор |
| **Нет уникального идентификатора** | В файле только `firstName`, `lastName`, `jobTitle` | Все строки создают новые записи | Всегда включайте `email`, `domain` или `id` |
| **Несовпадение регистра** | В файле `John@acme.com`, а в Twenty `john@acme.com` | Создаёт новую запись | Экспортируйте из Twenty, чтобы получить точные значения |
## FAQ
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="What if some records don't exist yet?">
Records with unique identifiers that don't match existing records will be created as new records. This lets you update and create in the same import.
<Accordion title="Что, если некоторых записей ещё нет?">
Записи с уникальными идентификаторами, которые не совпадают с существующими, будут созданы как новые. Это позволяет обновлять и создавать в одном импорте.
</Accordion>
<Accordion title="Can I clear/empty a field value?">
Yes, leave the cell empty in your CSV. The import will clear that field's value on the existing record.
<Accordion title="Можно ли очистить значение поля?">
Да, оставьте ячейку пустой в вашем CSV. Импорт очистит значение этого поля в существующей записи.
</Accordion>
<Accordion title="What happens to fields I don't include in the import?">
Fields not in your import file remain unchanged on existing records. Only fields you include are updated.
<Accordion title="Что происходит с полями, которые я не включаю в импорт?">
Поля, отсутствующие в файле импорта, остаются без изменений в существующих записях. Обновляются только включённые вами поля.
</Accordion>
<Accordion title="Can I update relation fields (like Company)?">
Да! Include the relation's unique identifier (e.g., `companyDomain`) and map it to the relation field. The relation will be updated.
<Accordion title="Можно ли обновлять поля связей (например, Company)?">
Да! Включите уникальный идентификатор связи (например, `companyDomain`) и сопоставьте его с полем связи. Связь будет обновлена.
</Accordion>
<Accordion title="How do I know which records will be updated vs. created?">
During the import review step, Twenty shows you how many records will be updated vs. created based on unique identifier matches.
<Accordion title="Как узнать, какие записи будут обновлены, а какие созданы?">
На этапе проверки импорта Twenty показывает, сколько записей будет обновлено и сколько создано, исходя из совпадений уникальных идентификаторов.
</Accordion>
<Accordion title="Can I undo a bulk update?">
There's no automatic undo. We recommend exporting your data as a backup before making bulk updates.
<Accordion title="Можно ли отменить массовое обновление?">
Автоматической отмены нет. Рекомендуем экспортировать ваши данные в качестве резервной копии перед массовыми обновлениями.
</Accordion>
</AccordionGroup>
## Лучшие практики
1. **Export first** — always start from an export to ensure correct format
2. **Backup before updating** — export your data before making bulk changes
3. **Test with a few records** — try updating 5-10 records first before doing a large batch
4. **Use human-readable identifiers** — `email` and `domain` are easier to verify than `id`
5. **Only include necessary columns** — fewer columns means less chance for errors
1. **Сначала экспорт** — всегда начинайте с экспорта, чтобы обеспечить корректный формат
2. **Создайте резервную копию перед обновлением** — экспортируйте данные перед массовыми изменениями
3. **Протестируйте на нескольких записях** — сначала попробуйте обновить 510 записей, прежде чем делать большой пакет
4. **Используйте человекочитаемые идентификаторы** — `email` и `domain` легче проверить, чем `id`
5. **Включайте только нужные столбцы** — меньше столбцов означает меньший риск ошибок
## Устранение неполадок
Having issues? Check:
Возникли проблемы? Проверьте:
* [How to Fix Import Errors](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
* [Uniqueness Constraints](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Field Mapping Reference](/l/ru/user-guide/data-migration/capabilities/field-mapping)
* [Как исправить ошибки импорта](/l/ru/user-guide/data-migration/how-tos/fix-import-errors)
* [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Справочник по сопоставлению полей](/l/ru/user-guide/data-migration/capabilities/field-mapping)
@@ -1,46 +1,46 @@
---
title: Send Emails from Workflows
description: Send personalized emails automatically using workflow actions.
title: Отправка писем через рабочие процессы
description: Отправляйте персонализированные письма автоматически с помощью действий рабочего процесса.
image: /images/user-guide/workflows/workflow.png
---
Automatically send emails when specific events occur in your CRM—welcome new contacts, follow up on opportunities, or notify team members.
Автоматически отправляйте письма при наступлении определённых событий в вашей CRM — приветствуйте новых контактов, делайте последующие касания по возможностям или уведомляйте членов команды.
## Требования
Before you can send emails from workflows:
Прежде чем отправлять письма из рабочих процессов:
1. Connect an email account under **Settings → Accounts**
2. Ensure the account has sending permissions enabled
1. Подключите учетную запись электронной почты в разделе **Настройки → Учетные записи**
2. Убедитесь, что для учетной записи включены разрешения на отправку
## Basic Email Workflow
## Базовый рабочий процесс электронной почты
### Example: Welcome Email for New Contacts
### Пример: приветственное письмо для новых контактов
**Goal**: Send a welcome email when a new person is added to the CRM.
**Цель**: отправлять приветственное письмо, когда в CRM добавляется новый контакт.
**Настройка**:
1. **Create workflow**: Go to **Settings → Workflows** and click **+ New Workflow**
1. **Создайте рабочий процесс**: перейдите в **Настройки → Рабочие процессы** и нажмите **+ Новый рабочий процесс**
2. **Add trigger**: Select **Record is Created** → **People**
2. **Добавьте триггер**: выберите **Запись создана** → **Люди**
3. **Add Send Email action**:
* Click **+** to add an action
* Select **Send Email**
* Configure the email:
3. **Добавьте действие Отправить письмо**:
* Нажмите **+**, чтобы добавить действие
* Выберите **Отправить письмо**
* Настройте письмо:
| Поле | Значение |
| ----------- | ------------------------------------------ |
| **To** | `{{trigger.object.email}}` |
| **Subject** | `Добро пожаловать в {{Your Company Name}}` |
| **Body** | `Hi {{trigger.object.firstName}}, ...` |
| Поле | Значение |
| -------------- | ------------------------------------------ |
| **Кому** | `{{trigger.object.email}}` |
| **Тема** | `Добро пожаловать в {{Your Company Name}}` |
| **Содержимое** | `Hi {{trigger.object.firstName}}, ...` |
4. **Test and activate**: Test with a sample record, then activate
4. **Протестируйте и активируйте**: протестируйте на тестовой записи, затем активируйте
## Using Variables in Emails
## Использование переменных в письмах
Reference data from previous steps using `{{variable}}` syntax:
Ссылайтесь на данные из предыдущих шагов, используя синтаксис `{{variable}}`:
```text
Hi {{trigger.object.firstName}},
@@ -53,97 +53,97 @@ Best regards,
The Team
```
### Available Variables from Triggers
### Доступные переменные из триггеров
| Тип триггера | Common Variables |
| -------------------------- | -------------------------------------- |
| **Record Created/Updated** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
| Тип триггера | Общие переменные |
| ---------------------------- | -------------------------------------- |
| **Запись создана/обновлена** | `{{trigger.object.fieldName}}` |
| **Вручную** | `{{trigger.selectedRecord.fieldName}}` |
| **Вебхук** | `{{trigger.body.fieldName}}` |
## Advanced: Conditional Emails
## Продвинутое: условные письма
### Example: Different Emails Based on Lead Source
### Пример: разные письма в зависимости от источника лида
**Goal**: Send different welcome emails based on where the lead came from.
**Цель**: отправлять разные приветственные письма в зависимости от того, откуда пришёл лид.
**Настройка**:
1. **Trigger**: Record is Created (People)
1. **Триггер**: запись создана (Люди)
2. **Add Filter action**:
* Condition: `{{trigger.object.source}}` equals `"Website"`
* If true → continue to website welcome email
2. **Добавьте действие Фильтр**:
* Условие: `{{trigger.object.source}}` равно `"Website"`
* Если верно → перейти к приветственному письму для сайта
3. **Branch for other sources**:
* Create parallel branches for different sources
* Each branch has its own Send Email action
3. **Ветка для других источников**:
* Создайте параллельные ветки для разных источников
* В каждой ветке есть собственное действие Отправить письмо
## Sending Emails to Multiple Recipients
## Отправка писем нескольким получателям
### Example: Notify Team When Deal Closes
### Пример: уведомление команды при закрытии сделки
**Goal**: Email the sales rep and their manager when an opportunity is won.
**Цель**: отправить письмо менеджеру по продажам и его руководителю, когда возможность помечена как выигранная.
**Настройка**:
1. **Trigger**: Record is Updated (Opportunities, Stage = "Closed Won")
1. **Триггер**: запись обновлена (Возможности, стадия = "Закрыта выиграна")
2. **Search Records**: Find the opportunity owner's manager
2. **Поиск записей**: найдите руководителя владельца возможности
3. **Send Email #1**: To opportunity owner
* To: `{{trigger.object.owner.email}}`
* Subject: `Congratulations on closing {{trigger.object.name}}!`
3. **Отправить письмо №1**: владельцу возможности
* Кому: `{{trigger.object.owner.email}}`
* Тема: `Congratulations on closing {{trigger.object.name}}!`
4. **Send Email #2**: To manager
* To: `{{searchRecords.manager.email}}`
* Subject: `Deal Won: {{trigger.object.name}}`
4. **Отправить письмо №2**: руководителю
* Кому: `{{searchRecords.manager.email}}`
* Тема: `Deal Won: {{trigger.object.name}}`
## Scheduled Follow-up Emails
## Запланированные последующие письма
### Example: Follow Up 3 Days After Meeting
### Пример: последующее письмо через 3 дня после встречи
**Goal**: Send a follow-up email 3 days after a meeting is logged.
**Цель**: отправить последующее письмо через 3 дня после регистрации встречи.
**Настройка**:
1. **Trigger**: Record is Created (Activities, Type = "Meeting")
1. **Триггер**: запись создана (Активности, тип = "Встреча")
2. **Delay action**: Wait 3 days
2. **Действие Задержка**: подождите 3 дня
3. **Send Email**:
* To: Meeting attendee
* Subject: Following up on our conversation
* Body: Reference meeting details from trigger
3. **Отправить письмо**:
* Кому: участнику встречи
* Тема: Продолжение нашего разговора
* Содержимое: укажите детали встречи из триггера
## Лучшие практики
### Email Content
### Содержимое письма
* Keep subject lines concise and relevant
* Personalize with recipient's name
* Include a clear call to action
* Test emails before activating
* Делайте темы писем краткими и по существу
* Персонализируйте, используя имя получателя
* Добавляйте чёткий призыв к действию
* Тестируйте письма перед активацией
### Deliverability
### Доставляемость
* Don't send too many emails too quickly
* Use professional email signatures
* Avoid spam trigger words
* Ensure unsubscribe options for marketing emails
* Не отправляйте слишком много писем за короткое время
* Используйте профессиональные подписи в письмах
* Избегайте слов, которые запускают спам-фильтры
* Обеспечьте наличие опции отписки для маркетинговых писем
### Устранение неполадок
* Verify email account is connected and active
* Check recipient email address is valid
* Review workflow runs for error messages
* Test with your own email address first
* Убедитесь, что учетная запись электронной почты подключена и активна
* Проверьте, что адрес электронной почты получателя действителен
* Проверьте запуски рабочего процесса на наличие сообщений об ошибках
* Сначала протестируйте на собственном адресе электронной почты
<Note>
**Coming soon**: Email attachments will be available in Q1 2026.
**Скоро**: вложения к письмам будут доступны в первом квартале 2026 года.
</Note>
## Related
## Связанные материалы
* [Workflow Triggers](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [Триггеры рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions)
@@ -1,21 +1,21 @@
---
title: Действия рабочего процесса
description: Learn about the actions available in Twenty workflows.
description: Узнайте о действиях, доступных в рабочих процессах Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## About Actions
## О действиях
Действия определяют, что произойдет после срабатывания триггера. You can chain multiple actions together to build complex automations.
Действия определяют, что произойдет после срабатывания триггера. Вы можете связывать несколько действий вместе, чтобы создавать сложные автоматизации.
<Tip>
* Use the variable picker (click the `(x+)` icon) to browse available data from previous steps
* Hover over any input field to see which step a variable comes from — helpful when the same field (e.g., ID) exists in multiple previous steps
* Give each action a descriptive name for easier maintenance
* Используйте средство выбора переменных (нажмите значок `(x+)`), чтобы просматривать доступные данные из предыдущих шагов
* Наведите курсор на любое поле ввода, чтобы увидеть, из какого шага поступает переменная — это полезно, когда одно и то же поле (например, ID) существует в нескольких предыдущих шагах
* Присваивайте каждому действию описательное имя для упрощения сопровождения
</Tip>
## Record Actions
## Действия с записями
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
@@ -27,7 +27,7 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
* Выберите целевой объект
* Заполните обязательные и необязательные поля
* Use data from previous steps or input values manually to populate fields
* Используйте данные из предыдущих шагов или введите значения вручную, чтобы заполнить поля
**Вывод**: Данные вновь созданной записи доступны для использования на последующих шагах.
@@ -41,8 +41,8 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
* Выберите целевой объект
* Выберите конкретную запись для обновления.
* You can either choose a fixed record, using the drop down menu displaying all available records.
* Or you can have the record dynamically selected, by designating a record found in a previous step, using the `(x+)`. You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add a `Search Record` step before this `Update Record` step.
* Вы можете либо выбрать конкретную запись, используя раскрывающееся меню, где показаны все доступные записи.
* Либо можно выбрать запись динамически, указав запись, найденную на предыдущем шаге, с помощью `(x+)`. На этом этапе вы не можете искать запись по различным критериям. Если вы ещё не определили запись, добавьте шаг `Search Record` перед шагом `Update Record`.
* Выберите поля для изменения и введите новые значения
**Вывод**: Данные обновленной записи доступны для использования в последующих шагах.
@@ -71,25 +71,25 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
**Вывод**: Возвращает записи, которые могут быть использованы в последующих шагах.
<Note>
**Limit**: Search Records returns a maximum of **200 records**. If you need to process more, add specific filters to reduce results or use scheduled workflows to process in batches.
**Ограничение**: Search Records возвращает максимум **200 записей**. Если нужно обработать больше, добавьте точные фильтры, чтобы сократить результаты, или используйте запланированные рабочие процессы для пакетной обработки.
</Note>
**Best Practice**: Use [branches](/l/ru/user-guide/workflows/capabilities/workflow-branches) after Search Records to handle "found" vs "not found" scenarios.
**Рекомендация**: Используйте [ветвления](/l/ru/user-guide/workflows/capabilities/workflow-branches) после Search Records для обработки сценариев "найдено" и "не найдено".
### Upsert Record
### Добавить или обновить запись
Creates a new record or updates an existing one based on matching criteria. This is useful when you're not sure if a record already exists.
Создаёт новую запись или обновляет существующую на основе критериев сопоставления. Это полезно, если вы не уверены, существует ли уже запись.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Настройка**:
* Выберите целевой объект
* Note which fields can be used for matching: email for People, domain for Companies, ID for any object, or any field marked as Unique. You'll need to populate at least one of these below.
* Fill out the field values. Do not forget to populate at least one of the unique identifiers.
* Обратите внимание, какие поля можно использовать для сопоставления: email — для People, домен — для Companies, ID — для любого объекта или любое поле, помеченное как Unique. Ниже нужно заполнить как минимум одно из них.
* Заполните значения полей. Не забудьте указать как минимум один уникальный идентификатор.
<Note>
**Matching usually works even better when adding only one unique identifier.** For example, the screenshot below will match companies based on their domain. The ID is not necessarily needed.
**Сопоставление обычно работает даже лучше, если указывать только один уникальный идентификатор.** Например, на скриншоте ниже компании сопоставляются по их домену. Указывать ID не обязательно.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
@@ -1,42 +1,42 @@
---
title: Connect Several Mailboxes per User
description: Connect multiple email accounts for a single user.
title: Kullanıcı Başına Birden Fazla Posta Kutusu Bağlayın
description: Tek bir kullanıcı için birden fazla e-posta hesabı bağlayın.
---
## Genel Bakış
Twenty supports **unlimited email accounts per user**. This is useful if you manage multiple inboxes, such as:
Twenty, **kullanıcı başına sınırsız sayıda e-posta hesabı** destekler. Birden fazla gelen kutusunu yönetiyorsanız bu kullanışlıdır; örneğin:
* Personal work email + shared team inbox
* Multiple client-facing email addresses
* Different email accounts for different roles
* Kişisel iş e-postası + paylaşılan ekip gelen kutusu
* Müşteriye yönelik birden fazla e-posta adresi
* Farklı roller için farklı e-posta hesapları
## How to Add Multiple Mailboxes
## Birden Fazla Posta Kutusu Nasıl Eklenir
1. **Ayarlar → Hesaplar** sekmesine gidin.
2. **Hesap ekle** butonuna tıklayın.
3. Connect your additional Google or Microsoft account
4. Configure sync settings for this mailbox
5. Repeat for each mailbox you want to connect
3. Ek Google veya Microsoft hesabınızı bağlayın
4. Bu posta kutusu için eşitleme ayarlarını yapılandırın
5. Bağlamak istediğiniz her posta kutusu için tekrarlayın
## Managing Multiple Accounts
## Birden Fazla Hesabı Yönetme
Each connected mailbox has its own settings:
Her bağlı posta kutusunun kendi ayarları vardır:
* **Email visibility**: Choose what teammates can see
* **Contact auto-creation**: Enable/disable per mailbox
* **Folder selection**: Choose which folders to sync (Lab feature)
* **E-posta görünürlüğü**: Ekip arkadaşlarınızın neleri görebileceğini seçin
* **Kişi otomatik oluşturma**: Her posta kutusu için etkinleştir/devre dışı bırak
* **Klasör seçimi**: Hangi klasörlerin eşitleneceğini seçin (Lab özelliği)
## How Emails Appear
## E-postalar Nasıl Görünür
Emails from all your connected mailboxes are synced to Twenty and appear on:
Bağlı tüm posta kutularınızdaki e-postalar Twenty ile eşitlenir ve şuralarda görünür:
* **People records**: Based on the contact's email address
* **Company records**: Based on the email domain
* **Opportunities**: Based on the linked company
* **Kişi kayıtları**: Kişinin e-posta adresine göre
* **Şirket kayıtları**: E-posta alan adına göre
* **Fırsatlar**: Bağlantılı şirkete göre
<Note>Each email shows which mailbox it was sent from/received to, so you can track which account was used for each communication.</Note>
<Note>Her e-postada hangi posta kutusundan gönderildiği/alındığı gösterilir; böylece her iletişimde hangi hesabın kullanıldığını takip edebilirsiniz.</Note>
## Important Notes
## Önemli Notlar
<Warning>Only true mailboxes can be connected. Email aliases that forward to another mailbox cannot be connected separately—they'll sync through the main mailbox.</Warning>
<Warning>Yalnızca gerçek posta kutuları bağlanabilir. Başka bir posta kutusuna yönlendiren e-posta takma adları ayrı ayrı bağlanamaz—ana posta kutusu üzerinden eşitlenir.</Warning>
@@ -1,6 +1,6 @@
---
title: Gösterge Panelleri
description: Learn the basics of reporting and dashboards in Twenty.
description: Twenty'de raporlama ve gösterge panellerinin temellerini öğrenin.
image: /images/user-guide/reporting/pie-chart.png
---
@@ -8,72 +8,72 @@ image: /images/user-guide/reporting/pie-chart.png
<img src="/images/user-guide/reporting/pie-chart.png" alt="Gösterge Panelleri" />
</Frame>
## Understanding Dashboards
## Gösterge Panellerini Anlama
Dashboards in Twenty provide a visual way to track your key performance metrics and gain insights from your CRM data.
Twenty'deki gösterge panelleri, temel performans metriklerinizi izlemenin görsel bir yolunu sağlar ve CRM verilerinizden içgörüler elde etmenize yardımcı olur.
<img src="/images/user-guide/dashboard/dashboards_v2.png" alt="Gösterge Panelleri" />
## Key Concepts
## Temel Kavramlar
### Gösterge Panelleri
A dashboard is a collection of tabs that display your CRM data at a glance. You can create multiple dashboards for different purposes:
Bir gösterge paneli, CRM verilerinizi bir bakışta gösteren sekmelerin bir koleksiyonudur. Farklı amaçlar için birden fazla gösterge paneli oluşturabilirsiniz:
* Sales performance
* Team activity
* Pipeline health
* Custom metrics
* Satış performansı
* Ekip etkinliği
* Satış boru hattı sağlığı
* Özel metrikler
### Sekmeler
Tabs allow you to organize your dashboard into sections. Each tab contains one or more widgets.
Sekmeler, gösterge panelinizi bölümlere ayırarak düzenlemenizi sağlar. Her sekmede bir veya daha fazla widget bulunur.
### Widget'lar
Widgets are individual visualizations that display specific data. Types include:
Widget'lar, belirli verileri gösteren bağımsız görselleştirmelerdir. Türler şunlardır:
* Bar charts
* Pie charts
* Line charts
* Number metrics
* iFrames
* Çubuk grafikler
* Pasta grafikler
* Çizgi grafikler
* Sayısal metrikler
* iFrame'ler
<Note>
**Current limitations**:
**Mevcut sınırlamalar**:
* Exporting dashboards and sharing with external users (non-Twenty users) are not available at the moment.
* Gauge charts and tables are not yet available.
* Gösterge panellerini dışa aktarma ve harici kullanıcılarla (Twenty kullanıcısı olmayanlar) paylaşma şu anda mevcut değil.
* Gösterge grafikleri ve tablolar henüz mevcut değil.
</Note>
## Getting Started
## Başlarken
### Creating Your First Dashboard
### İlk Gösterge Panelinizi Oluşturma
1. Navigate to the **Dashboards** section
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Add tabs to organize your content
5. Add widgets to display your data
1. **Gösterge Panelleri** bölümüne gidin
2. **+ Yeni Gösterge Paneli**'ne tıklayın
3. Gösterge panelinize bir ad verin
4. İçeriğinizi düzenlemek için sekmeler ekleyin
5. Verilerinizi göstermek için widget'lar ekleyin
6. Kaydet
### Adding Widgets
### Widget Ekleme
1. Open a tab on your dashboard
2. Click **+ Add Widget**
3. Select the widget type
4. Choose the data source (object)
5. Configure the widget settings
6. Save and view your widget
1. Gösterge panelinizde bir sekme açın
2. **+ Widget Ekle**'ye tıklayın
3. Widget türünü seçin
4. Veri kaynağını (nesneyi) seçin
5. Widget ayarlarını yapılandırın
6. Widget'ınızı kaydedin ve görüntüleyin
## En İyi Uygulamalar
* **Start simple**: Begin with a few key metrics and add more over time
* **Focus on actionable data**: Display metrics that drive decisions
* **Regular review**: Check your dashboards regularly to spot trends
* **Share with team**: Make dashboards visible to relevant team members
* **Basit başlayın**: Birkaç temel metrikle başlayın ve zamanla daha fazlasını ekleyin
* **Eyleme dönüştürülebilir verilere odaklanın**: Kararları yönlendiren metrikleri görüntüleyin
* **Düzenli gözden geçirme**: Trendleri fark etmek için gösterge panellerinizi düzenli olarak kontrol edin
* **Ekip ile paylaşın**: Gösterge panellerini ilgili ekip üyelerine görünür yapın
## Sonraki Adımlar
* [Widgets and visualizations](/l/tr/user-guide/dashboards/capabilities/widgets)
* [Dashboards FAQ](/l/tr/user-guide/dashboards/how-tos/dashboards-faq)
* [Widget'lar ve görselleştirmeler](/l/tr/user-guide/dashboards/capabilities/widgets)
* [Gösterge Panelleri SSS](/l/tr/user-guide/dashboards/how-tos/dashboards-faq)
@@ -145,98 +145,98 @@ Twenty, sütunlarınızı alanlarla eşleştirmeyi otomatik olarak dener. Gözde
3. Twenty, her Kişiyi eşleşen Şirkete bağlar
<Warning>
**Map only ONE unique identifier for relations.**
**İlişkiler için yalnızca BİR benzersiz tanımlayıcıyı eşleyin.**
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
Hem `companyId` hem de `companyDomain` eşlemeyin. Birini seçin — tercihen insanlar tarafından okunabildiği için alan adını.
</Warning>
## Step 5: Map Select Field Values
## Adım 5: Seçim Alanı Değerlerini Eşleyin
If you have Select or Multi-Select fields (like Lead Source):
Seçim veya Çoklu Seçim alanlarınız varsa (örn. Potansiyel Müşteri Kaynağı):
1. Twenty shows your values alongside existing options
2. Match each value in your file to a Twenty option
3. Or create new options if needed
1. Twenty, değerlerinizi mevcut seçeneklerin yanında gösterir
2. Dosyanızdaki her değeri bir Twenty seçeneğiyle eşleştirin
3. Gerekiyorsa yeni seçenekler oluşturun
<Note>
Select options use **API names**, not display labels. Check **Settings → Data Model** → Enable **Advanced mode** to see API names.
Seçim alanı seçenekleri, görüntü etiketlerini değil, **API adlarını** kullanır. API adlarını görmek için **Settings → Data Model** → **Advanced mode**'u etkinleştirin.
</Note>
## Step 6: Review and Fix Errors
## Adım 6: Hataları Gözden Geçirin ve Düzeltin
Before completing the import, Twenty validates your data:
İçe aktarmayı tamamlamadan önce Twenty verilerinizi doğrular:
1. Click **Next Steps**
2. Rows with errors are highlighted in **yellow**
3. **Fix errors directly** — click a cell and edit the value
4. **Remove problematic rows** — click the X to skip that row
1. **Next Steps**'e tıklayın
2. Hata içeren satırlar **sarı** renkle vurgulanır
3. **Hataları doğrudan düzeltin** — bir hücreye tıklayın ve değeri düzenleyin
4. **Sorunlu satırları kaldırın** — o satırı atlamak için X'e tıklayın
### Common Contact Import Errors
### Yaygın Kişi İçe Aktarma Hataları
| Hata | Cause | Solution |
| -------------------------- | -------------------------------------- | ------------------------------------------- |
| **Duplicate email** | Email already exists in Twenty or file | Remove duplicate or update existing record |
| **Invalid email format** | Email format incorrect | Fix to `name@domain.com` |
| **Relation not found** | Company doesn't exist | Import Companies first or fix the reference |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Hata | Neden | Çözüm |
| --------------------------- | ------------------------------------------- | --------------------------------------------------- |
| **Yinelenen e-posta** | E-posta Twenty'de veya dosyada zaten mevcut | Yineleneni kaldırın veya mevcut kaydı güncelleyin |
| **Geçersiz e-posta biçimi** | E-posta biçimi hatalı | `name@domain.com` olarak düzeltin |
| **İlişki bulunamadı** | Şirket mevcut değil | Önce Şirketleri içe aktarın veya referansı düzeltin |
| **Gerekli alan eksik** | Gerekli alan boş | Değeri doldurun veya satırı kaldırın |
## Step 7: Complete the Import
## Adım 7: İçe Aktarmayı Tamamlayın
1. Review the import summary
2. Click **Confirm** to import
3. Wait for the import to complete
4. Verify by checking a few records and their Company links
1. İçe aktarma özetini gözden geçirin
2. İçe aktarmak için **Onayla**'ya tıklayın
3. İçe aktarmanın tamamlanmasını bekleyin
4. Birkaç kaydı ve Şirket bağlantılarını kontrol ederek doğrulayın
## After Importing Contacts
## Kişileri İçe Aktardıktan Sonra
Your contacts are now in Twenty! Next steps:
Kişileriniz artık Twenty'de! Sonraki adımlar:
1. **Verify Company links** — open a few People records to confirm they're linked to the right Company
2. **Import Opportunities** — if needed, link them to People and Companies
3. **Set up email sync** — connect your mailbox to see email history on contact records
1. **Şirket bağlantılarını doğrulayın** — doğru Şirkete bağlı olduklarını teyit etmek için birkaç Kişi kaydını açın
2. **Fırsatları içe aktarın** — gerekiyorsa bunları Kişiler ve Şirketlerle ilişkilendirin
3. **E-posta eşitlemesini ayarlayın** — kişi kayıtlarında e-posta geçmişini görmek için posta kutunuzu bağlayın
## Updating Existing Contacts
## Mevcut Kişileri Güncelleme
To update contacts instead of creating new ones:
Yeni kişiler oluşturmak yerine kişileri güncellemek için:
1. Include the `email` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing contacts are updated; new ones are created
1. Dosyanıza `email` veya `id` sütununu ekleyin
2. Twenty, kayıtları bu benzersiz tanımlayıcıya göre eşleştirir
3. Mevcut kişiler güncellenir; yenileri oluşturulur
See [How to Update Existing Records](/l/tr/user-guide/data-migration/how-tos/update-existing-records-via-import) for details.
Ayrıntılar için [Mevcut Kayıtlar Nasıl Güncellenir](/l/tr/user-guide/data-migration/how-tos/update-existing-records-via-import) bölümüne bakın.
## FAQ
## SSS
<AccordionGroup>
<Accordion title="Why can't two People have the same email?">
Email is a unique identifier in Twenty. This prevents duplicate contacts and ensures email sync correctly links emails to the right person.
<Accordion title="Neden iki Kişinin aynı e-postası olamaz?">
E-posta, Twenty'de benzersiz bir tanımlayıcıdır. Bu, yinelenen kişileri önler ve e-posta eşitlemesinin e-postaları doğru kişiyle doğru şekilde ilişkilendirmesini sağlar.
</Accordion>
<Accordion title="What if I have people without an email?">
You can leave the email empty. However, we recommend adding emails when possible for better data quality and email sync functionality.
<Accordion title="E-postası olmayan kişilerim varsa ne yapmalıyım?">
E-postayı boş bırakabilirsiniz. Ancak, daha iyi veri kalitesi ve e-posta eşitleme işlevi için mümkün olduğunda e-postaları eklemenizi öneririz.
</Accordion>
<Accordion title="How do I link People to Companies during import?">
Add a column with the Company's domain (e.g., `https://acme.com`) or ID. During mapping, connect this column to the Company relation field.
<Accordion title="İçe aktarma sırasında Kişileri Şirketlerle nasıl ilişkilendiririm?">
Şirketin alan adı (örn. `https://acme.com`) veya ID'si ile bir sütun ekleyin. Eşleme sırasında bu sütunu Şirket ilişki alanına bağlayın.
</Accordion>
<Accordion title="What if the Company doesn't exist yet?">
Import Companies first, then import People. The Company must exist before you can reference it.
<Accordion title="Şirket henüz mevcut değilse ne yapmalıyım?">
Önce Şirketleri içe aktarın, ardından Kişileri içe aktarın. Şirkete referans verebilmeden önce şirketin mevcut olması gerekir.
</Accordion>
<Accordion title="Can I import the ID from my previous CRM?">
Evet! Create a custom field marked as "unique" in your data model to store the external ID. Note: the field name `id` is reserved for Twenty's internal ID.
<Accordion title="Önceki CRM'imden ID'yi içe aktarabilir miyim?">
Evet! Dış ID'yi saklamak için veri modelinizde "unique" olarak işaretlenmiş özel bir alan oluşturun. Not: `id` alan adı Twenty'nin dahili ID'si için ayrılmıştır.
</Accordion>
<Accordion title="How do I fix 'relation not found' errors?">
The Company you're referencing doesn't exist. Either import the Company first, or check that the domain/ID exactly matches an existing Company.
<Accordion title="'relation not found' hatalarını nasıl düzeltirim?">
Referans verdiğiniz Şirket mevcut değil. Ya önce Şirketi içe aktarın ya da alan adının/ID'nin mevcut bir Şirketle birebir eşleştiğini kontrol edin.
</Accordion>
</AccordionGroup>
## Sorun Giderme
Having issues? Check:
Sorun mu yaşıyorsunuz? Şunları kontrol edin:
* [How to Fix Import Errors](/l/tr/user-guide/data-migration/how-tos/fix-import-errors)
* [How to Import Relations](/l/tr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Field Mapping Reference](/l/tr/user-guide/data-migration/capabilities/field-mapping)
* [İçe Aktarma Hataları Nasıl Düzeltilir](/l/tr/user-guide/data-migration/how-tos/fix-import-errors)
* [İlişkiler Nasıl İçe Aktarılır](/l/tr/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Alan Eşleme Başvurusu](/l/tr/user-guide/data-migration/capabilities/field-mapping)
@@ -1,67 +1,67 @@
---
title: Update Existing Records via Import
description: Complete step-by-step guide to bulk updating records using CSV import.
title: İçe Aktarma Yoluyla Mevcut Kayıtları Güncelleyin
description: CSV içe aktarma kullanarak kayıtları toplu olarak güncelleme için eksiksiz adım adım kılavuz.
---
## Genel Bakış
Need to update many records at once? Instead of editing them one by one, use the CSV import to bulk update existing records.
Birçok kaydı aynı anda güncellemeniz mi gerekiyor? Tek tek düzenlemek yerine, mevcut kayıtları toplu olarak güncellemek için CSV içe aktarmayı kullanın.
**Kullanım alanları:**
* Update job titles for multiple people
* Change company information in bulk
* Add data to new custom fields
* Correct data errors across many records
* Birden fazla kişi için iş unvanlarını güncelleyin
* Şirket bilgilerini toplu olarak değiştirin
* Yeni özel alanlara veri ekleyin
* Birçok kayıttaki veri hatalarını düzeltin
## Nasıl Çalışır
When you import a file containing a **unique identifier** that matches an existing record, Twenty updates that record instead of creating a duplicate.
Var olan bir kayıtla eşleşen bir **benzersiz tanımlayıcı** içeren bir dosyayı içe aktardığınızda, Twenty yinelenen bir kayıt oluşturmak yerine o kaydı günceller.
| If unique identifier... | Twenty will... |
| -------------------------- | ------------------------------------------------ |
| Matches an existing record | **Update** the existing record |
| Doesn't match any record | **Create** a new record |
| Is missing from your file | **Create** a new record (with auto-generated ID) |
| Eğer benzersiz tanımlayıcı... | Twenty şunu yapar... |
| ----------------------------- | -------------------------------------------------------- |
| Mevcut bir kayıtla eşleşir | Mevcut kaydı **güncelle** |
| Herhangi bir kayıtla eşleşmez | Yeni bir kayıt **oluştur** |
| Dosyanızda eksik | Yeni bir kayıt **oluştur** (otomatik oluşturulan ID ile) |
<Warning>
**Multi-Select fields are overwritten, not merged.**
**Çoklu Seçim alanları birleştirilmez, üzerine yazılır.**
If a record has `Option A` and `Option B` selected, and you import `["Option C"]`, the record will only have `Option C` after import. The import replaces all previous selections—it does not add to them.
Bir kayıtta `Option A` ve `Option B` seçiliyse ve siz `["Option C"]` içe aktarırsanız, içe aktarmadan sonra kayıtta yalnızca `Option C` bulunur. İçe aktarma önceki tüm seçimlerin yerini alır—onlara ekleme yapmaz.
To keep existing values, include them all in your import: `["Option A","Option B","Option C"]`
Mevcut değerleri korumak için, hepsini içe aktarımınıza dahil edin: `["Option A","Option B","Option C"]`
</Warning>
## Step 1: Export Your Current Data
## Adım 1: Mevcut Verilerinizi Dışa Aktarın
First, export the records you want to update:
Önce, güncellemek istediğiniz kayıtları dışa aktarın:
1. Navigate to the object (People, Companies, etc.)
2. **Add the columns you need** — click **Options → Fields** to show the fields you want to update
3. **Filter if needed** — narrow down to only the records you want to update
4. Click **⋮** → **Export view**
5. Save the CSV file
1. Nesneye gidin (Kişiler, Şirketler vb.)
2. **İhtiyacınız olan sütunları ekleyin** — güncellemek istediğiniz alanları göstermek için **Options → Fields**'a tıklayın
3. **Gerekirse filtreleyin** — yalnızca güncellemek istediğiniz kayıtlara daraltın
4. **⋮** → **Görünümü Dışa Aktar**'a tıklayın
5. CSV dosyasını kaydedin
<Note>**Why export first?** The exported file has the correct format, includes unique identifiers, and maps automatically during import.</Note>
<Note>**Neden önce dışa aktarmalısınız?** Dışa aktarılan dosya doğru biçimdedir, benzersiz tanımlayıcıları içerir ve içe aktarma sırasında otomatik olarak eşleştirilir.</Note>
### What Gets Exported
### Neler Dışa Aktarılır
* All visible columns in your current view
* The record's unique identifiers (`id`, `email`, `domain`)
* Current field values you can modify
* Geçerli görünümünüzdeki tüm görünür sütunlar
* Kaydın benzersiz tanımlayıcıları (`id`, `email`, `domain`)
* Değiştirebileceğiniz mevcut alan değerleri
## Step 2: Edit the CSV File
## Adım 2: CSV Dosyasını Düzenleyin
Open the exported file in your spreadsheet application (Excel, Google Sheets, etc.):
Dışa aktarılan dosyayı hesap tablosu uygulamanızda açın (Excel, Google Sheets vb.):
1. **Keep the unique identifier column** — don't delete `id`, `email`, or `domain`
2. **Update the values** in the columns you want to change
3. **Remove columns you don't need to update** (optional, but cleaner)
4. **Don't change unique identifier values** — or Twenty will create new records
1. **Benzersiz tanımlayıcı sütununu koruyun** — `id`, `email` veya `domain` alanlarını silmeyin
2. Değiştirmek istediğiniz sütunlardaki değerleri **güncelleyin**
3. **Güncellemeniz gerekmeyen sütunları kaldırın** (isteğe bağlı, ancak daha temizdir)
4. **Benzersiz tanımlayıcı değerlerini değiştirmeyin** — aksi halde Twenty yeni kayıtlar oluşturur
### Example: Updating Job Titles
### Örnek: İş Unvanlarını Güncelleme
**Exported file:**
**Dışa aktarılan dosya:**
```csv
id,email,firstName,lastName,jobTitle
@@ -70,7 +70,7 @@ id,email,firstName,lastName,jobTitle
550e8400-e29b-41d4-a716-446655440003,bob@acme.com,Bob,Johnson,Sales Rep
```
**After your edits:**
**Düzenlemelerinizden sonra:**
```csv
id,email,firstName,lastName,jobTitle
@@ -80,63 +80,63 @@ id,email,firstName,lastName,jobTitle
```
<Warning>
**Don't change the unique identifier values.**
**Benzersiz tanımlayıcı değerlerini değiştirmeyin.**
If you change `john@acme.com` to `john.smith@acme.com`, Twenty will create a new record instead of updating the existing one.
`john@acme.com` adresini `john.smith@acme.com` olarak değiştirirseniz, Twenty mevcut kaydı güncellemek yerine yeni bir kayıt oluşturur.
</Warning>
## Step 3: Import the Updated File
## Adım 3: Güncellenen Dosyayı İçe Aktarın
1. Navigate to the object
2. Click **⋮** → **Import records**
3. Upload your edited CSV file
4. **Ensure the unique identifier is mapped** — verify `email`, `domain`, or `id` is mapped correctly
5. Review the field mappings
6. Check for errors
7. Click **Confirm**
1. Nesneye gidin
2. **⋮** → **Kayıtları içe aktar**'ı tıklayın
3. Düzenlediğiniz CSV dosyasını yükleyin
4. **Benzersiz tanımlayıcının eşlendiğinden emin olun** — `email`, `domain` veya `id` alanlarının doğru şekilde eşlendiğini doğrulayın
5. Alan eşlemelerini gözden geçirin
6. Hataları kontrol edin
7. **Onayla**'ya tıklayın
Twenty matches records by the unique identifier and updates them with new values.
Twenty, kayıtları benzersiz tanımlayıcıya göre eşleştirir ve yeni değerlerle günceller.
## Choosing the Right Unique Identifier
## Doğru Benzersiz Tanımlayıcıyı Seçme
| Nesne | Recommended | Alternative | Notlar |
| ----------------- | ---------------- | ----------- | ---------------------------- |
| **People** | `e-posta` | `id` | Email is human-readable |
| **Şirketler** | `alan Adı` | `id` | Domain is human-readable |
| **Özel nesneler** | Any unique field | `id` | Use your custom unique field |
| Nesne | Önerilen | Alternatif | Notlar |
| ----------------- | --------------------------- | ---------- | --------------------------------------- |
| **Kişiler** | `e-posta` | `id` | E-posta insan tarafından okunabilirdir |
| **Şirketler** | `alan Adı` | `id` | Alan adı insan tarafından okunabilirdir |
| **Özel nesneler** | Herhangi bir benzersiz alan | `id` | Özel benzersiz alanınızı kullanın |
<Note>**Use only ONE unique identifier.** Don't map both `email` AND `id`. This can cause confusion and errors.</Note>
<Note>**Yalnızca TEK bir benzersiz tanımlayıcı kullanın.** Hem `email` HEM de `id` eşlemeyin. Bu, karışıklığa ve hatalara neden olabilir.</Note>
### Using Custom Unique Fields
### Özel Benzersiz Alanları Kullanma
If you have a custom field marked as unique (like an external ID from another system):
Benzersiz olarak işaretlenmiş özel bir alanınız varsa (başka bir sistemden gelen harici bir ID gibi):
1. Include that field in your export and import
2. Map it during import
3. Twenty will match on that field
1. Bu alanı dışa aktarma ve içe aktarma işlemlerinize dahil edin
2. İçe aktarma sırasında onu eşleyin
3. Twenty, o alana göre eşleştirme yapar
## Step 4: Verify the Updates
## Adım 4: Güncellemeleri Doğrulayın
After importing:
İçe aktardıktan sonra:
1. Open a few updated records
2. Verify the changes were applied
3. Check that no duplicate records were created
1. Güncellenen kayıtlardan birkaçını açın
2. Değişikliklerin uygulandığını doğrulayın
3. Yinelenen kayıtların oluşturulmadığını kontrol edin
## What About Fields Not in Your File?
## Dosyanızda Olmayan Alanlar Ne Olacak?
**Fields not included in your import file remain unchanged.**
**İçe aktarma dosyanıza dahil edilmeyen alanlar değişmeden kalır.**
| Your file includes... | Sonuç |
| ---------------------------- | ------------------------------------------------------ |
| `email`, `jobTitle` | Only `jobTitle` is updated; other fields stay the same |
| `email`, `jobTitle`, `phone` | `jobTitle` and `phone` are updated |
| Dosyanız şunları içerir... | Sonuç |
| ---------------------------- | --------------------------------------------------------- |
| `email`, `jobTitle` | Yalnızca `jobTitle` güncellenir; diğer alanlar aynı kalır |
| `email`, `jobTitle`, `phone` | `jobTitle` ve `phone` güncellenir |
This means you only need to include the fields you want to change (plus the unique identifier).
Bu, yalnızca değiştirmek istediğiniz alanları (artı benzersiz tanımlayıcıyı) dahil etmeniz gerektiği anlamına gelir.
## Combining Updates and New Records
## Güncellemeleri ve Yeni Kayıtları Birleştirme
You can update existing records AND create new ones in the same import:
Aynı içe aktarma işleminde mevcut kayıtları güncelleyebilir VE yeni kayıtlar oluşturabilirsiniz:
```csv
email,firstName,lastName,jobTitle
@@ -144,55 +144,55 @@ john@acme.com,John,Smith,Senior Manager ← Updates existing (email matches)
newperson@acme.com,New,Person,Analyst ← Creates new (email doesn't match)
```
## Common Mistakes to Avoid
## Kaçınılması Gereken Yaygın Hatalar
| Mistake | Problem | Sonuç | Solution |
| ------------------------------ | ------------------------------------------------------- | -------------------------------------- | ----------------------------------------- |
| **Changing unique identifier** | Changed `john@acme.com` to `john.smith@acme.com` | Creates new record instead of updating | Keep unique identifiers unchanged |
| **Multiple unique fields** | Mapping both `email` AND `id` | Potential matching conflicts | Map only ONE unique identifier |
| **No unique identifier** | File only has `firstName`, `lastName`, `jobTitle` | All rows create new records | Always include `email`, `domain`, or `id` |
| **Case mismatch** | File has `John@acme.com` but Twenty has `john@acme.com` | Creates new record | Export from Twenty to get exact values |
| Hata | Sorun | Sonuç | Çözüm |
| --------------------------------------- | --------------------------------------------------------------------- | --------------------------------------- | ----------------------------------------------------- |
| **Benzersiz tanımlayıcıyı değiştirmek** | `john@acme.com` `john.smith@acme.com` olarak değiştirildi | Güncellemek yerine yeni kayıt oluşturur | Benzersiz tanımlayıcıları değiştirmeden bırakın |
| **Birden fazla benzersiz alan** | Hem `email` HEM DE `id` alanlarını eşleme | Olası eşleştirme çakışmaları | Yalnızca TEK bir benzersiz tanımlayıcıyı eşleyin |
| **Benzersiz tanımlayıcı yok** | Dosyada yalnızca `firstName`, `lastName`, `jobTitle` var | Tüm satırlar yeni kayıtlar oluşturur | Her zaman `email`, `domain` veya `id` öğesini ekleyin |
| **Büyük/küçük harf uyumsuzluğu** | Dosyada `John@acme.com` var ancak Twenty'de `john@acme.com` bulunuyor | Yeni kayıt oluşturur | Tam değerleri almak için Twenty'den dışa aktarın |
## FAQ
## SSS
<AccordionGroup>
<Accordion title="What if some records don't exist yet?">
Records with unique identifiers that don't match existing records will be created as new records. This lets you update and create in the same import.
<Accordion title="Bazı kayıtlar henüz yoksa ne olur?">
Benzersiz tanımlayıcıları mevcut kayıtlarla eşleşmeyen kayıtlar, yeni kayıtlar olarak oluşturulacaktır. Bu, aynı içe aktarma işleminde güncelleme ve oluşturma yapmanıza olanak tanır.
</Accordion>
<Accordion title="Can I clear/empty a field value?">
Yes, leave the cell empty in your CSV. The import will clear that field's value on the existing record.
<Accordion title="Bir alan değerini temizleyebilir/boşaltabilir miyim?">
Evet, CSV'nizde hücreyi boş bırakın. İçe aktarma, mevcut kayıttaki o alanın değerini temizleyecektir.
</Accordion>
<Accordion title="What happens to fields I don't include in the import?">
Fields not in your import file remain unchanged on existing records. Only fields you include are updated.
<Accordion title="İçe aktarmaya dahil etmediğim alanlara ne olur?">
İçe aktarma dosyanızda olmayan alanlar mevcut kayıtlarda değişmeden kalır. Yalnızca dahil ettiğiniz alanlar güncellenir.
</Accordion>
<Accordion title="Can I update relation fields (like Company)?">
Evet! Include the relation's unique identifier (e.g., `companyDomain`) and map it to the relation field. The relation will be updated.
<Accordion title="İlişki alanlarını (ör. Şirket) güncelleyebilir miyim?">
Evet! İlişkinin benzersiz tanımlayıcısını (ör. `companyDomain`) ekleyin ve ilişki alanına eşleyin. İlişki güncellenecektir.
</Accordion>
<Accordion title="How do I know which records will be updated vs. created?">
During the import review step, Twenty shows you how many records will be updated vs. created based on unique identifier matches.
<Accordion title="Hangi kayıtların güncelleneceğini ve hangilerinin oluşturulacağını nasıl anlarım?">
İçe aktarmayı gözden geçirme adımında, Twenty benzersiz tanımlayıcı eşleşmelerine göre kaç kaydın güncelleneceğini ve kaçının oluşturulacağını gösterir.
</Accordion>
<Accordion title="Can I undo a bulk update?">
There's no automatic undo. We recommend exporting your data as a backup before making bulk updates.
<Accordion title="Toplu bir güncellemeyi geri alabilir miyim?">
Otomatik geri alma yoktur. Toplu güncellemeler yapmadan önce verilerinizi yedek olarak dışa aktarmanızı öneririz.
</Accordion>
</AccordionGroup>
## En İyi Uygulamalar
1. **Export first** — always start from an export to ensure correct format
2. **Backup before updating** — export your data before making bulk changes
3. **Test with a few records** — try updating 5-10 records first before doing a large batch
4. **Use human-readable identifiers** — `email` and `domain` are easier to verify than `id`
5. **Only include necessary columns** — fewer columns means less chance for errors
1. **Önce dışa aktarın** — doğru biçimi sağlamak için her zaman bir dışa aktarmayla başlayın
2. **Güncellemeden önce yedekleyin** — toplu değişiklikler yapmadan önce verilerinizi dışa aktarın
3. **Birkaç kayıtla test edin** — büyük bir toplu işlem yapmadan önce 5-10 kaydı güncellemeyi deneyin
4. **İnsan tarafından okunabilir tanımlayıcılar kullanın** — `email` ve `domain`, `id`'den daha kolay doğrulanır
5. **Yalnızca gerekli sütunları dahil edin** — daha az sütun, hata olasılığını azaltır
## Sorun Giderme
Having issues? Check:
Sorun mu yaşıyorsunuz? Şunları kontrol edin:
* [How to Fix Import Errors](/l/tr/user-guide/data-migration/how-tos/fix-import-errors)
* [Uniqueness Constraints](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Field Mapping Reference](/l/tr/user-guide/data-migration/capabilities/field-mapping)
* [İçe Aktarma Hataları Nasıl Düzeltilir](/l/tr/user-guide/data-migration/how-tos/fix-import-errors)
* [Benzersizlik Kısıtlamaları](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints)
* [Alan Eşleme Başvurusu](/l/tr/user-guide/data-migration/capabilities/field-mapping)
@@ -1,149 +1,149 @@
---
title: Send Emails from Workflows
description: Send personalized emails automatically using workflow actions.
title: İş Akışları Aracılığıyla E-posta Gönderme
description: İş akışı eylemlerini kullanarak kişiselleştirilmiş e-postaları otomatik olarak gönderin.
image: /images/user-guide/workflows/workflow.png
---
Automatically send emails when specific events occur in your CRM—welcome new contacts, follow up on opportunities, or notify team members.
CRM'inizde belirli olaylar gerçekleştiğinde e-postaları otomatik olarak gönderin—yeni kişilere hoş geldiniz e-postası gönderin, fırsatları takip edin veya ekip üyelerini bilgilendirin.
## Ön Gereksinimler
Before you can send emails from workflows:
İş akışlarından e-posta göndermeden önce:
1. Connect an email account under **Settings → Accounts**
2. Ensure the account has sending permissions enabled
1. **Ayarlar → Hesaplar** altında bir e-posta hesabı bağlayın
2. Hesabın gönderme izinlerinin etkin olduğundan emin olun
## Basic Email Workflow
## Temel E-posta İş Akışı
### Example: Welcome Email for New Contacts
### Örnek: Yeni Kişiler için Hoş Geldiniz E-postası
**Goal**: Send a welcome email when a new person is added to the CRM.
**Amaç**: CRM'e yeni bir kişi eklendiğinde bir hoş geldiniz e-postası gönderin.
**Kurulum**:
1. **Create workflow**: Go to **Settings → Workflows** and click **+ New Workflow**
1. **İş akışı oluşturun**: **Ayarlar → İş Akışları** bölümüne gidin ve **+ Yeni İş Akışı**'na tıklayın
2. **Add trigger**: Select **Record is Created** → **People**
2. **Tetikleyici ekleyin**: **Kayıt Oluşturuldu** → **Kişiler** öğelerini seçin
3. **Add Send Email action**:
* Click **+** to add an action
* Select **Send Email**
* Configure the email:
3. **E-posta Gönder eylemini ekleyin**:
* Bir eylem eklemek için **+**'a tıklayın
* **E-posta Gönder**'i seçin
* E-postayı yapılandırın:
| Alan | Değer |
| ----------- | -------------------------------------- |
| **To** | `{{trigger.object.email}}` |
| **Subject** | `{{Your Company Name}}'e Hoş Geldiniz` |
| **Body** | `Hi {{trigger.object.firstName}}, ...` |
| Alan | Değer |
| --------- | ------------------------------------------- |
| **Kime** | `{{trigger.object.email}}` |
| **Konu** | `{{Your Company Name}}'e Hoş Geldiniz` |
| **Gövde** | `Merhaba {{trigger.object.firstName}}, ...` |
4. **Test and activate**: Test with a sample record, then activate
4. **Test edin ve etkinleştirin**: Örnek bir kayıtla test edin, ardından etkinleştirin
## Using Variables in Emails
## E-postalarda Değişkenlerin Kullanımı
Reference data from previous steps using `{{variable}}` syntax:
`{{variable}}` söz dizimini kullanarak önceki adımlardaki verilere başvurun:
```text
Hi {{trigger.object.firstName}},
Merhaba {{trigger.object.firstName}},
Thank you for connecting with us!
Bizimle iletişime geçtiğiniz için teşekkür ederiz!
Your company, {{trigger.object.company.name}}, is now in our system.
Şirketiniz, {{trigger.object.company.name}}, artık sistemimizde.
Best regards,
The Team
Saygılarımızla,
Ekip
```
### Available Variables from Triggers
### Tetikleyicilerden Kullanılabilir Değişkenler
| Tetikleyici Türü | Common Variables |
| -------------------------- | -------------------------------------- |
| **Record Created/Updated** | `{{trigger.object.fieldName}}` |
| **Manual** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
| Tetikleyici Türü | Yaygın Değişkenler |
| --------------------------------- | -------------------------------------- |
| **Kayıt Oluşturuldu/Güncellendi** | `{{trigger.object.fieldName}}` |
| **Manuel** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
## Advanced: Conditional Emails
## Gelişmiş: Koşullu E-postalar
### Example: Different Emails Based on Lead Source
### Örnek: Potansiyel Müşteri Kaynağına Göre Farklı E-postalar
**Goal**: Send different welcome emails based on where the lead came from.
**Amaç**: Potansiyel müşterinin geldiği kaynağa göre farklı hoş geldiniz e-postaları gönderin.
**Kurulum**:
1. **Trigger**: Record is Created (People)
1. **Tetikleyici**: Kayıt Oluşturuldu (Kişiler)
2. **Add Filter action**:
* Condition: `{{trigger.object.source}}` equals `"Website"`
* If true → continue to website welcome email
2. **Filtre eylemi ekleyin**:
* Koşul: `{{trigger.object.source}}` `"Website"` değerine eşittir
* Doğruysa → web sitesi hoş geldiniz e-postasıyla devam edin
3. **Branch for other sources**:
* Create parallel branches for different sources
* Each branch has its own Send Email action
3. **Diğer kaynaklar için dal**:
* Farklı kaynaklar için paralel dallar oluşturun
* Her dalın kendi E-posta Gönder eylemi vardır
## Sending Emails to Multiple Recipients
## Birden Fazla Alıcıya E-posta Gönderme
### Example: Notify Team When Deal Closes
### Örnek: Fırsat Kapandığında Ekibi Bilgilendirin
**Goal**: Email the sales rep and their manager when an opportunity is won.
**Amaç**: Bir fırsat kazanıldığında satış temsilcisine ve yöneticisine e-posta gönderin.
**Kurulum**:
1. **Trigger**: Record is Updated (Opportunities, Stage = "Closed Won")
1. **Tetikleyici**: Kayıt Güncellendi (Fırsatlar, Aşama = "Closed Won")
2. **Search Records**: Find the opportunity owner's manager
2. **Kayıtları Ara**: Fırsat sahibinin yöneticisini bulun
3. **Send Email #1**: To opportunity owner
* To: `{{trigger.object.owner.email}}`
* Subject: `Congratulations on closing {{trigger.object.name}}!`
3. **E-posta Gönder #1**: Fırsat sahibine
* Kime: `{{trigger.object.owner.email}}`
* Konu: `{{trigger.object.name}} fırsatını kapattığınız için tebrikler!`
4. **Send Email #2**: To manager
* To: `{{searchRecords.manager.email}}`
* Subject: `Deal Won: {{trigger.object.name}}`
4. **E-posta Gönder #2**: Yöneticiye
* Kime: `{{searchRecords.manager.email}}`
* Konu: `Fırsat Kazanıldı: {{trigger.object.name}}`
## Scheduled Follow-up Emails
## Zamanlanmış Takip E-postaları
### Example: Follow Up 3 Days After Meeting
### Örnek: Toplantıdan 3 Gün Sonra Takip
**Goal**: Send a follow-up email 3 days after a meeting is logged.
**Amaç**: Bir toplantı kaydedildikten 3 gün sonra bir takip e-postası gönderin.
**Kurulum**:
1. **Trigger**: Record is Created (Activities, Type = "Meeting")
1. **Tetikleyici**: Kayıt Oluşturuldu (Aktiviteler, Tür = "Toplantı")
2. **Delay action**: Wait 3 days
2. **Gecikme eylemi**: 3 gün bekleyin
3. **Send Email**:
* To: Meeting attendee
* Subject: Following up on our conversation
* Body: Reference meeting details from trigger
3. **E-posta Gönder**:
* Kime: Toplantı katılımcısı
* Konu: Görüşmemize ilişkin takip
* Gövde: Tetikleyiciden toplantı ayrıntılarına referans verin
## En İyi Uygulamalar
### Email Content
### E-posta İçeriği
* Keep subject lines concise and relevant
* Personalize with recipient's name
* Include a clear call to action
* Test emails before activating
* Konu satırlarını öz ve ilgili tutun
* Alıcının adıyla kişiselleştirin
* Açık bir harekete geçirici mesaj ekleyin
* Etkinleştirmeden önce e-postaları test edin
### Deliverability
### Teslim Edilebilirlik
* Don't send too many emails too quickly
* Use professional email signatures
* Avoid spam trigger words
* Ensure unsubscribe options for marketing emails
* Çok kısa sürede çok fazla e-posta göndermeyin
* Profesyonel e-posta imzaları kullanın
* Spam tetikleyici kelimelerden kaçının
* Pazarlama e-postalarında abonelikten çıkma seçeneklerinin bulunduğundan emin olun
### Sorun Giderme
* Verify email account is connected and active
* Check recipient email address is valid
* Review workflow runs for error messages
* Test with your own email address first
* E-posta hesabının bağlı ve aktif olduğunu doğrulayın
* Alıcının e-posta adresinin geçerli olduğunu kontrol edin
* Hata mesajları için iş akışı çalıştırmalarını gözden geçirin
* Önce kendi e-posta adresinizle test edin
<Note>
**Coming soon**: Email attachments will be available in Q1 2026.
**Yakında**: E-posta ekleri 2026'nın 1. çeyreğinde kullanılabilir olacak.
</Note>
## Related
## İlgili
* [Workflow Triggers](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/tr/user-guide/workflows/capabilities/workflow-actions)
* [İş Akışı Tetikleyicileri](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
* [İş Akışı Eylemleri](/l/tr/user-guide/workflows/capabilities/workflow-actions)
@@ -1,21 +1,21 @@
---
title: İş Akışı Aksiyonları
description: Learn about the actions available in Twenty workflows.
description: Twenty iş akışlarında kullanılabilen eylemler hakkında bilgi edinin.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## About Actions
## Eylemler Hakkında
Aksiyonlar, bir tetikleyici devreye girdiğinde neler olacağını tanımlar. You can chain multiple actions together to build complex automations.
Aksiyonlar, bir tetikleyici devreye girdiğinde neler olacağını tanımlar. Karmaşık otomasyonlar oluşturmak için birden fazla eylemi birbirine zincirleyebilirsiniz.
<Tip>
* Use the variable picker (click the `(x+)` icon) to browse available data from previous steps
* Hover over any input field to see which step a variable comes from — helpful when the same field (e.g., ID) exists in multiple previous steps
* Give each action a descriptive name for easier maintenance
* Önceki adımlardaki kullanılabilir verileri gözden geçirmek için değişken seçicisini kullanın (`(x+)` simgesine tıklayın)
* Bir değişkenin hangi adımdan geldiğini görmek için herhangi bir giriş alanının üzerine gelin — aynı alanın (örn., ID) birden çok önceki adımda bulunduğu durumlarda faydalıdır
* Bakımı kolaylaştırmak için her eyleme açıklayıcı bir ad verin
</Tip>
## Record Actions
## Kayıt Eylemleri
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
@@ -27,7 +27,7 @@ Seçilen bir nesneye yeni bir kayıt ekler.
* Hedef nesneyi seçin
* Gerekli ve isteğe bağlı alanları doldurun
* Use data from previous steps or input values manually to populate fields
* Alanları doldurmak için önceki adımlardan gelen verileri kullanın veya değerleri el ile girin
**Çıktı**: Yeni oluşturulan kayıt verileri, sonraki adımlarda kullanılmak üzere mevcuttur.
@@ -41,8 +41,8 @@ Seçilen bir nesnedeki mevcut bir kaydı değiştirir.
* Hedef nesneyi seçin
* Güncellenecek belirli kaydı seçin.
* You can either choose a fixed record, using the drop down menu displaying all available records.
* Or you can have the record dynamically selected, by designating a record found in a previous step, using the `(x+)`. You cannot search for the record based on different criteria at this stage. If you've not yet identified the record, add a `Search Record` step before this `Update Record` step.
* Tüm mevcut kayıtları gösteren açılır menüyü kullanarak sabit bir kayıt seçebilirsiniz.
* Veya `(x+)` kullanarak önceki bir adımda bulunan bir kaydı belirleyip kaydın dinamik olarak seçilmesini sağlayabilirsiniz. Bu aşamada kaydı farklı ölçütlere göre arayamazsınız. Kaydı henüz belirlemediyseniz, bu `Update Record` adımından önce bir `Search Record` adımı ekleyin.
* Değiştirilecek alanları seçin ve yeni değerler girin
**Çıktı**: Güncellenmiş kayıt verileri, sonraki adımlarda kullanılmak üzere mevcuttur.
@@ -71,25 +71,25 @@ Seçilen bir nesnede filtreleme koşulları kullanarak kayıt bulur.
**Çıktı**: Belirlenen filtre koşullarına uyan kayıtlar, sonraki adımlarda kullanılmak üzere döner.
<Note>
**Limit**: Search Records returns a maximum of **200 records**. If you need to process more, add specific filters to reduce results or use scheduled workflows to process in batches.
**Sınır**: Search Records en fazla **200 kayıt** döndürür. Daha fazlasını işlemeniz gerekiyorsa, sonuçları azaltmak için belirli filtreler ekleyin veya toplu olarak işlemek için zamanlanmış iş akışlarını kullanın.
</Note>
**Best Practice**: Use [branches](/l/tr/user-guide/workflows/capabilities/workflow-branches) after Search Records to handle "found" vs "not found" scenarios.
**En İyi Uygulama**: "bulundu" ve "bulunmadı" senaryolarını yönetmek için Search Records sonrasında [dallar](/l/tr/user-guide/workflows/capabilities/workflow-branches) kullanın.
### Upsert Record
### Kayıt Ekle/Güncelle
Creates a new record or updates an existing one based on matching criteria. This is useful when you're not sure if a record already exists.
Eşleştirme ölçütlerine göre yeni bir kayıt oluşturur veya mevcut bir kaydı günceller. Bir kaydın zaten var olup olmadığından emin olmadığınızda faydalıdır.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Yapılandırma**:
* Hedef nesneyi seçin
* Note which fields can be used for matching: email for People, domain for Companies, ID for any object, or any field marked as Unique. You'll need to populate at least one of these below.
* Fill out the field values. Do not forget to populate at least one of the unique identifiers.
* Eşleştirme için hangi alanların kullanılabileceğine dikkat edin: Kişiler için e-posta, Şirketler için alan adı (domain), herhangi bir nesne için ID veya Benzersiz olarak işaretlenmiş herhangi bir alan. Aşağıdakilerden en az birini doldurmanız gerekecek.
* Alan değerlerini doldurun. Benzersiz tanımlayıcılardan en az birini doldurmayı unutmayın.
<Note>
**Matching usually works even better when adding only one unique identifier.** For example, the screenshot below will match companies based on their domain. The ID is not necessarily needed.
**Yalnızca bir benzersiz tanımlayıcı eklemek, genellikle eşleştirmenin daha iyi çalışmasını sağlar.** Örneğin, aşağıdaki ekran görüntüsü şirketleri alan adlarına göre eşleştirecektir. ID mutlaka gerekli değildir.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />