i18n - docs translations (#17029)

Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
github-actions[bot]
2026-01-09 09:25:07 +01:00
committed by GitHub
parent aa574bacea
commit 020ab1f63a
59 changed files with 3056 additions and 3056 deletions
@@ -1,74 +1,74 @@
---
title: لوحات القيادة
description: Create and organize dashboards with tabs to visualize your CRM data.
description: أنشئ ونظّم لوحات المعلومات باستخدام علامات تبويب لتصوّر بيانات إدارة علاقات العملاء (CRM) الخاصة بك.
---
## نظرة عامة
Dashboards in Twenty are organized in a hierarchy: **Dashboards → Tabs → Widgets**. Each dashboard can contain multiple tabs, and each tab contains widgets (charts, numbers, iFrames).
تُنظَّم لوحات المعلومات في Twenty بشكل هرمي: **لوحات المعلومات → علامات التبويب → عناصر واجهة المستخدم**. يمكن أن تحتوي كل لوحة معلومات على عدة علامات تبويب، وتحتوي كل علامة تبويب على عناصر واجهة مستخدم (مخططات، أرقام، iFrames).
## Creating a Dashboard
## إنشاء لوحة معلومات
1. Go to **Dashboards** in the navigation
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Start adding tabs and widgets
1. انتقل إلى **لوحات المعلومات** في شريط التنقل
2. انقر **+ لوحة معلومات جديدة**
3. امنح لوحة المعلومات اسمًا
4. ابدأ بإضافة علامات تبويب وعناصر واجهة مستخدم
## Working with Tabs
## العمل مع علامات التبويب
Tabs help you organize your dashboard into logical sections.
تساعدك علامات التبويب على تنظيم لوحة المعلومات في أقسام منطقية.
### Creating Tabs
### إنشاء علامات تبويب
1. In edit mode, click **+ Add Tab**
2. Name your tab (e.g., "Pipeline Overview", "Team Performance")
3. Add widgets to the tab
1. في وضع التحرير، انقر **+ إضافة علامة تبويب**
2. قم بتسمية علامة التبويب (مثل: "نظرة عامة على خط المبيعات"، "أداء الفريق")
3. أضف عناصر واجهة مستخدم إلى علامة التبويب
### Duplicating Tabs
### تكرار علامات التبويب
1. Click on the tab you want to duplicate
2. Click the **Duplicate** button in the side panel
1. انقر على علامة التبويب التي تريد تكرارها
2. انقر على زر **تكرار** في اللوحة الجانبية
## Dashboard Layout
## تخطيط لوحة المعلومات
### Arranging Widgets
### ترتيب عناصر واجهة المستخدم
* Drag and drop to position
* Resize for emphasis
* Group related charts together
* اسحب وأفلت لتحديد الموضع
* غيّر الحجم لإبراز العناصر
* جمّع المخططات ذات الصلة معًا
### Duplicating a Dashboard
### تكرار لوحة معلومات
1. Exit edit mode (view mode only)
2. Open the command bar with **Cmd + K** (or **Ctrl + K** on Windows)
3. Select **Duplicate dashboard**
1. اخرج من وضع التحرير (وضع العرض فقط)
2. افتح شريط الأوامر باستخدام **Cmd + K** (أو **Ctrl + K** على Windows)
3. اختر **تكرار لوحة المعلومات**
### أفضل الممارسات
* **Logical flow**: Arrange from overview to detail
* **Visual hierarchy**: Larger charts for key metrics
* **Consistent styling**: Use matching colors and fonts
* **التسلسل المنطقي**: رتّب من النظرة العامة إلى التفاصيل
* **التسلسل البصري**: مخططات أكبر للمقاييس الرئيسية
* **تنسيق متّسق**: استخدم ألوانًا وخطوطًا متطابقة
## Visibility & Access
## الظهور والوصول
### Dashboard Visibility
### ظهور لوحة المعلومات
Dashboards are visible to everyone who has access to your Twenty workspace. There is no private dashboard option at the moment.
تكون لوحات المعلومات مرئية لجميع من لديهم حق الوصول إلى مساحة العمل الخاصة بك على Twenty. لا يتوفر خيار لوحة معلومات خاصة في الوقت الحالي.
### المفضلات
You can add dashboards to your favorites for quick access. This is a personal setting—your favorites are not visible to other users.
يمكنك إضافة لوحات المعلومات إلى المفضلة للوصول السريع. هذا إعداد شخصي—المفضلة الخاصة بك غير مرئية للمستخدمين الآخرين.
To add a dashboard to favorites, open the dashboard and click the star icon.
لإضافة لوحة معلومات إلى المفضلة، افتح لوحة المعلومات وانقر على أيقونة النجمة.
### Timezone Behavior
### سلوك المنطقة الزمنية
Dashboards currently display data based on the timezone of the user viewing them. This means the same dashboard may show different metrics for team members in different regions (e.g., APAC vs. US).
تعرض لوحات المعلومات حاليًا البيانات استنادًا إلى المنطقة الزمنية للمستخدم الذي يشاهدها. يعني هذا أن لوحة المعلومات نفسها قد تعرض مقاييس مختلفة لأعضاء الفريق في مناطق مختلفة (مثل: APAC مقابل US).
<Note>
**Coming soon**: We will add the ability to set a specific timezone for a dashboard, so all users see consistent data regardless of their location.
**قريبًا**: سنضيف إمكانية تعيين منطقة زمنية محددة للوحة المعلومات، بحيث يرى جميع المستخدمين بيانات متسقة بغض النظر عن مواقعهم.
</Note>
<Note>
**Coming soon**: Dashboard-level filters will allow you to apply filters across all widgets at once, making it faster to explore your data.
**قريبًا**: ستتيح عوامل التصفية على مستوى لوحة المعلومات تطبيق عوامل التصفية عبر جميع عناصر واجهة المستخدم دفعة واحدة، مما يجعل استكشاف بياناتك أسرع.
</Note>
@@ -1,94 +1,94 @@
---
title: Import Relations Between Objects
description: Import relationships between records via CSV.
title: استيراد العلاقات بين الكائنات
description: استيراد العلاقات بين السجلات عبر CSV.
---
## نظرة عامة
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
يدعم Twenty استيراد العلاقات بين الكائنات أثناء استيراد CSV. يتيح لك هذا ربط السجلات (مثلًا، إرفاق الأشخاص بالشركات) كجزء من ترحيل البيانات.
<Note>**Currently supported for import**: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
<Note>**مدعوم حاليًا للاستيراد**: علاقات واحد إلى متعدد تشير إلى نوع كائن واحد على كل جانب (مثلًا، الأشخاص → الشركات). العلاقات التي تشير إلى أنواع كائنات متعددة غير مدعومة في الاستيراد/التصدير بعد.</Note>
## How Relations Work in Twenty
## كيف تعمل العلاقات في Twenty
### One to Many / Many to One
### واحد إلى متعدد / متعدد إلى واحد
Twenty supports standard relations where one record links to many others:
يدعم Twenty العلاقات القياسية حيث يرتبط سجل واحد بعدّة سجلات أخرى:
* **One Company → Many People**: A company can have multiple employees, but each person belongs to one company
* **One Company → Many Opportunities**: A company can have multiple deals, but each opportunity belongs to one company
* **شركة واحدة → العديد من الأشخاص**: يمكن أن تضم الشركة عدّة موظفين، لكن كل شخص ينتسب إلى شركة واحدة
* **شركة واحدة → العديد من الفرص**: يمكن أن تحتوي الشركة على عدّة صفقات، لكن كل فرصة تتبع شركة واحدة
### Relations That Can Point to Multiple Object Types
### علاقات يمكن أن تشير إلى أنواع كائنات متعددة
Some relations can connect to different types of objects. This works in two ways:
يمكن لبعض العلاقات الاتصال بأنواع مختلفة من الكائنات. يعمل هذا بطريقتين:
**Pattern 1: Many records linking to one record each from different object types**
**النمط 1: سجلات كثيرة يرتبط كلٌ منها بسجل واحد من أنواع كائنات مختلفة**
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
يمكن إرفاق عدة ملاحظات أو مهام أو أنشطة، لكلٍ منها، بأنواع كائنات متعددة في الوقت نفسه:
* **Notes** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Tasks** can be linked to one Person, one Company, and one Opportunity simultaneously
* **الملاحظات** يمكن ربطها بشخص واحد وشركة واحدة وفرصة واحدة في الوقت نفسه
* **المهام** يمكن ربطها بشخص واحد وشركة واحدة وفرصة واحدة في الوقت نفسه
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
هنا تكون الملاحظات/المهام على جانب "المتعدد". يرتبط كلٌ منها بسجل واحد لكل نوع كائن.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Pattern 2: One record receiving links from many records of different object types**
**النمط 2: سجل واحد يستقبل روابط من سجلات عديدة لأنواع كائنات مختلفة**
A Project can receive links from multiple records across different object types:
يمكن لمشروع أن يستقبل روابط من سجلات متعددة عبر أنواع كائنات مختلفة:
* **A Project** can have many People linked to it, many Companies linked to it, and many Notes attached to it
* **مشروع** يمكن أن يكون مرتبطًا به العديد من الأشخاص، والعديد من الشركات، والعديد من الملاحظات المرفقة به
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
هنا يكون المشروع على جانب "الواحد". يمكن لعدّة سجلات من كائنات مختلفة أن ترتبط جميعها بالمشروع نفسه.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.
**قيد في الاستيراد/التصدير**: العلاقات التي تشير إلى أنواع كائنات متعددة (مثل الملاحظات → الأشخاص/الشركات/الفرص) **غير مدعومة بعد** في استيراد أو تصدير CSV.
* **Import**: Only one-to-many relations pointing to a single object type on each side can be imported
* **Export**: Columns for relations pointing to multiple object types are currently left empty
* **الاستيراد**: يمكن استيراد علاقات واحد إلى متعدد فقط التي تشير إلى نوع كائن واحد على كل جانب
* **التصدير**: تُترك الأعمدة الخاصة بالعلاقات التي تشير إلى أنواع كائنات متعددة فارغة حاليًا
This is on our roadmap.
هذا على خارطة الطريق لدينا.
</Warning>
### What's Not Supported Today
### ما ليس مدعومًا اليوم
**Many to Many relations** are not yet available. For example, you cannot currently create a relation where:
**علاقات متعدد إلى متعدد** غير متاحة بعد. على سبيل المثال، لا يمكنك حاليًا إنشاء علاقة حيث:
* Many People are linked to many Projects
* يرتبط العديد من الأشخاص بالعديد من المشاريع
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>تم التخطيط لعلاقات متعدد إلى متعدد للنصف الأول من 2026.</Note>
## Linking Records During Import
## ربط السجلات أثناء الاستيراد
<Note>**Reminder**: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
<Note>**تذكير**: يمكن استيراد علاقات واحد إلى متعدد فقط التي تشير إلى نوع كائن واحد (مثلًا، الأشخاص → الشركات). العلاقات التي تشير إلى أنواع كائنات متعددة (مثل الملاحظات → الأشخاص/الشركات/الفرص) غير مدعومة بعد.</Note>
### Step 1: Identify the "One" and "Many" Sides
### الخطوة 1: تحديد جانبي "الواحد" و"المتعدد"
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
أولًا، حدّد أي الكائنات على جانب "الواحد" وأيها على جانب "المتعدد" في العلاقة.
**Example**:
**مثال**:
* **Company** is the "one" side (one company has many employees)
* **People** is the "many" side (each person belongs to one company)
* **الشركة** هي جانب "الواحد" (شركة واحدة لديها العديد من الموظفين)
* **الأشخاص** على جانب "المتعدد" (ينتمي كل شخص إلى شركة واحدة)
### Step 2: Ensure the "One" Side Records Exist
### الخطوة 2: تأكّد من وجود سجلات جانب "الواحد"
Before importing the "many" side, the "one" side records must already exist in Twenty.
قبل استيراد جانب "المتعدد"، يجب أن تكون سجلات جانب "الواحد" موجودة مسبقًا في Twenty.
* Import or create the "one" side records first (e.g., Companies)
* Validate their unique identifier. This can be:
* The `id` (Twenty's UUID)
* A field set as unique (e.g., `domain` for Companies, or an external ID from your previous system)
* استورد أو أنشئ سجلات جانب "الواحد" أولًا (مثلًا، الشركات)
* تحقّق من مُعرّفهم الفريد. يمكن أن يكون ذلك:
* حقل `id` (UUID الخاص بـ Twenty)
* حقل مُعيّن كفريد (مثلًا، `domain` للشركات، أو مُعرّف خارجي من نظامك السابق)
<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
<Warning>سيفشل الاستيراد إذا تمت الإشارة إلى سجل غير موجود.</Warning>
### Step 3: Prepare Your CSV File
### الخطوة 3: جهّز ملف CSV الخاص بك
Add a column in your "many" side CSV file that references the "one" side record.
أضِف عمودًا في ملف CSV الخاص بجانب "المتعدد" يُشير إلى سجل جانب "الواحد".
**Example**: For a People CSV file linking to Companies:
**مثال**: لملف CSV للأشخاص يربط بالشركات:
```
firstName,lastName,email,companyDomain
@@ -96,53 +96,53 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important**:
**مهم**:
* The value must **exactly match** the unique field on the Company record
* For domains, use the **Domain URL** (e.g., `https://acme.com`), not the Domain Label
* Map only **one** unique identifier per relation: this leads to a smoother import
* يجب أن **يطابق تمامًا** قيمة الحقل الفريد في سجل الشركة
* بالنسبة للنطاقات، استخدم **عنوان النطاق (URL)** (مثلًا، `https://acme.com`)، وليس تسمية النطاق
* قم بتعيين **مُعرّف فريد واحد** فقط لكل علاقة: فهذا يؤدي إلى عملية استيراد أكثر سلاسة
### Step 4: Ensure the Relation Field Exists
### الخطوة 4: تأكّد من وجود حقل العلاقة
Before uploading your file, make sure the relation field exists between your objects.
قبل رفع ملفك، تأكّد من وجود حقل العلاقة بين كائناتك.
If it doesn't exist:
إذا لم يكن موجودًا:
1. Go to **Settings → Data Model**
2. Select your object (e.g., People)
3. Create a relation field pointing to the target object (e.g., Company)
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن الخاص بك (مثلًا، الأشخاص)
3. أنشئ حقل علاقة يشير إلى الكائن الهدف (مثلًا، الشركة)
### Step 5: Upload and Map the Relation
### الخطوة 5: ارفع الملف وعيّن العلاقة
1. Upload your CSV file via the import UI
2. In the field mapping step, find your relation column (e.g., `companyDomain`)
3. Map it to the relation field (e.g., Company)
4. Twenty will automatically link each record to the matching parent
1. ارفع ملف CSV عبر واجهة الاستيراد
2. في خطوة تعيين الحقول، اعثر على عمود العلاقة الخاص بك (مثلًا، `companyDomain`)
3. عيّنه على حقل العلاقة (مثلًا، الشركة)
4. سيقوم Twenty بربط كل سجل تلقائيًا بالأصل المطابق
### Available Unique Fields for Relations
### الحقول الفريدة المتاحة للعلاقات
| كائن | Unique Fields Available |
| ------------------------------------- | --------------------------------------- |
| **الشركات** | `id`, `domain`, any custom unique field |
| **People** | `id`, `email`, any custom unique field |
| **أعضاء مساحة العمل** | `id`, `email` (not name) |
| **Other standard and custom objects** | `id`, any field marked as unique |
| كائن | الحقول الفريدة المتاحة |
| ------------------------------ | -------------------------------- |
| **الشركات** | `id`، `domain`، أي حقل فريد مخصص |
| **الأشخاص** | `id`، `email`، أي حقل فريد مخصص |
| **أعضاء مساحة العمل** | `id`، `email` (ليس الاسم) |
| **كائنات قياسية ومخصّصة أخرى** | `id`، أي حقل مُعلَّم كفريد |
<Note>**Linking to Workspace Members**: When the relation points to Workspace Members (your team logging into Twenty), reference them by their **email address**, not their name.</Note>
<Note>**الربط بأعضاء مساحة العمل**: عندما تشير العلاقة إلى أعضاء مساحة العمل (فريقك الذي يسجّل الدخول إلى Twenty)، فقم بالإشارة إليهم عبر **عنوان البريد الإلكتروني**، وليس الاسم.</Note>
<Note>We recommend using `domain` for Companies and `email` for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>نوصي باستخدام `domain` للشركات و`email` للأشخاص، إذ إنها مقروءة بشريًا وسهلة الإدارة في جداول البيانات.</Note>
<Note>**Reminder**: Soft-deleted records (visible under Command Menu → See deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See [Uniqueness Constraints](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints) for more details.</Note>
<Note>**تذكير**: السجلات المحذوفة حذفًا غير نهائي (مرئية ضمن Command Menu → See deleted records) تُحتسب ضمن معايير التفرّد. إذا قمت باستيراد سجل بالقيمة الفريدة نفسها لسجل محذوف، فسيتم استعادة السجل المحذوف. راجع [قيود التفرّد](/l/ar/user-guide/data-migration/capabilities/uniqueness-constraints) لمزيد من التفاصيل.</Note>
## Import Order Rule
## قاعدة ترتيب الاستيراد
<Warning>
**Always import the "one" side first!**
**احرص دائمًا على استيراد جانب "الواحد" أولًا!**
1. **Companies** first (no dependencies)
2. **People** second (linked to Companies)
3. **Opportunities** third (linked to Companies/People)
4. **Custom objects** following their dependencies
1. **الشركات** أولًا (من دون تبعيات)
2. **الأشخاص** ثانيًا (مرتبطون بالشركات)
3. **الفرص** ثالثًا (مرتبطة بالشركات/الأشخاص)
4. **الكائنات المخصّصة** وفقًا لتبعياتها
The parent record must exist before you can reference it.
يجب أن يكون السجل الأصل موجودًا قبل أن تتمكّن من الإشارة إليه.
</Warning>
@@ -1,71 +1,71 @@
---
title: Import Companies via CSV
description: Complete step-by-step guide to importing companies into Twenty.
title: استيراد الشركات عبر CSV
description: دليل كامل خطوة بخطوة لاستيراد الشركات إلى Twenty.
---
## نظرة عامة
This guide walks you through importing your companies into Twenty. **Companies should be imported first** because People and Opportunities link to Companies.
يرشدك هذا الدليل خلال عملية استيراد شركاتك إلى Twenty. **يجب استيراد الشركات أولًا** لأن الأشخاص والفرص ترتبط بالشركات.
## قبل أن تبدأ
### Prerequisites Checklist
### قائمة المتطلبات المسبقة
<Check>
Your file is CSV, XLSX, or XLS format
يجب أن يكون ملفك بتنسيق CSV أو XLSX أو XLS
</Check>
<Check>
File has fewer than 10,000 records
يحتوي الملف على أقل من 10,000 سجل
</Check>
<Check>
No duplicate domains in your file
لا توجد نطاقات مكررة في ملفك
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
جميع الحقول المخصصة موجودة في **Settings → Data Model**
</Check>
<Note>
Need to import more than 10,000 companies? Split into multiple files or use the [API import](/l/ar/user-guide/data-migration/how-tos/import-data-via-api).
هل تحتاج إلى استيراد أكثر من 10,000 شركة؟ قسّم إلى ملفات متعددة أو استخدم [استيراد عبر API](/l/ar/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Step 1: Prepare Your Company Data
## الخطوة 1: جهّز بيانات شركتك
### Required and Recommended Fields
### الحقول المطلوبة والمُوصى بها
| الحقل | Required? | التنسيق | الملاحظات |
| ----------------- | ----------- | -------------------- | ------------------------ |
| **Name** | Recommended | نص | Company display name |
| **Domain** | Recommended | `https://domain.com` | Unique identifier |
| **Address** | Optional | Multiple columns | See below |
| **Employees** | Optional | رقم | Employee count |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| الحقل | هل هو مطلوب؟ | التنسيق | الملاحظات |
| ------------------ | ------------ | -------------------- | -------------------------------- |
| **Name** | مُوصى به | نص | اسم العرض للشركة |
| **النطاق** | مُوصى به | `https://domain.com` | معرّف فريد |
| **العنوان** | اختياري | أعمدة متعددة | انظر أدناه |
| **الموظفون** | اختياري | رقم | عدد الموظفين |
| **الحقول المخصصة** | اختياري | يختلف | يجب أن تكون موجودة في Data Model |
### Domain Format
### تنسيق النطاق
<Warning>
**Use the format `https://domain.com` for domains.**
**استخدم التنسيق `https://domain.com` للنطاقات.**
This matches the format used when Companies are auto-created from email/calendar sync, preventing duplicates later.
هذا يطابق التنسيق المستخدم عند إنشاء الشركات تلقائيًا من مزامنة البريد الإلكتروني/التقويم، مما يمنع التكرارات لاحقًا.
</Warning>
**Domain columns:**
**أعمدة النطاق:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Address Format
### تنسيق العنوان
Address is a nested field with multiple columns:
العنوان حقل متداخل يتضمن أعمدة متعددة:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Sample CSV Structure
### بنية CSV نموذجية
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
@@ -74,112 +74,112 @@ Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Pro tip:** Click **Download sample file** during import to see the exact column names Twenty expects.
**نصيحة احترافية:** انقر **Download sample file** أثناء الاستيراد للاطلاع على أسماء الأعمدة الدقيقة التي تتوقعها Twenty.
</Note>
## Step 2: Access the Import Feature
## الخطوة 2: الوصول إلى ميزة الاستيراد
**Option 1: From the Companies View**
**الخيار 1: من عرض الشركات**
1. Navigate to **Companies** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. انتقل إلى **Companies** في الشريط الجانبي الأيسر
2. انقر على أيقونة **⋮** في أعلى اليمين
3. اختر **Import records**
**Option 2: Using Command Menu**
**الخيار 2: باستخدام قائمة الأوامر**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **Companies**
1. اضغط `Cmd + K` (Mac) أو `Ctrl + K` (Windows)
2. اكتب "import"
3. اختر **Import records**
4. اختر **Companies**
## Step 3: Upload Your File
## الخطوة 3: حمّل ملفك
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. انقر فوق **Select file**
2. اختر ملف CSV أو XLSX أو XLS الخاص بك
3. انتظر حتى تقوم Twenty بتحليل ملفك
## Step 4: Map Your Columns
## الخطوة 4: طابق أعمدتك
Twenty automatically tries to match your columns to fields. Review and adjust:
يحاول Twenty تلقائيًا مطابقة أعمدتك مع الحقول. راجع وعدّل:
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. **تحقق من المطابقات التلقائية** — تأكد من أنها صحيحة
2. **أصلح المطابقات غير الصحيحة** — انقر على القائمة المنسدلة لاختيار الحقل الصحيح
3. **تخطَّ الأعمدة** — اختر **Do not map** للأعمدة التي لا تريد استيرادها
### Important Mapping Rules
### قواعد مطابقة مهمة
* **Domain**: Map to **Domain / Domain URL** (not Domain Label)
* **Address**: Map each part to its specific column (City, State, etc.)
* **Select fields**: Values must match existing options (or you'll map them in the next step)
* **النطاق**: طابق مع **Domain / Domain URL** (وليس Domain Label)
* **العنوان**: طابق كل جزء مع العمود المحدد له (المدينة، الولاية، إلخ.)
* **حقول الاختيار**: يجب أن تطابق القيم الخيارات الموجودة (أو ستقوم بمطابقتها في الخطوة التالية)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Step 5: Map Select Field Values
## الخطوة 5: تعيين قيم حقل الاختيار
If you have Select or Multi-Select fields:
إذا كانت لديك حقول اختيار أو اختيار متعدد:
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**، وليس تسميات العرض. تحقّق من **Settings → Data Model** → فعِّل **Advanced mode** لمشاهدة أسماء 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 Company Import Errors
### أخطاء شائعة عند استيراد الشركات
| خطأ | Cause | Solution |
| -------------------------- | ------------------------------- | ------------------------------------------ |
| **Duplicate domain** | Domain already exists in Twenty | Remove from file or update existing record |
| **Invalid domain format** | Wrong format | Use `https://domain.com` |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| خطأ | السبب | الحل |
| ----------------------- | ----------------------------- | ------------------------------------ |
| **نطاق مكرر** | النطاق موجود مسبقًا في Twenty | أزِل من الملف أو حدِّث السجل الموجود |
| **تنسيق نطاق غير صالح** | تنسيق غير صحيح | استخدم `https://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
1. راجِع ملخص الاستيراد
2. انقر على **تأكيد** للاستيراد
3. انتظر حتى يكتمل الاستيراد
4. تحقق بمراجعة عدد قليل من السجلات
## After Importing Companies
## بعد استيراد الشركات
Now you can import records that link to Companies:
يمكنك الآن استيراد السجلات التي ترتبط بالشركات:
1. **[Import People](/l/ar/user-guide/data-migration/how-tos/import-contacts-via-csv)** — link them to Companies using the domain
2. **Import Opportunities** — link them to Companies
3. **Verify the import** — spot-check a few records to ensure data is correct
1. **[استيراد الأشخاص](/l/ar/user-guide/data-migration/how-tos/import-contacts-via-csv)** — اربطهم بالشركات باستخدام النطاق
2. **استورد الفرص** — اربطها بالشركات
3. **تحقق من الاستيراد** — افحص عينة من السجلات للتأكد من أن البيانات صحيحة
## Updating Existing Companies
## تحديث الشركات الموجودة
To update companies instead of creating new ones:
لتحديث الشركات بدلًا من إنشاء شركات جديدة:
1. Include the `domain` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing companies are updated; new ones are created
1. ضمّن عمود `domain` أو `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 Companies have the same domain?">
Domain is a unique identifier in Twenty. This prevents duplicate companies and ensures email sync correctly links emails to the right company.
<Accordion title="لماذا لا يمكن لشركتين أن تمتلكا النطاق نفسه؟">
النطاق معرّف فريد في Twenty. هذا يمنع تكرار الشركات ويضمن أن مزامنة البريد الإلكتروني تربط الرسائل بالشركة الصحيحة على نحو صحيح.
</Accordion>
<Accordion title="What if I have companies without a domain?">
You can leave the domain empty. However, we recommend adding domains when possible for better data quality and automatic email linking.
<Accordion title="ماذا لو كانت لديّ شركات بلا نطاق؟">
يمكنك ترك النطاق فارغًا. ومع ذلك، نوصي بإضافة النطاقات عندما يكون ذلك ممكنًا لتحسين جودة البيانات والربط التلقائي للبريد الإلكتروني.
</Accordion>
<Accordion title="Can I import companies without any People linked?">
<Accordion title="هل يمكنني استيراد شركات دون ربط أي أشخاص بها؟">
نعم! You can import companies first, then import People later and link them using the company domain.
</Accordion>
@@ -39,23 +39,23 @@ description: اعرض مهامك والمواعيد النهائية على تق
* **مهامي**: تصفية حسب Assignee = Me
* **هذا الأسبوع**: تصفية حسب Due Date = This week
* **Overdue**: Filter by Due Date < Today, Status ≠ Done
* **متأخر**: التصفية حسب تاريخ الاستحقاق < اليوم، الحالة ≠ مكتمل
## Other Calendar Use Cases
## حالات استخدام أخرى للتقويم
| كائن | Date Field | Purpose |
| ------------- | ---------- | ------------------------- |
| الفرص | Close Date | Track expected closes |
| Custom Events | Event Date | Plan activities |
| Projects | Deadline | Monitor project timelines |
| كائن | حقل التاريخ | الغرض |
| --------------- | -------------- | ------------------------------- |
| الفرص | تاريخ الإغلاق | تتبع عمليات الإغلاق المتوقعة |
| الأحداث المخصصة | تاريخ الحدث | التخطيط للأنشطة |
| المشاريع | الموعد النهائي | مراقبة الجداول الزمنية للمشاريع |
## Tips
## نصائح
* **Review weekly**: Start each week by checking your calendar view
* **Combine with table view**: Use calendar for overview, table for details
* **Set visibility**: Keep personal task calendars as Unlisted
* **راجِع أسبوعياً**: ابدأ كل أسبوع بالتحقق من عرض التقويم
* **اجمعه مع عرض الجدول**: استخدم التقويم للعرض العام، والجدول للتفاصيل
* **عيّن مستوى الرؤية**: اجعل تقاويم المهام الشخصية غير مدرجة
## Related
## ذات صلة
* [Calendar View](/l/ar/user-guide/views-pipelines/capabilities/calendar-view) — all calendar features
* [Filters and Sorting](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — filter your calendar
* [عرض التقويم](/l/ar/user-guide/views-pipelines/capabilities/calendar-view) — جميع ميزات التقويم
* [عوامل التصفية والفرز](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — قم بتصفية تقويمك
@@ -1,31 +1,31 @@
---
title: Bring Product Data into Twenty
description: Sync product catalog data from a data warehouse into your CRM on a schedule.
title: جلب بيانات المنتج إلى Twenty
description: زامِن بيانات كتالوج المنتجات من مستودع بيانات إلى نظام إدارة علاقات العملاء (CRM) لديك وفق جدول زمني.
---
Use this pattern to keep Twenty in sync with product data from your data warehouse (e.g., Snowflake, BigQuery, PostgreSQL).
استخدم هذا النمط للحفاظ على مزامنة Twenty مع بيانات المنتجات من مستودع البيانات لديك (مثل Snowflake وBigQuery وPostgreSQL).
## Workflow Structure
## بنية سير العمل
1. **Trigger**: On a Schedule
2. **Code**: Query your data warehouse
3. **Code** (optional): Format data as array
4. **Iterator**: Loop through each product
5. **Upsert Record**: Create or update in Twenty
1. **المحفّز**: وفق جدول زمني
2. **Code**: الاستعلام عن مستودع البيانات لديك
3. **Code** (اختياري): تنسيق البيانات كمصفوفة
4. **Iterator**: التكرار عبر كل منتج
5. **Upsert Record**: أنشئ أو حدّث في Twenty
<img src="/images/user-guide/workflows/create_users_workflow.png" style={{width:'100%'}} />
## Step 1: Schedule the Trigger
## الخطوة 1: جدولة المُحفّز
Set the workflow to run at a frequency matching your data freshness needs:
اضبط سير العمل ليعمل بتواتر يتوافق مع احتياجاتك من حداثة البيانات:
* Every 5 minutes for near real-time sync
* Every hour for less critical data
* Daily for batch updates
* كل 5 دقائق لمزامنة شبه فورية
* كل ساعة للبيانات الأقل أهمية
* يوميًا للتحديثات الدفعية
## Step 2: Query Your Data Warehouse
## الخطوة 2: الاستعلام عن مستودع البيانات لديك
Add a **Code** action to fetch recent data:
أضِف إجراء **Code** لجلب البيانات الحديثة:
```javascript
export const main = async () => {
@@ -54,14 +54,14 @@ export const main = async () => {
```
<Tip>
Filter by `updated_at >= last X minutes` to retrieve only recently changed records. This keeps the sync efficient.
قم بالتصفية حسب `updated_at >= last X minutes` لاسترجاع السجلات التي تغيّرت حديثًا فقط. هذا يحافظ على كفاءة المزامنة.
</Tip>
## Step 3: Format Data (Optional)
## الخطوة 3: تنسيق البيانات (اختياري)
If your warehouse returns data in a format that needs transformation, add another **Code** action. Common transformations include type conversions, field renaming, and data cleanup.
إذا كان مستودعك يُرجع البيانات بتنسيق يحتاج إلى تحويل، فأضف إجراء **Code** آخر. تشمل التحويلات الشائعة تحويل الأنواع، وإعادة تسمية الحقول، وتنظيف البيانات.
### Example: User Data with Boolean and Status Fields
### مثال: بيانات المستخدم مع حقول منطقية وحقول الحالة
```javascript
export const main = async (params: {
@@ -86,7 +86,7 @@ export const main = async (params: {
};
```
### Example: Product Data with Type Conversions
### مثال: بيانات المنتج مع تحويلات الأنواع
```javascript
export const main = async (params: { products: any }) => {
@@ -107,7 +107,7 @@ export const main = async (params: { products: any }) => {
};
```
### Example: Date and Currency Formatting
### مثال: تنسيق التاريخ والعملة
```javascript
export const main = async (params: { deals: any }) => {
@@ -131,52 +131,52 @@ export const main = async (params: { deals: any }) => {
};
```
### Common Transformations
### التحويلات الشائعة
| Source Format | Target Format | كود |
| تنسيق المصدر | تنسيق الهدف | كود |
| -------------------- | ---------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | ISO date | `new Date(v * 1000).toISOString()` |
| `1704067200` (Unix) | تاريخ ISO | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
## Step 4: Iterate Through Products
## الخطوة 4: التكرار عبر المنتجات
Add an **Iterator** action:
أضِف إجراء **Iterator**:
* Input: `{{code.products}}`
* المدخل: `{{code.products}}`
This loops through each product in the array.
يقوم هذا بالتكرار عبر كل منتج في المصفوفة.
## Step 5: Upsert Each Record
## الخطوة 5: إجراء Upsert لكل سجل
Inside the iterator, add an **Upsert Record** action:
داخل المُكرِّر، أضف إجراء **Upsert Record**:
| Setting | القيمة |
| ------------ | -------------------------------------- |
| **Object** | Your custom Product object |
| **Match by** | External ID or SKU (unique identifier) |
| **Name** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Price** | `{{iterator.item.price}}` |
| الإعداد | القيمة |
| ---------------- | ------------------------------------ |
| **الكائن** | كائن المنتج المخصص لديك |
| **المطابقة حسب** | المعرّف الخارجي أو SKU (مُعرّف فريد) |
| **الاسم** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **السعر** | `{{iterator.item.price}}` |
<Tip>
Use **Upsert** (update or create) instead of building separate branches for create vs. update. It's faster to build and easier to debug.
استخدم **Upsert** (تحديث أو إنشاء) بدلًا من إنشاء فروع منفصلة للإنشاء مقابل التحديث. إنه أسرع في الإنشاء وأسهل في استكشاف الأخطاء وإصلاحها.
</Tip>
## Example Use Cases
## أمثلة لحالات الاستخدام
| المصدر | بيانات |
| ----------------------- | ----------------------------------- |
| **ERP system** | Product catalog, pricing, inventory |
| **E-commerce platform** | Orders, customers, product updates |
| **Data warehouse** | Aggregated metrics, enriched data |
| **Inventory system** | Stock levels, reorder alerts |
| المصدر | بيانات |
| ---------------------------------- | ------------------------------------ |
| **نظام تخطيط موارد المؤسسة (ERP)** | كتالوج المنتجات، التسعير، المخزون |
| **منصة التجارة الإلكترونية** | الطلبات، العملاء، تحديثات المنتجات |
| **مستودع البيانات** | مقاييس مجمّعة، بيانات مُثرَاة |
| **نظام إدارة المخزون** | مستويات المخزون، تنبيهات إعادة الطلب |
## Related
## ذات صلة
* [Workflow Triggers](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ar/user-guide/workflows/capabilities/workflow-actions)
* [Handle Arrays in Code Actions](/l/ar/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
* [مشغلات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
* [إجراءات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-actions)
* [التعامل مع المصفوفات في إجراءات Code](/l/ar/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,6 +1,6 @@
---
title: سير العمل
description: Learn how to build automations in Twenty.
description: تعرّف على كيفية إنشاء عمليات الأتمتة في Twenty.
image: /images/user-guide/workflows/workflow.png
---
@@ -21,50 +21,50 @@ image: /images/user-guide/workflows/workflow.png
1. **الأتمتة الداخلية لتسهيل العمل اليومي لفريقك**: قلل من كمية الإدخالات اليدوية والمهام المتكررة التي تبطئ فريقك.
2. **إدخال البيانات في Twenty وخارجها**: اربط Twenty من خلال النداءات البرمجية (API) وإشعارات الويب (webhooks) بقاعدة البيانات الخاصة بك والأدوات الأخرى.
## Building Your First Workflow
## إنشاء سير العمل الأول لديك
### Step 1: Create a New Workflow
### الخطوة 1: إنشاء سير عمل جديد
1. Go to **Workflows** accessible below the other objects
2. Click **+ New Record**
3. Give your workflow a name
1. انتقل إلى **سير العمل** المتاح أسفل الكائنات الأخرى
2. انقر **+ سجل جديد**
3. امنح سير العمل اسمًا
### Step 2: Add a Trigger
### الخطوة 2: إضافة مشغل
Every workflow starts with a trigger. Choose from:
يبدأ كل سير عمل بمشغل. اختر مما يلي:
* **Record events**: When a record is created, updated, or deleted
* **Schedule**: Run at specific times (daily, weekly, etc.)
* **Manual**: Triggered by a user action
* **Webhook**: Triggered by a webhook
* **أحداث السجل**: عند إنشاء سجل أو تحديثه أو حذفه
* **الجدولة**: التشغيل في أوقات محددة (يوميًا، أسبوعيًا، إلخ.)
* **يدوي**: يتم تشغيله بفعل من المستخدم
* **ويب هوك**: يتم تشغيله بواسطة ويب هوك
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
### Step 3: Add Actions
### الخطوة 3: إضافة إجراءات
After your trigger, add one or more actions:
بعد المشغل، أضف إجراءً واحدًا أو أكثر:
* **Create Record**: Add new records to any object
* **Update Record**: Modify existing record data
* **Delete Record**: Remove records from objects
* **Search Records**: Find records matching criteria
* **Upsert Record**: Create or update based on matching criteria
* **Iterator**: Loop through arrays of records
* **Filter**: Control which records proceed
* **Delay**: Wait before continuing (duration or scheduled date)
* **Send Email**: Send emails via your connected account
* **Code**: Run custom JavaScript
* **HTTP Request**: Call external APIs
* **Form**: Get inputs from users within Twenty UI at the time of execution
* **AI Agent** (Coming soon): Run intelligent AI tasks
* **إنشاء سجل**: إضافة سجلات جديدة إلى أي كائن
* **تحديث سجل**: تعديل بيانات السجل الحالي
* **حذف سجل**: إزالة السجلات من الكائنات
* **البحث في السجلات**: العثور على السجلات المطابقة للمعايير
* **إدراج أو تحديث سجل**: إنشاء أو تحديث بناءً على معايير المطابقة
* **Iterator**: التكرار عبر مصفوفات السجلات
* **تصفية**: تحديد السجلات التي تتابع التنفيذ
* **تأخير**: الانتظار قبل المتابعة (مدة أو تاريخ مجدول)
* **إرسال بريد إلكتروني**: إرسال رسائل البريد الإلكتروني عبر حسابك المتصل
* **كود**: تشغيل JavaScript مخصص
* **طلب HTTP**: استدعاء واجهات برمجة التطبيقات الخارجية
* **نموذج**: الحصول على مدخلات من المستخدمين ضمن واجهة مستخدم Twenty وقت التنفيذ
* **AI Agent** (قريبًا): تنفيذ مهام ذكاء اصطناعي ذكية
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Step 4: Test and Activate
### الخطوة 4: الاختبار والتفعيل
1. Use the **Test** button to run your workflow with sample data
2. Review the results to ensure it works as expected
3. Toggle the workflow **Active** when ready
1. استخدم زر **اختبار** لتشغيل سير العمل باستخدام بيانات نموذجية
2. راجع النتائج للتأكد من أنها تعمل كما هو متوقع
3. بدّل حالة سير العمل إلى **نشط** عندما تكون جاهزًا
## أفضل الممارسات في سير العمل
@@ -75,6 +75,6 @@ After your trigger, add one or more actions:
## الخطوات التالية
* [Workflow Triggers](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ar/user-guide/workflows/capabilities/workflow-actions)
* [CRM Automations](/l/ar/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
* [مشغلات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
* [إجراءات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-actions)
* [أتمتة إدارة علاقات العملاء](/l/ar/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,6 +1,6 @@
---
title: Mailbox
description: Understanding email integration features in Twenty.
title: Poštovní schránka
description: Porozumění funkcím e-mailové integrace v Twenty.
---
**Poznámka**: Chcete-li připojit své emailové účty a konfigurovat nastavení synchronizace, navštivte [Nastavení Emailu a Kalendáře](/l/cs/user-guide/calendar-emails/overview).
@@ -9,7 +9,7 @@ description: Understanding email integration features in Twenty.
Twenty automaticky propojuje emaily z vašich připojených schránek s příslušnými CRM záznamy, udržuje historii komunikace na jednom místě.
### Objects Where Emails Can Be Found
### Objekty, kde lze najít e-maily
Emailové konverzace se zobrazují ve třech hlavních objektech:
@@ -32,12 +32,12 @@ Emailové konverzace se zobrazují ve třech hlavních objektech:
Když otevřete emailové vlákno, můžete:
* **Read Full Conversations**: See the complete email exchange
* **Přečtěte si celé konverzace**: Zobrazte si komplet e-mailovou komunikaci
* **Zobrazit účastníky**: Zobrazit všechny osoby zapojené do emailového vlákna
* **Check Timestamps**: Know exactly when each email was sent
* **Zkontrolujte časová razítka**: Zjistěte přesně, kdy byl každý e-mail odeslán
* **Přístup k souvislostem**: Porozumět kompletní historii komunikace
### Email Visibility
### Viditelnost e-mailů
V závislosti na nastavení vaší schránky, můžete vidět:
@@ -1,11 +1,11 @@
---
title: Calendar & Emails
description: Connect your email and calendar accounts to Twenty.
title: Kalendář a e-maily
description: Připojte své účty e-mailu a kalendáře k Twenty.
image: /images/user-guide/emails/emails_header.png
---
<Frame>
<img src="/images/user-guide/emails/emails_header.png" alt="Calendar & Emails" />
<img src="/images/user-guide/emails/emails_header.png" alt="Kalendář a e-maily" />
</Frame>
## Možnosti Připojení
@@ -14,21 +14,21 @@ image: /images/user-guide/emails/emails_header.png
1. Přejděte na **Nastavení → Účty**
2. Klikněte na **Přidat účet**
3. Select **Continue with Google**
3. Vyberte **Pokračovat pomocí Google**
4. Autorizujte Twenty pro přístup k vašemu Gmailu a Google Kalendáři
5. Configure email sync settings (visibility, auto-creation) → click **Next**
6. Configure calendar sync settings (visibility, auto-creation) → click **Add Account**
7. Your emails and calendar events will start syncing automatically
5. Nastavte synchronizaci e-mailu (viditelnost, automatické vytváření) → klikněte na **Další**
6. Nastavte synchronizaci kalendáře (viditelnost, automatické vytváření) → klikněte na **Přidat účet**
7. Vaše e-maily a události v kalendáři se začnou synchronizovat automaticky
### Účet Microsoft (Outlook & Microsoft Kalendář)
1. Přejděte na **Nastavení → Účty**
2. Klikněte na **Přidat účet**
3. Select **Continue with Microsoft**
3. Vyberte **Pokračovat pomocí Microsoftu**
4. Autorizujte Twenty pro přístup k vašemu Outlooku a Microsoft Kalendáři
5. Configure email sync settings (visibility, auto-creation) → click **Next**
6. Configure calendar sync settings (visibility, auto-creation) → click **Add Account**
7. Your emails and calendar events will start syncing automatically
5. Nastavte synchronizaci e-mailu (viditelnost, automatické vytváření) → klikněte na **Další**
6. Nastavte synchronizaci kalendáře (viditelnost, automatické vytváření) → klikněte na **Přidat účet**
7. Vaše e-maily a události v kalendáři se začnou synchronizovat automaticky
### Nastavení SMTP/CalDAV (Další Poskytovatelé)
@@ -66,7 +66,7 @@ Vyberte různé úrovně viditelnosti pro vaše emaily:
* **Pouze pro odeslané zprávy**: Vytvářejte kontakty pouze pro emaily, které posíláte
* **Poznámka**: Interní emaily (stejná doména) nejsou synchronizovány kvůli zachování soukromí
<Note>When enabled, contacts are automatically linked to their Company records based on their email domain. If the company doesn't exist yet, Twenty creates it for you.</Note>
<Note>Když je povoleno, kontakty se automaticky propojí se svými záznamy společnosti podle jejich e-mailové domény. Pokud společnost ještě neexistuje, Twenty ji pro vás vytvoří.</Note>
### Control which emails get synced with Message Folder Selection
@@ -103,7 +103,7 @@ Vyberte, co bude viditelné pro ostatní uživatele ve vašem pracovním prostor
* **Ano**: Automaticky vytvářejte kontakty pro účastníky schůzek, kteří nejsou ve vašem CRM
* **Ne**: Spojujte schůzky jen s již existujícími kontakty
<Note>When enabled, contacts are automatically linked to their Company records based on their email domain. If the company doesn't exist yet, Twenty creates it for you.</Note>
<Note>Když je povoleno, kontakty se automaticky propojí se svými záznamy společnosti podle jejich e-mailové domény. Pokud společnost ještě neexistuje, Twenty ji pro vás vytvoří.</Note>
### Řízení, které události se synchronizují
@@ -121,10 +121,10 @@ Vyberte, co bude viditelné pro ostatní uživatele ve vašem pracovním prostor
**Aktualizace každých 5 minut**: Data emailu a kalendáře se automaticky synchronizují každých 5 minut po úvodním importu.
<Note>
**Initial sync timing**: Calendar sync completes quickly (usually within minutes), while email sync takes longer for large mailboxes. Twenty imports emails at approximately **400 messages per minute** (limited by Gmail API rate limiting), so a mailbox with 10,000 emails takes about 25 minutes. Don't worry if you see contacts from calendar events appearing before your email contacts; this is normal behavior.
**Initial sync timing**: Calendar sync completes quickly (usually within minutes), while email sync takes longer for large mailboxes. Twenty imports emails at approximately **400 messages per minute** (limited by Gmail API rate limiting), so a mailbox with 10,000 emails takes about 25 minutes. Nebojte se, pokud uvidíte, že se kontakty z událostí v kalendáři zobrazují dříve než vaše e-mailové kontakty; je to normální chování.
</Note>
## Další kroky
* [Mailbox capabilities](/l/cs/user-guide/calendar-emails/capabilities/mailbox)
* [Troubleshoot missing emails](/l/cs/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records)
* [Možnosti poštovní schránky](/l/cs/user-guide/calendar-emails/capabilities/mailbox)
* [Odstraňování problémů s chybějícími e-maily](/l/cs/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records)
@@ -1,74 +1,74 @@
---
title: Panely
description: Create and organize dashboards with tabs to visualize your CRM data.
description: Vytvářejte a organizujte řídicí panely pomocí karet pro vizualizaci dat CRM.
---
## Přehled
Dashboards in Twenty are organized in a hierarchy: **Dashboards → Tabs → Widgets**. Each dashboard can contain multiple tabs, and each tab contains widgets (charts, numbers, iFrames).
Řídicí panely v Twenty jsou uspořádány hierarchicky: **Dashboards → Tabs → Widgets**. Každý řídicí panel může obsahovat více karet a každá karta obsahuje widgety (grafy, čísla, iFrames).
## Creating a Dashboard
## Vytváření řídicího panelu
1. Go to **Dashboards** in the navigation
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Start adding tabs and widgets
1. Přejděte v navigaci do **Dashboards**
2. Klikněte na **+ New Dashboard**
3. Pojmenujte svůj řídicí panel
4. Začněte přidávat karty a widgety
## Working with Tabs
## Práce s kartami
Tabs help you organize your dashboard into logical sections.
Karty vám pomáhají uspořádat váš řídicí panel do logických sekcí.
### Creating Tabs
### Vytváření karet
1. In edit mode, click **+ Add Tab**
2. Name your tab (e.g., "Pipeline Overview", "Team Performance")
3. Add widgets to the tab
1. V režimu úprav klikněte na **+ Add Tab**
2. Pojmenujte svou kartu (např. "Přehled pipeline", "Výkonnost týmu")
3. Přidejte do karty widgety
### Duplicating Tabs
### Duplikování karet
1. Click on the tab you want to duplicate
2. Click the **Duplicate** button in the side panel
1. Klikněte na kartu, kterou chcete duplikovat
2. Klikněte na tlačítko **Duplicate** v postranním panelu
## Dashboard Layout
## Rozvržení řídicího panelu
### Arranging Widgets
### Uspořádání widgetů
* Drag and drop to position
* Resize for emphasis
* Group related charts together
* Přetáhněte a pusťte na požadované místo
* Změňte velikost pro zdůraznění
* Seskupte související grafy
### Duplicating a Dashboard
### Duplikování řídicího panelu
1. Exit edit mode (view mode only)
2. Open the command bar with **Cmd + K** (or **Ctrl + K** on Windows)
3. Select **Duplicate dashboard**
1. Ukončete režim úprav (pouze režim zobrazení)
2. Otevřete příkazovou lištu pomocí **Cmd + K** (nebo **Ctrl + K** ve Windows)
3. Vyberte **Duplicate dashboard**
### Osvědčené postupy
* **Logical flow**: Arrange from overview to detail
* **Visual hierarchy**: Larger charts for key metrics
* **Consistent styling**: Use matching colors and fonts
* **Logická struktura**: Uspořádejte od přehledu k detailu
* **Vizuální hierarchie**: Větší grafy pro klíčové ukazatele
* **Konzistent styl**: Používejte odpovídající barvy a písma
## Visibility & Access
## Viditelnost a přístup
### Dashboard Visibility
### Viditelnost řídicího panelu
Dashboards are visible to everyone who has access to your Twenty workspace. There is no private dashboard option at the moment.
Řídicí panely jsou viditelné pro každého, kdo má přístup k vašemu pracovnímu prostoru Twenty. V tuto chvíli není k dispozici možnost soukromého řídicího panelu.
### Oblíbené
You can add dashboards to your favorites for quick access. This is a personal setting—your favorites are not visible to other users.
Řídicí panely si můžete přidat do oblíbených pro rychlý přístup. Jedná se o osobní nastavení — vaše oblíbené nejsou viditelné pro ostatní uživatele.
To add a dashboard to favorites, open the dashboard and click the star icon.
Chcete-li přidat řídicí panel do oblíbených, otevřete řídicí panel a klikněte na ikonu hvězdičky.
### Timezone Behavior
### Chování časových pásem
Dashboards currently display data based on the timezone of the user viewing them. This means the same dashboard may show different metrics for team members in different regions (e.g., APAC vs. US).
Řídicí panely v současnosti zobrazují data podle časového pásma uživatele, který je zobrazuje. To znamená, že tentýž řídicí panel může zobrazovat odlišné ukazatele pro členy týmu v různých regionech (např. APAC vs. US).
<Note>
**Coming soon**: We will add the ability to set a specific timezone for a dashboard, so all users see consistent data regardless of their location.
**Brzy**: Přidáme možnost nastavit pro řídicí panel konkrétní časové pásmo, aby všichni uživatelé viděli konzistent data bez ohledu na svou polohu.
</Note>
<Note>
**Coming soon**: Dashboard-level filters will allow you to apply filters across all widgets at once, making it faster to explore your data.
**Brzy**: Filtry na úrovni řídicího panelu umožní použít filtry napříč všemi widgety najednou, což zrychlí práci s vašimi daty.
</Note>
@@ -1,131 +1,131 @@
---
title: Widgety
description: Explore the widget types and visualization options in Twenty.
description: Prozkoumejte typy widgetů a možnosti vizualizace v Twenty.
---
## Available Widgets
## Dostupné widgety
Twenty provides various widget types to visualize your CRM data.
Twenty nabízí různé typy widgetů pro vizualizaci vašich CRM dat.
### Bar Charts
### Sloupcové grafy
Display data as horizontal or vertical bars.
Zobrazují data jako vodorovné nebo svislé sloupce.
**Best for:**
**Vhodné pro:**
* Comparing values across categories
* Showing rankings
* Tracking metrics by time period
* Porovnávání hodnot napříč kategoriemi
* Zobrazování pořadí
* Sledování metrik podle časového období
**Example uses:**
**Příklady použití:**
* Deals by stage
* Revenue by sales rep
* Contacts added per month
* Obchody podle fáze
* Tržby podle obchodního zástupce
* Počet kontaktů přidaných za měsíc
<Note>
**Display limits**: Bar charts can show a maximum of 100 bars (horizontal) or 50 bars (vertical). If you see the warning "Undisplayed data: max X bars per chart", add filters to narrow down your data or change the grouping (e.g., group by week instead of days).
**Limity zobrazení**: Sloupcové grafy mohou zobrazit maximálně 100 sloupců (vodorovně) nebo 50 sloupců (svisle). Pokud uvidíte upozornění "Nezobrazená data: max X sloupců na graf", přidejte filtry, abyste zúžili svá data, nebo změňte seskupení (např. seskupujte podle týdnů místo dnů).
</Note>
### Pie Charts
### Koláčové grafy
Show proportions of a whole.
Zobrazují podíly z celku.
**Best for:**
**Vhodné pro:**
* Showing composition or distribution
* Comparing parts to whole
* Highlighting major segments
* Zobrazování složení nebo rozložení
* Porovnávání částí s celkem
* Zvýraznění hlavních segmentů
**Example uses:**
**Příklady použití:**
* Deal distribution by source
* Contact breakdown by industry
* Pipeline composition by owner
* Rozložení obchodů podle zdroje
* Rozdělení kontaktů podle odvětví
* Složení pipeline podle vlastníka
### Line Charts
### Liniové grafy
Display trends over time.
Zobrazují trendy v čase.
**Best for:**
**Vhodné pro:**
* Tracking changes over time
* Identifying trends
* Comparing multiple metrics
* Sledování změn v čase
* Identifikace trendů
* Porovnávání více metrik
**Example uses:**
**Příklady použití:**
* Monthly deal count trend
* Revenue growth over quarters
* Activity levels over time
* Trend měsíčního počtu obchodů
* Růst tržeb mezi čtvrtletími
* Úroveň aktivity v čase
### Number Metrics
### Číselné metriky
Display single key values prominently.
Výrazně zobrazují jednotlivé klíčové hodnoty.
**Best for:**
**Vhodné pro:**
* Highlighting KPIs
* Showing totals or averages
* Quick status checks
* Zvýraznění KPI
* Zobrazení součtů nebo průměrů
* Rychlé kontroly stavu
**Example uses:**
**Příklady použití:**
* Total pipeline value
* Number of open opportunities
* Conversion rate
* Celková hodnota pipeline
* Počet otevřených příležitostí
* Míra konverze
**Advanced options:**
**Pokročilé možnosti:**
* **Ratio**: For Select fields, calculate ratios between values. Go to **Data on display** → select your field → enable the **Ratio** option.
* **Prefix & Suffix**: Add custom text before or after the number (e.g., "$" prefix or "%" suffix) for better readability.
* **Poměr**: U polí typu Select lze vypočítat poměry mezi hodnotami. Přejděte do **Zobrazovaná data** → vyberte své pole → povolte možnost **Poměr**.
* **Prefix a sufix**: Přidejte vlastní text před nebo za číslo (např. prefix "$" nebo sufix "%") pro lepší čitelnost.
### iFrames
### iFramy
Embed external tools and content directly in your dashboard.
Vkládejte externí nástroje a obsah přímo do svého řídicího panelu.
**Best for:**
**Vhodné pro:**
* Displaying external reports or dashboards
* Integrating third-party sales tools
* Showing live content from other systems
* Zobrazení externích reportů nebo řídicích panelů
* Integrace prodejních nástrojů třetích stran
* Zobrazení živého obsahu z jiných systémů
**Example uses:**
**Příklady použití:**
* Metrics from your Support tool
* Metrics from your dialer
* Live content from your Sales sequence tool
* Metriky z vašeho nástroje podpory
* Metriky z vašeho dialeru
* Živý obsah z vašeho nástroje pro prodejní sekvence
<Note>
**Coming soon**: Gauge charts and tables are not yet available but are on our roadmap.
**Již brzy**: Měřicí grafy (gauge) a tabulky zatím nejsou k dispozici, ale máme je v plánu.
</Note>
## Configuring Widgets
## Konfigurace widgetů
### Data Source
### Zdroj dat
1. Select the object to visualize (Opportunities, People, etc.)
2. Choose the metric to display (count, sum, average)
3. Apply filters to focus on specific data
1. Vyberte objekt, který chcete vizualizovat (Příležitosti, Lidé apod.)
2. Zvolte metriku k zobrazení (počet, součet, průměr)
3. Použijte filtry, abyste se zaměřili na konkrétní data
### Grouping
### Seskupení
Group data by:
Seskupte data podle:
* Fields (stage, owner, industry)
* Time periods (day, week, month, quarter)
* Custom segments
* Polí (fáze, vlastník, odvětví)
* Časových období (den, týden, měsíc, čtvrtletí)
* Vlastních segmentů
### Styling
Customize your charts with:
Přizpůsobte si své grafy pomocí:
* Colors and themes
* Labels and legends
* Size and positioning
* Barev a motivů
* Popisků a legend
* Velikosti a umístění
### Duplicating Widgets
### Duplikování widgetů
1. Click on the widget
2. Open **Options**
3. Click **Duplicate widget**
1. Klikněte na widget
2. Otevřete **Možnosti**
3. Klikněte na **Duplikovat widget**
@@ -1,94 +1,94 @@
---
title: Import Relations Between Objects
description: Import relationships between records via CSV.
title: Import relací mezi objekty
description: Import relací mezi záznamy pomocí CSV.
---
## Přehled
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
Twenty podporuje import relací mezi objekty během importu CSV. To vám umožní propojit záznamy (např. přiřadit Lidi ke Společnostem) jako součást migrace dat.
<Note>**Currently supported for import**: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
<Note>**V současnosti podporováno pro import**: Relace jedna ku mnoha směřující na jeden typ objektu na každé straně (např. Lidé → Společnosti). Relace směřující k více typům objektů zatím nejsou pro import/export podporovány.</Note>
## How Relations Work in Twenty
## Jak relace fungují v Twenty
### One to Many / Many to One
### Jedna ku mnoha / Mnoho ku jedné
Twenty supports standard relations where one record links to many others:
Twenty podporuje standard relace, kde se jeden záznam propojuje s mnoha dalšími:
* **One Company → Many People**: A company can have multiple employees, but each person belongs to one company
* **One Company → Many Opportunities**: A company can have multiple deals, but each opportunity belongs to one company
* **Jedna Společnost → Mnoho Lidí**: Společnost může mít více zaměstnanců, ale každá osoba patří do jedné společnosti
* **Jedna Společnost → Mnoho Příležitostí**: Společnost může mít více obchodů, ale každá příležitost patří k jedné společnosti
### Relations That Can Point to Multiple Object Types
### Relace, které mohou směřovat k více typům objektů
Some relations can connect to different types of objects. This works in two ways:
Některé relace mohou propojit různé typy objektů. To funguje dvěma způsoby:
**Pattern 1: Many records linking to one record each from different object types**
**Vzor 1: Mnoho záznamů se odkazuje vždy na jeden záznam u různých typů objektů**
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
Několik Poznámek, Úkolů nebo Aktivit může být současně připojeno k více typům objektů:
* **Notes** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Tasks** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Poznámky** mohou být současně propojeny s jednou Osobou, jednou Společností a jednou Příležitostí
* **Úkoly** mohou být současně propojeny s jednou Osobou, jednou Společností a jednou Příležitostí
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
Zde jsou Poznámky/Úkoly na straně „mnoho“. Každý z nich se váže na jeden záznam pro každý typ objektu.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Pattern 2: One record receiving links from many records of different object types**
**Vzor 2: Jeden záznam přijímá odkazy od mnoha záznamů různých typů objektů**
A Project can receive links from multiple records across different object types:
Projekt může přijímat odkazy od více záznamů napříč různými typy objektů:
* **A Project** can have many People linked to it, many Companies linked to it, and many Notes attached to it
* **Projekt** může mít k sobě připojeno mnoho Lidí, mnoho Společností a mnoho Poznámek
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
Zde je Projekt na straně „jedna“. Více záznamů z různých objektů se může odkazovat na tentýž Projekt.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.
**Omezení importu/exportu**: Relace, které směřují k více typům objektů (např. Poznámky → Lidé/Společnosti/Příležitosti), zatím **nejsou podporovány** při importu nebo exportu CSV.
* **Import**: Only one-to-many relations pointing to a single object type on each side can be imported
* **Export**: Columns for relations pointing to multiple object types are currently left empty
* **Import**: Lze importovat pouze relace jedna ku mnoha směřující na jeden typ objektu na každé straně
* **Export**: Sloupce pro relace směřující k více typům objektů jsou aktuálně ponechány prázdné
This is on our roadmap.
Je to v našem plánu.
</Warning>
### What's Not Supported Today
### Co dnes není podporováno
**Many to Many relations** are not yet available. For example, you cannot currently create a relation where:
**Relace mnoho ku mnoha** zatím nejsou k dispozici. Například aktuálně nemůžete vytvořit relaci, kde:
* Many People are linked to many Projects
* Mnoho Lidí je propojeno s mnoha Projekty
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>Relace mnoho ku mnoha jsou plánovány na 1. pololetí 2026.</Note>
## Linking Records During Import
## Propojování záznamů během importu
<Note>**Reminder**: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
<Note>**Připomenutí**: Importovat lze pouze relace jedna ku mnoha směřující na jeden typ objektu (např. Lidé → Společnosti). Relace směřující k více typům objektů (např. Poznámky → Lidé/Společnosti/Příležitosti) zatím nejsou podporovány.</Note>
### Step 1: Identify the "One" and "Many" Sides
### Krok 1: Určete strany „jedna“ a „mnoho“
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
Nejprve určete, který objekt je na straně „jedna“ a který je na straně „mnoho“ dané relace.
**Příklad**:
* **Company** is the "one" side (one company has many employees)
* **People** is the "many" side (each person belongs to one company)
* **Společnost** je strana „jedna“ (jedna společnost má mnoho zaměstnanců)
* **Lidé** jsou strana „mnoho“ (každá osoba patří do jedné společnosti)
### Step 2: Ensure the "One" Side Records Exist
### Krok 2: Ujistěte se, že záznamy na straně „jedna“ existují
Before importing the "many" side, the "one" side records must already exist in Twenty.
Před importem strany „mnoho“ musí záznamy na straně „jedna“ již v Twenty existovat.
* Import or create the "one" side records first (e.g., Companies)
* Validate their unique identifier. This can be:
* The `id` (Twenty's UUID)
* A field set as unique (e.g., `domain` for Companies, or an external ID from your previous system)
* Nejprve importujte nebo vytvořte záznamy strany „jedna“ (např. Společnosti)
* Ověřte jejich jedinečný identifikátor. Může to být:
* Pole `id` (UUID v Twenty)
* Pole nastavené jako jedinečné (např. `domain` u Společností nebo externí ID z vašeho předchozího systému)
<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
<Warning>Import selže, pokud je odkazováno na záznam, který neexistuje.</Warning>
### Step 3: Prepare Your CSV File
### Krok 3: Připravte svůj soubor CSV
Add a column in your "many" side CSV file that references the "one" side record.
Přidejte do souboru CSV pro stranu „mnoho“ sloupec, který odkazuje na záznam strany „jedna“.
**Example**: For a People CSV file linking to Companies:
**Příklad**: Pro soubor CSV Lidé propojený se Společnostmi:
```
firstName,lastName,email,companyDomain
@@ -96,53 +96,53 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important**:
**Důležité**:
* The value must **exactly match** the unique field on the Company record
* For domains, use the **Domain URL** (e.g., `https://acme.com`), not the Domain Label
* Map only **one** unique identifier per relation: this leads to a smoother import
* Hodnota se musí **přesně shodovat** s jedinečným polem v záznamu Společnosti
* U domén používejte **URL domény** (např. `https://acme.com`), nikoli označení domény
* Mapujte pouze **jeden** jedinečný identifikátor na relaci: povede to k hladšímu importu
### Step 4: Ensure the Relation Field Exists
### Krok 4: Ujistěte se, že relační pole existuje
Before uploading your file, make sure the relation field exists between your objects.
Před nahráním souboru se ujistěte, že mezi vašimi objekty existuje relační pole.
If it doesn't exist:
Pokud neexistuje:
1. Go to **Settings → Data Model**
2. Select your object (e.g., People)
3. Create a relation field pointing to the target object (e.g., Company)
1. Přejděte do **Nastavení → Datový model**
2. Vyberte svůj objekt (např. Lidé)
3. Vytvořte relační pole směřující na cílový objekt (např. Společnost)
### Step 5: Upload and Map the Relation
### Krok 5: Nahrajte a namapujte relaci
1. Upload your CSV file via the import UI
2. In the field mapping step, find your relation column (e.g., `companyDomain`)
3. Map it to the relation field (e.g., Company)
4. Twenty will automatically link each record to the matching parent
1. Nahrajte svůj soubor CSV prostřednictvím rozhraní pro import
2. V kroku mapování polí najděte svůj relační sloupec (např. `companyDomain`)
3. Namapujte jej na relační pole (např. Společnost)
4. Twenty automaticky propojí každý záznam s odpovídajícím nadřazeným objektem
### Available Unique Fields for Relations
### Dostupná jedinečná pole pro relace
| Objekt | Unique Fields Available |
| ------------------------------------- | --------------------------------------- |
| **Společnosti** | `id`, `domain`, any custom unique field |
| **People** | `id`, `email`, any custom unique field |
| **Členové pracovního prostoru** | `id`, `email` (not name) |
| **Other standard and custom objects** | `id`, any field marked as unique |
| Objekt | Dostupná jedinečná pole |
| -------------------------------------- | ----------------------------------------------- |
| **Společnosti** | `id`, `domain`, jakékoli vlastní jedinečné pole |
| **Lidé** | `id`, `email`, jakékoli vlastní jedinečné pole |
| **Členové pracovního prostoru** | `id`, `email` (ne jméno) |
| **Další standardní a vlastní objekty** | `id`, jakékoli pole označené jako jedinečné |
<Note>**Linking to Workspace Members**: When the relation points to Workspace Members (your team logging into Twenty), reference them by their **email address**, not their name.</Note>
<Note>**Propojení na členy pracovního prostoru**: Pokud relace směřuje na členy pracovního prostoru (váš tým přihlašující se do Twenty), odkazujte je pomocí jejich **e-mailové adresy**, nikoli jména.</Note>
<Note>We recommend using `domain` for Companies and `email` for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>Doporučujeme používat `domain` pro Společnosti a `email` pro Lidi, protože jsou srozumitelné pro člověka a snadno se udržují v tabulkách.</Note>
<Note>**Reminder**: Soft-deleted records (visible under Command Menu → See deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See [Uniqueness Constraints](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints) for more details.</Note>
<Note>**Připomenutí**: Měkce smazané záznamy (viditelné v Command Menu → Zobrazit smazané záznamy) se započítávají do kritérií jedinečnosti. Pokud naimportujete záznam se stejnou jedinečnou hodnotou jako má smazaný záznam, smazaný záznam bude obnoven. Více podrobností naleznete v [Omezeních jedinečnosti](/l/cs/user-guide/data-migration/capabilities/uniqueness-constraints).</Note>
## Import Order Rule
## Pořadí importu
<Warning>
**Always import the "one" side first!**
**Vždy nejprve importujte stranu „jedna“!**
1. **Companies** first (no dependencies)
2. **People** second (linked to Companies)
3. **Opportunities** third (linked to Companies/People)
4. **Custom objects** following their dependencies
1. **Společnosti** jako první (bez závislostí)
2. **Lidé** jako druzí (propojeni se Společnostmi)
3. **Příležitosti** jako třetí (propojené se Společnostmi/Lidmi)
4. **Vlastní objekty** podle jejich závislostí
The parent record must exist before you can reference it.
Nadřazený záznam musí existovat dříve, než na něj můžete odkazovat.
</Warning>
@@ -1,71 +1,71 @@
---
title: Import Companies via CSV
description: Complete step-by-step guide to importing companies into Twenty.
title: Importujte společnosti pomocí CSV
description: Kompletní podrobný návod krok za krokem k importu společností do Twenty.
---
## Přehled
This guide walks you through importing your companies into Twenty. **Companies should be imported first** because People and Opportunities link to Companies.
Tento průvodce vás provede importem vašich společností do Twenty. **Společnosti by se měly importovat jako první**, protože Osoby a Příležitosti se propojují 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 domains in your file
Žádné duplicitní domény ve vašem souboru
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Všechna vlastní pole existují v **Settings → Data Model**
</Check>
<Note>
Need to import more than 10,000 companies? Split into multiple files or use the [API import](/l/cs/user-guide/data-migration/how-tos/import-data-via-api).
Potřebujete importovat více než 10 000 společností? Rozdělte do více souborů nebo použijte [import přes API](/l/cs/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Step 1: Prepare Your Company Data
## Krok 1: Připravte si data společností
### Required and Recommended Fields
### Povinná a doporučená pole
| Pole | Required? | Formát | Poznámky |
| ----------------- | ----------- | -------------------- | ------------------------ |
| **Name** | Recommended | Text | Company display name |
| **Domain** | Recommended | `https://domain.com` | Unique identifier |
| **Address** | Optional | Multiple columns | See below |
| **Employees** | Optional | Číslo | Employee count |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Pole | Povinné? | Formát | Poznámky |
| ---------------- | ---------- | -------------------- | ------------------------------- |
| **Name** | Doporučeno | Text | Zobrazovaný název společnosti |
| **Doména** | Doporučeno | `https://domain.com` | Jedinečný identifikátor |
| **Adresa** | Volitelné | Více sloupců | Viz níže |
| **Zaměstnanci** | Volitelné | Číslo | Počet zaměstnanců |
| **Vlastní pole** | Volitelné | Různé | Musí existovat v Datovém modelu |
### Domain Format
### Formát domény
<Warning>
**Use the format `https://domain.com` for domains.**
**Pro domény použijte formát `https://domain.com`.**
This matches the format used when Companies are auto-created from email/calendar sync, preventing duplicates later.
To odpovídá formátu používanému při automatickém vytváření Společností ze synchronizace e-mailu/kalendáře, což později zabrání duplicitám.
</Warning>
**Domain columns:**
**Sloupce domény:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Address Format
### Formát adresy
Address is a nested field with multiple columns:
Adresa je vnořené pole s více sloupci:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Sample CSV Structure
### Ukázková struktura CSV
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
@@ -74,112 +74,112 @@ Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Pro tip:** Click **Download sample file** during import to see the exact column names Twenty expects.
**Tip pro profíky:** Během importu klikněte na **Download sample file**, 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 Companies View**
**Možnost 1: Z pohledu Companies**
1. Navigate to **Companies** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Přejděte na **Companies** 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 **Companies**
1. Stiskněte `Cmd + K` (Mac) nebo `Ctrl + K` (Windows)
2. Napište "import"
3. Vyberte **Import records**
4. Zvolte **Companies**
## 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í
* **Domain**: Map to **Domain / Domain URL** (not Domain Label)
* **Address**: Map each part to its specific column (City, State, etc.)
* **Select fields**: Values must match existing options (or you'll map them in the next step)
* **Doména**: Namapujte na **Domain / Domain URL** (ne na Domain Label)
* **Adresa**: Namapujte každou část do jejího konkrétního sloupce (City, State atd.)
* **Pole typu Select**: Hodnoty se musí shodovat s existujícími možnostmi (nebo je namapujete v dalším kroku)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Step 5: Map Select Field Values
## Krok 5: Mapujte hodnoty polí typu Select
If you have Select or Multi-Select fields:
Pokud máte pole typu Select nebo Multi-Select:
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 Company Import Errors
### Běžné chyby při importu společností
| Chyba | Cause | Solution |
| -------------------------- | ------------------------------- | ------------------------------------------ |
| **Duplicate domain** | Domain already exists in Twenty | Remove from file or update existing record |
| **Invalid domain format** | Wrong format | Use `https://domain.com` |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Chyba | Příčina | Řešení |
| -------------------------- | ---------------------------- | -------------------------------------------------------- |
| **Duplicitní doména** | Doména již existuje v Twenty | Odstraňte ze souboru nebo aktualizujte existující záznam |
| **Neplatný formát domény** | Nesprávný formát | Použijte `https://domain.com` |
| **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
1. Zkontrolujte souhrn importu
2. Klikněte na **Potvrdit** pro import
3. Počkejte na dokončení importu
4. Ověřte zkontrolováním několika záznamů
## After Importing Companies
## Po importu společností
Now you can import records that link to Companies:
Nyní můžete importovat záznamy, které se propojují se Společnostmi:
1. **[Import People](/l/cs/user-guide/data-migration/how-tos/import-contacts-via-csv)** — link them to Companies using the domain
2. **Import Opportunities** — link them to Companies
3. **Verify the import** — spot-check a few records to ensure data is correct
1. **[Import Osob](/l/cs/user-guide/data-migration/how-tos/import-contacts-via-csv)** — propojte je se Společnostmi pomocí domény
2. **Importujte Příležitosti** — propojte je se Společnostmi
3. **Ověřte import** — namátkově zkontrolujte několik záznamů, abyste se ujistili, že data jsou správná
## Updating Existing Companies
## Aktualizace stávajících společností
To update companies instead of creating new ones:
Chcete-li aktualizovat společnosti místo vytváření nových:
1. Include the `domain` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing companies are updated; new ones are created
1. Zahrňte do svého souboru sloupec `domain` nebo `id`
2. Twenty páruje záznamy podle tohoto jedinečného identifikátoru
3. Existující společnosti 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 Companies have the same domain?">
Domain is a unique identifier in Twenty. This prevents duplicate companies and ensures email sync correctly links emails to the right company.
<Accordion title="Proč nemohou mít dvě Společnosti stejnou doménu?">
Doména je v Twenty jedinečný identifikátor. Tím se předchází duplicitním společnostem a zajišťuje se, že synchronizace e-mailů správně propojí e-maily se správnou společností.
</Accordion>
<Accordion title="What if I have companies without a domain?">
You can leave the domain empty. However, we recommend adding domains when possible for better data quality and automatic email linking.
<Accordion title="Co když mám společnosti bez domény?">
Doménu můžete nechat prázdnou. Doporučujeme však domény přidat, kdykoli je to možné, pro lepší kvalitu dat a automatické propojování e-mailů.
</Accordion>
<Accordion title="Can I import companies without any People linked?">
<Accordion title="Mohu importovat společnosti bez jakýchkoli propojených Osob?">
Ano! You can import companies first, then import People later and link them using the company domain.
</Accordion>
@@ -1,74 +1,74 @@
---
title: View Settings
description: Manage view visibility, naming, icons, and organization.
title: Nastavení zobrazení
description: Spravujte viditelnost zobrazení, pojmenování, ikony a uspořádání.
---
## Viditelnost zobrazení
Control who can see your custom views.
Určete, kdo může vidět vaše vlastní zobrazení.
### Visibility Options
### Možnosti viditelnosti
| Setting | Who Can See |
| ------------- | --------------------- |
| **Workspace** | All workspace members |
| **Unlisted** | Only you |
| Nastavení | Kdo může vidět |
| -------------------- | ----------------------------------- |
| **Pracovní prostor** | Všichni členové pracovního prostoru |
| **Neveřejné** | Pouze vy |
### Changing Visibility
### Změna viditelnosti
1. Open the view
2. Click **Options → Visibility**
3. Select **Workspace** or **Unlisted**
1. Otevřete zobrazení
2. Klikněte na **Možnosti → Viditelnost**
3. Vyberte **Pracovní prostor** nebo **Neveřejné**
<Note>
The default "All [Object Name]" views cannot have their visibility changed.
U výchozích zobrazení "All [Object Name]" nelze měnit viditelnost.
</Note>
## Rename a View
## Přejmenovat zobrazení
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Edit**
4. Enter the new name
1. Otevřete nabídku zobrazení
2. Klikněte na nabídku **⋮** vedle zobrazení
3. Vyberte **Upravit**
4. Zadejte nový název
## Change View Icon
## Změnit ikonu zobrazení
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Edit**
4. Click the icon to change it
1. Otevřete nabídku zobrazení
2. Klikněte na nabídku **⋮** vedle zobrazení
3. Vyberte **Upravit**
4. Klikněte na ikonu a změňte ji
## Reorder Views
## Změnit pořadí zobrazení
Change the order views appear in the dropdown:
Změňte pořadí zobrazení v nabídce:
1. Open the view dropdown
2. Drag views by their handle
3. Drop in the desired position
4. Order saves automatically
1. Otevřete nabídku zobrazení
2. Přetáhněte zobrazení za úchyt
3. Pusťte na požadovanou pozici
4. Pořadí se ukládá automaticky
## Oblíbené
Pin frequently used views for quick access:
Připněte často používaná zobrazení pro rychlý přístup:
1. Open the view dropdown
2. Click the **⋮** menu next to a view
3. Select **Add to favorites**
1. Otevřete nabídku zobrazení
2. Klikněte na nabídku **⋮** vedle zobrazení
3. Vyberte **Přidat do oblíbených**
Favorited views appear in a dedicated section for easy access.
Oblíbená zobrazení se zobrazují ve vyhrazené sekci pro snadný přístup.
## Delete a View
## Smazat zobrazení
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Delete**
4. Confirm deletion
1. Otevřete nabídku zobrazení
2. Klikněte na nabídku **⋮** vedle zobrazení
3. Vyberte **Smazat**
4. Potvrďte smazání
<Warning>
Deleted views cannot be recovered.
Smazaná zobrazení nelze obnovit.
</Warning>
## Related
## Související
* [Views Overview](/l/cs/user-guide/views-pipelines/overview) — creating views
* [How to Restrict Access](/l/cs/user-guide/views-pipelines/how-tos/restrict-access-to-your-view) — step-by-step guide
* [Přehled zobrazení](/l/cs/user-guide/views-pipelines/overview) — vytváření zobrazení
* [Jak omezit přístup](/l/cs/user-guide/views-pipelines/how-tos/restrict-access-to-your-view) — průvodce krok za krokem
@@ -1,61 +1,61 @@
---
title: Create a Calendar View for Tasks Due
description: Visualize your tasks and deadlines on a calendar.
title: Vytvořte kalendářové zobrazení pro termíny úkolů
description: Zobrazte své úkoly a termíny v kalendáři.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Předpoklady
Your Tasks object needs a **Due Date** field (Date or Date & Time type).
Váš objekt Úkoly potřebuje pole **Termín** (typ Datum nebo Datum a čas).
## Steps
## Postup
1. Navigate to **Tasks**
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Tasks Calendar")
4. Click **Create**
5. Click **Options** and select **Calendar** as the layout
6. Choose **Due Date** as the date field
1. Přejděte na **Úkoly**
2. Klikněte na rozbalovací nabídku zobrazení → **+ Přidat zobrazení**
3. Pojmenujte své zobrazení (např. "Kalendář úkolů")
4. Klikněte na **Vytvořit**
5. Klikněte na **Možnosti** a jako rozvržení vyberte **Kalendář**
6. Vyberte jako datumové pole **Termín**
7. Klikněte na **Uložit**
## Configure Your Calendar
## Konfigurace kalendáře
### Display Fields on Events
### Zobrazení polí v událostech
1. Click **Options → Fields**
2. Click the **eye icon** to show/hide fields
3. Drag to reorder
1. Klikněte na **Možnosti → Pole**
2. Kliknutím na **ikonu oka** zobrazíte/skryjete pole
3. Přetažením změňte pořadí
Recommended fields to display:
Doporučená pole k zobrazení:
* **Title** — task name
* **Assignee** — who's responsible
* **Status** — current progress
* **Název** — název úkolu
* **Přiřazený** — odpovědná osoba
* **Stav** — aktuální průběh
### Filter Your Calendar
### Filtrování kalendáře
Create focused views:
Vytvořte cílená zobrazení:
* **My Tasks**: Filter by Assignee = Me
* **This Week**: Filter by Due Date = This week
* **Overdue**: Filter by Due Date < Today, Status ≠ Done
* **Moje úkoly**: Filtrujte podle Přiřazený =
* **Tento týden**: Filtrujte podle Termín = Tento týden
* **Po termínu**: Filtrujte podle termínu < Dnes, Stav ≠ Dokončeno
## Other Calendar Use Cases
## Další případy použití kalendáře
| Objekt | Date Field | Purpose |
| ------------- | ---------- | ------------------------- |
| Příležitosti | Close Date | Track expected closes |
| Custom Events | Event Date | Plan activities |
| Projects | Deadline | Monitor project timelines |
| Objekt | Pole datumu | Účel |
| ---------------- | -------------- | ------------------------------- |
| Příležitosti | Datum uzavření | Sledování očekávaných uzavření |
| Vlastní události | Datum události | Plánování aktivit |
| Projekty | Termín | Sledování harmonogramů projektů |
## Tips
## Tipy
* **Review weekly**: Start each week by checking your calendar view
* **Combine with table view**: Use calendar for overview, table for details
* **Set visibility**: Keep personal task calendars as Unlisted
* **Kontrolujte každý týden**: Každý týden začněte kontrolou zobrazení kalendáře
* **Kombinujte s tabulkovým zobrazením**: Kalendář použijte pro přehled, tabulku pro podrobnosti
* **Nastavte viditelnost**: Osobní kalendáře úkolů ponechte jako Unlisted
## Related
## Související
* [Calendar View](/l/cs/user-guide/views-pipelines/capabilities/calendar-view) — all calendar features
* [Filters and Sorting](/l/cs/user-guide/views-pipelines/capabilities/filters-and-sorting) — filter your calendar
* [Zobrazení kalendáře](/l/cs/user-guide/views-pipelines/capabilities/calendar-view) — všechny funkce kalendáře
* [Filtry a řazení](/l/cs/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtrujte svůj kalendář
@@ -1,31 +1,31 @@
---
title: Bring Product Data into Twenty
description: Sync product catalog data from a data warehouse into your CRM on a schedule.
title: Přeneste produktová data do Twenty
description: Synchronizujte data produktového katalogu z datového skladu do svého CRM podle plánu.
---
Use this pattern to keep Twenty in sync with product data from your data warehouse (e.g., Snowflake, BigQuery, PostgreSQL).
Použijte tento vzor k udržení synchronizace Twenty s produktovými daty z vašeho datového skladu (např. Snowflake, BigQuery, PostgreSQL).
## Workflow Structure
## Struktura pracovního postupu
1. **Trigger**: On a Schedule
2. **Code**: Query your data warehouse
3. **Code** (optional): Format data as array
4. **Iterator**: Loop through each product
5. **Upsert Record**: Create or update in Twenty
1. **Spouštěč**: Podle plánu
2. **Code**: Spusťte dotaz na svůj datový sklad
3. **Code** (volitelné): Naformátujte data jako pole
4. **Iterator**: Procházejte jednotlivé produkty
5. **Upsert Record**: Vytvořte nebo aktualizujte záznam v Twenty
<img src="/images/user-guide/workflows/create_users_workflow.png" style={{width:'100%'}} />
## Step 1: Schedule the Trigger
## Krok 1: Naplánujte spouštěč
Set the workflow to run at a frequency matching your data freshness needs:
Nastavte pracovní postup tak, aby běžel s frekvencí odpovídající vašim požadavkům na aktuálnost dat:
* Every 5 minutes for near real-time sync
* Every hour for less critical data
* Daily for batch updates
* Každých 5 minut pro synchronizaci téměř v reálném čase
* Každou hodinu pro méně kritic data
* Denně pro dávkové aktualizace
## Step 2: Query Your Data Warehouse
## Krok 2: Proveďte dotaz na svůj datový sklad
Add a **Code** action to fetch recent data:
Přidejte akci **Code** pro načtení nejnovějších dat:
```javascript
export const main = async () => {
@@ -54,14 +54,14 @@ export const main = async () => {
```
<Tip>
Filter by `updated_at >= last X minutes` to retrieve only recently changed records. This keeps the sync efficient.
Filtrováním podle `updated_at >= last X minutes` získáte pouze nedávno změněné záznamy. Díky tomu zůstane synchronizace efektivní.
</Tip>
## Step 3: Format Data (Optional)
## Krok 3: Formátování dat (volitelné)
If your warehouse returns data in a format that needs transformation, add another **Code** action. Common transformations include type conversions, field renaming, and data cleanup.
Pokud váš datový sklad vrací data ve formátu, který vyžaduje transformaci, přidejte další akci **Code**. Mezi běžné transformace patří převody typů, přejmenování polí a čištění dat.
### Example: User Data with Boolean and Status Fields
### Příklad: Uživatelská data s logickými a stavovými poli
```javascript
export const main = async (params: {
@@ -86,7 +86,7 @@ export const main = async (params: {
};
```
### Example: Product Data with Type Conversions
### Příklad: Produktová data s převody typů
```javascript
export const main = async (params: { products: any }) => {
@@ -107,7 +107,7 @@ export const main = async (params: { products: any }) => {
};
```
### Example: Date and Currency Formatting
### Příklad: Formátování dat a měn
```javascript
export const main = async (params: { deals: any }) => {
@@ -131,52 +131,52 @@ export const main = async (params: { deals: any }) => {
};
```
### Common Transformations
### Běžné transformace
| Source Format | Target Format | Kód |
| -------------------- | ---------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | ISO date | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
| Zdrojový formát | Cílový formát | Kód |
| -------------------- | -------------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | Datum ve formátu ISO | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
## Step 4: Iterate Through Products
## Krok 4: Projděte produkty
Add an **Iterator** action:
Přidejte akci **Iterator**:
* Input: `{{code.products}}`
* Vstup: `{{code.products}}`
This loops through each product in the array.
Tímto projdete každý produkt v poli.
## Step 5: Upsert Each Record
## Krok 5: Proveďte upsert pro každý záznam
Inside the iterator, add an **Upsert Record** action:
Uvnitř iterátoru přidejte akci **Upsert Record**:
| Setting | Hodnota |
| ------------ | -------------------------------------- |
| **Object** | Your custom Product object |
| **Match by** | External ID or SKU (unique identifier) |
| **Name** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Price** | `{{iterator.item.price}}` |
| Nastavení | Hodnota |
| --------------- | --------------------------------------------- |
| **Objekt** | Váš vlastní objekt Product |
| **Shoda podle** | Externí ID nebo SKU (jedinečný identifikátor) |
| **Název** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Cena** | `{{iterator.item.price}}` |
<Tip>
Use **Upsert** (update or create) instead of building separate branches for create vs. update. It's faster to build and easier to debug.
Použijte **Upsert** (aktualizace nebo vytvoření) místo vytváření samostatných větví pro vytvoření vs. aktualizaci. Je to rychlejší na vytvoření a snazší na ladění.
</Tip>
## Example Use Cases
## Příklady použití
| Zdroj | Data |
| ----------------------- | ----------------------------------- |
| **ERP system** | Product catalog, pricing, inventory |
| **E-commerce platform** | Orders, customers, product updates |
| **Data warehouse** | Aggregated metrics, enriched data |
| **Inventory system** | Stock levels, reorder alerts |
| Zdroj | Data |
| ------------------------ | ------------------------------------------- |
| **ERP systém** | Katalog produktů, ceny, skladové zásoby |
| **E-commerce platforma** | Objednávky, zákazníci, aktualizace produktů |
| **Datový sklad** | Agregované metriky, obohacená data |
| **Skladový systém** | Stavy zásob, upozornění na doobjednání |
## Related
## Související
* [Workflow Triggers](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Handle Arrays in Code Actions](/l/cs/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-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)
* [Práce s poli v akcích Code](/l/cs/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,56 +1,56 @@
---
title: Send Email Alerts with Tasks Due
description: Automatically notify team members about their upcoming or overdue tasks.
title: Odesílejte e-mailová upozornění na úkoly s blížícím se termínem
description: Automaticky upozorňujte členy týmu na jejich blížící se nebo zpožděné úkoly.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
<img src="/images/user-guide/workflows/email_tasks_due.png" style={{width:'100%'}} />
Send daily email reminders to each team member about their tasks due today.
Posílejte každému členovi týmu denní e-mailová připomenutí na úkoly, které mají termín dnes.
## Přehled
This workflow runs on a schedule and:
Tento pracovní postup běží podle plánu a:
1. Fetches all workspace members
2. Loops through each member
3. Finds their tasks due today
4. Formats and sends a personalized email
1. Načte všechny členy pracovního prostoru
2. Projde každého člena
3. Najde jejich úkoly, které mají termín dnes
4. Naformátuje a odešle personalizovaný e-mail
## Step-by-Step Setup
## Nastavení krok za krokem
<VimeoEmbed videoId="1147463514" title="Video demonstration" />
<VimeoEmbed videoId="1147463514" title="Ukázka videa" />
### Step 1: Configure the Trigger
### Krok 1: Nakonfigurujte spouštěč
1. Go to **Settings → Workflows** and create a new workflow
2. Select **On a Schedule** as the trigger
3. Use a cron expression for daily at 8:00 AM: `0 8 * * *`
1. Přejděte do **Nastavení → Pracovní postupy** a vytvořte nový pracovní postup
2. Vyberte **Podle plánu** jako spouštěč
3. Použijte výraz cron pro denní spuštění v 8:00: `0 8 * * *`
### Step 2: Search for All Workspace Members
### Krok 2: Vyhledejte všechny členy pracovního prostoru
1. Add a **Search Records** action
2. Select **Workspace Members** (under advanced objects)
3. No filters needed — this returns all members
1. Přidejte akci **Vyhledat záznamy**
2. Vyberte **Členové pracovního prostoru** (v části pokročilé objekty)
3. Filtry nejsou potřeba — toto vrátí všechny členy
### Step 3: Add an Iterator
### Krok 3: Přidejte iterátor
1. Add an **Iterator** action
2. Set the input array to the workspace members from the previous step
3. All actions inside the iterator will run once per member
1. Přidejte akci **Iterator**
2. Nastavte vstupní pole na členy pracovního prostoru z předchozího kroku
3. Všechny akce uvnitř iterátoru se spustí jednou pro každého člena
### Step 4: Search for Tasks Due Today (Inside Iterator)
### Krok 4: Vyhledejte úkoly s termínem dnes (uvnitř iterátoru)
1. Inside the iterator, add a **Search Records** action
2. Select **Tasks** as the object
3. Add filters:
* **Assignee** = current workspace member (from the iterator)
* **Due Date** = today
1. Uvnitř iterátoru přidejte akci **Vyhledat záznamy**
2. Vyberte jako objekt **Úkoly**
3. Přidejte filtry:
* **Přiřazený** = aktuální člen pracovního prostoru (z iterátoru)
* **Termín splnění** = dnes
### Step 5: Format Tasks into Email Body (Inside Iterator)
### Krok 5: Naformátujte úkoly do těla e-mailu (uvnitř iterátoru)
Add a **Code** action to format the tasks into a readable list with links:
Přidejte akci **Code** pro naformátování úkolů do čitelného seznamu s odkazy:
```javascript
export const main = async (params: {
@@ -79,28 +79,28 @@ export const main = async (params: {
```
<Note>
Replace `yourSubDomain` with your actual Twenty workspace subdomain.
Nahraďte `yourSubDomain` skutečnou subdoménou vašeho pracovního prostoru Twenty.
</Note>
### Step 6: Send Email (Inside Iterator)
### Krok 6: Odešlete e-mail (uvnitř iterátoru)
1. Add a **Send Email** action (still inside the iterator)
2. Configure:
1. Přidejte akci **Odeslat e-mail** (stále uvnitř iterátoru)
2. Nakonfigurujte:
| Pole | Hodnota |
| ----------- | --------------------------------------------------------------- |
| **To** | `{{iterator.currentItem.userEmail}}` (workspace member's email) |
| **Subject** | Your Tasks Due Today |
| **Body** | `{{code.formattedTasks}}` |
| Pole | Hodnota |
| --------------- | ----------------------------------------------------------------------- |
| **Komu** | `{{iterator.currentItem.userEmail}}` (e-mail člena pracovního prostoru) |
| **Předmět** | Vaše úkoly s termínem dnes |
| **Text zprávy** | `{{code.formattedTasks}}` |
### Step 7: Test and Activate
### Krok 7: Otestujte a aktivujte
1. Click **Test** to run the workflow manually
2. Check inboxes for the emails
3. Activate the workflow
1. Klikněte na **Test** a spusťte pracovní postup ručně
2. Zkontrolujte doručenou poštu, zda e-maily dorazily
3. Aktivujte pracovní postup
## Related
## Související
* [Workflow Actions](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Send Emails from Workflows](/l/cs/user-guide/workflows/capabilities/send-emails-from-workflows)
* [Handle Arrays in Code Actions](/l/cs/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
* [Akce pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Odesílání e-mailů z pracovních postupů](/l/cs/user-guide/workflows/capabilities/send-emails-from-workflows)
* [Práce s poli v akcích Code](/l/cs/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,6 +1,6 @@
---
title: Pracovní postupy
description: Learn how to build automations in Twenty.
description: Naučte se vytvářet automatizace v Twenty.
image: /images/user-guide/workflows/workflow.png
---
@@ -21,52 +21,52 @@ Doporučujeme vytvářet automatizace pro dva hlavní účely:
1. **Interní automatizace k usnadnění každodenní činnosti vašeho týmu**: Snižte množství manuálních vstupů a opakujících se úkolů, které zpomalují váš tým.
2. **Přenášení dat do a z Twenty**: Připojte Twenty přes API volání a webhooks k vaší databázi a dalším nástrojům.
## Building Your First Workflow
## Vytvoření prvního pracovního postupu
### Step 1: Create a New Workflow
### Krok 1: Vytvořte nový pracovní postup
1. Go to **Workflows** accessible below the other objects
2. Click **+ New Record**
3. Give your workflow a name
1. Přejděte na **Pracovní postupy**, které jsou dostupné pod ostatními objekty
2. Klikněte na **+ New Record**
3. Pojmenujte svůj pracovní postup
### Step 2: Add a Trigger
### Krok 2: Přidejte spouštěč
Every workflow starts with a trigger. Choose from:
Každý pracovní postup začíná spouštěčem. Vyberte z následujících možností:
* **Record events**: When a record is created, updated, or deleted
* **Schedule**: Run at specific times (daily, weekly, etc.)
* **Manual**: Triggered by a user action
* **Webhook**: Triggered by a webhook
* **Události záznamů**: Když je záznam vytvořen, aktualizován nebo smazán
* **Plán**: Spouští se v konkrétních časech (denně, týdně apod.)
* **Ruční**: Spouštěno akcí uživatele
* **Webhook**: Spouštěno pomocí webhooku
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
### Step 3: Add Actions
### Krok 3: Přidejte akce
After your trigger, add one or more actions:
Po spouštěči přidejte jednu nebo více akcí:
* **Create Record**: Add new records to any object
* **Update Record**: Modify existing record data
* **Delete Record**: Remove records from objects
* **Search Records**: Find records matching criteria
* **Upsert Record**: Create or update based on matching criteria
* **Iterator**: Loop through arrays of records
* **Filter**: Control which records proceed
* **Delay**: Wait before continuing (duration or scheduled date)
* **Send Email**: Send emails via your connected account
* **Code**: Run custom JavaScript
* **HTTP Request**: Call external APIs
* **Form**: Get inputs from users within Twenty UI at the time of execution
* **AI Agent** (Coming soon): Run intelligent AI tasks
* **Vytvořit záznam**: Přidejte nové záznamy do libovolného objektu
* **Aktualizovat záznam**: Upravte data existujícího záznamu
* **Smazat záznam**: Odstraňte záznamy z objektů
* **Vyhledat záznamy**: Najděte záznamy odpovídající kritériím
* **Vložit nebo aktualizovat záznam**: Vytvořte nebo aktualizujte na základě odpovídajících kritérií
* **Iterátor**: Procházejte pole záznamů
* **Filtr**: Určete, které záznamy postoupí
* **Prodleva**: Počkejte před pokračováním (doba trvání nebo naplánované datum)
* **Odeslat e-mail**: Odesílejte e-maily prostřednictvím svého propojeného účtu
* **Kód**: Spouštějte vlastní JavaScript
* **HTTP požadavek**: Volejte externí API
* **Formulář**: Získejte vstupy od uživatelů v rámci Twenty UI v době spuštění
* **AI Agent** (Již brzy): Spouštějte inteligentní úlohy s AI
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Step 4: Test and Activate
### Krok 4: Otestujte a aktivujte
1. Use the **Test** button to run your workflow with sample data
2. Review the results to ensure it works as expected
3. Toggle the workflow **Active** when ready
1. Pomocí tlačítka **Test** spusťte svůj pracovní postup se vzorovými daty
2. Zkontrolujte výsledky, abyste se ujistili, že vše funguje podle očekávání
3. Až budete připraveni, přepněte pracovní postup na **Active**
## Workflow Best Practices
## Osvědčené postupy pro pracovní postupy
* **Upravte názvy kroků**: Přejmenujte kroky vašeho workflowu a jasně popište, co každý z nich dělá. To pomáhá s údržbou a usnadňuje předání spolupracovníkům
* **Využijte data z předchozích kroků**: Můžete použít pole záznamů vrácených z jakéhokoli předchozího kroku ve vašem workflowu
@@ -75,6 +75,6 @@ After your trigger, add one or more actions:
## Další kroky
* [Workflow Triggers](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [CRM 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 CRM](/l/cs/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,6 +1,6 @@
---
title: Mailbox
description: Understanding email integration features in Twenty.
title: Postfach
description: E-Mail-Integrationsfunktionen in Twenty verstehen.
---
**Hinweis**: Um Ihre E-Mail-Konten zu verbinden und die Synchronisierungseinstellungen zu konfigurieren, besuchen Sie [E-Mail- & Kalendereinrichtung](/l/de/user-guide/calendar-emails/overview).
@@ -9,7 +9,7 @@ description: Understanding email integration features in Twenty.
Twenty verknüpft E-Mails automatisch aus Ihren verknüpften Postfächern mit den relevanten CRM-Datensätzen, um den gesamten Kommunikationsverlauf an einem Ort zu halten.
### Objects Where Emails Can Be Found
### Objekte, in denen E-Mails gefunden werden können
E-Mail-Konversationen erscheinen in drei Hauptobjekten:
@@ -1,23 +1,23 @@
---
title: Calendar & Emails
description: Connect your email and calendar accounts to Twenty.
title: Kalender & E-Mails
description: Verbinden Sie Ihre E-Mail- und Kalenderkonten mit Twenty.
image: /images/user-guide/emails/emails_header.png
---
<Frame>
<img src="/images/user-guide/emails/emails_header.png" alt="Calendar & Emails" />
<img src="/images/user-guide/emails/emails_header.png" alt="Kalender & E-Mails" />
</Frame>
## Connection Options
## Verbindungsoptionen
### Google-Konto (Gmail & Google Kalender)
1. Gehen Sie zu **Einstellungen → Konten**
2. Klicken Sie auf **Konto hinzufügen**
3. Wählen Sie **Mit Google fortfahren**
4. Authorize Twenty to access your Gmail and Google Calendar
5. Configure email sync settings (visibility, auto-creation) → click **Next**
6. Configure calendar sync settings (visibility, auto-creation) → click **Add Account**
4. Autorisieren Sie Twenty, auf Ihr Gmail-Konto und Ihren Google-Kalender zuzugreifen
5. Konfigurieren Sie die E-Mail-Synchronisierungseinstellungen (Sichtbarkeit, automatische Erstellung) → Klicken Sie auf **Weiter**
6. Konfigurieren Sie die Kalendersynchronisierungseinstellungen (Sichtbarkeit, automatische Erstellung) → Klicken Sie auf **Konto hinzufügen**
7. Ihre E-Mails und Kalendereinträge werden automatisch synchronisiert
### Microsoft Konto (Outlook & Microsoft Kalender)
@@ -25,12 +25,12 @@ image: /images/user-guide/emails/emails_header.png
1. Gehen Sie zu **Einstellungen → Konten**
2. Klicken Sie auf **Konto hinzufügen**
3. Wählen Sie **Mit Microsoft fortfahren**
4. Authorize Twenty to access your Outlook and Microsoft Calendar
5. Configure email sync settings (visibility, auto-creation) → click **Next**
6. Configure calendar sync settings (visibility, auto-creation) → click **Add Account**
4. Autorisieren Sie Twenty, auf Ihr Outlook-Konto und Ihren Microsoft-Kalender zuzugreifen
5. Konfigurieren Sie die E-Mail-Synchronisierungseinstellungen (Sichtbarkeit, automatische Erstellung) → Klicken Sie auf **Weiter**
6. Konfigurieren Sie die Kalendersynchronisierungseinstellungen (Sichtbarkeit, automatische Erstellung) → Klicken Sie auf **Konto hinzufügen**
7. Ihre E-Mails und Kalendereinträge werden automatisch synchronisiert
### SMTP/CalDAV Setup (Other Providers)
### SMTP/CalDAV-Einrichtung (andere Anbieter)
Für andere E-Mail- und Kalenderanbieter:
@@ -66,7 +66,7 @@ Wählen Sie verschiedene Sichtbarkeitsstufen für Ihre E-Mails:
* **Nur für gesendete Nachrichten**: Kontakte nur für gesendete E-Mails erstellen
* **Hinweis**: Interne E-Mails (gleiche Domain) werden nie synchronisiert, um die Privatsphäre zu wahren
<Note>When enabled, contacts are automatically linked to their Company records based on their email domain. If the company doesn't exist yet, Twenty creates it for you.</Note>
<Note>Wenn aktiviert, werden Kontakte basierend auf ihrer E-Mail-Domain automatisch mit ihren Unternehmensdatensätzen verknüpft. Falls das Unternehmen noch nicht existiert, erstellt Twenty es für Sie.</Note>
### Control which emails get synced with Message Folder Selection
@@ -103,7 +103,7 @@ Wählen Sie aus, was für andere Benutzer in Ihrem Arbeitsbereich sichtbar wird:
* **Ja**: Kontakte für Besprechungsteilnehmer, die nicht in Ihrem CRM sind, automatisch erstellen
* **Nein**: Treffen Sie Verbindungen nur zu vorhandenen Kontakten
<Note>When enabled, contacts are automatically linked to their Company records based on their email domain. If the company doesn't exist yet, Twenty creates it for you.</Note>
<Note>Wenn aktiviert, werden Kontakte basierend auf ihrer E-Mail-Domain automatisch mit ihren Unternehmensdatensätzen verknüpft. Falls das Unternehmen noch nicht existiert, erstellt Twenty es für Sie.</Note>
### Steuern Sie, welche Ereignisse synchronisiert werden
@@ -121,10 +121,10 @@ Wählen Sie aus, was für andere Benutzer in Ihrem Arbeitsbereich sichtbar wird:
**Aktualisierungen alle 5 Minuten**: Sowohl E-Mail- als auch Kalenderdaten werden automatisch alle 5 Minuten nach dem ersten Import synchronisiert.
<Note>
**Initial sync timing**: Calendar sync completes quickly (usually within minutes), while email sync takes longer for large mailboxes. Twenty imports emails at approximately **400 messages per minute** (limited by Gmail API rate limiting), so a mailbox with 10,000 emails takes about 25 minutes. Don't worry if you see contacts from calendar events appearing before your email contacts; this is normal behavior.
**Initial sync timing**: Calendar sync completes quickly (usually within minutes), while email sync takes longer for large mailboxes. Twenty imports emails at approximately **400 messages per minute** (limited by Gmail API rate limiting), so a mailbox with 10,000 emails takes about 25 minutes. Keine Sorge, wenn Kontakte aus Kalenderereignissen vor Ihren E-Mail-Kontakten erscheinen; das ist normales Verhalten.
</Note>
## Nächste Schritte
* [Mailbox capabilities](/l/de/user-guide/calendar-emails/capabilities/mailbox)
* [Troubleshoot missing emails](/l/de/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records)
* [Postfachfunktionen](/l/de/user-guide/calendar-emails/capabilities/mailbox)
* [Fehlende E-Mails beheben](/l/de/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records)
@@ -1,74 +1,74 @@
---
title: Dashboards
description: Create and organize dashboards with tabs to visualize your CRM data.
description: Erstellen und organisieren Sie Dashboards mit Registerkarten, um Ihre CRM-Daten zu visualisieren.
---
## Übersicht
Dashboards in Twenty are organized in a hierarchy: **Dashboards → Tabs → Widgets**. Each dashboard can contain multiple tabs, and each tab contains widgets (charts, numbers, iFrames).
Dashboards in Twenty sind hierarchisch organisiert: **Dashboards → Registerkarten → Widgets**. Jedes Dashboard kann mehrere Registerkarten enthalten, und jede Registerkarte enthält Widgets (Diagramme, Zahlen, iFrames).
## Creating a Dashboard
## Ein Dashboard erstellen
1. Go to **Dashboards** in the navigation
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Start adding tabs and widgets
1. Gehen Sie in der Navigation zu **Dashboards**
2. Klicken Sie auf **+ Neues Dashboard**
3. Geben Sie Ihrem Dashboard einen Namen
4. Fügen Sie Registerkarten und Widgets hinzu
## Working with Tabs
## Mit Registerkarten arbeiten
Tabs help you organize your dashboard into logical sections.
Registerkarten helfen Ihnen, Ihr Dashboard in logische Abschnitte zu gliedern.
### Creating Tabs
### Registerkarten erstellen
1. In edit mode, click **+ Add Tab**
2. Name your tab (e.g., "Pipeline Overview", "Team Performance")
3. Add widgets to the tab
1. Klicken Sie im Bearbeitungsmodus auf **+ Registerkarte hinzufügen**
2. Benennen Sie Ihre Registerkarte (z. B. "Pipeline-Übersicht", "Teamleistung")
3. Fügen Sie der Registerkarte Widgets hinzu
### Duplicating Tabs
### Registerkarten duplizieren
1. Click on the tab you want to duplicate
2. Click the **Duplicate** button in the side panel
1. Klicken Sie auf die Registerkarte, die Sie duplizieren möchten
2. Klicken Sie in der Seitenleiste auf die Schaltfläche **Duplizieren**
## Dashboard Layout
## Dashboard-Layout
### Arranging Widgets
### Widgets anordnen
* Drag and drop to position
* Resize for emphasis
* Group related charts together
* Per Drag-and-Drop positionieren
* Zur Hervorhebung die Größe anpassen
* Verwandte Diagramme gruppieren
### Duplicating a Dashboard
### Ein Dashboard duplizieren
1. Exit edit mode (view mode only)
2. Open the command bar with **Cmd + K** (or **Ctrl + K** on Windows)
3. Select **Duplicate dashboard**
1. Bearbeitungsmodus beenden (nur Ansichtsmodus)
2. Öffnen Sie die Befehlsleiste mit **Cmd + K** (oder **Ctrl + K** unter Windows)
3. Wählen Sie **Dashboard duplizieren**
### Beste Praktiken
* **Logical flow**: Arrange from overview to detail
* **Visual hierarchy**: Larger charts for key metrics
* **Consistent styling**: Use matching colors and fonts
* **Logischer Ablauf**: Von der Übersicht zum Detail anordnen
* **Visuelle Hierarchie**: Größere Diagramme für Schlüsselkennzahlen
* **Einheitliches Design**: Verwenden Sie passende Farben und Schriftarten
## Visibility & Access
## Sichtbarkeit & Zugriff
### Dashboard Visibility
### Sichtbarkeit des Dashboards
Dashboards are visible to everyone who has access to your Twenty workspace. There is no private dashboard option at the moment.
Dashboards sind für alle sichtbar, die Zugriff auf Ihren Twenty-Arbeitsbereich haben. Derzeit gibt es keine Option für private Dashboards.
### Favoriten
You can add dashboards to your favorites for quick access. This is a personal setting—your favorites are not visible to other users.
Sie können Dashboards für einen schnellen Zugriff zu Ihren Favoriten hinzufügen. Dies ist eine persönliche Einstellung—Ihre Favoriten sind für andere Benutzer nicht sichtbar.
To add a dashboard to favorites, open the dashboard and click the star icon.
Um ein Dashboard zu den Favoriten hinzuzufügen, öffnen Sie das Dashboard und klicken Sie auf das Sternsymbol.
### Timezone Behavior
### Zeitzonenverhalten
Dashboards currently display data based on the timezone of the user viewing them. This means the same dashboard may show different metrics for team members in different regions (e.g., APAC vs. US).
Dashboards zeigen derzeit Daten basierend auf der Zeitzone des Benutzers, der sie ansieht. Das bedeutet, dass dasselbe Dashboard für Teammitglieder in verschiedenen Regionen unterschiedliche Kennzahlen anzeigen kann (z. B. APAC vs. US).
<Note>
**Coming soon**: We will add the ability to set a specific timezone for a dashboard, so all users see consistent data regardless of their location.
**Demnächst verfügbar**: Wir werden die Möglichkeit hinzufügen, für ein Dashboard eine bestimmte Zeitzone festzulegen, sodass alle Benutzer unabhängig von ihrem Standort konsistente Daten sehen.
</Note>
<Note>
**Coming soon**: Dashboard-level filters will allow you to apply filters across all widgets at once, making it faster to explore your data.
**Demnächst verfügbar**: Filter auf Dashboard-Ebene ermöglichen es Ihnen, Filter auf alle Widgets gleichzeitig anzuwenden, sodass Sie Ihre Daten schneller erkunden können.
</Note>
@@ -1,131 +1,131 @@
---
title: Widgets
description: Explore the widget types and visualization options in Twenty.
description: Erkunden Sie die Widget-Typen und Visualisierungsoptionen in Twenty.
---
## Available Widgets
## Verfügbare Widgets
Twenty provides various widget types to visualize your CRM data.
Twenty bietet verschiedene Widget-Typen, um Ihre CRM-Daten zu visualisieren.
### Bar Charts
### Balkendiagramme
Display data as horizontal or vertical bars.
Stellen Sie Daten als horizontale oder vertikale Balken dar.
**Best for:**
**Am besten geeignet für:**
* Comparing values across categories
* Showing rankings
* Tracking metrics by time period
* Vergleich von Werten über Kategorien hinweg
* Ranglisten anzeigen
* Kennzahlen nach Zeitraum verfolgen
**Example uses:**
**Beispielverwendung:**
* Deals by stage
* Revenue by sales rep
* Contacts added per month
* Deals nach Phase
* Umsatz nach Vertriebsmitarbeitern
* Hinzugefügte Kontakte pro Monat
<Note>
**Display limits**: Bar charts can show a maximum of 100 bars (horizontal) or 50 bars (vertical). If you see the warning "Undisplayed data: max X bars per chart", add filters to narrow down your data or change the grouping (e.g., group by week instead of days).
**Anzeigegrenzen**: Balkendiagramme können maximal 100 Balken (horizontal) oder 50 Balken (vertikal) anzeigen. Wenn Sie die Warnung "Nicht angezeigte Daten: max. X Balken pro Diagramm" sehen, fügen Sie Filter hinzu, um Ihre Daten einzugrenzen, oder ändern Sie die Gruppierung (z. B. nach Woche statt nach Tagen).
</Note>
### Pie Charts
### Tortendiagramme
Show proportions of a whole.
Zeigen Sie Anteile eines Ganzen.
**Best for:**
**Am besten geeignet für:**
* Showing composition or distribution
* Comparing parts to whole
* Highlighting major segments
* Zusammensetzung oder Verteilung anzeigen
* Teile mit dem Ganzen vergleichen
* Wichtige Segmente hervorheben
**Example uses:**
**Beispielverwendung:**
* Deal distribution by source
* Contact breakdown by industry
* Pipeline composition by owner
* Deal-Verteilung nach Quelle
* Kontaktaufschlüsselung nach Branche
* Pipeline-Zusammensetzung nach Eigentümer
### Line Charts
### Liniendiagramme
Display trends over time.
Stellen Sie Trends im Zeitverlauf dar.
**Best for:**
**Am besten geeignet für:**
* Tracking changes over time
* Identifying trends
* Comparing multiple metrics
* Veränderungen im Zeitverlauf verfolgen
* Trends erkennen
* Mehrere Kennzahlen vergleichen
**Example uses:**
**Beispielverwendung:**
* Monthly deal count trend
* Revenue growth over quarters
* Activity levels over time
* Monatlicher Trend der Anzahl der Deals
* Umsatzwachstum über Quartale
* Aktivitätsniveau im Zeitverlauf
### Number Metrics
### Kennzahlen
Display single key values prominently.
Zeigen Sie einzelne Kennzahlen prominent an.
**Best for:**
**Am besten geeignet für:**
* Highlighting KPIs
* Showing totals or averages
* Quick status checks
* KPIs hervorheben
* Summen oder Durchschnitte anzeigen
* Schnelle Statusprüfungen
**Example uses:**
**Beispielverwendung:**
* Total pipeline value
* Number of open opportunities
* Conversion rate
* Gesamtwert der Pipeline
* Anzahl offener Chancen
* Konversionsrate
**Advanced options:**
**Erweiterte Optionen:**
* **Ratio**: For Select fields, calculate ratios between values. Go to **Data on display** → select your field → enable the **Ratio** option.
* **Prefix & Suffix**: Add custom text before or after the number (e.g., "$" prefix or "%" suffix) for better readability.
* **Verhältnis**: Berechnen Sie für Select-Felder Verhältnisse zwischen Werten. Gehen Sie zu **Angezeigte Daten** → wählen Sie Ihr Feld → aktivieren Sie die Option **Verhältnis**.
* **Präfix & Suffix**: Fügen Sie benutzerdefinierten Text vor oder nach der Zahl hinzu (z. B. "$"-Präfix oder "%"-Suffix) für eine bessere Lesbarkeit.
### iFrames
Embed external tools and content directly in your dashboard.
Betten Sie externe Tools und Inhalte direkt in Ihr Dashboard ein.
**Best for:**
**Am besten geeignet für:**
* Displaying external reports or dashboards
* Integrating third-party sales tools
* Showing live content from other systems
* Externe Berichte oder Dashboards anzeigen
* Vertriebstools von Drittanbietern integrieren
* Live-Inhalte aus anderen Systemen anzeigen
**Example uses:**
**Beispielverwendung:**
* Metrics from your Support tool
* Metrics from your dialer
* Live content from your Sales sequence tool
* Kennzahlen aus Ihrem Support-Tool
* Kennzahlen aus Ihrem Dialer
* Live-Inhalte aus Ihrem Tool für Sales-Sequenzen
<Note>
**Coming soon**: Gauge charts and tables are not yet available but are on our roadmap.
**Bald verfügbar**: Tachometerdiagramme und Tabellen sind noch nicht verfügbar, stehen aber auf unserer Roadmap.
</Note>
## Configuring Widgets
## Widgets konfigurieren
### Data Source
### Datenquelle
1. Select the object to visualize (Opportunities, People, etc.)
2. Choose the metric to display (count, sum, average)
3. Apply filters to focus on specific data
1. Wählen Sie das zu visualisierende Objekt aus (Chancen, Personen usw.)
2. Wählen Sie die anzuzeigende Kennzahl (Anzahl, Summe, Durchschnitt)
3. Wenden Sie Filter an, um sich auf bestimmte Daten zu konzentrieren
### Grouping
### Gruppierung
Group data by:
Gruppieren nach:
* Fields (stage, owner, industry)
* Time periods (day, week, month, quarter)
* Custom segments
* Felder (Phase, Eigentümer, Branche)
* Zeiträume (Tag, Woche, Monat, Quartal)
* Benutzerdefinierte Segmente
### Styling
Customize your charts with:
Passen Sie Ihre Diagramme mit Folgendem an:
* Colors and themes
* Labels and legends
* Size and positioning
* Farben und Designs
* Beschriftungen und Legenden
* Größe und Positionierung
### Duplicating Widgets
### Widgets duplizieren
1. Click on the widget
2. Open **Options**
3. Click **Duplicate widget**
1. Klicken Sie auf das Widget
2. Öffnen Sie **Optionen**
3. Klicken Sie auf **Widget duplizieren**
@@ -1,94 +1,94 @@
---
title: Import Relations Between Objects
description: Import relationships between records via CSV.
title: Beziehungen zwischen Objekten importieren
description: Beziehungen zwischen Datensätzen per CSV importieren.
---
## Übersicht
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
Twenty unterstützt das Importieren von Beziehungen zwischen Objekten beim CSV-Import. So können Sie im Rahmen Ihrer Datenmigration Datensätze verknüpfen (z. B. Personen mit Unternehmen verknüpfen).
<Note>**Currently supported for import**: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
<Note>**Aktuell für den Import unterstützt**: Eins-zu-viele-Beziehungen, die auf jeder Seite auf einen einzelnen Objekttyp verweisen (z. B. Personen → Unternehmen). Beziehungen, die auf mehrere Objekttypen zeigen, werden für Import/Export noch nicht unterstützt.</Note>
## How Relations Work in Twenty
## Wie Beziehungen in Twenty funktionieren
### One to Many / Many to One
### Eins zu Viele / Viele zu Eins
Twenty supports standard relations where one record links to many others:
Twenty unterstützt Standardbeziehungen, bei denen ein Datensatz mit vielen anderen verknüpft wird:
* **One Company → Many People**: A company can have multiple employees, but each person belongs to one company
* **One Company → Many Opportunities**: A company can have multiple deals, but each opportunity belongs to one company
* **Ein Unternehmen → Viele Personen**: Ein Unternehmen kann mehrere Mitarbeitende haben, aber jede Person gehört zu einem Unternehmen
* **Ein Unternehmen → Viele Opportunities**: Ein Unternehmen kann mehrere Deals haben, aber jede Opportunity gehört zu einem Unternehmen
### Relations That Can Point to Multiple Object Types
### Beziehungen, die auf mehrere Objekttypen zeigen können
Some relations can connect to different types of objects. This works in two ways:
Einige Beziehungen können verschiedene Objekttypen verbinden. Dies funktioniert auf zwei Arten:
**Pattern 1: Many records linking to one record each from different object types**
**Muster 1: Viele Datensätze, die jeweils mit einem Datensatz aus unterschiedlichen Objekttypen verknüpft sind**
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
Mehrere Notizen, Aufgaben oder Aktivitäten können jeweils gleichzeitig an mehrere Objekttypen angehängt werden:
* **Notes** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Tasks** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Notizen** können gleichzeitig mit einer Person, einem Unternehmen und einer Opportunity verknüpft werden
* **Aufgaben** können gleichzeitig mit einer Person, einem Unternehmen und einer Opportunity verknüpft werden
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
Hier befinden sich die Notizen/Aufgaben auf der "Viele"-Seite. Jede ist mit genau einem Datensatz pro Objekttyp verknüpft.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Pattern 2: One record receiving links from many records of different object types**
**Muster 2: Ein Datensatz, der Verknüpfungen von vielen Datensätzen unterschiedlicher Objekttypen erhält**
A Project can receive links from multiple records across different object types:
Ein Projekt kann Verknüpfungen von mehreren Datensätzen über verschiedene Objekttypen hinweg erhalten:
* **A Project** can have many People linked to it, many Companies linked to it, and many Notes attached to it
* **Ein Projekt** kann viele Personen mit ihm verknüpft haben, viele Unternehmen mit ihm verknüpft haben und viele Notizen, die daran angehängt sind
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
Hier befindet sich das Projekt auf der "Eins"-Seite. Mehrere Datensätze aus verschiedenen Objekten können alle mit demselben Projekt verknüpft sein.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.
**Einschränkung beim Import/Export**: Beziehungen, die auf mehrere Objekttypen verweisen (z. B. Notizen → Personen/Unternehmen/Opportunities), werden beim CSV-Import oder -Export **noch nicht unterstützt**.
* **Import**: Only one-to-many relations pointing to a single object type on each side can be imported
* **Export**: Columns for relations pointing to multiple object types are currently left empty
* **Import**: Es können nur Eins-zu-viele-Beziehungen importiert werden, die auf jeder Seite auf einen einzelnen Objekttyp verweisen
* **Export**: Spalten für Beziehungen, die auf mehrere Objekttypen verweisen, bleiben derzeit leer
This is on our roadmap.
Dies steht auf unserer Roadmap.
</Warning>
### What's Not Supported Today
### Was heute nicht unterstützt wird
**Many to Many relations** are not yet available. For example, you cannot currently create a relation where:
**Viele-zu-viele-Beziehungen** sind noch nicht verfügbar. Sie können derzeit beispielsweise keine Beziehung erstellen, bei der:
* Many People are linked to many Projects
* Viele Personen mit vielen Projekten verknüpft sind
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>Viele-zu-viele-Beziehungen sind für H1 2026 geplant.</Note>
## Linking Records During Import
## Datensätze während des Imports verknüpfen
<Note>**Reminder**: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
<Note>**Erinnerung**: Es können nur Eins-zu-viele-Beziehungen importiert werden, die auf einen einzelnen Objekttyp verweisen (z. B. Personen → Unternehmen). Beziehungen, die auf mehrere Objekttypen verweisen (z. B. Notizen → Personen/Unternehmen/Opportunities), werden noch nicht unterstützt.</Note>
### Step 1: Identify the "One" and "Many" Sides
### Schritt 1: Identifizieren Sie die "Eins"- und "Viele"-Seiten
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
Bestimmen Sie zunächst, welches Objekt auf der "Eins"-Seite und welches auf der "Viele"-Seite der Beziehung steht.
**Example**:
**Beispiel**:
* **Company** is the "one" side (one company has many employees)
* **People** is the "many" side (each person belongs to one company)
* **Unternehmen** ist die "Eins"-Seite (ein Unternehmen hat viele Mitarbeitende)
* **Personen** ist die "Viele"-Seite (jede Person gehört zu einem Unternehmen)
### Step 2: Ensure the "One" Side Records Exist
### Schritt 2: Sicherstellen, dass die Datensätze der "Eins"-Seite existieren
Before importing the "many" side, the "one" side records must already exist in Twenty.
Bevor Sie die "Viele"-Seite importieren, müssen die Datensätze der "Eins"-Seite in Twenty bereits existieren.
* Import or create the "one" side records first (e.g., Companies)
* Validate their unique identifier. This can be:
* The `id` (Twenty's UUID)
* A field set as unique (e.g., `domain` for Companies, or an external ID from your previous system)
* Importieren oder erstellen Sie zuerst die Datensätze der "Eins"-Seite (z. B. Unternehmen)
* Validieren Sie deren eindeutigen Bezeichner. Dies kann sein:
* Die `id` (Twenty-UUID)
* Ein als eindeutig festgelegtes Feld (z. B. `domain` für Unternehmen oder eine externe ID aus Ihrem vorherigen System)
<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
<Warning>Der Import schlägt fehl, wenn auf einen nicht vorhandenen Datensatz verwiesen wird.</Warning>
### Step 3: Prepare Your CSV File
### Schritt 3: Bereiten Sie Ihre CSV-Datei vor
Add a column in your "many" side CSV file that references the "one" side record.
Fügen Sie in Ihrer CSV-Datei der "Viele"-Seite eine Spalte hinzu, die auf den Datensatz der "Eins"-Seite verweist.
**Example**: For a People CSV file linking to Companies:
**Beispiel**: Für eine Personen-CSV-Datei, die mit Unternehmen verknüpft wird:
```
firstName,lastName,email,companyDomain
@@ -96,53 +96,53 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important**:
**Wichtig**:
* The value must **exactly match** the unique field on the Company record
* For domains, use the **Domain URL** (e.g., `https://acme.com`), not the Domain Label
* Map only **one** unique identifier per relation: this leads to a smoother import
* Der Wert muss dem eindeutigen Feld im Unternehmensdatensatz **exakt entsprechen**
* Für Domains verwenden Sie die **Domain-URL** (z. B. `https://acme.com`), nicht das Domain-Label
* Ordnen Sie pro Beziehung nur **einen** eindeutigen Bezeichner zu: Das führt zu einem reibungsloseren Import
### Step 4: Ensure the Relation Field Exists
### Schritt 4: Stellen Sie sicher, dass das Beziehungsfeld existiert
Before uploading your file, make sure the relation field exists between your objects.
Vergewissern Sie sich vor dem Hochladen Ihrer Datei, dass das Beziehungsfeld zwischen Ihren Objekten existiert.
If it doesn't exist:
Falls es nicht existiert:
1. Go to **Settings → Data Model**
2. Select your object (e.g., People)
3. Create a relation field pointing to the target object (e.g., Company)
1. Gehen Sie zu **Einstellungen → Datenmodell**
2. Wählen Sie Ihr Objekt aus (z. B. Personen)
3. Erstellen Sie ein Beziehungsfeld, das auf das Zielobjekt zeigt (z. B. Unternehmen)
### Step 5: Upload and Map the Relation
### Schritt 5: Beziehung hochladen und zuordnen
1. Upload your CSV file via the import UI
2. In the field mapping step, find your relation column (e.g., `companyDomain`)
3. Map it to the relation field (e.g., Company)
4. Twenty will automatically link each record to the matching parent
1. Laden Sie Ihre CSV-Datei über die Import-Benutzeroberfläche hoch
2. Suchen Sie im Schritt der Feldzuordnung Ihre Beziehungsspalte (z. B. `companyDomain`)
3. Ordnen Sie sie dem Beziehungsfeld zu (z. B. Unternehmen)
4. Twenty verknüpft automatisch jeden Datensatz mit dem passenden übergeordneten Datensatz
### Available Unique Fields for Relations
### Verfügbare eindeutige Felder für Beziehungen
| Objekt | Unique Fields Available |
| ------------------------------------- | --------------------------------------- |
| **Companies** | `id`, `domain`, any custom unique field |
| **People** | `id`, `email`, any custom unique field |
| **Arbeitsbereichsmitglieder** | `id`, `email` (not name) |
| **Other standard and custom objects** | `id`, any field marked as unique |
| Objekt | Verfügbare eindeutige Felder |
| --------------------------------------------------- | -------------------------------------------------------- |
| **Unternehmen** | `id`, `domain`, jedes benutzerdefinierte eindeutige Feld |
| **Personen** | `id`, `email`, jedes benutzerdefinierte eindeutige Feld |
| **Arbeitsbereichsmitglieder** | `id`, `email` (nicht Name) |
| **Andere Standard- und benutzerdefinierte Objekte** | `id`, jedes als eindeutig markierte Feld |
<Note>**Linking to Workspace Members**: When the relation points to Workspace Members (your team logging into Twenty), reference them by their **email address**, not their name.</Note>
<Note>**Verknüpfung mit Workspace-Mitgliedern**: Wenn die Beziehung auf Workspace-Mitglieder verweist (Ihr Team, das sich bei Twenty anmeldet), referenzieren Sie sie über ihre **E-Mail-Adresse**, nicht über ihren Namen.</Note>
<Note>We recommend using `domain` for Companies and `email` for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>Wir empfehlen, `domain` für Unternehmen und `email` für Personen zu verwenden, da diese menschenlesbar sind und sich in Tabellenkalkulationen leicht pflegen lassen.</Note>
<Note>**Reminder**: Soft-deleted records (visible under Command MenuSee deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See [Uniqueness Constraints](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints) for more details.</Note>
<Note>**Erinnerung**: Softgelöschte Datensätze (sichtbar unter BefehlsmenüGelöschte Datensätze anzeigen) zählen für die Einzigartigkeitskriterien. Wenn Sie einen Datensatz mit demselben eindeutigen Wert wie ein gelöschter Datensatz importieren, wird der gelöschte Datensatz wiederhergestellt. Weitere Details finden Sie unter [Eindeutigkeitsbeschränkungen](/l/de/user-guide/data-migration/capabilities/uniqueness-constraints).</Note>
## Import Order Rule
## Regel für die Importreihenfolge
<Warning>
**Always import the "one" side first!**
**Importieren Sie immer zuerst die "Eins"-Seite!**
1. **Companies** first (no dependencies)
2. **People** second (linked to Companies)
3. **Opportunities** third (linked to Companies/People)
4. **Custom objects** following their dependencies
1. Zuerst **Unternehmen** (keine Abhängigkeiten)
2. **Personen** an zweiter Stelle (mit Unternehmen verknüpft)
3. **Opportunities** an dritter Stelle (mit Unternehmen/Personen verknüpft)
4. **Benutzerdefinierte Objekte** entsprechend ihren Abhängigkeiten
The parent record must exist before you can reference it.
Der übergeordnete Datensatz muss existieren, bevor Sie darauf verweisen können.
</Warning>
@@ -1,71 +1,71 @@
---
title: Import Companies via CSV
description: Complete step-by-step guide to importing companies into Twenty.
title: Unternehmen über CSV importieren
description: Vollständige Schritt-für-Schritt-Anleitung zum Importieren von Unternehmen in Twenty.
---
## Übersicht
This guide walks you through importing your companies into Twenty. **Companies should be imported first** because People and Opportunities link to Companies.
Diese Anleitung führt Sie durch den Import Ihrer Unternehmen in Twenty. **Unternehmen sollten zuerst importiert werden**, da Personen und Verkaufschancen mit Unternehmen verknüpft werden.
## 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 domains in your file
Keine doppelten Domains in Ihrer Datei
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Alle benutzerdefinierten Felder existieren in **Einstellungen → Datenmodell**
</Check>
<Note>
Need to import more than 10,000 companies? Split into multiple files or use the [API import](/l/de/user-guide/data-migration/how-tos/import-data-via-api).
Müssen Sie mehr als 10.000 Unternehmen importieren? Teilen Sie in mehrere Dateien auf oder verwenden Sie den [API-Import](/l/de/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Step 1: Prepare Your Company Data
## Schritt 1: Bereiten Sie Ihre Unternehmensdaten vor
### Required and Recommended Fields
### Erforderliche und empfohlene Felder
| Feld | Required? | Format | Notizen |
| ----------------- | ----------- | -------------------- | ------------------------ |
| **Name** | Recommended | Text | Company display name |
| **Domain** | Recommended | `https://domain.com` | Unique identifier |
| **Address** | Optional | Multiple columns | See below |
| **Employees** | Optional | Nummer | Employee count |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Feld | Erforderlich? | Format | Notizen |
| ----------------------------- | ------------- | -------------------- | ------------------------------ |
| **Name** | Empfohlen | Text | Anzeigename des Unternehmens |
| **Domain** | Empfohlen | `https://domain.com` | Eindeutiger Bezeichner |
| **Adresse** | Optional | Mehrere Spalten | Siehe unten |
| **Mitarbeiter** | Optional | Nummer | Anzahl der Mitarbeiter |
| **Benutzerdefinierte Felder** | Optional | Variiert | Muss im Datenmodell existieren |
### Domain Format
### Domain-Format
<Warning>
**Use the format `https://domain.com` for domains.**
**Verwenden Sie für Domains das Format `https://domain.com`.**
This matches the format used when Companies are auto-created from email/calendar sync, preventing duplicates later.
Dies entspricht dem Format, das verwendet wird, wenn Unternehmen durch E-Mail-/Kalender-Synchronisierung automatisch erstellt werden, und verhindert später Duplikate.
</Warning>
**Domain columns:**
**Domain-Spalten:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Address Format
### Adressformat
Address is a nested field with multiple columns:
Adresse ist ein verschachteltes Feld mit mehreren Spalten:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Sample CSV Structure
### Beispielhafte CSV-Struktur
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
@@ -74,112 +74,112 @@ Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Pro tip:** Click **Download sample file** during import to see the exact column names Twenty expects.
**Profi-Tipp:** Klicken Sie während des Imports auf **Beispieldatei herunterladen**, 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 Companies View**
**Option 1: Aus der Unternehmensansicht**
1. Navigate to **Companies** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Navigieren Sie zu **Unternehmen** 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 **Companies**
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 **Unternehmen**
## 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
* **Domain**: Map to **Domain / Domain URL** (not Domain Label)
* **Address**: Map each part to its specific column (City, State, etc.)
* **Select fields**: Values must match existing options (or you'll map them in the next step)
* **Domain**: Ordnen Sie **Domain / Domain URL** zu (nicht Domain Label)
* **Adresse**: Ordnen Sie jeden Teil der jeweiligen Spalte zu (Stadt, Bundesstaat usw.)
* **Auswahlfelder**: Werte müssen mit vorhandenen Optionen übereinstimmen (oder Sie ordnen sie im nächsten Schritt zu)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Step 5: Map Select Field Values
## Schritt 5: Werte von Auswahlfeldern zuordnen
If you have Select or Multi-Select fields:
Wenn Sie Auswahl- oder Mehrfachauswahlfelder haben:
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 Company Import Errors
### Häufige Fehler beim Unternehmensimport
| Fehler | Cause | Solution |
| -------------------------- | ------------------------------- | ------------------------------------------ |
| **Duplicate domain** | Domain already exists in Twenty | Remove from file or update existing record |
| **Invalid domain format** | Wrong format | Use `https://domain.com` |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Fehler | Ursache | Lösung |
| ----------------------------- | ---------------------------------- | ------------------------------------------------------------ |
| **Doppelte Domain** | Domain existiert bereits in Twenty | Aus Datei entfernen oder bestehenden Datensatz aktualisieren |
| **Ungültiges Domain-Format** | Falsches Format | Verwenden Sie `https://domain.com` |
| **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
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 prüfen
## After Importing Companies
## Nach dem Import von Unternehmen
Now you can import records that link to Companies:
Jetzt können Sie Datensätze importieren, die mit Unternehmen verknüpft sind:
1. **[Import People](/l/de/user-guide/data-migration/how-tos/import-contacts-via-csv)** — link them to Companies using the domain
2. **Import Opportunities** — link them to Companies
3. **Verify the import** — spot-check a few records to ensure data is correct
1. **[Personen importieren](/l/de/user-guide/data-migration/how-tos/import-contacts-via-csv)** — verknüpfen Sie sie über die Domain mit Unternehmen
2. **Verkaufschancen importieren** — verknüpfen Sie sie mit Unternehmen
3. **Import verifizieren** — prüfen Sie stichprobenartig einige Datensätze, um sicherzustellen, dass die Daten korrekt sind
## Updating Existing Companies
## Vorhandene Unternehmen aktualisieren
To update companies instead of creating new ones:
So aktualisieren Sie Unternehmen, statt neue zu erstellen:
1. Include the `domain` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing companies are updated; new ones are created
1. Fügen Sie die Spalte `domain` oder `id` in Ihrer Datei hinzu
2. Twenty gleicht Datensätze anhand dieses eindeutigen Bezeichners ab
3. Vorhandene Unternehmen 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 Companies have the same domain?">
Domain is a unique identifier in Twenty. This prevents duplicate companies and ensures email sync correctly links emails to the right company.
<Accordion title="Warum können zwei Unternehmen nicht dieselbe Domain haben?">
Die Domain ist ein eindeutiger Bezeichner in Twenty. Das verhindert doppelte Unternehmen und stellt sicher, dass die E-Mail-Synchronisierung E-Mails dem richtigen Unternehmen korrekt zuordnet.
</Accordion>
<Accordion title="What if I have companies without a domain?">
You can leave the domain empty. However, we recommend adding domains when possible for better data quality and automatic email linking.
<Accordion title="Was ist, wenn ich Unternehmen ohne Domain habe?">
Sie können die Domain leer lassen. Wir empfehlen jedoch, wenn möglich Domains hinzuzufügen, um die Datenqualität zu verbessern und E-Mails automatisch zuzuordnen.
</Accordion>
<Accordion title="Can I import companies without any People linked?">
<Accordion title="Kann ich Unternehmen ohne verknüpfte Personen importieren?">
Ja! You can import companies first, then import People later and link them using the company domain.
</Accordion>
@@ -31,103 +31,103 @@ Eine Migration ist eine Chance für einen Neuanfang. Übernehmen Sie keinen Ball
Erstellen Sie ein Zuordnungsdokument zwischen Ihrem aktuellen CRM und Twenty:
| Ihr CRM | Twenty |
| -------------------- | -------------------- |
| Konto / Organisation | **Unternehmen** |
| Kontakt / Person | **Personen** |
| Deal / Opportunity | **Opportunity** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| Ihr CRM | Twenty |
| -------------------------- | ------------------------------ |
| Konto / Organisation | **Unternehmen** |
| Kontakt / Person | **Personen** |
| Deal / Opportunity | **Opportunity** |
| Aktivität | **Aufgabe** oder **Notiz** |
| Benutzerdefiniertes Objekt | **Benutzerdefiniertes Objekt** |
**For each field, document:**
**Dokumentieren Sie für jedes Feld:**
* The source field name
* The target Twenty field
* Any format transformations needed (dates, phone numbers, etc.)
* Name des Quellfelds
* Das Zielfeld in Twenty
* Erforderliche Formatumwandlungen (Datumsangaben, Telefonnummern usw.)
<Note>Keep this mapping document handy during import—you'll reference it when mapping columns.</Note>
<Note>Halten Sie dieses Mapping-Dokument während des Imports griffbereit — Sie werden darauf verweisen, wenn Sie Spalten zuordnen.</Note>
## Step 3: Set Up Your Twenty Workspace
## Schritt 3: Richten Sie Ihren Twenty-Arbeitsbereich ein
Before importing data, prepare your Twenty workspace:
Bereiten Sie Ihren Twenty-Arbeitsbereich vor, bevor Sie Daten importieren:
### Create Custom Objects and Fields
### Benutzerdefinierte Objekte und Felder erstellen
1. Go to **Settings → Data Model**
2. Create any custom objects you need
3. Add custom fields to standard and custom objects
4. Configure field settings (unique, required, select options, etc.)
1. Gehen Sie zu **Einstellungen → Datenmodell**
2. Erstellen Sie alle benötigten benutzerdefinierten Objekte
3. Fügen Sie Standard- und benutzerdefinierten Objekten benutzerdefinierte Felder hinzu
4. Konfigurieren Sie die Feldeinstellungen (eindeutig, erforderlich, Auswahloptionen usw.)
<Warning>
**Fields must exist before import.**
**Felder müssen vor dem Import vorhanden sein.**
The CSV import creates records, not fields. Create all custom fields in Settings → Data Model before importing.
Der CSV-Import erstellt Datensätze, nicht Felder. Erstellen Sie alle benutzerdefinierten Felder vor dem Import unter Einstellungen → Datenmodell.
</Warning>
### Invite Your Team
### Laden Sie Ihr Team ein
<Warning>
**Invite users BEFORE importing data.**
**Laden Sie Benutzer ein, BEVOR Sie Daten importieren.**
If your data includes user references (Account Owner, Assignee, etc.), those users must exist in Twenty before import. Otherwise, those relations cannot be mapped.
Wenn Ihre Daten Benutzerreferenzen enthalten (Account Owner, Assignee usw.), müssen diese Benutzer vor dem Import in Twenty existieren. Andernfalls können diese Beziehungen nicht zugeordnet werden.
</Warning>
1. Gehen Sie zu **Einstellungen → Mitglieder**
2. Invite all team members
3. **Wait for everyone to accept** their invitation
4. Verify all users appear in your Members list
2. Laden Sie alle Teammitglieder ein
3. **Warten Sie, bis alle** ihre Einladung angenommen haben
4. Überprüfen Sie, ob alle Benutzer in Ihrer Mitgliederliste erscheinen
## Step 4: Export from Your Current CRM
## Schritt 4: Export aus Ihrem aktuellen CRM
Export your data from your current CRM:
Exportieren Sie Ihre Daten aus Ihrem aktuellen CRM:
1. Look for an **Export** function (usually under Settings, Data Management, or Admin)
2. Export to **CSV format** when possible
3. Export each object type separately (Companies, Contacts, Deals, etc.)
4. Include all fields you want to migrate
1. Suchen Sie nach einer **Export**-Funktion (in der Regel unter Einstellungen, Datenverwaltung oder Admin)
2. Exportieren Sie nach Möglichkeit im **CSV-Format**
3. Exportieren Sie jeden Objekttyp separat (Unternehmen, Kontakte, Deals usw.)
4. Schließen Sie alle Felder ein, die Sie migrieren möchten
**Export these objects (in this order for reference):**
**Exportieren Sie diese Objekte (zur Referenz in dieser Reihenfolge):**
1. Companies / Accounts / Organizations
2. Contacts / People
1. Unternehmen / Konten / Organisationen
2. Kontakte / Personen
3. Deals / Opportunities
4. Notes and Activities
4. Notizen und Aktivitäten
5. Benutzerdefinierte Objekte
## Step 5: Clean and Format Your Data
## Schritt 5: Daten bereinigen und formatieren
Open each exported CSV in a spreadsheet application and prepare it for Twenty.
Öffnen Sie jede exportierte CSV in einer Tabellenkalkulationsanwendung und bereiten Sie sie für Twenty vor.
### Remove Duplicates
### Duplikate entfernen
1. Sort by the unique field (email for People, domain for Companies)
2. Remove or merge duplicate rows
3. Verify no duplicates exist in Twenty already
1. Sortieren Sie nach dem eindeutigen Feld (E-Mail für Personen, Domain für Unternehmen)
2. Doppelte Zeilen entfernen oder zusammenführen
3. Überprüfen Sie, dass in Twenty keine Duplikate vorhanden sind
### Format Fields Correctly
### Felder korrekt formatieren
| Field Type | Required Format |
| ----------------- | ------------------------------------------------- |
| **Domain** | `https://domain.com` |
| **E-Mail** | `name@domain.com` (must be unique) |
| **Date** | `YYYY-MM-DD` |
| **Phone** | Three columns: Number, Country Code, Calling Code |
| **Boolean** | `TRUE` or `FALSE` (uppercase) |
| **Select fields** | Use API names, not display labels |
| Feldtyp | Erforderliches Format |
| ----------------- | ------------------------------------------------ |
| **Domain** | `https://domain.com` |
| **E-Mail** | `name@domain.com` (muss eindeutig sein) |
| **Datum** | `YYYY-MM-DD` |
| **Telefon** | Drei Spalten: Nummer, Ländercode, Telefonvorwahl |
| **Boolesch** | `TRUE` oder `FALSE` (in Großbuchstaben) |
| **Auswahlfelder** | Verwenden Sie API-Namen, nicht Anzeigenamen |
<Warning>
**Domain format is critical.**
**Das Domain-Format ist entscheidend.**
Use `https://domain.com` (not `domain.com` or `www.domain.com`). This matches Twenty's format and prevents duplicates when you connect email/calendar sync.
Verwenden Sie `https://domain.com` (nicht `domain.com` oder `www.domain.com`). Dies entspricht dem Format von Twenty und verhindert Duplikate, wenn Sie die E-Mail-/Kalendersynchronisierung verbinden.
</Warning>
See [How to Prepare Your CSV Files](/l/de/user-guide/data-migration/how-tos/prepare-your-csv-files) for complete formatting requirements for all field types.
Siehe [So bereiten Sie Ihre CSV-Dateien vor](/l/de/user-guide/data-migration/how-tos/prepare-your-csv-files) für vollständige Formatierungsanforderungen für alle Feldtypen.
### Add Relation Columns
### Beziehungsspalten hinzufügen
To link records (e.g., People to Companies), add a column with the parent's unique identifier.
Um Datensätze zu verknüpfen (z. B. Personen mit Unternehmen), fügen Sie eine Spalte mit dem eindeutigen Bezeichner des übergeordneten Elements hinzu.
**Example: People CSV with Company link**
**Beispiel: People-CSV mit Unternehmensverknüpfung**
```csv
firstName,lastName,email,companyDomain
@@ -135,159 +135,159 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
See [How to Import Relations](/l/de/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) for detailed instructions on linking records.
Siehe [So importieren Sie Beziehungen](/l/de/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) für detaillierte Anweisungen zum Verknüpfen von Datensätzen.
### Update User References
### Benutzerreferenzen aktualisieren
If your data includes user assignments (Owner, Assignee):
Wenn Ihre Daten Benutzerzuweisungen enthalten (Eigentümer, Zuständiger):
1. Add a column with the **user's email** (not just their ID from the old system)
2. Use the same email addresses that users used to join your Twenty workspace
1. Fügen Sie eine Spalte mit der **E-Mail des Benutzers** hinzu (nicht nur dessen ID aus dem Altsystem)
2. Verwenden Sie dieselben E-Mail-Adressen, mit denen die Benutzer Ihrem Twenty-Arbeitsbereich beigetreten sind
See [How to Prepare Your CSV Files](/l/de/user-guide/data-migration/how-tos/prepare-your-csv-files) for complete formatting guide.
Siehe [So bereiten Sie Ihre CSV-Dateien vor](/l/de/user-guide/data-migration/how-tos/prepare-your-csv-files) für den vollständigen Formatierungsleitfaden.
## Step 6: Import to Twenty
## Schritt 6: In Twenty importieren
<Warning>
**Import Order Matters!**
**Die Importreihenfolge ist wichtig!**
Always import in this order:
Importieren Sie immer in dieser Reihenfolge:
1. **Companies** first (no dependencies)
2. **People** second (link to Companies)
3. **Opportunities** third (link to Companies/People)
4. **Notes and Tasks** (link to records)
5. **Custom objects** following their dependencies
1. Zuerst **Unternehmen** (keine Abhängigkeiten)
2. **Personen** an zweiter Stelle (mit Unternehmen verknüpfen)
3. **Opportunities** an dritter Stelle (mit Unternehmen/Personen verknüpfen)
4. **Notizen und Aufgaben** (mit Datensätzen verknüpfen)
5. **Benutzerdefinierte Objekte** entsprechend ihren Abhängigkeiten
The parent record must exist before you can reference it.
Der übergeordnete Datensatz muss existieren, bevor Sie darauf verweisen können.
</Warning>
### Import Each Object
### Jedes Objekt importieren
For each CSV file, in order:
Führen Sie Folgendes der Reihe nach für jede CSV-Datei aus:
1. Navigate to the object in Twenty
2. Click **⋮ → Import records**
3. Upload the CSV file
4. Map columns to fields:
* Map user email columns to the appropriate relation fields
* Map relation columns (like `companyDomain`) to relation fields
5. Review and fix any errors in the UI
6. Confirm the import
7. Verify a few records before proceeding to the next file
1. Navigieren Sie zum Objekt in Twenty
2. Klicken Sie auf **⋮ → Datensätze importieren**
3. Laden Sie die CSV-Datei hoch
4. Ordnen Sie die Spalten den Feldern zu:
* Ordnen Sie die E-Mail-Spalten der Benutzer den entsprechenden Beziehungsfeldern zu
* Ordnen Sie Beziehungsspalten (wie `companyDomain`) den Beziehungsfeldern zu
5. Überprüfen und beheben Sie eventuelle Fehler in der Benutzeroberfläche
6. Bestätigen Sie den Import
7. Überprüfen Sie einige Datensätze, bevor Sie mit der nächsten Datei fortfahren
**Detailed guides:**
**Detaillierte Anleitungen:**
* [How to Import Companies](/l/de/user-guide/data-migration/how-tos/import-companies-via-csv)
* [How to Import Contacts](/l/de/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [How to Import Relations](/l/de/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [So importieren Sie Unternehmen](/l/de/user-guide/data-migration/how-tos/import-companies-via-csv)
* [So importieren Sie Kontakte](/l/de/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [So importieren Sie Beziehungen](/l/de/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## Step 7: Large Migrations (50,000+ Records)
## Schritt 7: Große Migrationen (50.000+ Datensätze)
For large migrations:
Für große Migrationen:
| Volume | Recommended Approach |
| ----------------------- | ----------------------------- |
| Under 10,000 records | Single CSV import |
| 10,000 - 50,000 records | Split into multiple CSV files |
| 50,000+ records | Use the API |
| Datenmenge | Empfohlener Ansatz |
| ------------------------ | -------------------------------- |
| Unter 10.000 Datensätzen | Einzelner CSV-Import |
| 10.00050.000 Datensätze | In mehrere CSV-Dateien aufteilen |
| Über 50.000 Datensätze | Verwenden Sie die API |
**For API imports:**
**Für API-Importe:**
* Faster and more reliable for large datasets
* Supports batch operations (up to 60 records per call)
* See [How to Import Data via API](/l/de/user-guide/data-migration/how-tos/import-data-via-api)
* Schneller und zuverlässiger für große Datensätze
* Unterstützt Batch-Operationen (bis zu 60 Datensätze pro Aufruf)
* Siehe [So importieren Sie Daten über die API](/l/de/user-guide/data-migration/how-tos/import-data-via-api)
## Step 8: Post-Migration Setup
## Schritt 8: Einrichtung nach der Migration
After importing data, complete your workspace configuration:
Schließen Sie nach dem Import der Daten die Konfiguration Ihres Arbeitsbereichs ab:
### Recreate Views
### Ansichten neu erstellen
* Set up saved views with filters, sorts, and column configurations
* Create any kanban or calendar views you need
* Richten Sie gespeicherte Ansichten mit Filtern, Sortierungen und Spaltenkonfigurationen ein
* Erstellen Sie alle benötigten Kanban- oder Kalenderansichten
### Workflows neu erstellen
* Rebuild your automations in **Settings → Workflows**
* Start with the most critical workflows
* Test each one before relying on it
* Erstellen Sie Ihre Automatisierungen in **Einstellungen → Workflows** neu
* Beginnen Sie mit den kritischsten Workflows
* Testen Sie jeden Workflow, bevor Sie sich darauf verlassen
### Configure Roles and Permissions
### Rollen und Berechtigungen konfigurieren
* Set up roles in **Settings → Roles**
* Assign users to appropriate roles
* Richten Sie Rollen unter **Einstellungen → Rollen** ein
* Weisen Sie Benutzer den entsprechenden Rollen zu
### Connect Email and Calendar
### E-Mail und Kalender verbinden
* Each user connects their own account in **Settings → Accounts**
* Twenty will start syncing emails to contact records
* See [Email & Calendar](/l/de/user-guide/calendar-emails/overview)
* Jeder Benutzer verbindet sein eigenes Konto unter **Einstellungen → Konten**
* Twenty beginnt, E-Mails mit Kontaktdatensätzen zu synchronisieren
* Siehe [E-Mail & Kalender](/l/de/user-guide/calendar-emails/overview)
### Train Your Team
### Schulen Sie Ihr Team
* Walk through the new interface together
* Document any team-specific processes
* Gehen Sie die neue Oberfläche gemeinsam durch
* Dokumentieren Sie alle teamspezifischen Prozesse
## Häufige Probleme und Lösungen
| Issue | Cause | Solution |
| ----------------------- | --------------------------- | ------------------------------------------------------------------------------------ |
| **Duplicate errors** | Email/domain already exists | Remove duplicates from file, or include unique identifier to update existing records |
| **Relation not found** | Parent record doesn't exist | Import parent objects first (Companies before People) |
| **Missing fields** | Custom field doesn't exist | Create field in Settings → Data Model before importing |
| **Select field errors** | Using display labels | Use API names (enable Advanced mode in Settings to find them) |
| **User relation empty** | User hasn't accepted invite | Ensure all users accept invitations before importing |
| Problem | Ursache | Lösung |
| ----------------------------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **Duplikatfehler** | E-Mail/Domain existiert bereits | Entfernen Sie Duplikate aus der Datei oder fügen Sie einen eindeutigen Bezeichner hinzu, um vorhandene Datensätze zu aktualisieren |
| **Beziehung nicht gefunden** | Übergeordneter Datensatz existiert nicht | Importieren Sie zuerst übergeordnete Objekte (Unternehmen vor Personen) |
| **Fehlende Felder** | Benutzerdefiniertes Feld existiert nicht | Erstellen Sie das Feld vor dem Import unter Einstellungen → Datenmodell |
| **Fehler bei Auswahlfeldern** | Verwendung von Anzeigenamen | Verwenden Sie API-Namen (aktivieren Sie den erweiterten Modus in den Einstellungen, um sie zu finden) |
| **Benutzerbeziehung leer** | Benutzer hat Einladung nicht angenommen | Stellen Sie sicher, dass alle Benutzer ihre Einladungen annehmen, bevor Sie Daten importieren |
See [How to Fix Import Errors](/l/de/user-guide/data-migration/how-tos/fix-import-errors) for detailed troubleshooting steps.
Siehe [So beheben Sie Importfehler](/l/de/user-guide/data-migration/how-tos/fix-import-errors) für detaillierte Schritte zur Fehlerbehebung.
## Checkliste nach der Migration
### Data Integrity
### Datenintegrität
<Check>All records imported (compare counts with source system)</Check>
<Check>Relations working correctly (People linked to Companies)</Check>
<Check>User assignments mapped correctly (Owner, Assignee)</Check>
<Check>Custom fields populated</Check>
<Check>No unexpected duplicates</Check>
<Check>Alle Datensätze importiert (Anzahlen mit Quellsystem vergleichen)</Check>
<Check>Beziehungen funktionieren korrekt (Personen mit Unternehmen verknüpft)</Check>
<Check>Benutzerzuweisungen korrekt zugeordnet (Eigentümer, Zuständiger)</Check>
<Check>Benutzerdefinierte Felder befüllt</Check>
<Check>Keine unerwarteten Duplikate</Check>
### Konfiguration
<Check>Views recreated</Check>
<Check>Workflows recreated and tested</Check>
<Check>Roles and permissions configured</Check>
<Check>Email/calendar sync connected</Check>
<Check>Ansichten neu erstellt</Check>
<Check>Workflows neu erstellt und getestet</Check>
<Check>Rollen und Berechtigungen konfiguriert</Check>
<Check>E-Mail-/Kalendersynchronisierung verbunden</Check>
### Team Readiness
### Bereitschaft des Teams
<Check>Team trained on new system</Check>
<Check>Old CRM access plan decided (keep for reference? When to disable?)</Check>
<Check>Team für neues System geschult</Check>
<Check>Zugriffsplan für altes CRM entschieden (zur Referenz behalten? Wann deaktivieren?)</Check>
## FAQ
<AccordionGroup>
<Accordion title="Can I migrate workflows automatically?">
Not currently. Workflows must be recreated manually in Twenty.
<Accordion title="Kann ich Workflows automatisch migrieren?">
Derzeit nicht. Workflows müssen in Twenty manuell neu erstellt werden.
</Accordion>
<Accordion title="What about file attachments?">
File attachments are not included in CSV exports. You'll need to re-upload them manually, migrate via API, or contact our team for assistance.
<Accordion title="Was ist mit Dateianhängen?">
Dateianhänge sind in CSV-Exporten nicht enthalten. Sie müssen sie manuell erneut hochladen, über die API migrieren oder unser Team für Unterstützung kontaktieren.
</Accordion>
<Accordion title="Can I keep both systems running during migration?">
Yes, we recommend keeping your old CRM running until you've verified the migration is complete. Just be careful not to create new data in both places.
<Accordion title="Kann ich während der Migration beide Systeme weiter betreiben?">
Ja, wir empfehlen, Ihr altes CRM weiter zu betreiben, bis Sie überprüft haben, dass die Migration abgeschlossen ist. Achten Sie einfach darauf, nicht an beiden Orten neue Daten zu erstellen.
</Accordion>
<Accordion title="How long does migration typically take?">
Depends on data volume and complexity. Small migrations (under 10,000 records) can be done in a few hours. Large migrations may take several days including data cleanup and testing.
<Accordion title="Wie lange dauert die Migration normalerweise?">
Das hängt von der Datenmenge und der Komplexität ab. Kleine Migrationen (unter 10.000 Datensätzen) können in wenigen Stunden durchgeführt werden. Große Migrationen können mehrere Tage dauern, einschließlich Datenbereinigung und Tests.
</Accordion>
</AccordionGroup>
## Need Help?
## Brauchen Sie Hilfe?
For complex migrations or large datasets:
Für komplexe Migrationen oder große Datensätze:
* **Guided setup:** Book a 4-hour onboarding pack
* **Full migration service:** Our partners can handle the entire migration
* **Geführte Einrichtung:** Buchen Sie ein 4-stündiges Onboarding-Paket
* **Vollständiger Migrationsservice:** Unsere Partner können die gesamte Migration übernehmen
Contact [contact@twenty.com](mailto:contact@twenty.com) or explore our [Implementation Services](/l/de/user-guide/getting-started/capabilities/implementation-services).
Kontaktieren Sie [contact@twenty.com](mailto:contact@twenty.com) oder informieren Sie sich über unsere [Implementierungsservices](/l/de/user-guide/getting-started/capabilities/implementation-services).
@@ -1,74 +1,74 @@
---
title: View Settings
description: Manage view visibility, naming, icons, and organization.
title: Ansichtseinstellungen
description: Verwalten Sie Sichtbarkeit, Namen, Symbole und Anordnung von Ansichten.
---
## View Visibility
## Sichtbarkeit der Ansicht
Control who can see your custom views.
Steuern Sie, wer Ihre benutzerdefinierten Ansichten sehen kann.
### Visibility Options
### Sichtbarkeitsoptionen
| Setting | Who Can See |
| ------------- | --------------------- |
| **Workspace** | All workspace members |
| **Unlisted** | Only you |
| Einstellung | Sichtbar für |
| ------------------ | ----------------------------------- |
| **Arbeitsbereich** | Alle Mitglieder des Arbeitsbereichs |
| **Nicht gelistet** | Nur Sie |
### Changing Visibility
### Sichtbarkeit ändern
1. Open the view
2. Click **OptionsVisibility**
3. Select **Workspace** or **Unlisted**
1. Öffnen Sie die Ansicht
2. Klicken Sie auf **OptionenSichtbarkeit**
3. Wählen Sie **Arbeitsbereich** oder **Nicht gelistet** aus
<Note>
The default "All [Object Name]" views cannot have their visibility changed.
Die Standardansichten "All [Object Name]" können nicht in ihrer Sichtbarkeit geändert werden.
</Note>
## Rename a View
## Eine Ansicht umbenennen
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Edit**
4. Enter the new name
1. Öffnen Sie das Ansichts-Dropdown-Menü
2. Klicken Sie auf das **⋮**-Menü neben der Ansicht
3. Wählen Sie **Bearbeiten** aus
4. Geben Sie den neuen Namen ein
## Change View Icon
## Ansichtssymbol ändern
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Edit**
4. Click the icon to change it
1. Öffnen Sie das Ansichts-Dropdown-Menü
2. Klicken Sie auf das **⋮**-Menü neben der Ansicht
3. Wählen Sie **Bearbeiten** aus
4. Klicken Sie auf das Symbol, um es zu ändern
## Reorder Views
## Ansichten neu anordnen
Change the order views appear in the dropdown:
Ändern Sie die Reihenfolge, in der Ansichten im Dropdown angezeigt werden:
1. Open the view dropdown
2. Drag views by their handle
3. Drop in the desired position
4. Order saves automatically
1. Öffnen Sie das Ansichts-Dropdown-Menü
2. Ziehen Sie die Ansichten am Griffsymbol
3. Lassen Sie sie an der gewünschten Position los
4. Die Reihenfolge wird automatisch gespeichert
## Favoriten
Pin frequently used views for quick access:
Heften Sie häufig verwendete Ansichten für den schnellen Zugriff an:
1. Open the view dropdown
2. Click the **⋮** menu next to a view
3. Select **Add to favorites**
1. Öffnen Sie das Ansichts-Dropdown-Menü
2. Klicken Sie auf das **⋮**-Menü neben einer Ansicht
3. Wählen Sie **Zu Favoriten hinzufügen** aus
Favorited views appear in a dedicated section for easy access.
Zu Favoriten hinzugefügte Ansichten werden in einem eigenen Bereich für den schnellen Zugriff angezeigt.
## Delete a View
## Eine Ansicht löschen
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Delete**
4. Confirm deletion
1. Öffnen Sie das Ansichts-Dropdown-Menü
2. Klicken Sie auf das **⋮**-Menü neben der Ansicht
3. Wählen Sie **Löschen** aus
4. Bestätigen Sie das Löschen
<Warning>
Deleted views cannot be recovered.
Gelöschte Ansichten können nicht wiederhergestellt werden.
</Warning>
## Related
## Verwandt
* [Views Overview](/l/de/user-guide/views-pipelines/overview) — creating views
* [How to Restrict Access](/l/de/user-guide/views-pipelines/how-tos/restrict-access-to-your-view) — step-by-step guide
* [Übersicht über Ansichten](/l/de/user-guide/views-pipelines/overview) — Erstellen von Ansichten
* [Zugriff beschränken: So geht's](/l/de/user-guide/views-pipelines/how-tos/restrict-access-to-your-view) — Schritt-für-Schritt-Anleitung
@@ -1,61 +1,61 @@
---
title: Create a Calendar View for Tasks Due
description: Visualize your tasks and deadlines on a calendar.
title: Erstellen Sie eine Kalenderansicht für fällige Aufgaben
description: Visualisieren Sie Ihre Aufgaben und Fristen in einem Kalender.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Voraussetzungen
Your Tasks object needs a **Due Date** field (Date or Date & Time type).
Ihr Aufgabenobjekt benötigt ein Feld **Fälligkeitsdatum** (Typ Datum oder Datum & Uhrzeit).
## Steps
## Schritte
1. Navigate to **Tasks**
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Tasks Calendar")
4. Click **Create**
5. Click **Options** and select **Calendar** as the layout
6. Choose **Due Date** as the date field
1. Navigieren Sie zu **Aufgaben**
2. Klicken Sie auf das Ansichts-Dropdown → **+ Ansicht hinzufügen**
3. Benennen Sie Ihre Ansicht (z. B. "Aufgabenkalender")
4. Klicken Sie auf **Erstellen**
5. Klicken Sie auf **Optionen** und wählen Sie **Kalender** als Layout
6. Wählen Sie **Fälligkeitsdatum** als Datumsfeld
7. Klicken Sie auf **Speichern**
## Configure Your Calendar
## Konfigurieren Sie Ihren Kalender
### Display Fields on Events
### Felder in Ereignissen anzeigen
1. Click **Options → Fields**
2. Click the **eye icon** to show/hide fields
3. Drag to reorder
1. Klicken Sie auf **Optionen → Felder**
2. Klicken Sie auf das **Augensymbol**, um Felder ein-/auszublenden
3. Ziehen, um neu anzuordnen
Recommended fields to display:
Empfohlene Felder zum Anzeigen:
* **Title** — task name
* **Assignee** — who's responsible
* **Status** — current progress
* **Titel** — Name der Aufgabe
* **Zuständige Person** — wer verantwortlich ist
* **Status** — aktueller Fortschritt
### Filter Your Calendar
### Kalender filtern
Create focused views:
Erstellen Sie gezielte Ansichten:
* **My Tasks**: Filter by Assignee = Me
* **This Week**: Filter by Due Date = This week
* **Overdue**: Filter by Due Date < Today, Status ≠ Done
* **Meine Aufgaben**: Filtern nach "Zuständige Person" = Ich
* **Diese Woche**: Filtern nach Fälligkeitsdatum = Diese Woche
* **Überfällig**: Nach Fälligkeitsdatum < Heute filtern, Status ≠ Erledigt
## Other Calendar Use Cases
## Weitere Anwendungsfälle für den Kalender
| Objekt | Date Field | Purpose |
| ------------- | ---------- | ------------------------- |
| Opportunities | Close Date | Track expected closes |
| Custom Events | Event Date | Plan activities |
| Projects | Deadline | Monitor project timelines |
| Objekt | Datumsfeld | Zweck |
| ----------------------------- | -------------- | ----------------------------------------- |
| Opportunities | Abschlussdatum | Voraussichtliche Abschlüsse nachverfolgen |
| Benutzerdefinierte Ereignisse | Ereignisdatum | Aktivitäten planen |
| Projekte | Frist | Projektzeitpläne überwachen |
## Tips
## Tipps
* **Review weekly**: Start each week by checking your calendar view
* **Combine with table view**: Use calendar for overview, table for details
* **Set visibility**: Keep personal task calendars as Unlisted
* **Wöchentlich prüfen**: Beginnen Sie jede Woche damit, Ihre Kalenderansicht zu prüfen
* **Mit Tabellenansicht kombinieren**: Verwenden Sie den Kalender für den Überblick, die Tabellenansicht für Details
* **Sichtbarkeit festlegen**: Persönliche Aufgabenkalender als Unlisted belassen
## Related
## Verwandt
* [Calendar View](/l/de/user-guide/views-pipelines/capabilities/calendar-view) — all calendar features
* [Filters and Sorting](/l/de/user-guide/views-pipelines/capabilities/filters-and-sorting) — filter your calendar
* [Kalenderansicht](/l/de/user-guide/views-pipelines/capabilities/calendar-view) — alle Kalenderfunktionen
* [Filter und Sortierung](/l/de/user-guide/views-pipelines/capabilities/filters-and-sorting) — Ihren Kalender filtern
@@ -1,31 +1,31 @@
---
title: Bring Product Data into Twenty
description: Sync product catalog data from a data warehouse into your CRM on a schedule.
title: Produktdaten in Twenty importieren
description: Synchronisieren Sie Produktkatalogdaten nach Zeitplan aus einem Data Warehouse in Ihr CRM.
---
Use this pattern to keep Twenty in sync with product data from your data warehouse (e.g., Snowflake, BigQuery, PostgreSQL).
Verwenden Sie dieses Muster, um Twenty mit Produktdaten aus Ihrem Data Warehouse (z. B. Snowflake, BigQuery, PostgreSQL) synchron zu halten.
## Workflow Structure
## Workflow-Struktur
1. **Trigger**: On a Schedule
2. **Code**: Query your data warehouse
3. **Code** (optional): Format data as array
4. **Iterator**: Loop through each product
5. **Upsert Record**: Create or update in Twenty
1. **Auslöser**: Nach Zeitplan
2. **Code**: Ihr Data Warehouse abfragen
3. **Code** (optional): Daten als Array formatieren
4. **Iterator**: Jedes Produkt durchlaufen
5. **Upsert Record**: In Twenty erstellen oder aktualisieren
<img src="/images/user-guide/workflows/create_users_workflow.png" style={{width:'100%'}} />
## Step 1: Schedule the Trigger
## Schritt 1: Auslöser planen
Set the workflow to run at a frequency matching your data freshness needs:
Stellen Sie den Workflow so ein, dass er mit einer Häufigkeit läuft, die Ihren Anforderungen an die Datenaktualität entspricht:
* Every 5 minutes for near real-time sync
* Every hour for less critical data
* Daily for batch updates
* Alle 5 Minuten für eine nahezu Echtzeit-Synchronisierung
* Stündlich für weniger kritische Daten
* Täglich für Batch-Updates
## Step 2: Query Your Data Warehouse
## Schritt 2: Ihr Data Warehouse abfragen
Add a **Code** action to fetch recent data:
Fügen Sie eine **Code**-Aktion hinzu, um aktuelle Daten abzurufen:
```javascript
export const main = async () => {
@@ -54,14 +54,14 @@ export const main = async () => {
```
<Tip>
Filter by `updated_at >= last X minutes` to retrieve only recently changed records. This keeps the sync efficient.
Filtern Sie nach `updated_at >= last X minutes`, um nur kürzlich geänderte Datensätze abzurufen. So bleibt die Synchronisierung effizient.
</Tip>
## Step 3: Format Data (Optional)
## Schritt 3: Daten formatieren (optional)
If your warehouse returns data in a format that needs transformation, add another **Code** action. Common transformations include type conversions, field renaming, and data cleanup.
Wenn Ihr Data Warehouse Daten in einem Format zurückgibt, das transformiert werden muss, fügen Sie eine weitere **Code**-Aktion hinzu. Häufige Transformationen umfassen Typkonvertierungen, Feldumbenennungen und Datenbereinigung.
### Example: User Data with Boolean and Status Fields
### Beispiel: Benutzerdaten mit booleschen und Statusfeldern
```javascript
export const main = async (params: {
@@ -86,7 +86,7 @@ export const main = async (params: {
};
```
### Example: Product Data with Type Conversions
### Beispiel: Produktdaten mit Typkonvertierungen
```javascript
export const main = async (params: { products: any }) => {
@@ -107,7 +107,7 @@ export const main = async (params: { products: any }) => {
};
```
### Example: Date and Currency Formatting
### Beispiel: Datums- und Währungsformatierung
```javascript
export const main = async (params: { deals: any }) => {
@@ -131,52 +131,52 @@ export const main = async (params: { deals: any }) => {
};
```
### Common Transformations
### Häufige Transformationen
| Source Format | Target Format | Code |
| Quellformat | Zielformat | Code |
| -------------------- | ---------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | ISO date | `new Date(v * 1000).toISOString()` |
| `1704067200` (Unix) | ISO-Datum | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
## Step 4: Iterate Through Products
## Schritt 4: Durch die Produkte iterieren
Add an **Iterator** action:
Fügen Sie eine **Iterator**-Aktion hinzu:
* Input: `{{code.products}}`
* Eingabe: `{{code.products}}`
This loops through each product in the array.
Dies durchläuft jedes Produkt im Array.
## Step 5: Upsert Each Record
## Schritt 5: Jeden Datensatz upserten
Inside the iterator, add an **Upsert Record** action:
Fügen Sie innerhalb des Iterators eine **Upsert Record**-Aktion hinzu:
| Setting | Wert |
| ------------ | -------------------------------------- |
| **Object** | Your custom Product object |
| **Match by** | External ID or SKU (unique identifier) |
| **Name** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Price** | `{{iterator.item.price}}` |
| Einstellung | Wert |
| --------------------- | -------------------------------------------- |
| **Objekt** | Ihr benutzerdefiniertes Produktobjekt |
| **Abgleichen anhand** | Externe ID oder SKU (eindeutiger Bezeichner) |
| **Name** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Preis** | `{{iterator.item.price}}` |
<Tip>
Use **Upsert** (update or create) instead of building separate branches for create vs. update. It's faster to build and easier to debug.
Verwenden Sie **Upsert** (aktualisieren oder erstellen), anstatt separate Verzweigungen für Erstellen vs. Aktualisieren zu bauen. Das ist schneller aufzubauen und leichter zu debuggen.
</Tip>
## Example Use Cases
## Beispielanwendungsfälle
| Quelle | Daten |
| ----------------------- | ----------------------------------- |
| **ERP system** | Product catalog, pricing, inventory |
| **E-commerce platform** | Orders, customers, product updates |
| **Data warehouse** | Aggregated metrics, enriched data |
| **Inventory system** | Stock levels, reorder alerts |
| Quelle | Daten |
| ----------------------------- | --------------------------------------------- |
| **ERP-System** | Produktkatalog, Preise, Bestand |
| **E-Commerce-Plattform** | Bestellungen, Kunden, Produktaktualisierungen |
| **Data Warehouse** | Aggregierte Metriken, angereicherte Daten |
| **Bestandsverwaltungssystem** | Bestandsmengen, Nachbestellwarnungen |
## Related
## Verwandt
* [Workflow Triggers](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [Handle Arrays in Code Actions](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
* [Workflow-Trigger](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow-Aktionen](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [Arrays in Code-Aktionen verarbeiten](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,56 +1,56 @@
---
title: Send Email Alerts with Tasks Due
description: Automatically notify team members about their upcoming or overdue tasks.
title: E-Mail-Benachrichtigungen zu fälligen Aufgaben senden
description: Benachrichtigen Sie Teammitglieder automatisch über ihre anstehenden oder überfälligen Aufgaben.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
<img src="/images/user-guide/workflows/email_tasks_due.png" style={{width:'100%'}} />
Send daily email reminders to each team member about their tasks due today.
Senden Sie tägliche E-Mail-Erinnerungen an jedes Teammitglied zu den heute fälligen Aufgaben.
## Übersicht
This workflow runs on a schedule and:
Dieser Workflow läuft nach einem Zeitplan und:
1. Fetches all workspace members
2. Loops through each member
3. Finds their tasks due today
4. Formats and sends a personalized email
1. Ruft alle Mitglieder des Arbeitsbereichs ab
2. Durchläuft jedes Mitglied
3. Ermittelt deren heute fällige Aufgaben
4. Formatiert und sendet eine personalisierte E-Mail
## Step-by-Step Setup
## Schritt-für-Schritt-Einrichtung
<VimeoEmbed videoId="1147463514" title="Video demonstration" />
<VimeoEmbed videoId="1147463514" title="Video-Demonstration" />
### Step 1: Configure the Trigger
### Schritt 1: Trigger konfigurieren
1. Go to **Settings → Workflows** and create a new workflow
2. Select **On a Schedule** as the trigger
3. Use a cron expression for daily at 8:00 AM: `0 8 * * *`
1. Gehen Sie zu **Einstellungen → Workflows** und erstellen Sie einen neuen Workflow
2. Wählen Sie **Nach Zeitplan** als Trigger
3. Verwenden Sie einen Cron-Ausdruck für täglich um 8:00 Uhr: `0 8 * * *`
### Step 2: Search for All Workspace Members
### Schritt 2: Nach allen Arbeitsbereichsmitgliedern suchen
1. Add a **Search Records** action
2. Select **Workspace Members** (under advanced objects)
3. No filters needed — this returns all members
1. Fügen Sie eine **Datensätze suchen**-Aktion hinzu
2. Wählen Sie **Arbeitsbereichsmitglieder** (unter Erweiterten Objekten)
3. Keine Filter erforderlich — dadurch werden alle Mitglieder zurückgegeben
### Step 3: Add an Iterator
### Schritt 3: Einen Iterator hinzufügen
1. Add an **Iterator** action
2. Set the input array to the workspace members from the previous step
3. All actions inside the iterator will run once per member
1. Fügen Sie eine **Iterator**-Aktion hinzu
2. Setzen Sie das Eingabearray auf die Arbeitsbereichsmitglieder aus dem vorherigen Schritt
3. Alle Aktionen innerhalb des Iterators werden einmal pro Mitglied ausgeführt
### Step 4: Search for Tasks Due Today (Inside Iterator)
### Schritt 4: Nach heute fälligen Aufgaben suchen (im Iterator)
1. Inside the iterator, add a **Search Records** action
2. Select **Tasks** as the object
3. Add filters:
* **Assignee** = current workspace member (from the iterator)
* **Due Date** = today
1. Fügen Sie im Iterator eine **Datensätze suchen**-Aktion hinzu
2. Wählen Sie **Aufgaben** als Objekt
3. Filter hinzufügen:
* **Zuständige Person** = aktuelles Arbeitsbereichsmitglied (aus dem Iterator)
* **Fälligkeitsdatum** = heute
### Step 5: Format Tasks into Email Body (Inside Iterator)
### Schritt 5: Aufgaben in E-Mail-Inhalt formatieren (im Iterator)
Add a **Code** action to format the tasks into a readable list with links:
Fügen Sie eine **Code**-Aktion hinzu, um die Aufgaben in eine lesbare Liste mit Links zu formatieren:
```javascript
export const main = async (params: {
@@ -79,28 +79,28 @@ export const main = async (params: {
```
<Note>
Replace `yourSubDomain` with your actual Twenty workspace subdomain.
Ersetzen Sie `yourSubDomain` durch die tatsächliche Twenty-Arbeitsbereichs-Subdomain.
</Note>
### Step 6: Send Email (Inside Iterator)
### Schritt 6: E-Mail senden (im Iterator)
1. Add a **Send Email** action (still inside the iterator)
2. Configure:
1. Fügen Sie eine **E-Mail senden**-Aktion hinzu (weiterhin im Iterator)
2. Konfigurieren:
| Feld | Wert |
| ----------- | --------------------------------------------------------------- |
| **To** | `{{iterator.currentItem.userEmail}}` (workspace member's email) |
| **Subject** | Your Tasks Due Today |
| **Body** | `{{code.formattedTasks}}` |
| Feld | Wert |
| ----------- | ---------------------------------------------------------------------------------- |
| **An** | `{{iterator.currentItem.userEmail}}` (E-Mail-Adresse des Arbeitsbereichsmitglieds) |
| **Betreff** | Ihre heute fälligen Aufgaben |
| **Inhalt** | `{{code.formattedTasks}}` |
### Step 7: Test and Activate
### Schritt 7: Testen und aktivieren
1. Click **Test** to run the workflow manually
2. Check inboxes for the emails
3. Activate the workflow
1. Klicken Sie auf **Test**, um den Workflow manuell auszuführen
2. Überprüfen Sie die Posteingänge auf E-Mails
3. Aktivieren Sie den Workflow
## Related
## Verwandt
* [Workflow Actions](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [Send Emails from Workflows](/l/de/user-guide/workflows/capabilities/send-emails-from-workflows)
* [Handle Arrays in Code Actions](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
* [Workflow-Aktionen](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [E-Mails aus Workflows senden](/l/de/user-guide/workflows/capabilities/send-emails-from-workflows)
* [Arrays in Code-Aktionen verarbeiten](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,6 +1,6 @@
---
title: Workflows
description: Learn how to build automations in Twenty.
description: Erfahren Sie, wie Sie Automatisierungen in Twenty erstellen.
image: /images/user-guide/workflows/workflow.png
---
@@ -10,9 +10,9 @@ image: /images/user-guide/workflows/workflow.png
## Warum Workflows wichtig sind
Twenty wurde entwickelt, um den Nutzern maximale Flexibilität zu bieten. Rather than forcing you to adapt your business processes to rigid, pre-built features, workflows enable you to build automations that create the CRM that best supports your unique business use cases.
Twenty wurde entwickelt, um den Nutzern maximale Flexibilität zu bieten. Anstatt Sie dazu zu zwingen, Ihre Geschäftsprozesse an starre, vorgefertigte Funktionen anzupassen, ermöglichen Ihnen Workflows, Automatisierungen zu erstellen, mit denen Sie Ihr CRM so gestalten, dass es Ihre individuellen geschäftlichen Anwendungsfälle optimal unterstützt.
Workflows are Twenty's in-app feature for building these automations. Sie bieten Ihnen die Bausteine, um genau das zu schaffen, was Ihr Unternehmen braucht, wann es das braucht.
Workflows sind die In-App-Funktion von Twenty zum Erstellen dieser Automatisierungen. Sie bieten Ihnen die Bausteine, um genau das zu schaffen, was Ihr Unternehmen braucht, wann es das braucht.
## Was kann ich mit Workflows machen?
@@ -21,50 +21,50 @@ Wir empfehlen, Automatisierungen für zwei Hauptzwecke zu entwickeln:
1. **Interne Automatisierungen, um den Alltag Ihres Teams zu erleichtern**: Reduzieren Sie die Menge manueller Eingaben und sich wiederholender Aufgaben, die Ihr Team verlangsamen.
2. **Daten in und aus Twenty bringen**: Verbinden Sie Twenty über API-Aufrufe und Webhooks mit Ihrer Datenbank und anderen Werkzeugen.
## Building Your First Workflow
## Den ersten Workflow erstellen
### Step 1: Create a New Workflow
### Schritt 1: Neuen Workflow erstellen
1. Go to **Workflows** accessible below the other objects
2. Click **+ New Record**
3. Give your workflow a name
1. Gehen Sie zu **Workflows**, zu finden unterhalb der anderen Objekte
2. Klicken Sie auf **+ Neuer Datensatz**
3. Geben Sie Ihrem Workflow einen Namen
### Step 2: Add a Trigger
### Schritt 2: Einen Trigger hinzufügen
Every workflow starts with a trigger. Choose from:
Jeder Workflow beginnt mit einem Trigger. Wählen Sie aus:
* **Record events**: When a record is created, updated, or deleted
* **Schedule**: Run at specific times (daily, weekly, etc.)
* **Manual**: Triggered by a user action
* **Webhook**: Triggered by a webhook
* **Datensatzereignisse**: Wenn ein Datensatz erstellt, aktualisiert oder gelöscht wird
* **Zeitplan**: Zu bestimmten Zeiten ausführen (täglich, wöchentlich usw.)
* **Manuell**: Durch eine Benutzeraktion ausgelöst
* **Webhook**: Durch einen Webhook ausgelöst
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
### Step 3: Add Actions
### Schritt 3: Aktionen hinzufügen
After your trigger, add one or more actions:
Fügen Sie nach Ihrem Trigger eine oder mehrere Aktionen hinzu:
* **Create Record**: Add new records to any object
* **Update Record**: Modify existing record data
* **Delete Record**: Remove records from objects
* **Search Records**: Find records matching criteria
* **Upsert Record**: Create or update based on matching criteria
* **Iterator**: Loop through arrays of records
* **Filter**: Control which records proceed
* **Delay**: Wait before continuing (duration or scheduled date)
* **Send Email**: Send emails via your connected account
* **Code**: Run custom JavaScript
* **HTTP Request**: Call external APIs
* **Form**: Get inputs from users within Twenty UI at the time of execution
* **AI Agent** (Coming soon): Run intelligent AI tasks
* **Datensatz erstellen**: Neue Datensätze zu einem beliebigen Objekt hinzufügen
* **Datensatz aktualisieren**: Daten eines vorhandenen Datensatzes ändern
* **Datensatz löschen**: Datensätze aus Objekten entfernen
* **Datensätze suchen**: Datensätze finden, die den Kriterien entsprechen
* **Upsert**: Erstellen oder aktualisieren basierend auf übereinstimmenden Kriterien
* **Iterator**: Über Arrays von Datensätzen iterieren
* **Filter**: Steuern, welche Datensätze weiterverarbeitet werden
* **Verzögerung**: Vor dem Fortfahren warten (Dauer oder geplanter Zeitpunkt)
* **E-Mail senden**: E-Mails über Ihr verbundenes Konto senden
* **Code**: Benutzerdefiniertes JavaScript ausführen
* **HTTP-Anfrage**: Externe APIs aufrufen
* **Formular**: Eingaben von Benutzern innerhalb der Twenty-Oberfläche zum Zeitpunkt der Ausführung abfragen
* **KI-Agent** (Bald verfügbar): Intelligente KI-Aufgaben ausführen
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Step 4: Test and Activate
### Schritt 4: Testen und aktivieren
1. Use the **Test** button to run your workflow with sample data
2. Review the results to ensure it works as expected
3. Toggle the workflow **Active** when ready
1. Verwenden Sie die Schaltfläche **Test**, um Ihren Workflow mit Beispieldaten auszuführen
2. Überprüfen Sie die Ergebnisse, um sicherzustellen, dass alles wie erwartet funktioniert
3. Schalten Sie den Workflow auf **Aktiv**, sobald er bereit ist
## Workflow Best Practices
@@ -75,6 +75,6 @@ After your trigger, add one or more actions:
## Nächste Schritte
* [Workflow Triggers](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [CRM 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)
* [CRM-Automatisierungen](/l/de/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,6 +1,6 @@
---
title: Mailbox
description: Understanding email integration features in Twenty.
title: Casella di posta
description: Comprendere le funzionalità di integrazione delle email in Twenty.
---
**Nota**: Per connettere i tuoi account email e configurare le impostazioni di sincronizzazione, visita [Configurazione Email e Calendario](/l/it/user-guide/calendar-emails/overview).
@@ -9,7 +9,7 @@ description: Understanding email integration features in Twenty.
Twenty collega automaticamente le email dalle tue caselle di posta connesse ai relativi record CRM, mantenendo la cronologia di comunicazione in un unico posto.
### Objects Where Emails Can Be Found
### Oggetti in cui è possibile trovare le email
Le conversazioni email appaiono in tre oggetti principali:
@@ -42,7 +42,7 @@ Quando apri un thread email, puoi:
A seconda delle impostazioni della casella di posta, potresti vedere:
* **Contenuto completo**: Testo e dettagli email completi
* **Subject + Metadata**: Subject line, sender, recipient, and timestamp
* **Oggetto + Metadati**: Riga dell'oggetto, mittente, destinatario e timestamp
* **Solo metadati**: Informazioni di base senza contenuto email
## Comportamento di sincronizzazione delle email
@@ -1,33 +1,33 @@
---
title: Calendar & Emails
description: Connect your email and calendar accounts to Twenty.
title: Calendario & Email
description: Collega i tuoi account email e calendario a Twenty.
image: /images/user-guide/emails/emails_header.png
---
<Frame>
<img src="/images/user-guide/emails/emails_header.png" alt="Calendar & Emails" />
<img src="/images/user-guide/emails/emails_header.png" alt="Calendario & Email" />
</Frame>
## Opzioni di Connessione
### Account Google (Gmail & Google Calendar)
1. Go to **Settings → Accounts**
1. Vai a **Impostazioni → Account**
2. Clicca su **Aggiungi account**
3. Seleziona **Continua con Google**
4. Autorizza Twenty ad accedere al tuo Gmail e Google Calendar
5. Configure email sync settings (visibility, auto-creation) → click **Next**
6. Configure calendar sync settings (visibility, auto-creation) → click **Add Account**
5. Configura le impostazioni di sincronizzazione delle email (visibilità, creazione automatica) → fai clic su **Avanti**
6. Configura le impostazioni di sincronizzazione del calendario (visibilità, creazione automatica) → fai clic su **Aggiungi account**
7. Le tue email e gli eventi del calendario inizieranno a sincronizzarsi automaticamente
### Account Microsoft (Outlook & Microsoft Calendar)
1. Go to **Settings → Accounts**
1. Vai a **Impostazioni → Account**
2. Clicca su **Aggiungi account**
3. Seleziona **Continua con Microsoft**
4. Autorizza Twenty ad accedere al tuo Outlook e Microsoft Calendar
5. Configure email sync settings (visibility, auto-creation) → click **Next**
6. Configure calendar sync settings (visibility, auto-creation) → click **Add Account**
5. Configura le impostazioni di sincronizzazione delle email (visibilità, creazione automatica) → fai clic su **Avanti**
6. Configura le impostazioni di sincronizzazione del calendario (visibilità, creazione automatica) → fai clic su **Aggiungi account**
7. Le tue email e gli eventi del calendario inizieranno a sincronizzarsi automaticamente
### Configurazione SMTP/CalDAV (Altri Fornitori)
@@ -66,7 +66,7 @@ Scegli diversi livelli di visibilità per le tue email:
* **Solo per messaggi inviati**: Crea contatti solo per email che invii
* **Nota**: Le email interne (stesso dominio) non vengono mai sincronizzate per mantenere la privacy
<Note>When enabled, contacts are automatically linked to their Company records based on their email domain. If the company doesn't exist yet, Twenty creates it for you.</Note>
<Note>Quando è attivata, i contatti vengono collegati automaticamente ai relativi record di Azienda in base al loro dominio email. Se l'Azienda non esiste ancora, Twenty la crea per te.</Note>
### Control which emails get synced with Message Folder Selection
@@ -103,7 +103,7 @@ Scegli cosa sarà visibile ad altri utenti nel tuo spazio di lavoro:
* **Sì**: Crea automaticamente contatti per i partecipanti alle riunioni non nel tuo CRM
* **No**: Collega solo le riunioni ai contatti esistenti
<Note>When enabled, contacts are automatically linked to their Company records based on their email domain. If the company doesn't exist yet, Twenty creates it for you.</Note>
<Note>Quando è attivata, i contatti vengono collegati automaticamente ai relativi record di Azienda in base al loro dominio email. Se l'Azienda non esiste ancora, Twenty la crea per te.</Note>
### Controlla quali eventi vengono sincronizzati
@@ -121,10 +121,10 @@ Scegli cosa sarà visibile ad altri utenti nel tuo spazio di lavoro:
**Aggiornamenti ogni 5 minuti**: Sia i dati delle email che del calendario vengono sincronizzati automaticamente ogni 5 minuti dopo l'importazione iniziale.
<Note>
**Initial sync timing**: Calendar sync completes quickly (usually within minutes), while email sync takes longer for large mailboxes. Twenty imports emails at approximately **400 messages per minute** (limited by Gmail API rate limiting), so a mailbox with 10,000 emails takes about 25 minutes. Don't worry if you see contacts from calendar events appearing before your email contacts; this is normal behavior.
**Initial sync timing**: Calendar sync completes quickly (usually within minutes), while email sync takes longer for large mailboxes. Twenty imports emails at approximately **400 messages per minute** (limited by Gmail API rate limiting), so a mailbox with 10,000 emails takes about 25 minutes. Non preoccuparti se vedi contatti provenienti dagli eventi del calendario apparire prima dei tuoi contatti email; è un comportamento normale.
</Note>
## Prossimi Passi
* [Mailbox capabilities](/l/it/user-guide/calendar-emails/capabilities/mailbox)
* [Troubleshoot missing emails](/l/it/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records)
* [Funzionalità della casella di posta](/l/it/user-guide/calendar-emails/capabilities/mailbox)
* [Risolvi i problemi delle email mancanti](/l/it/user-guide/calendar-emails/how-tos/i-dont-see-emails-on-records)
@@ -1,74 +1,74 @@
---
title: Cruscotti
description: Create and organize dashboards with tabs to visualize your CRM data.
description: Crea e organizza cruscotti con schede per visualizzare i tuoi dati CRM.
---
## Panoramica
Dashboards in Twenty are organized in a hierarchy: **Dashboards → Tabs → Widgets**. Each dashboard can contain multiple tabs, and each tab contains widgets (charts, numbers, iFrames).
I cruscotti in Twenty sono organizzati in una gerarchia: **Cruscotti → Schede → Widget**. Ogni cruscotto può contenere più schede e ogni scheda contiene widget (grafici, numeri, iFrame).
## Creating a Dashboard
## Creare un cruscotto
1. Go to **Dashboards** in the navigation
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Start adding tabs and widgets
1. Vai a **Cruscotti** nella navigazione
2. Fai clic su **+ Nuovo cruscotto**
3. Assegna un nome al tuo cruscotto
4. Inizia ad aggiungere schede e widget
## Working with Tabs
## Lavorare con le schede
Tabs help you organize your dashboard into logical sections.
Le schede ti aiutano a organizzare il tuo cruscotto in sezioni logiche.
### Creating Tabs
### Creare schede
1. In edit mode, click **+ Add Tab**
2. Name your tab (e.g., "Pipeline Overview", "Team Performance")
3. Add widgets to the tab
1. In modalità modifica, fai clic su **+ Aggiungi scheda**
2. Assegna un nome alla scheda (ad es., "Panoramica della pipeline", "Prestazioni del team")
3. Aggiungi widget alla scheda
### Duplicating Tabs
### Duplicare le schede
1. Click on the tab you want to duplicate
2. Click the **Duplicate** button in the side panel
1. Fai clic sulla scheda che vuoi duplicare
2. Fai clic sul pulsante **Duplica** nel pannello laterale
## Dashboard Layout
## Layout del cruscotto
### Arranging Widgets
### Disporre i widget
* Drag and drop to position
* Resize for emphasis
* Group related charts together
* Trascina e rilascia per posizionare
* Ridimensiona per mettere in evidenza
* Raggruppa i grafici correlati
### Duplicating a Dashboard
### Duplicare un cruscotto
1. Exit edit mode (view mode only)
2. Open the command bar with **Cmd + K** (or **Ctrl + K** on Windows)
3. Select **Duplicate dashboard**
1. Esci dalla modalità di modifica (solo modalità di visualizzazione)
2. Apri la barra dei comandi con **Cmd + K** (oppure **Ctrl + K** su Windows)
3. Seleziona **Duplica cruscotto**
### Migliori Pratiche
* **Logical flow**: Arrange from overview to detail
* **Visual hierarchy**: Larger charts for key metrics
* **Consistent styling**: Use matching colors and fonts
* **Flusso logico**: disponi dalla panoramica al dettaglio
* **Gerarchia visiva**: grafici più grandi per le metriche chiave
* **Stile coerente**: usa colori e caratteri coordinati
## Visibility & Access
## Visibilità e accesso
### Dashboard Visibility
### Visibilità del cruscotto
Dashboards are visible to everyone who has access to your Twenty workspace. There is no private dashboard option at the moment.
I cruscotti sono visibili a chiunque abbia accesso al tuo spazio di lavoro Twenty. Al momento non è disponibile un'opzione di cruscotto privato.
### Preferiti
You can add dashboards to your favorites for quick access. This is a personal setting—your favorites are not visible to other users.
Puoi aggiungere i cruscotti ai preferiti per un accesso rapido. Si tratta di un'impostazione personale—i tuoi preferiti non sono visibili agli altri utenti.
To add a dashboard to favorites, open the dashboard and click the star icon.
Per aggiungere un cruscotto ai preferiti, apri il cruscotto e fai clic sull'icona a stella.
### Timezone Behavior
### Comportamento del fuso orario
Dashboards currently display data based on the timezone of the user viewing them. This means the same dashboard may show different metrics for team members in different regions (e.g., APAC vs. US).
Attualmente i cruscotti mostrano i dati in base al fuso orario dell'utente che li visualizza. Ciò significa che lo stesso cruscotto può mostrare metriche diverse per i membri del team in regioni differenti (ad es., APAC vs. USA).
<Note>
**Coming soon**: We will add the ability to set a specific timezone for a dashboard, so all users see consistent data regardless of their location.
**In arrivo**: aggiungeremo la possibilità di impostare un fuso orario specifico per un cruscotto, in modo che tutti gli utenti vedano dati coerenti indipendentemente dalla loro posizione.
</Note>
<Note>
**Coming soon**: Dashboard-level filters will allow you to apply filters across all widgets at once, making it faster to explore your data.
**In arrivo**: i filtri a livello di cruscotto ti permetteranno di applicare filtri a tutti i widget contemporaneamente, rendendo più veloce l'esplorazione dei tuoi dati.
</Note>
@@ -1,131 +1,131 @@
---
title: Widget
description: Explore the widget types and visualization options in Twenty.
description: Esplora i tipi di widget e le opzioni di visualizzazione in Twenty.
---
## Available Widgets
## Widget disponibili
Twenty provides various widget types to visualize your CRM data.
Twenty offre diversi tipi di widget per visualizzare i dati del tuo CRM.
### Bar Charts
### Grafici a barre
Display data as horizontal or vertical bars.
Mostra i dati come barre orizzontali o verticali.
**Best for:**
**Ideali per:**
* Comparing values across categories
* Showing rankings
* Tracking metrics by time period
* Confrontare i valori tra categorie
* Mostrare classifiche
* Monitorare le metriche per periodo di tempo
**Example uses:**
**Esempi di utilizzo:**
* Deals by stage
* Revenue by sales rep
* Contacts added per month
* Opportunità per fase
* Ricavi per rappresentante commerciale
* Contatti aggiunti per mese
<Note>
**Display limits**: Bar charts can show a maximum of 100 bars (horizontal) or 50 bars (vertical). If you see the warning "Undisplayed data: max X bars per chart", add filters to narrow down your data or change the grouping (e.g., group by week instead of days).
**Limiti di visualizzazione**: I grafici a barre possono mostrare al massimo 100 barre (orizzontali) o 50 barre (verticali). Se visualizzi l'avviso "Undisplayed data: max X bars per chart", aggiungi filtri per restringere i dati o modifica il raggruppamento (ad es., raggruppa per settimana invece che per giorni).
</Note>
### Pie Charts
### Grafici a torta
Show proportions of a whole.
Mostra le proporzioni del totale.
**Best for:**
**Ideali per:**
* Showing composition or distribution
* Comparing parts to whole
* Highlighting major segments
* Mostrare composizione o distribuzione
* Confrontare le parti con il totale
* Evidenziare i segmenti principali
**Example uses:**
**Esempi di utilizzo:**
* Deal distribution by source
* Contact breakdown by industry
* Pipeline composition by owner
* Distribuzione delle opportunità per fonte
* Ripartizione dei contatti per settore
* Composizione della pipeline per proprietario
### Line Charts
### Grafici a linee
Display trends over time.
Mostra le tendenze nel tempo.
**Best for:**
**Ideali per:**
* Tracking changes over time
* Identifying trends
* Comparing multiple metrics
* Monitorare i cambiamenti nel tempo
* Individuare le tendenze
* Confrontare più metriche
**Example uses:**
**Esempi di utilizzo:**
* Monthly deal count trend
* Revenue growth over quarters
* Activity levels over time
* Andamento mensile del numero di opportunità
* Crescita dei ricavi per trimestre
* Livelli di attività nel tempo
### Number Metrics
### Metriche numeriche
Display single key values prominently.
Mostra in evidenza singoli valori chiave.
**Best for:**
**Ideali per:**
* Highlighting KPIs
* Showing totals or averages
* Quick status checks
* Mettere in evidenza i KPI
* Mostrare totali o medie
* Controlli rapidi dello stato
**Example uses:**
**Esempi di utilizzo:**
* Total pipeline value
* Number of open opportunities
* Conversion rate
* Valore totale della pipeline
* Numero di opportunità aperte
* Tasso di conversione
**Advanced options:**
**Opzioni avanzate:**
* **Ratio**: For Select fields, calculate ratios between values. Go to **Data on display** → select your field → enable the **Ratio** option.
* **Prefix & Suffix**: Add custom text before or after the number (e.g., "$" prefix or "%" suffix) for better readability.
* **Rapporto**: Per i campi di tipo Select, calcola i rapporti tra i valori. Vai a **Dati visualizzati** → seleziona il tuo campo → abilita l'opzione **Rapporto**.
* **Prefisso e suffisso**: Aggiungi un testo personalizzato prima o dopo il numero (ad es., prefisso "$" o suffisso "%") per una migliore leggibilità.
### iFrames
### iFrame
Embed external tools and content directly in your dashboard.
Incorpora strumenti e contenuti esterni direttamente nella tua dashboard.
**Best for:**
**Ideali per:**
* Displaying external reports or dashboards
* Integrating third-party sales tools
* Showing live content from other systems
* Visualizzare report o dashboard esterni
* Integrare strumenti di vendita di terze parti
* Mostrare contenuti in tempo reale da altri sistemi
**Example uses:**
**Esempi di utilizzo:**
* Metrics from your Support tool
* Metrics from your dialer
* Live content from your Sales sequence tool
* Metriche dal tuo strumento di assistenza
* Metriche dal tuo dialer
* Contenuti in tempo reale dal tuo strumento per sequenze di vendita
<Note>
**Coming soon**: Gauge charts and tables are not yet available but are on our roadmap.
**In arrivo**: I grafici a indicatore e le tabelle non sono ancora disponibili ma sono nella nostra roadmap.
</Note>
## Configuring Widgets
## Configurazione dei widget
### Data Source
### Origine dati
1. Select the object to visualize (Opportunities, People, etc.)
2. Choose the metric to display (count, sum, average)
3. Apply filters to focus on specific data
1. Seleziona l'oggetto da visualizzare (Opportunità, Persone, ecc.)
2. Scegli la metrica da visualizzare (conteggio, somma, media)
3. Applica filtri per concentrarti su dati specifici
### Grouping
### Raggruppamento
Group data by:
Raggruppa i dati per:
* Fields (stage, owner, industry)
* Time periods (day, week, month, quarter)
* Custom segments
* Campi (fase, proprietario, settore)
* Periodi di tempo (giorno, settimana, mese, trimestre)
* Segmenti personalizzati
### Stile
Customize your charts with:
Personalizza i grafici con:
* Colors and themes
* Labels and legends
* Size and positioning
* Colori e temi
* Etichette e legende
* Dimensioni e posizionamento
### Duplicating Widgets
### Duplicazione dei widget
1. Click on the widget
2. Open **Options**
3. Click **Duplicate widget**
1. Fai clic sul widget
2. Apri **Opzioni**
3. Fai clic su **Duplica widget**
@@ -1,94 +1,94 @@
---
title: Import Relations Between Objects
description: Import relationships between records via CSV.
title: Importare le relazioni tra oggetti
description: Importare le relazioni tra record tramite CSV.
---
## Panoramica
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
Twenty supporta l'importazione delle relazioni tra oggetti durante l'importazione CSV. Ciò consente di collegare i record (ad es., associare Persone ad Aziende) come parte della migrazione dei dati.
<Note>**Currently supported for import**: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
<Note>**Attualmente supportate per l'importazione**: Relazioni uno a molti che puntano a un singolo tipo di oggetto su ciascun lato (ad es., Persone → Aziende). Le relazioni che puntano a più tipi di oggetto non sono ancora supportate per importazione/esportazione.</Note>
## How Relations Work in Twenty
## Come funzionano le relazioni in Twenty
### One to Many / Many to One
### Uno a molti / Molti a uno
Twenty supports standard relations where one record links to many others:
Twenty supporta relazioni standard in cui un record è collegato a molti altri:
* **One Company → Many People**: A company can have multiple employees, but each person belongs to one company
* **One Company → Many Opportunities**: A company can have multiple deals, but each opportunity belongs to one company
* **Un'Azienda → Molte Persone**: Un'azienda può avere più dipendenti, ma ogni persona appartiene a un'unica azienda
* **Un'Azienda → Molte Opportunità**: Un'azienda può avere più trattative, ma ogni opportunità appartiene a un'unica azienda
### Relations That Can Point to Multiple Object Types
### Relazioni che possono puntare a più tipi di oggetto
Some relations can connect to different types of objects. This works in two ways:
Alcune relazioni possono collegarsi a diversi tipi di oggetti. Questo funziona in due modi:
**Pattern 1: Many records linking to one record each from different object types**
**Modello 1: Molti record che si collegano ognuno a un singolo record per ciascun tipo di oggetto**
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
Diverse Note, Task o Attività possono essere collegate contemporaneamente a più tipi di oggetto:
* **Notes** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Tasks** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Le Note** possono essere collegate a una Persona, a un'Azienda e a un'Opportunità contemporaneamente
* **I Task** possono essere collegati a una Persona, a un'Azienda e a un'Opportunità contemporaneamente
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
Qui, le Note/i Task sono sul lato "molti". Ciascuno si collega a un record per tipo di oggetto.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Pattern 2: One record receiving links from many records of different object types**
**Modello 2: Un record che riceve collegamenti da molti record di diversi tipi di oggetto**
A Project can receive links from multiple records across different object types:
Un Progetto può ricevere collegamenti da più record di diversi tipi di oggetto:
* **A Project** can have many People linked to it, many Companies linked to it, and many Notes attached to it
* **Un Progetto** può avere molte Persone collegate, molte Aziende collegate e molte Note allegate
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
Qui, il Progetto è sul lato "uno". Più record di oggetti diversi possono collegarsi tutti allo stesso Progetto.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.
**Limitazione di import/export**: Le relazioni che puntano a più tipi di oggetto (come Note → Persone/Aziende/Opportunità) non sono ancora supportate nell'importazione o esportazione CSV.
* **Import**: Only one-to-many relations pointing to a single object type on each side can be imported
* **Export**: Columns for relations pointing to multiple object types are currently left empty
* **Importazione**: Possono essere importate solo relazioni uno a molti che puntano a un singolo tipo di oggetto su ciascun lato
* **Esportazione**: Le colonne per le relazioni che puntano a più tipi di oggetto sono attualmente lasciate vuote
This is on our roadmap.
È nella nostra roadmap.
</Warning>
### What's Not Supported Today
### Cosa non è supportato oggi
**Many to Many relations** are not yet available. For example, you cannot currently create a relation where:
**Relazioni molti a molti** non sono ancora disponibili. Ad esempio, attualmente non è possibile creare una relazione in cui:
* Many People are linked to many Projects
* Molte Persone sono collegate a molti Progetti
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>Le relazioni molti a molti sono previste per H1 2026.</Note>
## Linking Records During Import
## Collegare i record durante l'importazione
<Note>**Reminder**: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
<Note>**Promemoria**: Possono essere importate solo relazioni uno a molti che puntano a un singolo tipo di oggetto (ad es., Persone → Aziende). Le relazioni che puntano a più tipi di oggetto (ad es., Note → Persone/Aziende/Opportunità) non sono ancora supportate.</Note>
### Step 1: Identify the "One" and "Many" Sides
### Passaggio 1: Identifica i lati "Uno" e "Molti"
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
Per prima cosa, determina quale oggetto è sul lato "uno" e quale è sul lato "molti" della relazione.
**Example**:
**Esempio**:
* **Company** is the "one" side (one company has many employees)
* **People** is the "many" side (each person belongs to one company)
* **Azienda** è il lato "uno" (un'azienda ha molti dipendenti)
* **Persone** è il lato "molti" (ogni persona appartiene a un'unica azienda)
### Step 2: Ensure the "One" Side Records Exist
### Passaggio 2: Assicurati che i record del lato "uno" esistano
Before importing the "many" side, the "one" side records must already exist in Twenty.
Prima di importare il lato "molti", i record del lato "uno" devono già esistere in Twenty.
* Import or create the "one" side records first (e.g., Companies)
* Validate their unique identifier. This can be:
* The `id` (Twenty's UUID)
* A field set as unique (e.g., `domain` for Companies, or an external ID from your previous system)
* Importa o crea prima i record del lato "uno" (ad es., Aziende)
* Verifica il loro identificatore univoco. Può essere:
* L'`id` (UUID di Twenty)
* Un campo impostato come univoco (ad es., `domain` per le Aziende o un ID esterno dal tuo sistema precedente)
<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
<Warning>L'importazione non riuscirà se viene fatto riferimento a un record inesistente.</Warning>
### Step 3: Prepare Your CSV File
### Passaggio 3: Prepara il tuo file CSV
Add a column in your "many" side CSV file that references the "one" side record.
Aggiungi una colonna nel file CSV del lato "molti" che faccia riferimento al record del lato "uno".
**Example**: For a People CSV file linking to Companies:
**Esempio**: Per un file CSV di Persone collegato ad Aziende:
```
firstName,lastName,email,companyDomain
@@ -96,53 +96,53 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important**:
**Importante**:
* The value must **exactly match** the unique field on the Company record
* For domains, use the **Domain URL** (e.g., `https://acme.com`), not the Domain Label
* Map only **one** unique identifier per relation: this leads to a smoother import
* Il valore deve corrispondere **esattamente** al campo univoco del record Azienda
* Per i domini, usa l'**URL del dominio** (ad es., `https://acme.com`), non l'etichetta del dominio
* Mappa un solo identificatore univoco per relazione: questo rende l'importazione più fluida
### Step 4: Ensure the Relation Field Exists
### Passaggio 4: Assicurati che il campo di relazione esista
Before uploading your file, make sure the relation field exists between your objects.
Prima di caricare il file, assicurati che esista il campo di relazione tra i tuoi oggetti.
If it doesn't exist:
Se non esiste:
1. Go to **Settings → Data Model**
2. Select your object (e.g., People)
3. Create a relation field pointing to the target object (e.g., Company)
1. Vai a **Impostazioni → Modello dati**
2. Seleziona il tuo oggetto (ad es., Persone)
3. Crea un campo di relazione che punti all'oggetto di destinazione (ad es., Azienda)
### Step 5: Upload and Map the Relation
### Passaggio 5: Carica e mappa la relazione
1. Upload your CSV file via the import UI
2. In the field mapping step, find your relation column (e.g., `companyDomain`)
3. Map it to the relation field (e.g., Company)
4. Twenty will automatically link each record to the matching parent
1. Carica il file CSV tramite l'interfaccia di importazione
2. Nel passaggio di mappatura dei campi, trova la colonna di relazione (ad es., `companyDomain`)
3. Mappala al campo di relazione (ad es., Azienda)
4. Twenty collegherà automaticamente ogni record al genitore corrispondente
### Available Unique Fields for Relations
### Campi univoci disponibili per le relazioni
| Oggetto | Unique Fields Available |
| ------------------------------------- | --------------------------------------- |
| **Aziende** | `id`, `domain`, any custom unique field |
| **People** | `id`, `email`, any custom unique field |
| **Membri del Workspace** | `id`, `email` (not name) |
| **Other standard and custom objects** | `id`, any field marked as unique |
| Oggetto | Campi univoci disponibili |
| ------------------------------------------- | ------------------------------------------------------ |
| **Aziende** | `id`, `domain`, qualsiasi campo univoco personalizzato |
| **Persone** | `id`, `email`, qualsiasi campo univoco personalizzato |
| **Membri del Workspace** | `id`, `email` (non il nome) |
| **Altri oggetti standard e personalizzati** | `id`, qualsiasi campo contrassegnato come univoco |
<Note>**Linking to Workspace Members**: When the relation points to Workspace Members (your team logging into Twenty), reference them by their **email address**, not their name.</Note>
<Note>**Collegamento ai membri dello Spazio di lavoro**: quando la relazione punta ai Membri dello Spazio di lavoro (il tuo team che accede a Twenty), fai riferimento al loro **indirizzo email**, non al nome.</Note>
<Note>We recommend using `domain` for Companies and `email` for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>Consigliamo di usare `domain` per le Aziende ed `email` per le Persone, poiché sono leggibili e facili da mantenere nei fogli di calcolo.</Note>
<Note>**Reminder**: Soft-deleted records (visible under Command Menu → See deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See [Uniqueness Constraints](/l/it/user-guide/data-migration/capabilities/uniqueness-constraints) for more details.</Note>
<Note>**Promemoria**: I record eliminati temporaneamente (visibili in Menu Comandi → Vedi record eliminati) contano ai fini dei criteri di unicità. Se importi un record con lo stesso valore univoco di un record eliminato, il record eliminato verrà ripristinato. Vedi [Vincoli di unicità](/l/it/user-guide/data-migration/capabilities/uniqueness-constraints) per maggiori dettagli.</Note>
## Import Order Rule
## Regola dell'ordine di importazione
<Warning>
**Always import the "one" side first!**
**Importa sempre prima il lato "uno"!**
1. **Companies** first (no dependencies)
2. **People** second (linked to Companies)
3. **Opportunities** third (linked to Companies/People)
4. **Custom objects** following their dependencies
1. **Aziende** per prime (nessuna dipendenza)
2. **Persone** al secondo posto (collegate alle Aziende)
3. **Opportunità** al terzo posto (collegate ad Aziende/Persone)
4. **Oggetti personalizzati** seguendo le relative dipendenze
The parent record must exist before you can reference it.
Il record padre deve esistere prima di potervi fare riferimento.
</Warning>
@@ -1,71 +1,71 @@
---
title: Import Companies via CSV
description: Complete step-by-step guide to importing companies into Twenty.
title: Importa aziende tramite CSV
description: Guida completa passo per passo all'importazione di aziende in Twenty.
---
## Panoramica
This guide walks you through importing your companies into Twenty. **Companies should be imported first** because People and Opportunities link to Companies.
Questa guida ti accompagna nell'importazione delle tue aziende in Twenty. **Le aziende dovrebbero essere importate per prime** perché Persone e Opportunità si collegano 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 domains in your file
Nessun dominio duplicato nel file
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Tutti i campi personalizzati esistono in **Impostazioni → Modello dati**
</Check>
<Note>
Need to import more than 10,000 companies? Split into multiple files or use the [API import](/l/it/user-guide/data-migration/how-tos/import-data-via-api).
Hai bisogno di importare più di 10.000 aziende? Suddividi in più file oppure usa l'[importazione tramite API](/l/it/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Step 1: Prepare Your Company Data
## Passo 1: Prepara i dati delle tue Aziende
### Required and Recommended Fields
### Campi obbligatori e consigliati
| Campo | Required? | Formato | Note |
| ----------------- | ----------- | -------------------- | ------------------------ |
| **Name** | Recommended | Testo | Company display name |
| **Domain** | Recommended | `https://domain.com` | Unique identifier |
| **Address** | Optional | Multiple columns | See below |
| **Employees** | Optional | Numero | Employee count |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Campo | Obbligatorio? | Formato | Note |
| ------------------------ | ------------- | -------------------- | ------------------------------ |
| **Name** | Consigliato | Testo | Nome visualizzato dell'azienda |
| **Dominio** | Consigliato | `https://domain.com` | Identificatore univoco |
| **Indirizzo** | Facoltativo | Più colonne | Vedi sotto |
| **Dipendenti** | Facoltativo | Numero | Numero di dipendenti |
| **Campi personalizzati** | Facoltativo | Varia | Deve esistere nel Modello dati |
### Domain Format
### Formato del dominio
<Warning>
**Use the format `https://domain.com` for domains.**
**Usa il formato `https://domain.com` per i domini.**
This matches the format used when Companies are auto-created from email/calendar sync, preventing duplicates later.
Questo corrisponde al formato usato quando le Aziende vengono create automaticamente dalla sincronizzazione di email/calendario, evitando duplicati in seguito.
</Warning>
**Domain columns:**
**Colonne del dominio:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Address Format
### Formato dell'indirizzo
Address is a nested field with multiple columns:
L'indirizzo è un campo annidato con più colonne:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Sample CSV Structure
### Esempio di struttura CSV
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
@@ -74,112 +74,112 @@ Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Pro tip:** Click **Download sample file** during import to see the exact column names Twenty expects.
**Suggerimento avanzato:** Fai clic su **Scarica file di esempio** durante l'importazione 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 Companies View**
**Opzione 1: dalla vista Aziende**
1. Navigate to **Companies** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Vai su **Aziende** 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 **Companies**
1. Premi `Cmd + K` (Mac) o `Ctrl + K` (Windows)
2. Digita "import"
3. Seleziona **Importa record**
4. Scegli **Aziende**
## 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
* **Domain**: Map to **Domain / Domain URL** (not Domain Label)
* **Address**: Map each part to its specific column (City, State, etc.)
* **Select fields**: Values must match existing options (or you'll map them in the next step)
* **Dominio**: mappa a **Domain / Domain URL** (non Domain Label)
* **Indirizzo**: mappa ogni parte alla sua colonna specifica (Cit, Stato, ecc.)
* **Campi Selezione**: i valori devono corrispondere alle opzioni esistenti (oppure li mapperai nel passaggio successivo)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Step 5: Map Select Field Values
## Passo 5: Mappa i valori dei campi Selezione
If you have Select or Multi-Select fields:
Se hai campi Selezione o Multiselezione:
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
## Passo 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 Company Import Errors
### Errori comuni di importazione delle aziende
| Errore | Cause | Solution |
| -------------------------- | ------------------------------- | ------------------------------------------ |
| **Duplicate domain** | Domain already exists in Twenty | Remove from file or update existing record |
| **Invalid domain format** | Wrong format | Use `https://domain.com` |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Errore | Causa | Soluzione |
| ---------------------------------- | ------------------------------- | ---------------------------------------------------- |
| **Dominio duplicato** | Il dominio esiste già in Twenty | Rimuovi dal file oppure aggiorna il record esistente |
| **Formato del dominio non valido** | Formato errato | Usa `https://domain.com` |
| **Campo obbligatorio mancante** | Il campo obbligatorio è vuoto | Compila il valore oppure rimuovi la riga |
## Step 7: Complete the Import
## Passo 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
1. Rivedi il riepilogo dell'importazione
2. Fai clic su **Conferma** per importare
3. Attendi il completamento dell'importazione
4. Verifica controllando alcuni record
## After Importing Companies
## Dopo l'importazione delle Aziende
Now you can import records that link to Companies:
Ora puoi importare record collegati alle Aziende:
1. **[Import People](/l/it/user-guide/data-migration/how-tos/import-contacts-via-csv)** — link them to Companies using the domain
2. **Import Opportunities** — link them to Companies
3. **Verify the import** — spot-check a few records to ensure data is correct
1. **[Importa Persone](/l/it/user-guide/data-migration/how-tos/import-contacts-via-csv)** — collegale alle Aziende usando il dominio
2. **Importa le Opportunità** — collegale alle Aziende
3. **Verifica l'importazione** — controlla a campione alcuni record per assicurarti che i dati siano corretti
## Updating Existing Companies
## Aggiornare le Aziende esistenti
To update companies instead of creating new ones:
Per aggiornare le aziende invece di crearne di nuove:
1. Include the `domain` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing companies are updated; new ones are created
1. Includi nel file la colonna `domain` o `id`
2. Twenty abbina i record tramite questo identificatore univoco
3. Le aziende esistenti vengono aggiornate; quelle nuove vengono create
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 Companies have the same domain?">
Domain is a unique identifier in Twenty. This prevents duplicate companies and ensures email sync correctly links emails to the right company.
<Accordion title="Perché due Aziende non possono avere lo stesso dominio?">
Il dominio è un identificatore univoco in Twenty. Questo evita aziende duplicate e garantisce che la sincronizzazione delle email colleghi correttamente i messaggi all'azienda giusta.
</Accordion>
<Accordion title="What if I have companies without a domain?">
You can leave the domain empty. However, we recommend adding domains when possible for better data quality and automatic email linking.
<Accordion title="Cosa succede se ho aziende senza dominio?">
Puoi lasciare vuoto il dominio. Tuttavia, consigliamo di aggiungere i domini quando possibile per una migliore qualità dei dati e per il collegamento automatico delle email.
</Accordion>
<Accordion title="Can I import companies without any People linked?">
<Accordion title="Posso importare aziende senza Persone collegate?">
Sì! You can import companies first, then import People later and link them using the company domain.
</Accordion>
@@ -31,103 +31,103 @@ La migrazione è un'opportunità per un nuovo inizio. Non trasferire il superflu
Crea un documento di mappatura tra il tuo CRM attuale e Twenty:
| Il tuo CRM | Twenty |
| ------------------------ | -------------------- |
| Account / Organizzazione | **Azienda** |
| Contatto / Persona | **Persone** |
| Trattativa / Opportunità | **Opportunità** |
| Activity | **Task** or **Note** |
| Custom Object | **Custom Object** |
| Il tuo CRM | Twenty |
| ------------------------ | -------------------------- |
| Account / Organizzazione | **Azienda** |
| Contatto / Persona | **Persone** |
| Trattativa / Opportunità | **Opportunità** |
| Attività | **Attività** o **Nota** |
| Oggetto personalizzato | **Oggetto personalizzato** |
**For each field, document:**
**Per ogni campo, documenta:**
* The source field name
* The target Twenty field
* Any format transformations needed (dates, phone numbers, etc.)
* Il nome del campo di origine
* Il campo di destinazione di Twenty
* Eventuali trasformazioni di formato necessarie (date, numeri di telefono, ecc.)
<Note>Keep this mapping document handy during import—you'll reference it when mapping columns.</Note>
<Note>Tieni a portata di mano questo documento di mappatura durante l'importazione—lo userai come riferimento quando mapperai le colonne.</Note>
## Step 3: Set Up Your Twenty Workspace
## Passaggio 3: Configura il tuo spazio di lavoro Twenty
Before importing data, prepare your Twenty workspace:
Prima di importare i dati, prepara il tuo spazio di lavoro Twenty:
### Create Custom Objects and Fields
### Crea oggetti e campi personalizzati
1. Go to **Settings → Data Model**
2. Create any custom objects you need
3. Add custom fields to standard and custom objects
4. Configure field settings (unique, required, select options, etc.)
1. Vai a **Impostazioni → Modello dati**
2. Crea tutti gli oggetti personalizzati di cui hai bisogno
3. Aggiungi campi personalizzati agli oggetti standard e personalizzati
4. Configura le impostazioni dei campi (univoche, obbligatorie, opzioni dei campi di selezione, ecc.)
<Warning>
**Fields must exist before import.**
**I campi devono esistere prima dell'importazione.**
The CSV import creates records, not fields. Create all custom fields in Settings → Data Model before importing.
L'importazione CSV crea record, non campi. Crea tutti i campi personalizzati in Impostazioni → Modello dati prima dell'importazione.
</Warning>
### Invite Your Team
### Invita il tuo team
<Warning>
**Invite users BEFORE importing data.**
**Invita gli utenti PRIMA di importare i dati.**
If your data includes user references (Account Owner, Assignee, etc.), those users must exist in Twenty before import. Otherwise, those relations cannot be mapped.
Se i tuoi dati includono riferimenti a utenti (Proprietario dell'account, Assegnatario, ecc.), tali utenti devono esistere in Twenty prima dell'importazione. In caso contrario, tali relazioni non possono essere mappate.
</Warning>
1. Vai a **Impostazioni → Membri**
2. Invite all team members
3. **Wait for everyone to accept** their invitation
4. Verify all users appear in your Members list
2. Invita tutti i membri del team
3. **Attendi che tutti accettino** il loro invito
4. Verifica che tutti gli utenti compaiano nell'elenco Membri
## Step 4: Export from Your Current CRM
## Passaggio 4: Esporta dal tuo CRM attuale
Export your data from your current CRM:
Esporta i tuoi dati dal tuo CRM attuale:
1. Look for an **Export** function (usually under Settings, Data Management, or Admin)
2. Export to **CSV format** when possible
3. Export each object type separately (Companies, Contacts, Deals, etc.)
4. Include all fields you want to migrate
1. Cerca una funzione di **Esportazione** (di solito in Impostazioni, Gestione dei dati o Amministrazione)
2. Esporta in **formato CSV** quando possibile
3. Esporta separatamente ogni tipo di oggetto (Aziende, Contatti, Trattative, ecc.)
4. Includi tutti i campi che desideri migrare
**Export these objects (in this order for reference):**
**Esporta questi oggetti (in questo ordine come riferimento):**
1. Companies / Accounts / Organizations
2. Contacts / People
3. Deals / Opportunities
4. Notes and Activities
1. Aziende / Account / Organizzazioni
2. Contatti / Persone
3. Trattative / Opportunità
4. Note e Attività
5. Oggetti personalizzati
## Step 5: Clean and Format Your Data
## Passaggio 5: Pulisci e formatta i tuoi dati
Open each exported CSV in a spreadsheet application and prepare it for Twenty.
Apri ogni file CSV esportato in un'applicazione di fogli di calcolo e preparalo per Twenty.
### Remove Duplicates
### Rimuovi i duplicati
1. Sort by the unique field (email for People, domain for Companies)
2. Remove or merge duplicate rows
3. Verify no duplicates exist in Twenty already
1. Ordina per il campo univoco (email per Persone, dominio per Aziende)
2. Rimuovi o unisci le righe duplicate
3. Verifica che non esistano già duplicati in Twenty
### Format Fields Correctly
### Formatta correttamente i campi
| Field Type | Required Format |
| ----------------- | ------------------------------------------------- |
| **Domain** | `https://domain.com` |
| **Email** | `name@domain.com` (must be unique) |
| **Date** | `YYYY-MM-DD` |
| **Phone** | Three columns: Number, Country Code, Calling Code |
| **Boolean** | `TRUE` or `FALSE` (uppercase) |
| **Select fields** | Use API names, not display labels |
| Tipo di campo | Formato richiesto |
| ---------------------- | ---------------------------------------------------------- |
| **Dominio** | `https://domain.com` |
| **Email** | `name@domain.com` (deve essere univoco) |
| **Data** | `YYYY-MM-DD` |
| **Telefono** | Tre colonne: Numero, Codice paese, Prefisso internazionale |
| **Booleano** | `TRUE` o `FALSE` (maiuscolo) |
| **Campi di selezione** | Usa i nomi API, non le etichette visualizzate |
<Warning>
**Domain format is critical.**
**Il formato del dominio è fondamentale.**
Use `https://domain.com` (not `domain.com` or `www.domain.com`). This matches Twenty's format and prevents duplicates when you connect email/calendar sync.
Usa `https://domain.com` (non `domain.com` o `www.domain.com`). Questo corrisponde al formato di Twenty ed evita duplicati quando colleghi la sincronizzazione di email e calendario.
</Warning>
See [How to Prepare Your CSV Files](/l/it/user-guide/data-migration/how-tos/prepare-your-csv-files) for complete formatting requirements for all field types.
Consulta [Come preparare i tuoi file CSV](/l/it/user-guide/data-migration/how-tos/prepare-your-csv-files) per i requisiti di formattazione completi per tutti i tipi di campo.
### Add Relation Columns
### Aggiungi colonne di relazione
To link records (e.g., People to Companies), add a column with the parent's unique identifier.
Per collegare i record (ad es., Persone ad Aziende), aggiungi una colonna con l'identificatore univoco del record padre.
**Example: People CSV with Company link**
**Esempio: CSV Persone con collegamento all'Azienda**
```csv
firstName,lastName,email,companyDomain
@@ -135,159 +135,159 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
See [How to Import Relations](/l/it/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) for detailed instructions on linking records.
Consulta [Come importare le relazioni](/l/it/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv) per istruzioni dettagliate sul collegamento dei record.
### Update User References
### Aggiorna i riferimenti agli utenti
If your data includes user assignments (Owner, Assignee):
Se i tuoi dati includono assegnazioni utente (Proprietario, Assegnatario):
1. Add a column with the **user's email** (not just their ID from the old system)
2. Use the same email addresses that users used to join your Twenty workspace
1. Aggiungi una colonna con l'**email dell'utente** (non solo il suo ID dal vecchio sistema)
2. Usa gli stessi indirizzi email che gli utenti hanno utilizzato per unirsi al tuo spazio di lavoro Twenty
See [How to Prepare Your CSV Files](/l/it/user-guide/data-migration/how-tos/prepare-your-csv-files) for complete formatting guide.
Consulta [Come preparare i tuoi file CSV](/l/it/user-guide/data-migration/how-tos/prepare-your-csv-files) per la guida completa alla formattazione.
## Step 6: Import to Twenty
## Passaggio 6: Importa in Twenty
<Warning>
**Import Order Matters!**
**L'ordine di importazione è importante!**
Always import in this order:
Importa sempre in questo ordine:
1. **Companies** first (no dependencies)
2. **People** second (link to Companies)
3. **Opportunities** third (link to Companies/People)
4. **Notes and Tasks** (link to records)
5. **Custom objects** following their dependencies
1. **Aziende** per prime (nessuna dipendenza)
2. **Persone** al secondo posto (collegate alle Aziende)
3. **Opportunità** al terzo posto (collegate ad Aziende/Persone)
4. **Note e Attività** (collegate ai record)
5. **Oggetti personalizzati** seguendo le relative dipendenze
The parent record must exist before you can reference it.
Il record padre deve esistere prima di potervi fare riferimento.
</Warning>
### Import Each Object
### Importa ogni oggetto
For each CSV file, in order:
Per ogni file CSV, in ordine:
1. Navigate to the object in Twenty
2. Click **⋮ → Import records**
3. Upload the CSV file
4. Map columns to fields:
* Map user email columns to the appropriate relation fields
* Map relation columns (like `companyDomain`) to relation fields
5. Review and fix any errors in the UI
6. Confirm the import
7. Verify a few records before proceeding to the next file
1. Vai all'oggetto in Twenty
2. Fai clic su **⋮ → Importa record**
3. Carica il file CSV
4. Mappa le colonne ai campi:
* Mappa le colonne delle email degli utenti ai campi relazione appropriati
* Mappa le colonne di relazione (come `companyDomain`) ai campi di relazione
5. Controlla e correggi eventuali errori nell'interfaccia
6. Conferma l'importazione
7. Verifica alcuni record prima di passare al file successivo
**Detailed guides:**
**Guide dettagliate:**
* [How to Import Companies](/l/it/user-guide/data-migration/how-tos/import-companies-via-csv)
* [How to Import Contacts](/l/it/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [How to Import Relations](/l/it/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
* [Come importare le aziende](/l/it/user-guide/data-migration/how-tos/import-companies-via-csv)
* [Come importare i contatti](/l/it/user-guide/data-migration/how-tos/import-contacts-via-csv)
* [Come importare le relazioni](/l/it/user-guide/data-migration/how-tos/import-relations-between-objects-via-csv)
## Step 7: Large Migrations (50,000+ Records)
## Passaggio 7: Migrazioni di grandi dimensioni (oltre 50.000 record)
For large migrations:
Per migrazioni di grandi dimensioni:
| Volume | Recommended Approach |
| ----------------------- | ----------------------------- |
| Under 10,000 records | Single CSV import |
| 10,000 - 50,000 records | Split into multiple CSV files |
| 50,000+ records | Use the API |
| Volume | Approccio consigliato |
| ---------------------- | ------------------------ |
| Meno di 10.000 record | Importazione CSV singola |
| 10.000 - 50.000 record | Dividi in più file CSV |
| Oltre 50.000 record | Usa le API |
**For API imports:**
**Per le importazioni tramite API:**
* Faster and more reliable for large datasets
* Supports batch operations (up to 60 records per call)
* See [How to Import Data via API](/l/it/user-guide/data-migration/how-tos/import-data-via-api)
* Più veloce e più affidabile per set di dati di grandi dimensioni
* Supporta operazioni in batch (fino a 60 record per chiamata)
* Consulta [Come importare i dati tramite API](/l/it/user-guide/data-migration/how-tos/import-data-via-api)
## Step 8: Post-Migration Setup
## Passaggio 8: Configurazione post-migrazione
After importing data, complete your workspace configuration:
Dopo aver importato i dati, completa la configurazione del tuo spazio di lavoro:
### Recreate Views
### Ricrea le viste
* Set up saved views with filters, sorts, and column configurations
* Create any kanban or calendar views you need
* Configura viste salvate con filtri, ordinamenti e configurazioni delle colonne
* Crea eventuali viste kanban o calendario di cui hai bisogno
### Ricrea i Flussi di Lavoro
* Rebuild your automations in **Settings → Workflows**
* Start with the most critical workflows
* Test each one before relying on it
* Ricrea le automazioni in **Impostazioni → Flussi di lavoro**
* Inizia dai flussi di lavoro più critici
* Testa ciascuno prima di farci affidamento
### Configure Roles and Permissions
### Configura ruoli e permessi
* Set up roles in **Settings → Roles**
* Assign users to appropriate roles
* Configura i ruoli in **Impostazioni → Ruoli**
* Assegna gli utenti ai ruoli appropriati
### Connect Email and Calendar
### Collega email e calendario
* Each user connects their own account in **Settings → Accounts**
* Twenty will start syncing emails to contact records
* See [Email & Calendar](/l/it/user-guide/calendar-emails/overview)
* Ogni utente collega il proprio account in **Impostazioni → Account**
* Twenty inizierà a sincronizzare le email con i record dei contatti
* Consulta [Email e Calendario](/l/it/user-guide/calendar-emails/overview)
### Train Your Team
### Forma il tuo team
* Walk through the new interface together
* Document any team-specific processes
* Esamina insieme al team la nuova interfaccia
* Documenta eventuali processi specifici del team
## Problemi comuni e soluzioni
| Issue | Cause | Solution |
| ----------------------- | --------------------------- | ------------------------------------------------------------------------------------ |
| **Duplicate errors** | Email/domain already exists | Remove duplicates from file, or include unique identifier to update existing records |
| **Relation not found** | Parent record doesn't exist | Import parent objects first (Companies before People) |
| **Missing fields** | Custom field doesn't exist | Create field in Settings → Data Model before importing |
| **Select field errors** | Using display labels | Use API names (enable Advanced mode in Settings to find them) |
| **User relation empty** | User hasn't accepted invite | Ensure all users accept invitations before importing |
| Problema | Causa | Soluzione |
| --------------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------- |
| **Errori di duplicazione** | Email/dominio già esistente | Rimuovi i duplicati dal file oppure includi un identificatore univoco per aggiornare i record esistenti |
| **Relazione non trovata** | Il record padre non esiste | Importa prima gli oggetti padre (Aziende prima delle Persone) |
| **Campi mancanti** | Il campo personalizzato non esiste | Crea il campo in Impostazioni → Modello dati prima dell'importazione |
| **Errori nei campi di selezione** | Uso delle etichette visualizzate | Usa i nomi API (attiva la modalità Avanzata in Impostazioni per trovarli) |
| **Relazione utente vuota** | L'utente non ha accettato l'invito | Assicurati che tutti gli utenti accettino gli inviti prima di importare |
See [How to Fix Import Errors](/l/it/user-guide/data-migration/how-tos/fix-import-errors) for detailed troubleshooting steps.
Consulta [Come correggere gli errori di importazione](/l/it/user-guide/data-migration/how-tos/fix-import-errors) per passaggi dettagliati di risoluzione dei problemi.
## Lista di Verifica Post-Migrazione
### Data Integrity
### Integrità dei dati
<Check>All records imported (compare counts with source system)</Check>
<Check>Relations working correctly (People linked to Companies)</Check>
<Check>User assignments mapped correctly (Owner, Assignee)</Check>
<Check>Custom fields populated</Check>
<Check>No unexpected duplicates</Check>
<Check>Tutti i record importati (confronta i conteggi con il sistema di origine)</Check>
<Check>Relazioni funzionanti correttamente (Persone collegate ad Aziende)</Check>
<Check>Assegnazioni utente mappate correttamente (Proprietario, Assegnatario)</Check>
<Check>Campi personalizzati compilati</Check>
<Check>Nessun duplicato imprevisto</Check>
### Configurazione
<Check>Views recreated</Check>
<Check>Workflows recreated and tested</Check>
<Check>Roles and permissions configured</Check>
<Check>Email/calendar sync connected</Check>
<Check>Viste ricreate</Check>
<Check>Flussi di lavoro ricreati e testati</Check>
<Check>Ruoli e permessi configurati</Check>
<Check>Sincronizzazione email/calendario connessa</Check>
### Team Readiness
### Preparazione del team
<Check>Team trained on new system</Check>
<Check>Old CRM access plan decided (keep for reference? When to disable?)</Check>
<Check>Team formato sul nuovo sistema</Check>
<Check>Piano di accesso al vecchio CRM deciso (mantenerlo come riferimento? Quando disattivarlo?)</Check>
## FAQ
<AccordionGroup>
<Accordion title="Can I migrate workflows automatically?">
Not currently. Workflows must be recreated manually in Twenty.
<Accordion title="Posso migrare i flussi di lavoro automaticamente?">
Al momento no. I flussi di lavoro devono essere ricreati manualmente in Twenty.
</Accordion>
<Accordion title="What about file attachments?">
File attachments are not included in CSV exports. You'll need to re-upload them manually, migrate via API, or contact our team for assistance.
<Accordion title="Che cosa succede agli allegati?">
Gli allegati non sono inclusi nelle esportazioni CSV. Dovrai ricaricarli manualmente, migrarli tramite API oppure contattare il nostro team per assistenza.
</Accordion>
<Accordion title="Can I keep both systems running during migration?">
Yes, we recommend keeping your old CRM running until you've verified the migration is complete. Just be careful not to create new data in both places.
<Accordion title="Posso mantenere entrambi i sistemi attivi durante la migrazione?">
Sì, consigliamo di mantenere attivo il tuo vecchio CRM finché non avrai verificato che la migrazione sia completa. Fai solo attenzione a non creare nuovi dati in entrambi gli ambienti.
</Accordion>
<Accordion title="How long does migration typically take?">
Depends on data volume and complexity. Small migrations (under 10,000 records) can be done in a few hours. Large migrations may take several days including data cleanup and testing.
<Accordion title="Quanto tempo richiede di solito la migrazione?">
Dipende dal volume e dalla complessità dei dati. Le migrazioni di piccole dimensioni (meno di 10.000 record) possono essere completate in poche ore. Le migrazioni di grandi dimensioni possono richiedere diversi giorni, compresi la pulizia dei dati e i test.
</Accordion>
</AccordionGroup>
## Hai Bisogno di Aiuto?
For complex migrations or large datasets:
Per migrazioni complesse o set di dati di grandi dimensioni:
* **Guided setup:** Book a 4-hour onboarding pack
* **Full migration service:** Our partners can handle the entire migration
* **Configurazione guidata:** Prenota un pacchetto di onboarding di 4 ore
* **Servizio di migrazione completo:** I nostri partner possono gestire l'intera migrazione
Contact [contact@twenty.com](mailto:contact@twenty.com) or explore our [Implementation Services](/l/it/user-guide/getting-started/capabilities/implementation-services).
Contatta [contact@twenty.com](mailto:contact@twenty.com) oppure scopri i nostri [Servizi di implementazione](/l/it/user-guide/getting-started/capabilities/implementation-services).
@@ -1,74 +1,74 @@
---
title: View Settings
description: Manage view visibility, naming, icons, and organization.
title: Impostazioni della vista
description: Gestisci la visibilità, i nomi, le icone e l'organizzazione delle viste.
---
## View Visibility
## Visibilità delle viste
Control who can see your custom views.
Controlla chi può vedere le tue viste personalizzate.
### Visibility Options
### Opzioni di visibilità
| Setting | Who Can See |
| ------------- | --------------------- |
| **Workspace** | All workspace members |
| **Unlisted** | Only you |
| Impostazione | Chi può vedere |
| ----------------- | ------------------------------------- |
| **Workspace** | Tutti i membri dello spazio di lavoro |
| **Non in elenco** | Solo tu |
### Changing Visibility
### Modificare la visibilità
1. Open the view
2. Click **Options → Visibility**
3. Select **Workspace** or **Unlisted**
1. Apri la vista
2. Fai clic su **Opzioni → Visibilità**
3. Seleziona **Workspace** o **Non in elenco**
<Note>
The default "All [Object Name]" views cannot have their visibility changed.
Le viste predefinite "All [Object Name]" non possono avere la visibilità modificata.
</Note>
## Rename a View
## Rinominare una vista
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Edit**
4. Enter the new name
1. Apri il menu a discesa della vista
2. Fai clic sul menu **⋮** accanto alla vista
3. Seleziona **Modifica**
4. Inserisci il nuovo nome
## Change View Icon
## Modificare l'icona della vista
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Edit**
4. Click the icon to change it
1. Apri il menu a discesa della vista
2. Fai clic sul menu **⋮** accanto alla vista
3. Seleziona **Modifica**
4. Fai clic sull'icona per modificarla
## Reorder Views
## Riordinare le viste
Change the order views appear in the dropdown:
Modifica l'ordine in cui le viste compaiono nel menu a discesa:
1. Open the view dropdown
2. Drag views by their handle
3. Drop in the desired position
4. Order saves automatically
1. Apri il menu a discesa della vista
2. Trascina le viste tramite la maniglia
3. Rilascia nella posizione desiderata
4. L'ordine viene salvato automaticamente
## Preferiti
Pin frequently used views for quick access:
Fissa le viste usate di frequente per un accesso rapido:
1. Open the view dropdown
2. Click the **⋮** menu next to a view
3. Select **Add to favorites**
1. Apri il menu a discesa della vista
2. Fai clic sul menu **⋮** accanto a una vista
3. Seleziona **Aggiungi ai preferiti**
Favorited views appear in a dedicated section for easy access.
Le viste aggiunte ai preferiti compaiono in una sezione dedicata per un accesso rapido.
## Delete a View
## Eliminare una vista
1. Open the view dropdown
2. Click the **⋮** menu next to the view
3. Select **Delete**
4. Confirm deletion
1. Apri il menu a discesa della vista
2. Fai clic sul menu **⋮** accanto alla vista
3. Seleziona **Elimina**
4. Conferma l'eliminazione
<Warning>
Deleted views cannot be recovered.
Le viste eliminate non possono essere ripristinate.
</Warning>
## Related
## Correlati
* [Views Overview](/l/it/user-guide/views-pipelines/overview) — creating views
* [How to Restrict Access](/l/it/user-guide/views-pipelines/how-tos/restrict-access-to-your-view) — step-by-step guide
* [Panoramica delle viste](/l/it/user-guide/views-pipelines/overview) — creazione delle viste
* [Come limitare l'accesso](/l/it/user-guide/views-pipelines/how-tos/restrict-access-to-your-view) — guida passo passo
@@ -1,61 +1,61 @@
---
title: Create a Calendar View for Tasks Due
description: Visualize your tasks and deadlines on a calendar.
title: Crea una vista Calendario per le attività in scadenza
description: Visualizza le tue attività e le scadenze su un calendario.
---
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Prerequisiti
Your Tasks object needs a **Due Date** field (Date or Date & Time type).
Il tuo oggetto Attività necessita di un campo **Data di scadenza** (tipo Data o Data e Ora).
## Steps
## Passaggi
1. Navigate to **Tasks**
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Tasks Calendar")
4. Click **Create**
5. Click **Options** and select **Calendar** as the layout
6. Choose **Due Date** as the date field
1. Vai su **Attività**
2. Clicca sul menu a discesa della vista → **+ Aggiungi vista**
3. Dai un nome alla tua vista (ad es., "Calendario attività")
4. Clicca **Crea**
5. Clicca su **Opzioni** e seleziona **Calendario** come layout
6. Scegli **Data di scadenza** come campo data
7. Clicca su **Salva**
## Configure Your Calendar
## Configura il tuo calendario
### Display Fields on Events
### Visualizza i campi negli eventi
1. Click **OptionsFields**
2. Click the **eye icon** to show/hide fields
3. Drag to reorder
1. Clicca su **OpzioniCampi**
2. Clicca sull'**icona dell'occhio** per mostrare/nascondere i campi
3. Trascina per riordinare
Recommended fields to display:
Campi consigliati da visualizzare:
* **Title** — task name
* **Assignee** — who's responsible
* **Status** — current progress
* **Titolo** — nome dell'attività
* **Assegnatario** — chi è responsabile
* **Stato** — avanzamento attuale
### Filter Your Calendar
### Filtra il tuo calendario
Create focused views:
Crea viste mirate:
* **My Tasks**: Filter by Assignee = Me
* **This Week**: Filter by Due Date = This week
* **Overdue**: Filter by Due Date < Today, StatusDone
* **Le mie attività**: Filtra per Assegnatario = Io
* **Questa settimana**: Filtra per Data di scadenza = Questa settimana
* **In ritardo**: Filtra per Data di scadenza < Oggi, StatoCompletato
## Other Calendar Use Cases
## Altri casi d'uso del calendario
| Oggetto | Date Field | Purpose |
| ------------- | ---------- | ------------------------- |
| Opportunità | Close Date | Track expected closes |
| Custom Events | Event Date | Plan activities |
| Projects | Deadline | Monitor project timelines |
| Oggetto | Campo data | Scopo |
| --------------------- | ---------------- | ------------------------------------- |
| Opportunità | Data di chiusura | Tieni traccia delle chiusure previste |
| Eventi personalizzati | Data dell'evento | Pianifica le attività |
| Progetti | Scadenza | Monitora le tempistiche dei progetti |
## Tips
## Suggerimenti
* **Review weekly**: Start each week by checking your calendar view
* **Combine with table view**: Use calendar for overview, table for details
* **Set visibility**: Keep personal task calendars as Unlisted
* **Rivedi ogni settimana**: Inizia ogni settimana controllando la vista calendario
* **Combina con la vista tabella**: Usa il calendario per la panoramica, la tabella per i dettagli
* **Imposta la visibilità**: Mantieni i calendari delle attività personali come Non in elenco
## Related
## Correlati
* [Calendar View](/l/it/user-guide/views-pipelines/capabilities/calendar-view) — all calendar features
* [Filters and Sorting](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — filter your calendar
* [Vista calendario](/l/it/user-guide/views-pipelines/capabilities/calendar-view) — tutte le funzionalità del calendario
* [Filtri e ordinamento](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtra il calendario
@@ -1,31 +1,31 @@
---
title: Bring Product Data into Twenty
description: Sync product catalog data from a data warehouse into your CRM on a schedule.
title: Porta i dati di prodotto in Twenty
description: Sincronizza i dati del catalogo prodotti da un data warehouse nel tuo CRM in base a una pianificazione.
---
Use this pattern to keep Twenty in sync with product data from your data warehouse (e.g., Snowflake, BigQuery, PostgreSQL).
Usa questo modello per mantenere Twenty sincronizzato con i dati di prodotto dal tuo data warehouse (ad esempio, Snowflake, BigQuery, PostgreSQL).
## Workflow Structure
## Struttura del flusso di lavoro
1. **Trigger**: On a Schedule
2. **Code**: Query your data warehouse
3. **Code** (optional): Format data as array
4. **Iterator**: Loop through each product
5. **Upsert Record**: Create or update in Twenty
1. **Trigger**: In base a una pianificazione
2. **Code**: Interroga il tuo data warehouse
3. **Code** (opzionale): Formatta i dati come array
4. **Iterator**: Itera su ciascun prodotto
5. **Upsert Record**: Crea o aggiorna in Twenty
<img src="/images/user-guide/workflows/create_users_workflow.png" style={{width:'100%'}} />
## Step 1: Schedule the Trigger
## Passaggio 1: Pianifica il trigger
Set the workflow to run at a frequency matching your data freshness needs:
Imposta il flusso di lavoro per l'esecuzione con una frequenza che corrisponda alle tue esigenze di aggiornamento dei dati:
* Every 5 minutes for near real-time sync
* Every hour for less critical data
* Daily for batch updates
* Ogni 5 minuti per una sincronizzazione quasi in tempo reale
* Ogni ora per i dati meno critici
* Ogni giorno per aggiornamenti in batch
## Step 2: Query Your Data Warehouse
## Passaggio 2: Interroga il tuo data warehouse
Add a **Code** action to fetch recent data:
Aggiungi un'azione **Code** per recuperare i dati recenti:
```javascript
export const main = async () => {
@@ -54,14 +54,14 @@ export const main = async () => {
```
<Tip>
Filter by `updated_at >= last X minutes` to retrieve only recently changed records. This keeps the sync efficient.
Filtra per `updated_at >= last X minutes` per recuperare solo i record modificati di recente. Questo mantiene efficiente la sincronizzazione.
</Tip>
## Step 3: Format Data (Optional)
## Passaggio 3: Formatta i dati (opzionale)
If your warehouse returns data in a format that needs transformation, add another **Code** action. Common transformations include type conversions, field renaming, and data cleanup.
Se il tuo data warehouse restituisce dati in un formato che richiede una trasformazione, aggiungi un'altra azione **Code**. Le trasformazioni comuni includono conversioni di tipo, ridenominazione dei campi e pulizia dei dati.
### Example: User Data with Boolean and Status Fields
### Esempio: Dati utente con campi booleani e di stato
```javascript
export const main = async (params: {
@@ -86,7 +86,7 @@ export const main = async (params: {
};
```
### Example: Product Data with Type Conversions
### Esempio: Dati di prodotto con conversioni di tipo
```javascript
export const main = async (params: { products: any }) => {
@@ -107,7 +107,7 @@ export const main = async (params: { products: any }) => {
};
```
### Example: Date and Currency Formatting
### Esempio: Formattazione di date e valute
```javascript
export const main = async (params: { deals: any }) => {
@@ -131,52 +131,52 @@ export const main = async (params: { deals: any }) => {
};
```
### Common Transformations
### Trasformazioni comuni
| Source Format | Target Format | Codice |
| -------------------- | ---------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | ISO date | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
| Formato di origine | Formato di destinazione | Codice |
| -------------------- | ----------------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | Data ISO | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
## Step 4: Iterate Through Products
## Passaggio 4: Itera sui prodotti
Add an **Iterator** action:
Aggiungi un'azione **Iterator**:
* Input: `{{code.products}}`
This loops through each product in the array.
Questo esegue un ciclo su ogni prodotto nell'array.
## Step 5: Upsert Each Record
## Passaggio 5: Esegui l'upsert di ogni record
Inside the iterator, add an **Upsert Record** action:
All'interno dell'Iterator, aggiungi un'azione **Upsert Record**:
| Setting | Valore |
| ------------ | -------------------------------------- |
| **Object** | Your custom Product object |
| **Match by** | External ID or SKU (unique identifier) |
| **Name** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Price** | `{{iterator.item.price}}` |
| Impostazione | Valore |
| ---------------------- | ----------------------------------------- |
| **Oggetto** | Il tuo oggetto Prodotto personalizzato |
| **Corrispondenza per** | ID esterno o SKU (identificatore univoco) |
| **Nome** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Prezzo** | `{{iterator.item.price}}` |
<Tip>
Use **Upsert** (update or create) instead of building separate branches for create vs. update. It's faster to build and easier to debug.
Usa **Upsert** (aggiornare o creare) invece di creare rami separati per creazione e aggiornamento. È più veloce da costruire e più facile da eseguire il debug.
</Tip>
## Example Use Cases
## Esempi di casi d'uso
| Fonte | Dati |
| ----------------------- | ----------------------------------- |
| **ERP system** | Product catalog, pricing, inventory |
| **E-commerce platform** | Orders, customers, product updates |
| **Data warehouse** | Aggregated metrics, enriched data |
| **Inventory system** | Stock levels, reorder alerts |
| Fonte | Dati |
| -------------------------- | ------------------------------------------- |
| **Sistema ERP** | Catalogo prodotti, prezzi, inventario |
| **Piattaforma e-commerce** | Ordini, clienti, aggiornamenti dei prodotti |
| **Data warehouse** | Metriche aggregate, dati arricchiti |
| **Sistema di inventario** | Livelli di stock, avvisi di riordino |
## Related
## Correlati
* [Workflow Triggers](/l/it/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/it/user-guide/workflows/capabilities/workflow-actions)
* [Handle Arrays in Code Actions](/l/it/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-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)
* [Gestire gli array nelle azioni Code](/l/it/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,56 +1,56 @@
---
title: Send Email Alerts with Tasks Due
description: Automatically notify team members about their upcoming or overdue tasks.
title: Invia avvisi via email per le attività in scadenza
description: Notifica automaticamente ai membri del team le attività imminenti o in ritardo.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
<img src="/images/user-guide/workflows/email_tasks_due.png" style={{width:'100%'}} />
Send daily email reminders to each team member about their tasks due today.
Invia promemoria email quotidiani a ciascun membro del team sulle attività in scadenza oggi.
## Panoramica
This workflow runs on a schedule and:
Questo flusso di lavoro viene eseguito secondo una pianificazione e:
1. Fetches all workspace members
2. Loops through each member
3. Finds their tasks due today
4. Formats and sends a personalized email
1. Recupera tutti i membri dello spazio di lavoro
2. Scorre ciascun membro
3. Trova le loro attività in scadenza oggi
4. Formatta e invia un'email personalizzata
## Step-by-Step Setup
## Configurazione passo-passo
<VimeoEmbed videoId="1147463514" title="Video demonstration" />
<VimeoEmbed videoId="1147463514" title="Dimostrazione video" />
### Step 1: Configure the Trigger
### Passaggio 1: Configura il trigger
1. Go to **Settings → Workflows** and create a new workflow
2. Select **On a Schedule** as the trigger
3. Use a cron expression for daily at 8:00 AM: `0 8 * * *`
1. Vai su **Impostazioni → Flussi di lavoro** e crea un nuovo flusso di lavoro
2. Seleziona **On a Schedule** come trigger
3. Usa un'espressione cron per ogni giorno alle 8:00: `0 8 * * *`
### Step 2: Search for All Workspace Members
### Passaggio 2: Cerca tutti i membri dello spazio di lavoro
1. Add a **Search Records** action
2. Select **Workspace Members** (under advanced objects)
3. No filters needed — this returns all members
1. Aggiungi un'azione **Search Records**
2. Seleziona **Workspace Members** (nella sezione Oggetti avanzati)
3. Non sono necessari filtri — questo restituisce tutti i membri
### Step 3: Add an Iterator
### Passaggio 3: Aggiungi un Iterator
1. Add an **Iterator** action
2. Set the input array to the workspace members from the previous step
3. All actions inside the iterator will run once per member
1. Aggiungi un'azione **Iterator**
2. Imposta l'array di input con i membri dello spazio di lavoro del passaggio precedente
3. Tutte le azioni all'interno dell'Iterator verranno eseguite una volta per membro
### Step 4: Search for Tasks Due Today (Inside Iterator)
### Passaggio 4: Cerca le attività in scadenza oggi (all'interno dell'Iterator)
1. Inside the iterator, add a **Search Records** action
2. Select **Tasks** as the object
3. Add filters:
* **Assignee** = current workspace member (from the iterator)
* **Due Date** = today
1. All'interno dell'Iterator, aggiungi un'azione **Search Records**
2. Seleziona **Tasks** come oggetto
3. Aggiungi filtri:
* **Assignee** = membro corrente dello spazio di lavoro (dall'Iterator)
* **Due Date** = oggi
### Step 5: Format Tasks into Email Body (Inside Iterator)
### Passaggio 5: Formatta le attività nel corpo dell'email (all'interno dell'Iterator)
Add a **Code** action to format the tasks into a readable list with links:
Aggiungi un'azione **Code** per formattare le attività in un elenco leggibile con link:
```javascript
export const main = async (params: {
@@ -79,28 +79,28 @@ export const main = async (params: {
```
<Note>
Replace `yourSubDomain` with your actual Twenty workspace subdomain.
Sostituisci `yourSubDomain` con il tuo effettivo sottodominio dello spazio di lavoro Twenty.
</Note>
### Step 6: Send Email (Inside Iterator)
### Passaggio 6: Invia email (all'interno dell'Iterator)
1. Add a **Send Email** action (still inside the iterator)
1. Aggiungi un'azione **Send Email** (sempre all'interno dell'Iterator)
2. Configura:
| Campo | Valore |
| ----------- | --------------------------------------------------------------- |
| **To** | `{{iterator.currentItem.userEmail}}` (workspace member's email) |
| **Subject** | Your Tasks Due Today |
| **Body** | `{{code.formattedTasks}}` |
| Campo | Valore |
| ----------- | ------------------------------------------------------------------------------ |
| **A** | `{{iterator.currentItem.userEmail}}` (email del membro dello spazio di lavoro) |
| **Oggetto** | Le tue attività in scadenza oggi |
| **Corpo** | `{{code.formattedTasks}}` |
### Step 7: Test and Activate
### Passaggio 7: Testa e attiva
1. Click **Test** to run the workflow manually
2. Check inboxes for the emails
3. Activate the workflow
1. Fai clic su **Test** per eseguire manualmente il flusso di lavoro
2. Controlla le caselle di posta per le email
3. Attiva il flusso di lavoro
## Related
## Correlati
* [Workflow Actions](/l/it/user-guide/workflows/capabilities/workflow-actions)
* [Send Emails from Workflows](/l/it/user-guide/workflows/capabilities/send-emails-from-workflows)
* [Handle Arrays in Code Actions](/l/it/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
* [Azioni dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-actions)
* [Inviare email dai flussi di lavoro](/l/it/user-guide/workflows/capabilities/send-emails-from-workflows)
* [Gestire gli array nelle azioni Code](/l/it/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,6 +1,6 @@
---
title: Flussi di Lavoro
description: Learn how to build automations in Twenty.
description: Scopri come creare automazioni in Twenty.
image: /images/user-guide/workflows/workflow.png
---
@@ -21,50 +21,50 @@ Consigliamo di costruire automazioni per due scopi principali:
1. **Automazioni interne per facilitare le attività quotidiane del tuo team**: Riduci il numero di inserimenti manuali e compiti ripetitivi che rallentano il tuo team.
2. **Portare i dati dentro e fuori da Twenty**: Collega Twenty tramite chiamate API e webhooks al tuo database e ad altri strumenti.
## Building Your First Workflow
## Creare il tuo primo flusso di lavoro
### Step 1: Create a New Workflow
### Passaggio 1: Crea un nuovo flusso di lavoro
1. Go to **Workflows** accessible below the other objects
2. Click **+ New Record**
3. Give your workflow a name
1. Vai a **Flussi di lavoro**, che si trova sotto gli altri oggetti
2. Fai clic su **+ Nuovo record**
3. Assegna un nome al tuo flusso di lavoro
### Step 2: Add a Trigger
### Passaggio 2: Aggiungi un trigger
Every workflow starts with a trigger. Choose from:
Ogni flusso di lavoro inizia con un trigger. Scegli tra:
* **Record events**: When a record is created, updated, or deleted
* **Schedule**: Run at specific times (daily, weekly, etc.)
* **Manual**: Triggered by a user action
* **Webhook**: Triggered by a webhook
* **Eventi dei record**: quando un record viene creato, aggiornato o eliminato
* **Pianificazione**: Esegui in orari specifici (giornalmente, settimanalmente, ecc.)
* **Manuale**: Attivato da un'azione dell'utente
* **Webhook**: Attivato da un webhook
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
### Step 3: Add Actions
### Passaggio 3: Aggiungi azioni
After your trigger, add one or more actions:
Dopo il tuo trigger, aggiungi una o più azioni:
* **Create Record**: Add new records to any object
* **Update Record**: Modify existing record data
* **Delete Record**: Remove records from objects
* **Search Records**: Find records matching criteria
* **Upsert Record**: Create or update based on matching criteria
* **Iterator**: Loop through arrays of records
* **Filter**: Control which records proceed
* **Delay**: Wait before continuing (duration or scheduled date)
* **Send Email**: Send emails via your connected account
* **Code**: Run custom JavaScript
* **HTTP Request**: Call external APIs
* **Form**: Get inputs from users within Twenty UI at the time of execution
* **AI Agent** (Coming soon): Run intelligent AI tasks
* **Crea record**: Aggiungi nuovi record a qualsiasi oggetto
* **Aggiorna record**: Modifica i dati dei record esistenti
* **Elimina record**: Rimuovi i record dagli oggetti
* **Cerca record**: Trova i record che corrispondono ai criteri
* **Upsert record**: Crea o aggiorna in base ai criteri di corrispondenza
* **Iterator**: Itera sugli array di record
* **Filtro**: Controlla quali record proseguono
* **Ritardo**: Attendi prima di continuare (durata o data programmata)
* **Invia email**: Invia email tramite il tuo account collegato
* **Codice**: Esegui JavaScript personalizzato
* **Richiesta HTTP**: Chiama API esterne
* **Modulo**: Raccogli input dagli utenti all'interno di Twenty UI al momento dell'esecuzione
* **Agente IA** (In arrivo): Esegui attività di IA intelligenti
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Step 4: Test and Activate
### Passaggio 4: Testa e attiva
1. Use the **Test** button to run your workflow with sample data
2. Review the results to ensure it works as expected
3. Toggle the workflow **Active** when ready
1. Usa il pulsante **Test** per eseguire il tuo flusso di lavoro con dati di esempio
2. Esamina i risultati per assicurarti che funzioni come previsto
3. Imposta il flusso di lavoro su **Attivo** quando sei pronto
## Pratiche migliori per i flussi di lavoro
@@ -75,6 +75,6 @@ After your trigger, add one or more actions:
## Prossimi Passi
* [Workflow Triggers](/l/it/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/it/user-guide/workflows/capabilities/workflow-actions)
* [CRM 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 CRM](/l/it/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,74 +1,74 @@
---
title: Tablouri de Bord
description: Create and organize dashboards with tabs to visualize your CRM data.
description: Creați și organizați tablouri de bord cu file pentru a vizualiza datele dvs. din CRM.
---
## Prezentare generală
Dashboards in Twenty are organized in a hierarchy: **Dashboards → Tabs → Widgets**. Each dashboard can contain multiple tabs, and each tab contains widgets (charts, numbers, iFrames).
Tablourile de bord din Twenty sunt organizate într-o ierarhie: **Tablouri de bord → File → Widgeturi**. Fiecare tablou de bord poate conține mai multe file, iar fiecare filă conține widgeturi (grafice, numere, iFrames).
## Creating a Dashboard
## Crearea unui tablou de bord
1. Go to **Dashboards** in the navigation
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Start adding tabs and widgets
1. Accesați **Tablouri de bord** în navigare
2. Faceți clic pe **+ Tablou de bord nou**
3. Dați un nume tabloului de bord
4. Începeți să adăugați file și widgeturi
## Working with Tabs
## Lucrul cu filele
Tabs help you organize your dashboard into logical sections.
Filele vă ajută să organizați tabloul de bord în secțiuni logice.
### Creating Tabs
### Crearea filelor
1. In edit mode, click **+ Add Tab**
2. Name your tab (e.g., "Pipeline Overview", "Team Performance")
3. Add widgets to the tab
1. În modul de editare, faceți clic pe **+ Adăugare filă**
2. Denumiți fila (de ex., "Prezentare generală a pipeline-ului", "Performanța echipei")
3. Adăugați widgeturi în filă
### Duplicating Tabs
### Duplicarea filelor
1. Click on the tab you want to duplicate
2. Click the **Duplicate** button in the side panel
1. Faceți clic pe fila pe care doriți să o duplicați
2. Faceți clic pe butonul **Duplicare** din panoul lateral
## Dashboard Layout
## Aspectul tabloului de bord
### Arranging Widgets
### Aranjarea widgeturilor
* Drag and drop to position
* Resize for emphasis
* Group related charts together
* Trageți și plasați pentru poziționare
* Redimensionați pentru evidențiere
* Grupați împreună graficele asociate
### Duplicating a Dashboard
### Duplicarea unui tablou de bord
1. Exit edit mode (view mode only)
2. Open the command bar with **Cmd + K** (or **Ctrl + K** on Windows)
3. Select **Duplicate dashboard**
1. Ieșiți din modul de editare (doar în modul de vizualizare)
2. Deschideți bara de comenzi cu **Cmd + K** (sau **Ctrl + K** pe Windows)
3. Selectați **Duplicare tablou de bord**
### Cele mai bune practici
* **Logical flow**: Arrange from overview to detail
* **Visual hierarchy**: Larger charts for key metrics
* **Consistent styling**: Use matching colors and fonts
* **Flux logic**: Aranjați de la prezentare generală la detaliu
* **Ierarhie vizuală**: Grafice mai mari pentru indicatorii cheie
* **Stilizare consecventă**: Folosiți culori și fonturi coerente
## Visibility & Access
## Vizibilitate și acces
### Dashboard Visibility
### Vizibilitatea tabloului de bord
Dashboards are visible to everyone who has access to your Twenty workspace. There is no private dashboard option at the moment.
Tablourile de bord sunt vizibile pentru toți cei care au acces la spațiul dvs. de lucru din Twenty. În acest moment nu există opțiunea unui tablou de bord privat.
### Favorite
You can add dashboards to your favorites for quick access. This is a personal setting—your favorites are not visible to other users.
Puteți adăuga tablouri de bord la favorite pentru acces rapid. Aceasta este o setare personală—favoritele dvs. nu sunt vizibile pentru alți utilizatori.
To add a dashboard to favorites, open the dashboard and click the star icon.
Pentru a adăuga un tablou de bord la favorite, deschideți tabloul de bord și faceți clic pe pictograma stea.
### Timezone Behavior
### Comportamentul fusului orar
Dashboards currently display data based on the timezone of the user viewing them. This means the same dashboard may show different metrics for team members in different regions (e.g., APAC vs. US).
Tablourile de bord afișează în prezent datele în funcție de fusul orar al celui care le vizualizează. Aceasta înseamnă că același tablou de bord poate afișa indicatori diferiți pentru membrii echipei din regiuni diferite (de ex., APAC vs. SUA).
<Note>
**Coming soon**: We will add the ability to set a specific timezone for a dashboard, so all users see consistent data regardless of their location.
**În curând**: Vom adăuga posibilitatea de a seta un fus orar specific pentru un tablou de bord, astfel încât toți utilizatorii să vadă date consecvente indiferent de locația lor.
</Note>
<Note>
**Coming soon**: Dashboard-level filters will allow you to apply filters across all widgets at once, making it faster to explore your data.
**În curând**: Filtrele la nivel de tablou de bord vă vor permite să aplicați filtre pe toate widgeturile simultan, făcând mai rapidă explorarea datelor.
</Note>
@@ -1,94 +1,94 @@
---
title: Import Relations Between Objects
description: Import relationships between records via CSV.
title: Importați relațiile dintre obiecte
description: Importați relațiile dintre înregistrări prin CSV.
---
## Prezentare generală
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
Twenty acceptă importul relațiilor dintre obiecte în timpul importului CSV. Acest lucru vă permite să conectați înregistrări (de ex., să atașați Persoane la Companii) ca parte a migrării datelor.
<Note>**Currently supported for import**: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
<Note>**În prezent acceptat pentru import**: Relații de tip unu-la-mulți care indică spre un singur tip de obiect pe fiecare parte (de ex., Persoane → Companii). Relațiile care indică către mai multe tipuri de obiecte nu sunt încă acceptate pentru import/export.</Note>
## How Relations Work in Twenty
## Cum funcționează relațiile în Twenty
### One to Many / Many to One
### Unu la mulți / Mulți la unu
Twenty supports standard relations where one record links to many others:
Twenty acceptă relații standard în care o înregistrare se leagă de multe altele:
* **One Company → Many People**: A company can have multiple employees, but each person belongs to one company
* **One Company → Many Opportunities**: A company can have multiple deals, but each opportunity belongs to one company
* **O Companie → Multe Persoane**: O companie poate avea mai mulți angajați, dar fiecare persoană aparține unei singure companii
* **O Companie → Multe Oportunități**: O companie poate avea mai multe oportunități, dar fiecare oportunitate aparține unei singure companii
### Relations That Can Point to Multiple Object Types
### Relații care pot indica către mai multe tipuri de obiecte
Some relations can connect to different types of objects. This works in two ways:
Unele relații se pot conecta la diferite tipuri de obiecte. Acest lucru funcționează în două moduri:
**Pattern 1: Many records linking to one record each from different object types**
**Modelul 1: Multe înregistrări care se leagă fiecare de o singură înregistrare din tipuri de obiecte diferite**
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
Mai multe Note, Sarcini sau Activități pot fi atașate, fiecare, simultan la mai multe tipuri de obiecte:
* **Notes** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Tasks** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Notele** pot fi legate simultan de o Persoană, o Companie și o Oportunitate
* **Sarcinile** pot fi legate simultan de o Persoană, o Companie și o Oportunitate
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
Aici, Notele/Sarcinile se află pe partea „mulți”. Fiecare se leagă de o singură înregistrare pentru fiecare tip de obiect.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Pattern 2: One record receiving links from many records of different object types**
**Modelul 2: O înregistrare care primește legături de la multe înregistrări din tipuri de obiecte diferite**
A Project can receive links from multiple records across different object types:
Un Proiect poate primi legături de la multiple înregistrări din diferite tipuri de obiecte:
* **A Project** can have many People linked to it, many Companies linked to it, and many Notes attached to it
* **Un Proiect** poate avea multe Persoane legate de el, multe Companii legate de el și multe Note atașate la el
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
Aici, Proiectul se află pe partea „unu”. Mai multe înregistrări din obiecte diferite se pot conecta toate la același Proiect.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.
**Limitare de import/export**: Relațiile care indică către mai multe tipuri de obiecte (cum ar fi Note → Persoane/Companii/Oportunități) nu sunt **încă acceptate** la importul sau exportul CSV.
* **Import**: Only one-to-many relations pointing to a single object type on each side can be imported
* **Export**: Columns for relations pointing to multiple object types are currently left empty
* **Import**: Numai relațiile unu-la-mulți care indică spre un singur tip de obiect pe fiecare parte pot fi importate
* **Export**: Coloanele pentru relațiile care indică către mai multe tipuri de obiecte sunt în prezent lăsate necompletate
This is on our roadmap.
Această funcționalitate este în planul nostru de dezvoltare.
</Warning>
### What's Not Supported Today
### Ce nu este acceptat astăzi
**Many to Many relations** are not yet available. For example, you cannot currently create a relation where:
**Relațiile mulți-la-mulți** nu sunt încă disponibile. De exemplu, în prezent nu puteți crea o relație în care:
* Many People are linked to many Projects
* Multe Persoane sunt legate de multe Proiecte
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>Relațiile mulți-la-mulți sunt planificate pentru H1 2026.</Note>
## Linking Records During Import
## Asocierea înregistrărilor în timpul importului
<Note>**Reminder**: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
<Note>**Reamintire**: Doar relațiile unu-la-mulți care indică spre un singur tip de obiect pot fi importate (de ex., Persoane → Companii). Relațiile care indică către mai multe tipuri de obiecte (de ex., Note → Persoane/Companii/Oportunități) nu sunt încă acceptate.</Note>
### Step 1: Identify the "One" and "Many" Sides
### Pasul 1: Identificați părțile „unu” și „mulți”
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
Mai întâi, determinați care obiect se află pe partea „unu” și care pe partea „mulți” a relației.
**Example**:
**Exemplu**:
* **Company** is the "one" side (one company has many employees)
* **People** is the "many" side (each person belongs to one company)
* **Compania** este partea „unu” (o companie are mulți angajați)
* **Persoane** este partea „mulți” (fiecare persoană aparține unei singure companii)
### Step 2: Ensure the "One" Side Records Exist
### Pasul 2: Asigurați existența înregistrărilor de pe partea „unu”
Before importing the "many" side, the "one" side records must already exist in Twenty.
Înainte de a importa partea „mulți”, înregistrările de pe partea „unu” trebuie să existe deja în Twenty.
* Import or create the "one" side records first (e.g., Companies)
* Validate their unique identifier. This can be:
* The `id` (Twenty's UUID)
* A field set as unique (e.g., `domain` for Companies, or an external ID from your previous system)
* Importați sau creați mai întâi înregistrările de pe partea „unu” (de ex., Companii)
* Validați identificatorul lor unic. Acesta poate fi:
* `id` (UUID-ul Twenty)
* Un câmp setat ca unic (de ex., `domain` pentru Companii sau un ID extern din sistemul dvs. anterior)
<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
<Warning>Importul va eșua dacă se face referire la o înregistrare care nu există.</Warning>
### Step 3: Prepare Your CSV File
### Pasul 3: Pregătiți fișierul CSV
Add a column in your "many" side CSV file that references the "one" side record.
Adăugați o coloană în fișierul CSV pentru partea „mulți” care face referire la înregistrarea de pe partea „unu”.
**Example**: For a People CSV file linking to Companies:
**Exemplu**: Pentru un fișier CSV cu Persoane care se leagă de Companii:
```
firstName,lastName,email,companyDomain
@@ -98,51 +98,51 @@ Jane,Doe,jane@widgets.co,https://widgets.co
**Important**:
* The value must **exactly match** the unique field on the Company record
* For domains, use the **Domain URL** (e.g., `https://acme.com`), not the Domain Label
* Map only **one** unique identifier per relation: this leads to a smoother import
* Valoarea trebuie să se potrivească **exact** cu câmpul unic din înregistrarea Companiei
* Pentru domenii, folosiți **URL-ul domeniului** (de ex., `https://acme.com`), nu eticheta domeniului
* Mapați doar **un** identificator unic per relație: acest lucru duce la un import mai lin
### Step 4: Ensure the Relation Field Exists
### Pasul 4: Verificați existența câmpului de relație
Before uploading your file, make sure the relation field exists between your objects.
Înainte de a încărca fișierul, asigurați-vă că există câmpul de relație între obiectele dvs.
If it doesn't exist:
Dacă nu există:
1. Go to **Settings → Data Model**
2. Select your object (e.g., People)
3. Create a relation field pointing to the target object (e.g., Company)
1. Accesați **Setări → Model de date**
2. Selectați obiectul (de ex., Persoane)
3. Creați un câmp de relație care indică spre obiectul țintă (de ex., Companie)
### Step 5: Upload and Map the Relation
### Pasul 5: Încărcați și mapați relația
1. Upload your CSV file via the import UI
2. In the field mapping step, find your relation column (e.g., `companyDomain`)
3. Map it to the relation field (e.g., Company)
4. Twenty will automatically link each record to the matching parent
1. Încărcați fișierul CSV prin interfața de import
2. În pasul de mapare a câmpurilor, găsiți coloana relației (de ex., `companyDomain`)
3. Mapați-o la câmpul de relație (de ex., Companie)
4. Twenty va lega automat fiecare înregistrare de părintele corespunzător
### Available Unique Fields for Relations
### Câmpuri unice disponibile pentru relații
| Obiect | Unique Fields Available |
| ------------------------------------- | --------------------------------------- |
| **Companii** | `id`, `domain`, any custom unique field |
| **People** | `id`, `email`, any custom unique field |
| **Membri ai spațiului de lucru** | `id`, `email` (not name) |
| **Other standard and custom objects** | `id`, any field marked as unique |
| Obiect | Câmpuri unice disponibile |
| ------------------------------------------ | -------------------------------------------- |
| **Companii** | `id`, `domain`, orice câmp unic personalizat |
| **Persoane** | `id`, `email`, orice câmp unic personalizat |
| **Membri ai spațiului de lucru** | `id`, `email` (nu numele) |
| **Alte obiecte standard și personalizate** | `id`, orice câmp marcat ca unic |
<Note>**Linking to Workspace Members**: When the relation points to Workspace Members (your team logging into Twenty), reference them by their **email address**, not their name.</Note>
<Note>**Conectarea la Membrii Workspace-ului**: Când relația indică către Membrii Workspace-ului (echipa dvs. care se autentifică în Twenty), referiți-vă la ei prin **adresa de email**, nu prin nume.</Note>
<Note>We recommend using `domain` for Companies and `email` for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>Recomandăm folosirea `domain` pentru Companii și `email` pentru Persoane, deoarece acestea sunt ușor de citit și ușor de întreținut în foi de calcul.</Note>
<Note>**Reminder**: Soft-deleted records (visible under Command Menu → See deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See [Uniqueness Constraints](/l/ro/user-guide/data-migration/capabilities/uniqueness-constraints) for more details.</Note>
<Note>**Reamintire**: Înregistrările șterse soft (vizibile în Command Menu → See deleted records) se iau în calcul pentru criteriile de unicitate. Dacă importați o înregistrare cu aceeași valoare unică ca o înregistrare ștearsă, înregistrarea ștearsă va fi restaurată. Consultați [Constrângeri de unicitate](/l/ro/user-guide/data-migration/capabilities/uniqueness-constraints) pentru mai multe detalii.</Note>
## Import Order Rule
## Regula ordinii de import
<Warning>
**Always import the "one" side first!**
**Importați întotdeauna mai întâi partea „unu”!**
1. **Companies** first (no dependencies)
2. **People** second (linked to Companies)
3. **Opportunities** third (linked to Companies/People)
4. **Custom objects** following their dependencies
1. **Companii** mai întâi (fără dependențe)
2. **Persoane** în al doilea rând (legate de Companii)
3. **Oportunități** în al treilea rând (legate de Companii/Persoane)
4. **Obiecte personalizate** respectând dependențele lor
The parent record must exist before you can reference it.
Înregistrarea părinte trebuie să existe înainte de a o putea referi.
</Warning>
@@ -1,71 +1,71 @@
---
title: Import Companies via CSV
description: Complete step-by-step guide to importing companies into Twenty.
title: Importați companii via CSV
description: Ghid complet, pas cu pas, pentru importul companiilor în Twenty.
---
## Prezentare generală
This guide walks you through importing your companies into Twenty. **Companies should be imported first** because People and Opportunities link to Companies.
Acest ghid vă arată cum să importați companiile în Twenty. **Companiile ar trebui importate mai întâi** deoarece Persoanele și Oportunitățile se leagă de Companii.
## Înainte de a începe
### Prerequisites Checklist
### Listă de verificare a condițiilor prealabile
<Check>
Your file is CSV, XLSX, or XLS format
Fișierul este în format CSV, XLSX sau XLS
</Check>
<Check>
File has fewer than 10,000 records
Fișierul are mai puțin de 10.000 de înregistrări
</Check>
<Check>
No duplicate domains in your file
Niciun domeniu duplicat în fișierul dvs.
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Toate câmpurile personalizate există în **Setări → Model de date**
</Check>
<Note>
Need to import more than 10,000 companies? Split into multiple files or use the [API import](/l/ro/user-guide/data-migration/how-tos/import-data-via-api).
Trebuie să importați mai mult de 10.000 de companii? Împărțiți în mai multe fișiere sau utilizați [importul prin API](/l/ro/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Step 1: Prepare Your Company Data
## Pasul 1: Pregătiți datele companiei
### Required and Recommended Fields
### Câmpuri obligatorii și recomandate
| Câmp | Required? | Format | Notițe |
| ----------------- | ----------- | -------------------- | ------------------------ |
| **Name** | Recommended | Text | Company display name |
| **Domain** | Recommended | `https://domain.com` | Unique identifier |
| **Address** | Optional | Multiple columns | See below |
| **Employees** | Optional | Număr | Employee count |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Câmp | Obligatoriu? | Format | Notițe |
| ------------------------- | ------------ | -------------------- | ------------------------------------ |
| **Name** | Recomandat | Text | Numele afișat al companiei |
| **Domeniu** | Recomandat | `https://domain.com` | Identificator unic |
| **Adresă** | Opțional | Mai multe coloane | Consultați mai jos |
| **Angajați** | Opțional | Număr | Număr de angajați |
| **Câmpuri personalizate** | Opțional | Variază | Trebuie să existe în Modelul de date |
### Domain Format
### Formatul domeniului
<Warning>
**Use the format `https://domain.com` for domains.**
**Folosiți formatul `https://domain.com` pentru domenii.**
This matches the format used when Companies are auto-created from email/calendar sync, preventing duplicates later.
Acesta corespunde formatului folosit când Companiile sunt create automat din sincronizarea emailului/calendarului, prevenind duplicatele ulterior.
</Warning>
**Domain columns:**
**Coloane pentru domeniu:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
* **Domeniu / Etichetă de domeniu**: `acme.com`
* **Domeniu / URL domeniu**: `https://acme.com`
### Address Format
### Formatul adresei
Address is a nested field with multiple columns:
Adresa este un câmp îmbricat cu mai multe coloane:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Sample CSV Structure
### Exemplu de structură CSV
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
@@ -74,112 +74,112 @@ Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Pro tip:** Click **Download sample file** during import to see the exact column names Twenty expects.
**Sfat profesional:** Faceți clic pe **Download sample file** în timpul importului pentru a vedea denumirile exacte ale coloanelor pe care le așteaptă Twenty.
</Note>
## Step 2: Access the Import Feature
## Pasul 2: Accesați funcția de import
**Option 1: From the Companies View**
**Opțiunea 1: Din vizualizarea Companii**
1. Navigate to **Companies** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Navigați la **Companii** în bara laterală stângă
2. Faceți clic pe pictograma **⋮** din dreapta sus
3. Selectați **Importă înregistrări**
**Option 2: Using Command Menu**
**Opțiunea 2: Folosind meniul de comenzi**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **Companies**
1. Apăsați `Cmd + K` (Mac) sau `Ctrl + K` (Windows)
2. Tastați "import"
3. Selectați **Importă înregistrări**
4. Alegeți **Companii**
## Step 3: Upload Your File
## Pasul 3: Încărcați fișierul
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. Faceți clic pe **Select file**
2. Alegeți fișierul CSV, XLSX sau XLS
3. Așteptați ca Twenty analizeze fișierul
## Step 4: Map Your Columns
## Pasul 4: Mapați coloanele
Twenty automatically tries to match your columns to fields. Review and adjust:
Twenty încearcă automat să potrivească coloanele cu câmpurile. Revizuiți și ajustați:
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. **Verificați mapările automate** — confirmați că sunt corecte
2. **Corectați mapările incorecte** — faceți clic pe lista derulantă pentru a selecta câmpul corect
3. **Omiteți coloanele** — selectați **Do not map** pentru coloanele pe care nu doriți să le importați
### Important Mapping Rules
### Reguli importante de mapare
* **Domain**: Map to **Domain / Domain URL** (not Domain Label)
* **Address**: Map each part to its specific column (City, State, etc.)
* **Select fields**: Values must match existing options (or you'll map them in the next step)
* **Domeniu**: Mapați la **Domain / Domain URL** (nu la Domain Label)
* **Adresă**: Mapați fiecare parte la coloana sa specifică (City, State etc.)
* **Câmpuri Select**: Valorile trebuie să corespundă opțiunilor existente (sau le veți mapa în pasul următor)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Step 5: Map Select Field Values
## Pasul 5: Mapați valorile câmpurilor Select
If you have Select or Multi-Select fields:
Dacă aveți câmpuri Select sau Multi-Select:
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 Company Import Errors
### Erori frecvente la importul companiilor
| Eroare | Cause | Solution |
| -------------------------- | ------------------------------- | ------------------------------------------ |
| **Duplicate domain** | Domain already exists in Twenty | Remove from file or update existing record |
| **Invalid domain format** | Wrong format | Use `https://domain.com` |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Eroare | Cau | Soluție |
| ----------------------------- | ------------------------------ | ------------------------------------------------------------ |
| **Domeniu duplicat** | Domeniul există deja în Twenty | Eliminați din fișier sau actualizați înregistrarea existentă |
| **Format de domeniu invalid** | Format greșit | Folosiți `https://domain.com` |
| **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
1. Revizuiți rezumatul importului
2. Faceți clic pe **Confirmă** pentru a importa
3. Așteptați finalizarea importului
4. Verificați consultând câteva înregistrări
## After Importing Companies
## După importarea companiilor
Now you can import records that link to Companies:
Acum puteți importa înregistrări care se leagă de Companii:
1. **[Import People](/l/ro/user-guide/data-migration/how-tos/import-contacts-via-csv)** — link them to Companies using the domain
2. **Import Opportunities** — link them to Companies
3. **Verify the import** — spot-check a few records to ensure data is correct
1. **[Importați Persoane](/l/ro/user-guide/data-migration/how-tos/import-contacts-via-csv)** — legați-le de Companii folosind domeniul
2. **Importați Oportunități** — legați-le de Companii
3. **Verificați importul** — verificați punctual câteva înregistrări pentru a vă asigura că datele sunt corecte
## Updating Existing Companies
## Actualizarea companiilor existente
To update companies instead of creating new ones:
Pentru a actualiza companiile în loc să creați unele noi:
1. Include the `domain` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing companies are updated; new ones are created
1. Includeți coloana `domain` sau `id` în fișierul dvs.
2. Twenty potrivește înregistrările după acest identificator unic
3. Companiile 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 Companies have the same domain?">
Domain is a unique identifier in Twenty. This prevents duplicate companies and ensures email sync correctly links emails to the right company.
<Accordion title="De ce nu pot două companii să aibă același domeniu?">
Domeniul este un identificator unic în Twenty. Acest lucru previne companiile duplicate și asigură că sincronizarea emailului leagă corect emailurile de compania potrivită.
</Accordion>
<Accordion title="What if I have companies without a domain?">
You can leave the domain empty. However, we recommend adding domains when possible for better data quality and automatic email linking.
<Accordion title="Ce fac dacă am companii fără domeniu?">
Puteți lăsa domeniul necompletat. Totuși, recomandăm să adăugați domenii atunci când este posibil, pentru o calitate mai bună a datelor și pentru legarea automată a emailurilor.
</Accordion>
<Accordion title="Can I import companies without any People linked?">
<Accordion title="Pot importa companii fără nicio Persoană asociată?">
Da! You can import companies first, then import People later and link them using the company domain.
</Accordion>
@@ -39,23 +39,23 @@ Creați vizualizări axate:
* **Sarcinile mele**: Filtrați după Responsabil = Eu
* **Săptămâna aceasta**: Filtrați după Data scadenței = Săptămâna aceasta
* **Overdue**: Filter by Due Date < Today, Status ≠ Done
* **Întârziate**: Filtrați după Data scadenței < Astăzi, Stare ≠ Finalizat
## Other Calendar Use Cases
## Alte cazuri de utilizare ale calendarului
| Obiect | Date Field | Purpose |
| ------------- | ---------- | ------------------------- |
| Oportunități | Close Date | Track expected closes |
| Custom Events | Event Date | Plan activities |
| Projects | Deadline | Monitor project timelines |
| Obiect | Câmp de dată | Scop |
| ------------------------ | ------------------ | ---------------------------------- |
| Oportunități | Data închiderii | Urmăriți închiderile preconizate |
| Evenimente personalizate | Data evenimentului | Planificați activități |
| Proiecte | Termen limită | Monitorizați termenele proiectului |
## Tips
## Sfaturi
* **Review weekly**: Start each week by checking your calendar view
* **Combine with table view**: Use calendar for overview, table for details
* **Set visibility**: Keep personal task calendars as Unlisted
* **Revizuiți săptămânal**: Începeți fiecare săptămână prin verificarea vizualizării calendarului
* **Combinați cu vizualizarea de tabel**: Folosiți calendarul pentru vedere de ansamblu, tabelul pentru detalii
* **Setați vizibilitatea**: Păstrați calendarele de sarcini personale ca Nelistat
## Related
## Conexe
* [Calendar View](/l/ro/user-guide/views-pipelines/capabilities/calendar-view) — all calendar features
* [Filters and Sorting](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — filter your calendar
* [Vizualizare Calendar](/l/ro/user-guide/views-pipelines/capabilities/calendar-view) — toate funcționalitățile calendarului
* [Filtre și sortare](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtrați calendarul
@@ -1,31 +1,31 @@
---
title: Bring Product Data into Twenty
description: Sync product catalog data from a data warehouse into your CRM on a schedule.
title: Importați datele despre produse în Twenty
description: Sincronizați datele catalogului de produse dintr-un depozit de date în CRM-ul dvs., conform unui program.
---
Use this pattern to keep Twenty in sync with product data from your data warehouse (e.g., Snowflake, BigQuery, PostgreSQL).
Folosiți acest model pentru a menține Twenty sincronizat cu datele despre produse din depozitul dvs. de date (de ex., Snowflake, BigQuery, PostgreSQL).
## Workflow Structure
## Structura fluxului de lucru
1. **Trigger**: On a Schedule
2. **Code**: Query your data warehouse
3. **Code** (optional): Format data as array
4. **Iterator**: Loop through each product
5. **Upsert Record**: Create or update in Twenty
1. **Declanșator**: Conform unui program
2. **Code**: Interogați depozitul de date
3. **Code** (opțional): Formatați datele ca tablou
4. **Iterator**: Parcurgeți fiecare produs
5. **Upsert Record**: Creați sau actualizați în Twenty
<img src="/images/user-guide/workflows/create_users_workflow.png" style={{width:'100%'}} />
## Step 1: Schedule the Trigger
## Pasul 1: Programați declanșatorul
Set the workflow to run at a frequency matching your data freshness needs:
Configurați fluxul de lucru să ruleze la o frecvență care corespunde nevoilor dvs. privind actualitatea datelor:
* Every 5 minutes for near real-time sync
* Every hour for less critical data
* Daily for batch updates
* La fiecare 5 minute pentru sincronizare aproape în timp real
* La fiecare oră pentru date mai puțin critice
* Zilnic pentru actualizări în lot
## Step 2: Query Your Data Warehouse
## Pasul 2: Interogați depozitul dvs. de date
Add a **Code** action to fetch recent data:
Adăugați o acțiune **Code** pentru a prelua datele recente:
```javascript
export const main = async () => {
@@ -54,14 +54,14 @@ export const main = async () => {
```
<Tip>
Filter by `updated_at >= last X minutes` to retrieve only recently changed records. This keeps the sync efficient.
Filtrați după `updated_at >= last X minutes` pentru a prelua doar înregistrările modificate recent. Acest lucru menține sincronizarea eficientă.
</Tip>
## Step 3: Format Data (Optional)
## Pasul 3: Formatați datele (opțional)
If your warehouse returns data in a format that needs transformation, add another **Code** action. Common transformations include type conversions, field renaming, and data cleanup.
Dacă depozitul dvs. de date returnează date într-un format care necesită transformare, adăugați o altă acțiune **Code**. Transformările uzuale includ conversii de tip, redenumirea câmpurilor și curățarea datelor.
### Example: User Data with Boolean and Status Fields
### Exemplu: Date despre utilizatori cu câmpuri booleene și de stare
```javascript
export const main = async (params: {
@@ -86,7 +86,7 @@ export const main = async (params: {
};
```
### Example: Product Data with Type Conversions
### Exemplu: Date de produs cu conversii de tip
```javascript
export const main = async (params: { products: any }) => {
@@ -107,7 +107,7 @@ export const main = async (params: { products: any }) => {
};
```
### Example: Date and Currency Formatting
### Exemplu: Formatarea datelor calendaristice și a valorilor monetare
```javascript
export const main = async (params: { deals: any }) => {
@@ -131,52 +131,52 @@ export const main = async (params: { deals: any }) => {
};
```
### Common Transformations
### Transformări uzuale
| Source Format | Target Format | Cod |
| Format sursă | Format țintă | Cod |
| -------------------- | ---------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | ISO date | `new Date(v * 1000).toISOString()` |
| `1704067200` (Unix) | Dată ISO | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
## Step 4: Iterate Through Products
## Pasul 4: Parcurgeți produsele
Add an **Iterator** action:
Adăugați o acțiune **Iterator**:
* Input: `{{code.products}}`
* Intrare: `{{code.products}}`
This loops through each product in the array.
Aceasta parcurge fiecare produs din array.
## Step 5: Upsert Each Record
## Pasul 5: Efectuați upsert pentru fiecare înregistrare
Inside the iterator, add an **Upsert Record** action:
În interiorul iteratorului, adăugați o acțiune **Upsert Record**:
| Setting | Valoare |
| ------------ | -------------------------------------- |
| **Object** | Your custom Product object |
| **Match by** | External ID or SKU (unique identifier) |
| **Name** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Price** | `{{iterator.item.price}}` |
| Setare | Valoare |
| ------------------ | -------------------------------------- |
| **Obiect** | Obiectul dvs. Product personalizat |
| **Potrivire după** | ID extern sau SKU (identificator unic) |
| **Nume** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Preț** | `{{iterator.item.price}}` |
<Tip>
Use **Upsert** (update or create) instead of building separate branches for create vs. update. It's faster to build and easier to debug.
Utilizați **Upsert** (actualizare sau creare) în loc să construiți ramuri separate pentru creare vs. actualizare. Se construiește mai rapid și este mai ușor de depanat.
</Tip>
## Example Use Cases
## Exemple de cazuri de utilizare
| Sursa | Date |
| ----------------------- | ----------------------------------- |
| **ERP system** | Product catalog, pricing, inventory |
| **E-commerce platform** | Orders, customers, product updates |
| **Data warehouse** | Aggregated metrics, enriched data |
| **Inventory system** | Stock levels, reorder alerts |
| Sursa | Date |
| --------------------------- | ------------------------------------------- |
| **Sistem ERP** | Catalog de produse, prețuri, stocuri |
| **Platformă de e-commerce** | Comenzi, clienți, actualizări de produse |
| **Depozit de date** | Metrici agregate, date îmbogățite |
| **Sistem de inventar** | Niveluri de stoc, alerte de reaprovizionare |
## Related
## Conexe
* [Workflow Triggers](/l/ro/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ro/user-guide/workflows/capabilities/workflow-actions)
* [Handle Arrays in Code Actions](/l/ro/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-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)
* [Gestionați array-urile în acțiunile Code](/l/ro/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,6 +1,6 @@
---
title: Fluxuri de lucru
description: Learn how to build automations in Twenty.
description: Aflați cum să creați automatizări în Twenty.
image: /images/user-guide/workflows/workflow.png
---
@@ -21,50 +21,50 @@ Recomandăm construirea automatizărilor pentru două scopuri principale:
1. **Automatizări interne pentru a facilita activitatea zilnică a echipei dvs.**: Reduceți numărul de intrări manuale și sarcini repetitive care încetinesc echipa dvs.
2. **Aduceți date în și în afara Twenty**: Conectați Twenty prin apeluri API și webhooks la baza dvs. de date și alte instrumente.
## Building Your First Workflow
## Crearea primului dvs. flux de lucru
### Step 1: Create a New Workflow
### Pasul 1: Creați un flux de lucru nou
1. Go to **Workflows** accessible below the other objects
2. Click **+ New Record**
3. Give your workflow a name
1. Accesați **Workflows**, accesibil sub celelalte obiecte
2. Faceți clic pe **+ Înregistrare nouă**
3. Dați un nume fluxului de lucru
### Step 2: Add a Trigger
### Pasul 2: Adăugați un declanșator
Every workflow starts with a trigger. Choose from:
Fiecare flux de lucru începe cu un declanșator. Alegeți dintre:
* **Record events**: When a record is created, updated, or deleted
* **Schedule**: Run at specific times (daily, weekly, etc.)
* **Manual**: Triggered by a user action
* **Webhook**: Triggered by a webhook
* **Evenimente ale înregistrărilor**: Când o înregistrare este creată, actualizată sau ștearsă
* **Programare**: Rulează la momente specifice (zilnic, săptămânal etc.)
* **Manual**: Declanșat de o acțiune a utilizatorului
* **Webhook**: Declanșat de un webhook
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
### Step 3: Add Actions
### Pasul 3: Adăugați acțiuni
After your trigger, add one or more actions:
După declanșator, adăugați una sau mai multe acțiuni:
* **Create Record**: Add new records to any object
* **Update Record**: Modify existing record data
* **Delete Record**: Remove records from objects
* **Search Records**: Find records matching criteria
* **Upsert Record**: Create or update based on matching criteria
* **Iterator**: Loop through arrays of records
* **Filter**: Control which records proceed
* **Delay**: Wait before continuing (duration or scheduled date)
* **Send Email**: Send emails via your connected account
* **Code**: Run custom JavaScript
* **HTTP Request**: Call external APIs
* **Form**: Get inputs from users within Twenty UI at the time of execution
* **AI Agent** (Coming soon): Run intelligent AI tasks
* **Creare înregistrare**: Adăugați înregistrări noi în orice obiect
* **Actualizare înregistrare**: Modificați datele înregistrării existente
* **Ștergere înregistrare**: Eliminați înregistrări din obiecte
* **Căutare înregistrări**: Găsiți înregistrări care corespund criteriilor
* **Upsert înregistrare**: Creați sau actualizați pe baza criteriilor de potrivire
* **Iterator**: Parcurgeți tablouri de înregistrări
* **Filtru**: Controlați care înregistrări continuă
* **Întârziere**: Așteptați înainte de a continua (durată sau dată programată)
* **Trimitere e-mail**: Trimiteți e-mailuri prin contul conectat
* **Cod**: Rulați JavaScript personalizat
* **Solicitare HTTP**: Apelați API-uri externe
* **Formular**: Obțineți date de intrare de la utilizatori în interfața Twenty în momentul execuției
* **Agent AI** (În curând): Rulați sarcini AI inteligente
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Step 4: Test and Activate
### Pasul 4: Testați și activați
1. Use the **Test** button to run your workflow with sample data
2. Review the results to ensure it works as expected
3. Toggle the workflow **Active** when ready
1. Utilizați butonul **Test** pentru a rula fluxul de lucru cu date de probă
2. Examinați rezultatele pentru a vă asigura că funcționează conform așteptărilor
3. Comutați fluxul de lucru pe **Activ** când este gata
## Cele mai bune practici ale fluxurilor de lucru
@@ -75,6 +75,6 @@ After your trigger, add one or more actions:
## Pașii următori
* [Workflow Triggers](/l/ro/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ro/user-guide/workflows/capabilities/workflow-actions)
* [CRM Automations](/l/ro/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
* [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)
* [Automatizări CRM](/l/ro/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,74 +1,74 @@
---
title: Панели управления
description: Create and organize dashboards with tabs to visualize your CRM data.
description: Создавайте и организуйте панели мониторинга с вкладками, чтобы визуализировать данные вашей CRM.
---
## Обзор
Dashboards in Twenty are organized in a hierarchy: **Dashboards → Tabs → Widgets**. Each dashboard can contain multiple tabs, and each tab contains widgets (charts, numbers, iFrames).
Панели мониторинга в Twenty организованы иерархически: **Панели мониторинга → Вкладки → Виджеты**. Каждая панель мониторинга может содержать несколько вкладок, и каждая вкладка включает виджеты (диаграммы, числа, iFrames).
## Creating a Dashboard
## Создание панели мониторинга
1. Go to **Dashboards** in the navigation
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Start adding tabs and widgets
1. Перейдите в раздел **Панели мониторинга** в меню навигации
2. Нажмите **+ Новая панель мониторинга**
3. Назовите панель мониторинга
4. Начните добавлять вкладки и виджеты
## Working with Tabs
## Работа со вкладками
Tabs help you organize your dashboard into logical sections.
Вкладки помогают организовать панель мониторинга на логические разделы.
### Creating Tabs
### Создание вкладок
1. In edit mode, click **+ Add Tab**
2. Name your tab (e.g., "Pipeline Overview", "Team Performance")
3. Add widgets to the tab
1. В режиме редактирования нажмите **+ Добавить вкладку**
2. Назовите вкладку (например, "Обзор воронки", "Результативность команды")
3. Добавьте виджеты на вкладку
### Duplicating Tabs
### Дублирование вкладок
1. Click on the tab you want to duplicate
2. Click the **Duplicate** button in the side panel
1. Нажмите на вкладку, которую хотите дублировать
2. Нажмите кнопку **Дублировать** на боковой панели
## Dashboard Layout
## Макет панели мониторинга
### Arranging Widgets
### Расположение виджетов
* Drag and drop to position
* Resize for emphasis
* Group related charts together
* Перетаскивайте, чтобы расположить
* Изменяйте размер, чтобы выделить
* Группируйте связанные диаграммы вместе
### Duplicating a Dashboard
### Дублирование панели мониторинга
1. Exit edit mode (view mode only)
2. Open the command bar with **Cmd + K** (or **Ctrl + K** on Windows)
3. Select **Duplicate dashboard**
1. Выйдите из режима редактирования (только режим просмотра)
2. Откройте командную палитру с помощью **Cmd + K** (или **Ctrl + K** в Windows)
3. Выберите **Дублировать панель мониторинга**
### Лучшие практики
* **Logical flow**: Arrange from overview to detail
* **Visual hierarchy**: Larger charts for key metrics
* **Consistent styling**: Use matching colors and fonts
* **Логическая последовательность**: располагайте от общего к частному
* **Визуальная иерархия**: используйте более крупные диаграммы для ключевых метрик
* **Единый стиль**: используйте согласованные цвета и шрифты
## Visibility & Access
## Видимость и доступ
### Dashboard Visibility
### Видимость панели мониторинга
Dashboards are visible to everyone who has access to your Twenty workspace. There is no private dashboard option at the moment.
Панели мониторинга видны всем, у кого есть доступ к вашему рабочему пространству Twenty. В настоящее время опции приватной панели мониторинга нет.
### Избранное
You can add dashboards to your favorites for quick access. This is a personal setting—your favorites are not visible to other users.
Вы можете добавлять панели мониторинга в избранное для быстрого доступа. Это персональная настройка — ваше избранное не видно другим пользователям.
To add a dashboard to favorites, open the dashboard and click the star icon.
Чтобы добавить панель мониторинга в избранное, откройте панель мониторинга и нажмите значок звезды.
### Timezone Behavior
### Работа с часовыми поясами
Dashboards currently display data based on the timezone of the user viewing them. This means the same dashboard may show different metrics for team members in different regions (e.g., APAC vs. US).
Панели мониторинга сейчас отображают данные в соответствии с часовым поясом пользователя, который их просматривает. Это означает, что одна и та же панель мониторинга может отображать разные метрики для участников команды в разных регионах (например, APAC и США).
<Note>
**Coming soon**: We will add the ability to set a specific timezone for a dashboard, so all users see consistent data regardless of their location.
**Скоро**: мы добавим возможность задавать конкретный часовой пояс для панели мониторинга, чтобы все пользователи видели согласованные данные независимо от их местоположения.
</Note>
<Note>
**Coming soon**: Dashboard-level filters will allow you to apply filters across all widgets at once, making it faster to explore your data.
**Скоро**: фильтры на уровне панели мониторинга позволят применять фильтры ко всем виджетам сразу, что ускорит изучение ваших данных.
</Note>
@@ -1,94 +1,94 @@
---
title: Import Relations Between Objects
description: Import relationships between records via CSV.
title: Импорт связей между объектами
description: Импорт связей между записями с помощью CSV.
---
## Обзор
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
Twenty поддерживает импорт связей между объектами при импорте CSV. Это позволяет связывать записи (например, прикреплять Людей к Компаниям) в рамках миграции данных.
<Note>**Currently supported for import**: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
<Note>**В настоящее время поддерживается для импорта**: связи «один-ко-многим», указывающие на один тип объекта с каждой стороны (например, Люди → Компании). Связи, указывающие на несколько типов объектов, пока не поддерживаются для импорта/экспорта.</Note>
## How Relations Work in Twenty
## Как работают связи в Twenty
### One to Many / Many to One
### Один-ко-многим / Многие-к-одному
Twenty supports standard relations where one record links to many others:
Twenty поддерживает стандартные связи, когда одна запись связана со многими другими:
* **One Company → Many People**: A company can have multiple employees, but each person belongs to one company
* **One Company → Many Opportunities**: A company can have multiple deals, but each opportunity belongs to one company
* **Одна Компания → Многие Люди**: у компании может быть несколько сотрудников, но каждый человек принадлежит одной компании
* **Одна Компания → Многие Сделки**: у компании может быть несколько сделок, но каждая сделка принадлежит одной компании
### Relations That Can Point to Multiple Object Types
### Связи, которые могут указывать на несколько типов объектов
Some relations can connect to different types of objects. This works in two ways:
Некоторые связи могут связывать разные типы объектов. Это работает двумя способами:
**Pattern 1: Many records linking to one record each from different object types**
**Паттерн 1: Многие записи, каждая из которых связана с одной записью каждого типа объекта**
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
Несколько Заметок, Задач или Активностей могут одновременно быть привязаны к нескольким типам объектов:
* **Notes** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Tasks** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Заметки** могут одновременно быть связаны с одним Человеком, одной Компанией и одной Сделкой
* **Задачи** могут одновременно быть связаны с одним Человеком, одной Компанией и одной Сделкой
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
Здесь Заметки/Задачи находятся на стороне «многие». Каждая из них связывается с одной записью каждого типа объекта.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Pattern 2: One record receiving links from many records of different object types**
**Паттерн 2: Одна запись, получающая связи от многих записей разных типов объектов**
A Project can receive links from multiple records across different object types:
Проект может получать связи от множества записей разных типов объектов:
* **A Project** can have many People linked to it, many Companies linked to it, and many Notes attached to it
* **Проект** может иметь много связанных с ним Людей, много связанных Компаний и много прикреплённых к нему Заметок
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
Здесь Проект находится на стороне «один». Несколько записей из разных объектов могут ссылаться на один и тот же Проект.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.
**Ограничение импорта/экспорта**: связи, указывающие на несколько типов объектов (например, Заметки → Люди/Компании/Сделки), **пока не поддерживаются** при импорте или экспорте CSV.
* **Import**: Only one-to-many relations pointing to a single object type on each side can be imported
* **Export**: Columns for relations pointing to multiple object types are currently left empty
* **Импорт**: можно импортировать только связи «один-ко-многим», указывающие на один тип объекта с каждой стороны
* **Экспорт**: столбцы для связей, указывающих на несколько типов объектов, на данный момент остаются пустыми
This is on our roadmap.
Это запланировано в нашей дорожной карте.
</Warning>
### What's Not Supported Today
### Что пока не поддерживается
**Many to Many relations** are not yet available. For example, you cannot currently create a relation where:
**Связи «многие-ко-многим»** пока недоступны. Например, сейчас вы не можете создать связь, где:
* Many People are linked to many Projects
* Многие Люди связаны со многими Проектами
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>Связи «многие-ко-многим» запланированы на 1 полугодие 2026 года.</Note>
## Linking Records During Import
## Связывание записей при импорте
<Note>**Reminder**: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
<Note>**Напоминание**: можно импортировать только связи «один-ко-многим», указывающие на один тип объекта (например, Люди → Компании). Связи, указывающие на несколько типов объектов (например, Заметки → Люди/Компании/Сделки), пока не поддерживаются.</Note>
### Step 1: Identify the "One" and "Many" Sides
### Шаг 1: Определите стороны «один» и «многие»
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
Сначала определите, какой объект находится на стороне «один», а какой — на стороне «многие» в этой связи.
**Пример**:
* **Company** is the "one" side (one company has many employees)
* **People** is the "many" side (each person belongs to one company)
* **Компания** — это сторона «один» (у одной компании много сотрудников)
* **Люди** — это сторона «многие» (каждый человек принадлежит одной компании)
### Step 2: Ensure the "One" Side Records Exist
### Шаг 2: Убедитесь, что записи стороны «один» существуют
Before importing the "many" side, the "one" side records must already exist in Twenty.
Прежде чем импортировать сторону «многие», записи стороны «один» уже должны существовать в Twenty.
* Import or create the "one" side records first (e.g., Companies)
* Validate their unique identifier. This can be:
* The `id` (Twenty's UUID)
* A field set as unique (e.g., `domain` for Companies, or an external ID from your previous system)
* Сначала импортируйте или создайте записи стороны «один» (например, Компании)
* Проверьте их уникальный идентификатор. Это может быть:
* `id` (UUID в Twenty)
* Поле, помеченное как уникальное (например, `domain` для Компаний или внешний идентификатор из вашей предыдущей системы)
<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
<Warning>Импорт завершится с ошибкой, если ссылка указывает на несуществующую запись.</Warning>
### Step 3: Prepare Your CSV File
### Шаг 3: Подготовьте файл CSV
Add a column in your "many" side CSV file that references the "one" side record.
Добавьте столбец в CSV-файл для стороны «многие», который ссылается на запись стороны «один».
**Example**: For a People CSV file linking to Companies:
**Пример**: для CSV-файла Людей, связывающего с Компаниями:
```
firstName,lastName,email,companyDomain
@@ -96,53 +96,53 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important**:
**Важно**:
* The value must **exactly match** the unique field on the Company record
* For domains, use the **Domain URL** (e.g., `https://acme.com`), not the Domain Label
* Map only **one** unique identifier per relation: this leads to a smoother import
* Значение должно **в точности совпадать** с уникальным полем в записи Компании
* Для доменов используйте **URL домена** (например, `https://acme.com`), а не метку домена
* Сопоставляйте только **один** уникальный идентификатор на связь: так импорт пройдёт более гладко
### Step 4: Ensure the Relation Field Exists
### Шаг 4: Убедитесь, что поле связи существует
Before uploading your file, make sure the relation field exists between your objects.
Перед загрузкой файла убедитесь, что между вашими объектами существует поле связи.
If it doesn't exist:
Если его нет:
1. Go to **Settings → Data Model**
2. Select your object (e.g., People)
3. Create a relation field pointing to the target object (e.g., Company)
1. Перейдите в **Настройки → Модель данных**
2. Выберите ваш объект (например, Люди)
3. Создайте поле связи, указывающее на целевой объект (например, Компания)
### Step 5: Upload and Map the Relation
### Шаг 5: Загрузите и сопоставьте связь
1. Upload your CSV file via the import UI
2. In the field mapping step, find your relation column (e.g., `companyDomain`)
3. Map it to the relation field (e.g., Company)
4. Twenty will automatically link each record to the matching parent
1. Загрузите ваш CSV-файл через интерфейс импорта
2. На шаге сопоставления полей найдите столбец связи (например, `companyDomain`)
3. Сопоставьте его с полем связи (например, Компания)
4. Twenty автоматически свяжет каждую запись с соответствующим родителем
### Available Unique Fields for Relations
### Доступные уникальные поля для связей
| Объект | Unique Fields Available |
| ------------------------------------- | --------------------------------------- |
| **Компании** | `id`, `domain`, any custom unique field |
| **People** | `id`, `email`, any custom unique field |
| **Участники рабочего пространства** | `id`, `email` (not name) |
| **Other standard and custom objects** | `id`, any field marked as unique |
| Объект | Доступные уникальные поля |
| ------------------------------------------------- | ------------------------------------------------------ |
| **Компании** | `id`, `domain`, любое пользовательское уникальное поле |
| **Люди** | `id`, `email`, любое пользовательское уникальное поле |
| **Участники рабочего пространства** | `id`, `email` (не имя) |
| **Прочие стандартные и пользовательские объекты** | `id`, любое поле, помеченное как уникальное |
<Note>**Linking to Workspace Members**: When the relation points to Workspace Members (your team logging into Twenty), reference them by their **email address**, not their name.</Note>
<Note>**Связь с участниками рабочего пространства**: когда связь указывает на Участников рабочего пространства (ваша команда, входящая в Twenty), указывайте их по **адресу электронной почты**, а не по имени.</Note>
<Note>We recommend using `domain` for Companies and `email` for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>Мы рекомендуем использовать `domain` для Компаний и `email` для Людей, так как эти значения человекочитаемы и их легко поддерживать в таблицах.</Note>
<Note>**Reminder**: Soft-deleted records (visible under Command Menu → See deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See [Uniqueness Constraints](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints) for more details.</Note>
<Note>**Напоминание**: Мягко удалённые записи (видны в Командном меню → Показать удалённые записи) учитываются при проверке уникальности. Если вы импортируете запись с тем же уникальным значением, что и у удалённой записи, удалённая запись будет восстановлена. См. [Ограничения уникальности](/l/ru/user-guide/data-migration/capabilities/uniqueness-constraints) для подробностей.</Note>
## Import Order Rule
## Правило порядка импорта
<Warning>
**Always import the "one" side first!**
**Всегда сначала импортируйте сторону «один»!**
1. **Companies** first (no dependencies)
2. **People** second (linked to Companies)
3. **Opportunities** third (linked to Companies/People)
4. **Custom objects** following their dependencies
1. **Компании** в первую очередь (без зависимостей)
2. **Люди** во вторую очередь (связаны с Компаниями)
3. **Сделки** в третью очередь (связаны с Компаниями/Людьми)
4. **Пользовательские объекты** с учётом их зависимостей
The parent record must exist before you can reference it.
Родительская запись должна существовать до того, как вы сможете на неё сослаться.
</Warning>
@@ -1,71 +1,71 @@
---
title: Import Companies via CSV
description: Complete step-by-step guide to importing companies into Twenty.
title: Импорт компаний через CSV
description: Полное пошаговое руководство по импорту компаний в Twenty.
---
## Обзор
This guide walks you through importing your companies into Twenty. **Companies should be imported first** because People and Opportunities link to Companies.
Это руководство проведет вас через процесс импорта ваших компаний в Twenty. **Компании следует импортировать в первую очередь**, поскольку Люди и Сделки связываются с Компаниями.
## Перед началом
### Prerequisites Checklist
### Контрольный список предварительных требований
<Check>
Your file is CSV, XLSX, or XLS format
Ваш файл в формате CSV, XLSX или XLS
</Check>
<Check>
File has fewer than 10,000 records
В файле менее 10 000 записей
</Check>
<Check>
No duplicate domains in your file
В вашем файле нет повторяющихся доменов
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Все пользовательские поля созданы в **Настройки → Модель данных**
</Check>
<Note>
Need to import more than 10,000 companies? Split into multiple files or use the [API import](/l/ru/user-guide/data-migration/how-tos/import-data-via-api).
Нужно импортировать более 10 000 компаний? Разбейте на несколько файлов или используйте [импорт через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api).
</Note>
## Step 1: Prepare Your Company Data
## Шаг 1: Подготовьте данные о компаниях
### Required and Recommended Fields
### Обязательные и рекомендуемые поля
| Поле | Required? | Формат | Заметки |
| ----------------- | ----------- | -------------------- | ------------------------ |
| **Name** | Recommended | Текст | Company display name |
| **Domain** | Recommended | `https://domain.com` | Unique identifier |
| **Address** | Optional | Multiple columns | See below |
| **Employees** | Optional | Число | Employee count |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Поле | Обязательно? | Формат | Заметки |
| ------------------------- | ------------- | -------------------- | ----------------------------------- |
| **Название** | Рекомендуется | Текст | Отображаемое название компании |
| **Домен** | Рекомендуется | `https://domain.com` | Уникальный идентификатор |
| **Адрес** | Необязательно | Несколько столбцов | См. ниже |
| **Сотрудники** | Необязательно | Число | Количество сотрудников |
| **Пользовательские поля** | Необязательно | Различается | Должны существовать в модели данных |
### Domain Format
### Формат домена
<Warning>
**Use the format `https://domain.com` for domains.**
**Используйте формат `https://domain.com` для доменов.**
This matches the format used when Companies are auto-created from email/calendar sync, preventing duplicates later.
Это соответствует формату, используемому, когда Компании автоматически создаются при синхронизации почты/календаря, что предотвращает появление дубликатов в дальнейшем.
</Warning>
**Domain columns:**
**Столбцы домена:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Address Format
### Формат адреса
Address is a nested field with multiple columns:
Адрес — это вложенное поле с несколькими столбцами:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Sample CSV Structure
### Пример структуры CSV
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
@@ -74,109 +74,109 @@ Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Pro tip:** Click **Download sample file** during import to see the exact column names Twenty expects.
**Совет профессионала:** Нажмите **Download sample file** во время импорта, чтобы увидеть точные названия столбцов, которые ожидает Twenty.
</Note>
## Step 2: Access the Import Feature
## Шаг 2: Откройте функцию импорта
**Option 1: From the Companies View**
**Вариант 1: Из представления Компании**
1. Navigate to **Companies** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Перейдите к разделу **Компании** в левой боковой панели
2. Нажмите значок **⋮** в правом верхнем углу
3. Выберите **Импорт записей**
**Option 2: Using Command Menu**
**Вариант 2: Через командное меню**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **Companies**
1. Нажмите `Cmd + K` (Mac) или `Ctrl + K` (Windows)
2. Введите "import"
3. Выберите **Импорт записей**
4. Выберите **Компании**
## Step 3: Upload Your File
## Шаг 3: Загрузите свой файл
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. Нажмите **Выбрать файл**
2. Выберите свой файл CSV, XLSX или XLS
3. Подождите, пока Twenty проанализирует ваш файл
## Step 4: Map Your Columns
## Шаг 4: Сопоставьте ваши столбцы
Twenty automatically tries to match your columns to fields. Review and adjust:
Twenty автоматически пытается сопоставить ваши столбцы с полями. Проверьте и при необходимости скорректируйте:
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. **Проверьте автоматические сопоставления** — убедитесь, что они верны
2. **Исправьте неверные сопоставления** — нажмите на раскрывающийся список, чтобы выбрать нужное поле
3. **Пропустите столбцы** — выберите **Do not map** для столбцов, которые вы не хотите импортировать
### Important Mapping Rules
### Важные правила сопоставления
* **Domain**: Map to **Domain / Domain URL** (not Domain Label)
* **Address**: Map each part to its specific column (City, State, etc.)
* **Select fields**: Values must match existing options (or you'll map them in the next step)
* **Домен**: сопоставьте с **Domain / Domain URL** (не с Domain Label)
* **Адрес**: сопоставьте каждую часть с соответствующим столбцом (City, State и т. д.)
* **Поля Select**: значения должны соответствовать существующим вариантам (или вы сопоставите их на следующем шаге)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Step 5: Map Select Field Values
## Шаг 5: Сопоставление значений полей Select
If you have Select or Multi-Select fields:
Если у вас есть поля Select или Multi-Select:
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 Company Import Errors
### Распространенные ошибки импорта компаний
| Ошибка | Cause | Solution |
| -------------------------- | ------------------------------- | ------------------------------------------ |
| **Duplicate domain** | Domain already exists in Twenty | Remove from file or update existing record |
| **Invalid domain format** | Wrong format | Use `https://domain.com` |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Ошибка | Причина | Решение |
| --------------------------------- | ----------------------------- | ------------------------------------------------- |
| **Дублирующийся домен** | Домен уже существует в Twenty | Удалите из файла или обновите существующую запись |
| **Недопустимый формат домена** | Неверный формат | Используйте `https://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
1. Просмотрите сводку импорта
2. Нажмите **Подтвердить**, чтобы импортировать
3. Дождитесь завершения импорта
4. Проверьте, просмотрев несколько записей
## After Importing Companies
## После импорта компаний
Now you can import records that link to Companies:
Теперь вы можете импортировать записи, которые привязываются к Компаниям:
1. **[Import People](/l/ru/user-guide/data-migration/how-tos/import-contacts-via-csv)** — link them to Companies using the domain
2. **Import Opportunities** — link them to Companies
3. **Verify the import** — spot-check a few records to ensure data is correct
1. **[Импортируйте Людей](/l/ru/user-guide/data-migration/how-tos/import-contacts-via-csv)** — привяжите их к Компаниям с помощью домена
2. **Импортируйте Сделки** — свяжите их с Компаниями
3. **Проверьте импорт** — выборочно просмотрите несколько записей, чтобы убедиться в корректности данных
## Updating Existing Companies
## Обновление существующих компаний
To update companies instead of creating new ones:
Чтобы обновлять компании вместо создания новых:
1. Include the `domain` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing companies are updated; new ones are created
1. Добавьте в файл столбец `domain` или `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 Companies have the same domain?">
Domain is a unique identifier in Twenty. This prevents duplicate companies and ensures email sync correctly links emails to the right company.
<Accordion title="Почему две компании не могут иметь одинаковый домен?">
Домен — уникальный идентификатор в Twenty. Это предотвращает дубли компаний и обеспечивает корректную привязку писем к нужной компании при синхронизации электронной почты.
</Accordion>
<Accordion title="What if I have companies without a domain?">
You can leave the domain empty. However, we recommend adding domains when possible for better data quality and automatic email linking.
<Accordion title="Что делать, если у некоторых компаний нет домена?">
Вы можете оставить домен пустым. Однако мы рекомендуем по возможности добавлять домены для улучшения качества данных и автоматической привязки писем.
</Accordion>
<Accordion title="Can I import companies without any People linked?">
@@ -38,24 +38,24 @@ description: Отображайте задачи и сроки в календа
Создавайте целевые представления:
* **Мои задачи**: Фильтр по ответственному = Я
* **This Week**: Filter by Due Date = This week
* **Overdue**: Filter by Due Date < Today, Status ≠ Done
* **Эта неделя**: Фильтр по дате выполнения = Эта неделя
* **Просроченные**: Фильтр по дате выполнения < Сегодня, статус ≠ Выполнено
## Other Calendar Use Cases
## Другие сценарии использования календаря
| Объект | Date Field | Purpose |
| ------------- | ---------- | ------------------------- |
| Возможности | Close Date | Track expected closes |
| Custom Events | Event Date | Plan activities |
| Projects | Deadline | Monitor project timelines |
| Объект | Поле даты | Назначение |
| ------------------------ | ------------- | ------------------------------ |
| Возможности | Дата закрытия | Отслеживать ожидаемые закрытия |
| Пользовательские события | Дата события | Планировать активности |
| Проекты | Крайний срок | Отслеживать сроки проектов |
## Tips
## Советы
* **Review weekly**: Start each week by checking your calendar view
* **Combine with table view**: Use calendar for overview, table for details
* **Set visibility**: Keep personal task calendars as Unlisted
* **Проверяйте еженедельно**: Начинайте каждую неделю с проверки представления календаря
* **Совмещайте с табличным представлением**: Используйте календарь для обзора, таблицу — для деталей
* **Настройте видимость**: Держите личные календари задач со статусом «Не в списке»
## Related
## Связанные материалы
* [Calendar View](/l/ru/user-guide/views-pipelines/capabilities/calendar-view) — all calendar features
* [Filters and Sorting](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — filter your calendar
* [Представление «Календарь»](/l/ru/user-guide/views-pipelines/capabilities/calendar-view) — все возможности календаря
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — фильтрация данных календаря
@@ -1,31 +1,31 @@
---
title: Bring Product Data into Twenty
description: Sync product catalog data from a data warehouse into your CRM on a schedule.
title: Импортируйте данные о товарах в Twenty
description: Синхронизируйте данные каталога товаров из хранилища данных с вашей CRM по расписанию.
---
Use this pattern to keep Twenty in sync with product data from your data warehouse (e.g., Snowflake, BigQuery, PostgreSQL).
Используйте этот шаблон, чтобы поддерживать синхронизацию Twenty с данными о товарах из вашего хранилища данных (например, Snowflake, BigQuery, PostgreSQL).
## Workflow Structure
## Структура рабочего процесса
1. **Trigger**: On a Schedule
2. **Code**: Query your data warehouse
3. **Code** (optional): Format data as array
4. **Iterator**: Loop through each product
5. **Upsert Record**: Create or update in Twenty
1. **Триггер**: По расписанию
2. **Code**: Запрос к вашему хранилищу данных
3. **Code** (необязательно): Отформатируйте данные как массив
4. **Iterator**: Цикл по каждому товару
5. **Upsert Record**: Создать или обновить в Twenty
<img src="/images/user-guide/workflows/create_users_workflow.png" style={{width:'100%'}} />
## Step 1: Schedule the Trigger
## Шаг 1: Запланируйте триггер
Set the workflow to run at a frequency matching your data freshness needs:
Настройте запуск рабочего процесса с частотой, соответствующей требованиям к актуальности данных:
* Every 5 minutes for near real-time sync
* Every hour for less critical data
* Daily for batch updates
* Каждые 5 минут для синхронизации, близкой к реальному времени
* Каждый час для менее критичных данных
* Ежедневно для пакетных обновлений
## Step 2: Query Your Data Warehouse
## Шаг 2: Выполните запрос к вашему хранилищу данных
Add a **Code** action to fetch recent data:
Добавьте действие **Code** для получения последних данных:
```javascript
export const main = async () => {
@@ -54,14 +54,14 @@ export const main = async () => {
```
<Tip>
Filter by `updated_at >= last X minutes` to retrieve only recently changed records. This keeps the sync efficient.
Отфильтруйте по `updated_at >= last X minutes`, чтобы получать только недавно изменённые записи. Это делает синхронизацию эффективной.
</Tip>
## Step 3: Format Data (Optional)
## Шаг 3: Отформатируйте данные (необязательно)
If your warehouse returns data in a format that needs transformation, add another **Code** action. Common transformations include type conversions, field renaming, and data cleanup.
Если ваше хранилище возвращает данные в формате, требующем преобразования, добавьте ещё одно действие **Code**. К распространённым преобразованиям относятся преобразование типов, переименование полей и очистка данных.
### Example: User Data with Boolean and Status Fields
### Пример: данные пользователей с булевыми и статусными полями
```javascript
export const main = async (params: {
@@ -86,7 +86,7 @@ export const main = async (params: {
};
```
### Example: Product Data with Type Conversions
### Пример: данные о товарах с преобразованием типов
```javascript
export const main = async (params: { products: any }) => {
@@ -107,7 +107,7 @@ export const main = async (params: { products: any }) => {
};
```
### Example: Date and Currency Formatting
### Пример: форматирование даты и валюты
```javascript
export const main = async (params: { deals: any }) => {
@@ -131,52 +131,52 @@ export const main = async (params: { deals: any }) => {
};
```
### Common Transformations
### Распространённые преобразования
| Source Format | Target Format | Код |
| -------------------- | ---------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | ISO date | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
| Исходный формат | Целевой формат | Код |
| -------------------- | ------------------ | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | Дата в формате ISO | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
## Step 4: Iterate Through Products
## Шаг 4: Переберите товары
Add an **Iterator** action:
Добавьте действие **Iterator**:
* Input: `{{code.products}}`
* Вход: `{{code.products}}`
This loops through each product in the array.
Это проходит по каждому товару в массиве.
## Step 5: Upsert Each Record
## Шаг 5: Выполните Upsert для каждой записи
Inside the iterator, add an **Upsert Record** action:
Внутри итератора добавьте действие **Upsert Record**:
| Настройка | Значение |
| ------------ | -------------------------------------- |
| **Object** | Your custom Product object |
| **Match by** | External ID or SKU (unique identifier) |
| **Name** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Price** | `{{iterator.item.price}}` |
| Настройка | Значение |
| -------------------- | --------------------------------------------- |
| **Объект** | Ваш пользовательский объект Product |
| **Сопоставление по** | Внешний ID или SKU (уникальный идентификатор) |
| **Название** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Цена** | `{{iterator.item.price}}` |
<Tip>
Use **Upsert** (update or create) instead of building separate branches for create vs. update. It's faster to build and easier to debug.
Используйте **Upsert** (обновление или создание) вместо построения отдельных веток для создания и обновления. Так быстрее реализовать и проще отлаживать.
</Tip>
## Example Use Cases
## Примеры случаев использования
| Источник | Данные |
| ----------------------- | ----------------------------------- |
| **ERP system** | Product catalog, pricing, inventory |
| **E-commerce platform** | Orders, customers, product updates |
| **Data warehouse** | Aggregated metrics, enriched data |
| **Inventory system** | Stock levels, reorder alerts |
| Источник | Данные |
| ----------------------------------- | ------------------------------------------ |
| **ERP-система** | Каталог товаров, цены, запасы |
| **Платформа электронной коммерции** | Заказы, клиенты, обновления товаров |
| **Хранилище данных** | Агрегированные метрики, обогащённые данные |
| **Система управления запасами** | Уровни запасов, оповещения о дозаказах |
## Related
## Связанные материалы
* [Workflow Triggers](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [Handle Arrays in Code Actions](/l/ru/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
* [Триггеры рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [Обработка массивов в действиях Code](/l/ru/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,6 +1,6 @@
---
title: Рабочие процессы
description: Learn how to build automations in Twenty.
description: Узнайте, как создавать автоматизации в Twenty.
image: /images/user-guide/workflows/workflow.png
---
@@ -10,7 +10,7 @@ image: /images/user-guide/workflows/workflow.png
## Почему важны Workflows
Twenty был создан, чтобы обеспечить максимальную гибкость для своих пользователей. Rather than forcing you to adapt your business processes to rigid, pre-built features, workflows enable you to build automations that create the CRM that best supports your unique business use cases.
Twenty был создан, чтобы обеспечить максимальную гибкость для своих пользователей. Вместо того чтобы заставлять вас адаптировать бизнес-процессы под жесткие, заранее созданные функции, рабочие процессы позволяют строить автоматизации, формирующие CRM-систему, которая наилучшим образом поддерживает ваши уникальные варианты использования.
Workflows - это встроенная функция Twenty для создания этих автоматизаций. Они дают вам строительные блоки, чтобы создать именно то, что нужно вашему бизнесу, именно тогда, когда это необходимо.
@@ -21,60 +21,60 @@ Workflows - это встроенная функция Twenty для созда
1. **Внутренние автоматизации для облегчения повседневной работы вашей команды**: Уменьшите количество ручных записей и повторяющихся задач, которые замедляют работу вашей команды.
2. **Добавьте и извлеките данные из Twenty**: Подключите Twenty через API вызовы и вебхуки к вашей базе данных и другим инструментам.
## Building Your First Workflow
## Создание первого рабочего процесса
### Step 1: Create a New Workflow
### Шаг 1: Создайте новый рабочий процесс
1. Go to **Workflows** accessible below the other objects
2. Click **+ New Record**
3. Give your workflow a name
1. Перейдите к **Рабочим процессам**, расположенным ниже других объектов
2. Нажмите **+ Новая запись**
3. Назовите рабочий процесс
### Step 2: Add a Trigger
### Шаг 2: Добавьте триггер
Every workflow starts with a trigger. Choose from:
Каждый рабочий процесс начинается с триггера. Выберите один из вариантов:
* **Record events**: When a record is created, updated, or deleted
* **Schedule**: Run at specific times (daily, weekly, etc.)
* **Manual**: Triggered by a user action
* **Webhook**: Triggered by a webhook
* **События записей**: когда запись создается, обновляется или удаляется
* **Расписание**: запуск в определенное время (ежедневно, еженедельно и т. д.)
* **Вручную**: запускается действием пользователя
* **Вебхук**: запускается вебхуком
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
### Step 3: Add Actions
### Шаг 3: Добавьте действия
After your trigger, add one or more actions:
После триггера добавьте одно или несколько действий:
* **Create Record**: Add new records to any object
* **Update Record**: Modify existing record data
* **Delete Record**: Remove records from objects
* **Search Records**: Find records matching criteria
* **Upsert Record**: Create or update based on matching criteria
* **Iterator**: Loop through arrays of records
* **Filter**: Control which records proceed
* **Delay**: Wait before continuing (duration or scheduled date)
* **Send Email**: Send emails via your connected account
* **Code**: Run custom JavaScript
* **HTTP Request**: Call external APIs
* **Form**: Get inputs from users within Twenty UI at the time of execution
* **AI Agent** (Coming soon): Run intelligent AI tasks
* **Создать запись**: добавляет новые записи в любой объект
* **Обновить запись**: изменяет данные существующей записи
* **Удалить запись**: удаляет записи из объектов
* **Найти записи**: находит записи, соответствующие критериям
* **Создать/обновить запись**: создает или обновляет запись на основе совпадающих критериев
* **Итератор**: перебирает массивы записей
* **Фильтр**: определяет, какие записи проходят дальше
* **Задержка**: ожидает перед продолжением (длительность или запланированная дата)
* **Отправить письмо**: отправляет письма через подключенную учетную запись
* **Код**: запускает пользовательский JavaScript
* **HTTP-запрос**: выполняет вызовы внешних API
* **Форма**: получает ввод от пользователей в интерфейсе Twenty во время выполнения
* **ИИ-агент** (скоро): выполняет интеллектуальные задачи ИИ
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Step 4: Test and Activate
### Шаг 4: Протестируйте и активируйте
1. Use the **Test** button to run your workflow with sample data
2. Review the results to ensure it works as expected
3. Toggle the workflow **Active** when ready
1. Используйте кнопку **Test**, чтобы запустить рабочий процесс с тестовыми данными
2. Проверьте результаты, чтобы убедиться, что все работает как ожидается
3. Переведите рабочий процесс в состояние **Active**, когда будете готовы
## Лучшие практики рабочих процессов
* **Edit step names**: Rename your workflow steps to clearly describe what each one does. Это поможет с поддержкой и упростит передачу коллегам
* **Редактировать названия шагов**: переименуйте шаги рабочего процесса, чтобы четко описать, что делает каждый из них. Это поможет с поддержкой и упростит передачу коллегам
* **Использование данных предыдущих шагов**: Вы можете использовать поля из записей, возвращаемых любым предыдущим шагом в вашем рабочем процессе
* **Начинайте с простого**: Начинайте с базовых рабочих процессов и добавляйте сложность по мере того, как вы становитесь более уверенными в системе
* **Планируйте прежде, чем строить**: Составьте карту логики своего рабочего процесса перед началом построения, чтобы избежать застревания на полпути
## Следующие шаги
* [Workflow Triggers](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [CRM Automations](/l/ru/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
* [Триггеры рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [Автоматизации CRM](/l/ru/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,74 +1,74 @@
---
title: Gösterge Panelleri
description: Create and organize dashboards with tabs to visualize your CRM data.
description: CRM verilerinizi görselleştirmek için sekmelerle gösterge panelleri oluşturun ve düzenleyin.
---
## Genel Bakış
Dashboards in Twenty are organized in a hierarchy: **Dashboards → Tabs → Widgets**. Each dashboard can contain multiple tabs, and each tab contains widgets (charts, numbers, iFrames).
Twenty'deki gösterge panelleri hiyerarşik olarak düzenlenir: **Gösterge Panelleri → Sekmeler → Widget'lar**. Her gösterge paneli birden çok sekme içerebilir ve her sekme widget'lar (grafikler, sayılar, iFrame'ler) içerir.
## Creating a Dashboard
## Gösterge Paneli Oluşturma
1. Go to **Dashboards** in the navigation
2. Click **+ New Dashboard**
3. Give your dashboard a name
4. Start adding tabs and widgets
1. Gezinmede **Gösterge Panelleri**'ne gidin
2. **+ Yeni Gösterge Paneli**'ne tıklayın
3. Gösterge panelinize bir ad verin
4. Sekmeler ve widget'lar eklemeye başlayın
## Working with Tabs
## Sekmelerle Çalışma
Tabs help you organize your dashboard into logical sections.
Sekmeler, gösterge panelinizi mantıksal bölümlere ayırarak düzenlemenize yardımcı olur.
### Creating Tabs
### Sekme Oluşturma
1. In edit mode, click **+ Add Tab**
2. Name your tab (e.g., "Pipeline Overview", "Team Performance")
3. Add widgets to the tab
1. Düzenleme modunda **+ Sekme Ekle**'ye tıklayın
2. Sekmenize bir ad verin (ör. "Pipeline Genel Bakışı", "Ekip Performansı")
3. Sekmeye widget'lar ekleyin
### Duplicating Tabs
### Sekmeleri Çoğaltma
1. Click on the tab you want to duplicate
2. Click the **Duplicate** button in the side panel
1. Çoğaltmak istediğiniz sekmeye tıklayın
2. Yan panelde **Çoğalt** düğmesine tıklayın
## Dashboard Layout
## Gösterge Paneli Düzeni
### Arranging Widgets
### Widget'ları Düzenleme
* Drag and drop to position
* Resize for emphasis
* Group related charts together
* Konumlandırmak için sürükleyip bırakın
* Vurgulamak için yeniden boyutlandırın
* İlişkili grafikleri bir arada gruplandırın
### Duplicating a Dashboard
### Bir Gösterge Panelini Çoğaltma
1. Exit edit mode (view mode only)
2. Open the command bar with **Cmd + K** (or **Ctrl + K** on Windows)
3. Select **Duplicate dashboard**
1. Düzenleme modundan çıkın (yalnızca görüntüleme modu)
2. Komut çubuğunu **Cmd + K** ile açın (Windows'ta **Ctrl + K**)
3. **Gösterge panelini çoğalt** seçeneğini seçin
### En İyi Uygulamalar
* **Logical flow**: Arrange from overview to detail
* **Visual hierarchy**: Larger charts for key metrics
* **Consistent styling**: Use matching colors and fonts
* **Mantıksal akış**: Genel bakıştan detaya doğru düzenleyin
* **Görsel hiyerarşi**: Temel metrikler için daha büyük grafikler
* **Tutarlı stil**: Uyumlu renkler ve yazı tipleri kullanın
## Visibility & Access
## Görünürlük ve Erişim
### Dashboard Visibility
### Gösterge Paneli Görünürlüğü
Dashboards are visible to everyone who has access to your Twenty workspace. There is no private dashboard option at the moment.
Gösterge panelleri, Twenty çalışma alanınıza erişimi olan herkes tarafından görülebilir. Şu anda özel gösterge paneli seçeneği yok.
### Favoriler
You can add dashboards to your favorites for quick access. This is a personal setting—your favorites are not visible to other users.
Hızlı erişim için gösterge panellerini favorilerinize ekleyebilirsiniz. Bu kişisel bir ayardır—favorileriniz diğer kullanıcılar tarafından görülemez.
To add a dashboard to favorites, open the dashboard and click the star icon.
Bir gösterge panelini favorilere eklemek için gösterge panelini açın ve yıldız simgesine tıklayın.
### Timezone Behavior
### Saat Dilimi Davranışı
Dashboards currently display data based on the timezone of the user viewing them. This means the same dashboard may show different metrics for team members in different regions (e.g., APAC vs. US).
Gösterge panelleri şu anda verileri, onları görüntüleyen kullanıcının saat dilimine göre gösterir. Bu, aynı gösterge panelinin farklı bölgelerdeki ekip üyeleri için farklı metrikler gösterebileceği anlamına gelir (ör. APAC ve ABD).
<Note>
**Coming soon**: We will add the ability to set a specific timezone for a dashboard, so all users see consistent data regardless of their location.
**Yakında**: Herkes konumundan bağımsız olarak tutarlı veriler görsün diye, bir gösterge paneli için belirli bir saat dilimi ayarlama özelliğini ekleyeceğiz.
</Note>
<Note>
**Coming soon**: Dashboard-level filters will allow you to apply filters across all widgets at once, making it faster to explore your data.
**Yakında**: Gösterge paneli düzeyindeki filtreler, tüm widget'lara aynı anda filtre uygulamanıza olanak tanıyarak verilerinizi keşfetmeyi hızlandıracak.
</Note>
@@ -1,94 +1,94 @@
---
title: Import Relations Between Objects
description: Import relationships between records via CSV.
title: Nesneler Arasındaki İlişkileri İçe Aktarma
description: Kayıtlar arasındaki ilişkileri CSV ile içe aktarın.
---
## Genel Bakış
Twenty supports importing relationships between objects during CSV import. This allows you to link records (e.g., attach People to Companies) as part of your data migration.
Twenty, CSV içe aktarma sırasında nesneler arasındaki ilişkilerin içe aktarılmasını destekler. Bu, veri geçişinizin bir parçası olarak kayıtları birbirine bağlamanıza olanak tanır (ör. Kişileri Şirketlere iliştirme).
<Note>**Currently supported for import**: One-to-many relations pointing to a single object type on each side (e.g., People → Companies). Relations pointing to multiple object types are not yet supported in import/export.</Note>
<Note>**Şu anda içe aktarma için desteklenenler**: Her iki tarafta da tek bir nesne türüne işaret eden bire-çok ilişkiler (ör. KişilerŞirketler). Birden fazla nesne türüne işaret eden ilişkiler henüz içe/dışa aktarma için desteklenmiyor.</Note>
## How Relations Work in Twenty
## Twenty'de İlişkiler Nasıl Çalışır
### One to Many / Many to One
### Bire-Çok / Çoktan-Bire
Twenty supports standard relations where one record links to many others:
Twenty, bir kaydın birden çok başka kayda bağlandığı standart ilişkileri destekler:
* **One Company → Many People**: A company can have multiple employees, but each person belongs to one company
* **One Company → Many Opportunities**: A company can have multiple deals, but each opportunity belongs to one company
* **Bir Şirket → Birçok Kişi**: Bir şirketin birden fazla çalışanı olabilir, ancak her kişi bir şirkete aittir
* **Bir Şirket → Birçok Fırsat**: Bir şirketin birden fazla fırsatı olabilir, ancak her fırsat bir şirkete aittir
### Relations That Can Point to Multiple Object Types
### Birden Fazla Nesne Türüne İşaret Edebilen İlişkiler
Some relations can connect to different types of objects. This works in two ways:
Bazı ilişkiler farklı türdeki nesnelere bağlanabilir. Bu iki şekilde çalışır:
**Pattern 1: Many records linking to one record each from different object types**
**Kalıp 1: Farklı nesne türlerinden birçok kayıt, her biri bir kayda bağlanır**
Several Notes, Tasks, or Activities can each be attached to multiple object types at once:
Birden çok Not, Görev veya Aktivitenin her biri aynı anda birden fazla nesne türüne iliştirilebilir:
* **Notes** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Tasks** can be linked to one Person, one Company, and one Opportunity simultaneously
* **Notlar** aynı anda bir Kişiye, bir Şirkete ve bir Fırsata bağlanabilir
* **Görevler** aynı anda bir Kişiye, bir Şirkete ve bir Fırsata bağlanabilir
Here, the Notes/Tasks are on the "many" side. Each links to one record per object type.
Burada, Notlar/Görevler "çok" tarafındadır. Her biri, her nesne türü için bir kayda bağlanır.
<img src="/images/user-guide/fields/many-to-one-morph.png" style={{width:'100%'}} />
**Pattern 2: One record receiving links from many records of different object types**
**Kalıp 2: Farklı nesne türlerinden çok sayıda kayıttan bağlantı alan tek bir kayıt**
A Project can receive links from multiple records across different object types:
Bir Proje, farklı nesne türleri genelinde birden fazla kayıttan bağlantı alabilir:
* **A Project** can have many People linked to it, many Companies linked to it, and many Notes attached to it
* **Bir Proje** kendisine bağlı birçok Kişi, kendisine bağlı birçok Şirket ve kendisine iliştirilmiş birçok Not barındırabilir
Here, the Project is on the "one" side. Multiple records from different objects can all link to the same Project.
Burada Proje, "bir" tarafındadır. Farklı nesnelerden birden çok kayıt aynı Projeye bağlanabilir.
<img src="/images/user-guide/fields/one-to-many-morph.png" style={{width:'100%'}} />
<Warning>
**Import/Export limitation**: Relations that point to multiple object types (like Notes → People/Companies/Opportunities) are **not yet supported** in CSV import or export.
**İçe/Dışa Aktarma sınırlaması**: Birden fazla nesne türüne işaret eden ilişkiler (ör. Notlar → Kişiler/Şirketler/Fırsatlar) CSV içe aktarma veya dışa aktarmada **henüz desteklenmiyor**.
* **Import**: Only one-to-many relations pointing to a single object type on each side can be imported
* **Export**: Columns for relations pointing to multiple object types are currently left empty
* **İçe aktarma**: Her iki tarafta da tek bir nesne türüne işaret eden bire-çok ilişkiler içe aktarılabilir
* **Dışa aktarma**: Birden fazla nesne türüne işaret eden ilişkilere ait sütunlar şu anda boş bırakılır
This is on our roadmap.
Bu özellik yol haritamızda.
</Warning>
### What's Not Supported Today
### Bugün Neler Desteklenmiyor
**Many to Many relations** are not yet available. For example, you cannot currently create a relation where:
**Çoktan-Çoka ilişkiler** henüz mevcut değil. Örneğin, şu anda aşağıdaki gibi bir ilişki oluşturamazsınız:
* Many People are linked to many Projects
* Birçok Kişi birçok Projeye bağlıdır
<Note>Many to Many relations are planned for H1 2026.</Note>
<Note>Çoktan-Çoka ilişkiler 2026 H1 için planlanıyor.</Note>
## Linking Records During Import
## İçe Aktarma Sırasında Kayıtları Bağlama
<Note>**Reminder**: Only one-to-many relations pointing to a single object type can be imported (e.g., People → Companies). Relations pointing to multiple object types (e.g., Notes → People/Companies/Opportunities) are not yet supported.</Note>
<Note>**Hatırlatma**: Yalnızca her iki tarafta da tek bir nesne türüne işaret eden bire-çok ilişkiler içe aktarılabilir (ör. KişilerŞirketler). Birden fazla nesne türüne işaret eden ilişkiler (ör. Notlar → Kişiler/Şirketler/Fırsatlar) henüz desteklenmiyor.</Note>
### Step 1: Identify the "One" and "Many" Sides
### Adım 1: "Bir" ve "Çok" Tarafları Belirleyin
First, determine which object is on the "one" side and which is on the "many" side of the relationship.
Önce, ilişkinin "bir" tarafında hangi nesnenin, "çok" tarafında hangi nesnenin olduğunu belirleyin.
**Example**:
**Örnek**:
* **Company** is the "one" side (one company has many employees)
* **People** is the "many" side (each person belongs to one company)
* **Şirket** "bir" tarafıdır (bir şirketin birçok çalışanı vardır)
* **Kişiler** "çok" tarafıdır (her kişi bir şirkete aittir)
### Step 2: Ensure the "One" Side Records Exist
### Adım 2: "Bir" Tarafındaki Kayıtların Mevcut Olduğundan Emin Olun
Before importing the "many" side, the "one" side records must already exist in Twenty.
"Çok" tarafını içe aktarmadan önce, "bir" tarafındaki kayıtlar Twenty'de zaten mevcut olmalıdır.
* Import or create the "one" side records first (e.g., Companies)
* Validate their unique identifier. This can be:
* The `id` (Twenty's UUID)
* A field set as unique (e.g., `domain` for Companies, or an external ID from your previous system)
* Önce "bir" tarafındaki kayıtları içe aktarın veya oluşturun (ör. Şirketler)
* Benzersiz tanımlayıcılarını doğrulayın. Bu şu olabilir:
* `id` (Twenty'nin UUID'si)
* Benzersiz olarak ayarlanmış bir alan (ör. Şirketler için `domain` veya önceki sisteminizden bir dış kimlik)
<Warning>The import will fail if a reference is made to a record that does not exist.</Warning>
<Warning>Var olmayan bir kayda referans verilirse içe aktarma başarısız olur.</Warning>
### Step 3: Prepare Your CSV File
### Adım 3: CSV Dosyanızı Hazırlayın
Add a column in your "many" side CSV file that references the "one" side record.
"Çok" tarafındaki CSV dosyanıza, "bir" tarafındaki kayda referans veren bir sütun ekleyin.
**Example**: For a People CSV file linking to Companies:
**Örnek**: Şirketlere bağlanan bir Kişiler CSV dosyası için:
```
firstName,lastName,email,companyDomain
@@ -96,53 +96,53 @@ John,Smith,john@acme.com,https://acme.com
Jane,Doe,jane@widgets.co,https://widgets.co
```
**Important**:
**Önemli**:
* The value must **exactly match** the unique field on the Company record
* For domains, use the **Domain URL** (e.g., `https://acme.com`), not the Domain Label
* Map only **one** unique identifier per relation: this leads to a smoother import
* Değer, Şirket kaydındaki benzersiz alanla **tam olarak eşleşmelidir**
* Alan adları için **Alan Adı URL'si**ni (ör. `https://acme.com`) kullanın, Alan Adı Etiketini değil
* Her ilişki için yalnızca **bir** benzersiz tanımlayıcıyı eşleyin: bu, daha sorunsuz bir içe aktarma sağlar
### Step 4: Ensure the Relation Field Exists
### Adım 4: İlişki Alanının Mevcut Olduğundan Emin Olun
Before uploading your file, make sure the relation field exists between your objects.
Dosyanızı yüklemeden önce, nesneleriniz arasında ilişki alanının mevcut olduğundan emin olun.
If it doesn't exist:
Eğer mevcut değilse:
1. Go to **Settings → Data Model**
2. Select your object (e.g., People)
3. Create a relation field pointing to the target object (e.g., Company)
1. **Ayarlar → Veri Modeli** bölümüne gidin
2. Nesnenizi seçin (ör. Kişiler)
3. Hedef nesneyi işaret eden bir ilişki alanı oluşturun (ör. Şirket)
### Step 5: Upload and Map the Relation
### Adım 5: İlişkiyi Yükleyin ve Eşleyin
1. Upload your CSV file via the import UI
2. In the field mapping step, find your relation column (e.g., `companyDomain`)
3. Map it to the relation field (e.g., Company)
4. Twenty will automatically link each record to the matching parent
1. CSV dosyanızı içe aktarma arayüzü üzerinden yükleyin
2. Alan eşleme adımında, ilişki sütununuzu bulun (ör. `companyDomain`)
3. Bunu ilişki alanına eşleyin (ör. Şirket)
4. Twenty, her kaydı otomatik olarak eşleşen ana kayda bağlar
### Available Unique Fields for Relations
### İlişkiler İçin Kullanılabilir Benzersiz Alanlar
| Nesne | Unique Fields Available |
| ------------------------------------- | --------------------------------------- |
| **Şirketler** | `id`, `domain`, any custom unique field |
| **People** | `id`, `email`, any custom unique field |
| **İş Alanı Üyeleri** | `id`, `email` (not name) |
| **Other standard and custom objects** | `id`, any field marked as unique |
| Nesne | Kullanılabilir Benzersiz Alanlar |
| ----------------------------------- | ----------------------------------------------------- |
| **Şirketler** | `id`, `domain`, herhangi bir özel benzersiz alan |
| **Kişiler** | `id`, `email`, herhangi bir özel benzersiz alan |
| **İş Alanı Üyeleri** | `id`, `email` (isim değil) |
| **Diğer standart ve özel nesneler** | `id`, benzersiz olarak işaretlenmiş herhangi bir alan |
<Note>**Linking to Workspace Members**: When the relation points to Workspace Members (your team logging into Twenty), reference them by their **email address**, not their name.</Note>
<Note>**Çalışma Alanı Üyelerine Bağlama**: İlişki Çalışma Alanı Üyelerini işaret ediyorsa (Twenty'ye giriş yapan ekibiniz), onlara adlarıyla değil, **e-posta adresleriyle** referans verin.</Note>
<Note>We recommend using `domain` for Companies and `email` for People, as these are human-readable and easy to maintain in spreadsheets.</Note>
<Note>Tablolarda okunabilir ve bakımı kolay olduğundan, Şirketler için `domain` ve Kişiler için `email` kullanmanızı öneririz.</Note>
<Note>**Reminder**: Soft-deleted records (visible under Command Menu → See deleted records) count toward uniqueness criteria. If you import a record with the same unique value as a deleted record, the deleted record will be restored. See [Uniqueness Constraints](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints) for more details.</Note>
<Note>**Hatırlatma**: Yumuşak silinmiş kayıtlar (Komut Menüsü → Silinen kayıtları görüntüle altında görünür) benzersizlik ölçütlerine dahildir. Silinmiş bir kayıtla aynı benzersiz değere sahip bir kaydı içe aktarırsanız, silinmiş kayıt geri yüklenir. Daha fazla bilgi için [Benzersizlik Kısıtları](/l/tr/user-guide/data-migration/capabilities/uniqueness-constraints) bölümüne bakın.</Note>
## Import Order Rule
## İçe Aktarma Sırası Kuralı
<Warning>
**Always import the "one" side first!**
**Her zaman önce "bir" tarafı içe aktarın!**
1. **Companies** first (no dependencies)
2. **People** second (linked to Companies)
3. **Opportunities** third (linked to Companies/People)
4. **Custom objects** following their dependencies
1. Önce **Şirketler** (bağımlılık yok)
2. İkinci olarak **Kişiler** (Şirketlere bağlı)
3. Üçüncü olarak **Fırsatlar** (Şirketlere/Kişilere bağlı)
4. **Özel nesneler** (bağımlılıklarına uyarak)
The parent record must exist before you can reference it.
Ona referans verebilmeden önce ana kayıt mevcut olmalıdır.
</Warning>
@@ -1,71 +1,71 @@
---
title: Import Companies via CSV
description: Complete step-by-step guide to importing companies into Twenty.
title: CSV ile Şirketleri İçe Aktarın
description: Twenty'ye şirketleri içe aktarmaya yönelik eksiksiz, adım adım kılavuz.
---
## Genel Bakış
This guide walks you through importing your companies into Twenty. **Companies should be imported first** because People and Opportunities link to Companies.
Bu kılavuz, şirketlerinizi Twenty'ye içe aktarma sürecinde size yol gösterir. **Önce Şirketler içe aktarılmalıdır** çünkü Kişiler ve Fırsatlar Şirketlerle ilişkilendirilir.
## Başlamadan Önce
### Prerequisites Checklist
### Ön Koşul Kontrol Listesi
<Check>
Your file is CSV, XLSX, or XLS format
Dosyanız CSV, XLSX veya XLS biçiminde
</Check>
<Check>
File has fewer than 10,000 records
Dosyada 10.000'den az kayıt var
</Check>
<Check>
No duplicate domains in your file
Dosyanızda yinelenen alan adı yok
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Tüm özel alanlar **Ayarlar → Veri Modeli**'nde mevcut
</Check>
<Note>
Need to import more than 10,000 companies? Split into multiple files or use the [API import](/l/tr/user-guide/data-migration/how-tos/import-data-via-api).
10.000'den fazla şirketi içe aktarmanız mı gerekiyor? Birden çok dosyaya bölün veya [API ile içe aktarma](/l/tr/user-guide/data-migration/how-tos/import-data-via-api) kullanın.
</Note>
## Step 1: Prepare Your Company Data
## Adım 1: Şirket Verinizi Hazırlayın
### Required and Recommended Fields
### Zorunlu ve Önerilen Alanlar
| Alan | Required? | Biçim | Notlar |
| ----------------- | ----------- | -------------------- | ------------------------ |
| **Name** | Recommended | Metin | Company display name |
| **Domain** | Recommended | `https://domain.com` | Unique identifier |
| **Address** | Optional | Multiple columns | See below |
| **Employees** | Optional | Sayı | Employee count |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Alan | Zorunlu mu? | Biçim | Notlar |
| ---------------- | ------------ | -------------------- | ----------------------------- |
| **Ad** | Önerilen | Metin | Şirketin görünen adı |
| **Alan Adı** | Önerilen | `https://domain.com` | Benzersiz tanımlayıcı |
| **Adres** | İsteğe bağlı | Birden çok sütun | Aşağıya bakın |
| **Çalışanlar** | İsteğe bağlı | Sayı | Çalışan sayısı |
| **Özel Alanlar** | İsteğe bağlı | Değişir | Veri Modeli'nde mevcut olmalı |
### Domain Format
### Alan Adı Biçimi
<Warning>
**Use the format `https://domain.com` for domains.**
**Alan adları için `https://domain.com` biçimini kullanın.**
This matches the format used when Companies are auto-created from email/calendar sync, preventing duplicates later.
Bu, Şirketler e-posta/takvim eşitlemesinden otomatik olarak oluşturulduğunda kullanılan biçimle eşleşir ve daha sonra yinelenmeleri önler.
</Warning>
**Domain columns:**
**Alan adı sütunları:**
* **Domain / Domain Label**: `acme.com`
* **Domain / Domain URL**: `https://acme.com`
### Address Format
### Adres Biçimi
Address is a nested field with multiple columns:
Adres, birden çok sütuna sahip iç içe bir alandır:
```
Address / Address 1,Address / City,Address / State,Address / Country,Address / Post Code
123 Main Street,San Francisco,CA,USA,94105
```
### Sample CSV Structure
### Örnek CSV Yapısı
```csv
name,Domain / Domain URL,Domain / Domain Label,Address / City,Address / Country,employees
@@ -74,109 +74,109 @@ Widget Co,https://widgets.co,widgets.co,New York,USA,50
```
<Note>
**Pro tip:** Click **Download sample file** during import to see the exact column names Twenty expects.
**İpucu:** İçe aktarma sırasında **Örnek dosyayı indir**'i tıklayın ve Twenty'nin beklediği tam sütun adlarını görün.
</Note>
## Step 2: Access the Import Feature
## Adım 2: İçe Aktarma Özelliğine Erişin
**Option 1: From the Companies View**
**Seçenek 1: Şirketler görünümünden**
1. Navigate to **Companies** in the left sidebar
2. Click the **⋮** icon on the top right
3. Select **Import records**
1. Sol kenar çubuğunda **Şirketler**'e gidin
2. Sağ üstteki **⋮** simgesine tıklayın
3. **Kayıtları İçe Aktar**'ı seçin
**Option 2: Using Command Menu**
**Seçenek 2: Komut Menüsünü kullanma**
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
2. Type "import"
3. Select **Import records**
4. Choose **Companies**
1. Mac'te `Cmd + K` veya Windows'ta `Ctrl + K` tuşlarına basın
2. "import" yazın
3. **Kayıtları İçe Aktar**'ı seçin
4. **Şirketler**'i seçin
## Step 3: Upload Your File
## Adım 3: Dosyanızı Yükleyin
1. Click **Select file**
2. Choose your CSV, XLSX, or XLS file
3. Wait for Twenty to analyze your file
1. **Dosya seç**'e tıklayın
2. CSV, XLSX veya XLS dosyanızı seçin
3. Twenty'nin dosyanızı analiz etmesini bekleyin
## Step 4: Map Your Columns
## Adım 4: Sütunlarınızı Eşleyin
Twenty automatically tries to match your columns to fields. Review and adjust:
Twenty, sütunlarınızı alanlarla eşleştirmeyi otomatik olarak dener. Gözden geçirin ve ayarlayın:
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. **Otomatik eşlemeleri kontrol edin** — doğru olduklarını doğrulayın
2. **Yanlış eşlemeleri düzeltin** — doğru alanı seçmek için açılır menüye tıklayın
3. **Sütunları atlayın** — içe aktarmak istemediğiniz sütunlar için **Do not map** seçeneğini seçin
### Important Mapping Rules
### Önemli Eşleme Kuralları
* **Domain**: Map to **Domain / Domain URL** (not Domain Label)
* **Address**: Map each part to its specific column (City, State, etc.)
* **Select fields**: Values must match existing options (or you'll map them in the next step)
* **Alan Adı**: **Domain / Domain URL**'ye eşleyin (Domain Label değil)
* **Adres**: Her bir bölümü ilgili özel sütununa eşleyin (Şehir, Eyalet vb.)
* **Seçim alanları**: Değerler mevcut seçeneklerle eşleşmelidir (yoksa bir sonraki adımda eşleyeceksiniz)
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
## Step 5: Map Select Field Values
## Adım 5: Seçim Alanı Değerlerini Eşleyin
If you have Select or Multi-Select fields:
Seçim veya Çoklu Seçim alanlarınız varsa:
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 Company Import Errors
### Yaygın Şirket İçe Aktarma Hataları
| Hata | Cause | Solution |
| -------------------------- | ------------------------------- | ------------------------------------------ |
| **Duplicate domain** | Domain already exists in Twenty | Remove from file or update existing record |
| **Invalid domain format** | Wrong format | Use `https://domain.com` |
| **Missing required field** | Required field is empty | Fill in the value or remove the row |
| Hata | Neden | Çözüm |
| ---------------------------- | ------------------------------- | ----------------------------------------------- |
| **Yinelenen alan adı** | Alan adı Twenty'de zaten mevcut | Dosyadan kaldırın veya mevcut kaydı güncelleyin |
| **Geçersiz alan adı biçimi** | Yanlış biçim | `https://domain.com` kullanın |
| **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
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ı kontrol ederek doğrulayın
## After Importing Companies
## Şirketleri İçe Aktardıktan Sonra
Now you can import records that link to Companies:
Artık Şirketlere bağlanan kayıtları içe aktarabilirsiniz:
1. **[Import People](/l/tr/user-guide/data-migration/how-tos/import-contacts-via-csv)** — link them to Companies using the domain
2. **Import Opportunities** — link them to Companies
3. **Verify the import** — spot-check a few records to ensure data is correct
1. **[Kişileri İçe Aktarın](/l/tr/user-guide/data-migration/how-tos/import-contacts-via-csv)** — bunları alan adı kullanarak Şirketlere bağlayın
2. **Fırsatları içe aktarın** — bunları Şirketlerle ilişkilendirin
3. **İçe aktarmayı doğrulayın** — verilerin doğru olduğundan emin olmak için birkaç kaydı rastgele kontrol edin
## Updating Existing Companies
## Mevcut Şirketleri Güncelleme
To update companies instead of creating new ones:
Yeni şirketler oluşturmak yerine şirketleri güncellemek için:
1. Include the `domain` or `id` column in your file
2. Twenty matches records by this unique identifier
3. Existing companies are updated; new ones are created
1. Dosyanıza `domain` veya `id` sütununu ekleyin
2. Twenty, kayıtları bu benzersiz tanımlayıcıya göre eşleştirir
3. Mevcut şirketler 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 Companies have the same domain?">
Domain is a unique identifier in Twenty. This prevents duplicate companies and ensures email sync correctly links emails to the right company.
<Accordion title="Neden iki Şirketin alan adı aynı olamaz?">
Alan adı, Twenty'de benzersiz bir tanımlayıcıdır. Bu, yinelenen şirketleri önler ve e-posta eşitlemesinin e-postaları doğru şirketle doğru şekilde ilişkilendirmesini sağlar.
</Accordion>
<Accordion title="What if I have companies without a domain?">
You can leave the domain empty. However, we recommend adding domains when possible for better data quality and automatic email linking.
<Accordion title="Alan adı olmayan şirketlerim varsa ne yapmalıyım?">
Alan adını boş bırakabilirsiniz. Ancak, daha iyi veri kalitesi ve otomatik e-posta ilişkilendirmesi için mümkün olduğunda alan adlarını eklemenizi öneririz.
</Accordion>
<Accordion title="Can I import companies without any People linked?">
@@ -38,24 +38,24 @@ Görüntülenmesi önerilen alanlar:
Odaklı görünümler oluşturun:
* **Görevlerim**: Atanan = Ben olarak filtreleyin
* **This Week**: Filter by Due Date = This week
* **Overdue**: Filter by Due Date < Today, Status ≠ Done
* **Bu Hafta**: Son tarihe göre filtrele = Bu hafta
* **Süresi geçmiş**: Son tarihe göre filtrele < Bugün, Durum ≠ Tamamlandı
## Other Calendar Use Cases
## Diğer Takvim Kullanım Senaryoları
| Nesne | Date Field | Purpose |
| ------------- | ---------- | ------------------------- |
| Fırsatlar | Close Date | Track expected closes |
| Custom Events | Event Date | Plan activities |
| Projects | Deadline | Monitor project timelines |
| Nesne | Tarih Alanı | Amaç |
| ---------------- | --------------- | --------------------------------- |
| Fırsatlar | Kapanış tarihi | Beklenen kapanışları takip edin |
| Özel Etkinlikler | Etkinlik tarihi | Aktiviteleri planlayın |
| Projeler | Son tarih | Proje zaman çizelgelerini izleyin |
## Tips
## İpuçları
* **Review weekly**: Start each week by checking your calendar view
* **Combine with table view**: Use calendar for overview, table for details
* **Set visibility**: Keep personal task calendars as Unlisted
* **Haftalık gözden geçirin**: Her haftaya takvim görünümünüzü kontrol ederek başlayın
* **Tablo görünümü ile birleştirin**: Genel bakış için takvimi, ayrıntılar için tabloyu kullanın
* **Görünürlüğü ayarlayın**: Kişisel görev takvimlerini Liste Dışı olarak tutun
## Related
## İlgili
* [Calendar View](/l/tr/user-guide/views-pipelines/capabilities/calendar-view) — all calendar features
* [Filters and Sorting](/l/tr/user-guide/views-pipelines/capabilities/filters-and-sorting) — filter your calendar
* [Takvim Görünümü](/l/tr/user-guide/views-pipelines/capabilities/calendar-view) — tüm takvim özellikleri
* [Filtreler ve Sıralama](/l/tr/user-guide/views-pipelines/capabilities/filters-and-sorting) — takviminizi filtreleyin
@@ -1,31 +1,31 @@
---
title: Bring Product Data into Twenty
description: Sync product catalog data from a data warehouse into your CRM on a schedule.
title: Ürün Verilerini Twenty'ye Aktarın
description: Ürün katalog verilerini bir veri ambarından CRM'inize bir programa göre eşitleyin.
---
Use this pattern to keep Twenty in sync with product data from your data warehouse (e.g., Snowflake, BigQuery, PostgreSQL).
Veri ambarınızdaki ürün verileriyle Twenty'yi senkron tutmak için bu kalıbı kullanın (örn. Snowflake, BigQuery, PostgreSQL).
## Workflow Structure
## İş Akışı Yapısı
1. **Trigger**: On a Schedule
2. **Code**: Query your data warehouse
3. **Code** (optional): Format data as array
4. **Iterator**: Loop through each product
5. **Upsert Record**: Create or update in Twenty
1. **Tetikleyici**: Zamanlanmış
2. **Kod**: Veri ambarınızı sorgulayın
3. **Kod** (isteğe bağlı): Veriyi dizi olarak biçimlendirin
4. **Yineleyici**: Her ürün üzerinde döngü kurun
5. **Kaydı Ekle/Güncelle**: Twenty'de oluşturun veya güncelleyin
<img src="/images/user-guide/workflows/create_users_workflow.png" style={{width:'100%'}} />
## Step 1: Schedule the Trigger
## Adım 1: Tetiklemeyi Zamanlayın
Set the workflow to run at a frequency matching your data freshness needs:
İş akışını, veri tazelik gereksinimlerinize uygun bir sıklıkta çalışacak şekilde ayarlayın:
* Every 5 minutes for near real-time sync
* Every hour for less critical data
* Daily for batch updates
* Neredeyse gerçek zamanlı eşitleme için her 5 dakikada bir
* Daha az kritik veriler için saatte bir
* Toplu güncellemeler için günlük
## Step 2: Query Your Data Warehouse
## Adım 2: Veri Ambarınızı Sorgulayın
Add a **Code** action to fetch recent data:
En son verileri almak için bir **Kod** eylemi ekleyin:
```javascript
export const main = async () => {
@@ -54,14 +54,14 @@ export const main = async () => {
```
<Tip>
Filter by `updated_at >= last X minutes` to retrieve only recently changed records. This keeps the sync efficient.
`updated_at >= last X minutes` ile filtreleyerek yalnızca yakın zamanda değişen kayıtları alın. Bu, eşitlemeyi verimli tutar.
</Tip>
## Step 3: Format Data (Optional)
## Adım 3: Verileri Biçimlendirin (İsteğe Bağlı)
If your warehouse returns data in a format that needs transformation, add another **Code** action. Common transformations include type conversions, field renaming, and data cleanup.
Veri ambarınız dönüştürme gerektiren bir biçimde veri döndürüyorsa, başka bir **Kod** eylemi ekleyin. Yaygın dönüşümler arasında tür dönüştürmeleri, alan yeniden adlandırma ve veri temizleme bulunur.
### Example: User Data with Boolean and Status Fields
### Örnek: Boolean ve Durum Alanlarına Sahip Kullanıcı Verileri
```javascript
export const main = async (params: {
@@ -86,7 +86,7 @@ export const main = async (params: {
};
```
### Example: Product Data with Type Conversions
### Örnek: Tür Dönüşümleri Olan Ürün Verileri
```javascript
export const main = async (params: { products: any }) => {
@@ -107,7 +107,7 @@ export const main = async (params: { products: any }) => {
};
```
### Example: Date and Currency Formatting
### Örnek: Tarih ve Para Birimi Biçimlendirme
```javascript
export const main = async (params: { deals: any }) => {
@@ -131,52 +131,52 @@ export const main = async (params: { deals: any }) => {
};
```
### Common Transformations
### Yaygın Dönüşümler
| Source Format | Target Format | Kod |
| Kaynak Format | Hedef Format | Kod |
| -------------------- | ---------------- | ---------------------------------------- |
| `"true"` / `"false"` | `true` / `false` | `v === true \|\| v === "true"` |
| `"123.45"` | `123.45` | `parseFloat(value)` |
| `"active"` | `"ACTIVE"` | `value.toUpperCase()` |
| `1704067200` (Unix) | ISO date | `new Date(v * 1000).toISOString()` |
| `1704067200` (Unix) | ISO tarihi | `new Date(v * 1000).toISOString()` |
| `"$1,234.56"` | `1234.56` | `parseFloat(v.replace(/[^0-9.-]/g, ""))` |
| `null` / `undefined` | `""` | `value \|\| ""` |
## Step 4: Iterate Through Products
## Adım 4: Ürünler Üzerinde Yineleyin
Add an **Iterator** action:
Bir **Iterator** eylemi ekleyin:
* Input: `{{code.products}}`
* Girdi: `{{code.products}}`
This loops through each product in the array.
Bu, dizideki her ürün üzerinde döngü kurar.
## Step 5: Upsert Each Record
## Adım 5: Her Kaydı Ekle/Güncelleyin
Inside the iterator, add an **Upsert Record** action:
Yineleyici içinde bir **Kaydı Ekle/Güncelle** eylemi ekleyin:
| Setting | Değer |
| ------------ | -------------------------------------- |
| **Object** | Your custom Product object |
| **Match by** | External ID or SKU (unique identifier) |
| **Name** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Price** | `{{iterator.item.price}}` |
| Ayar | Değer |
| ---------------------- | ------------------------------------------ |
| **Nesne** | Özel Ürün nesneniz |
| **Şuna göre eşleştir** | Harici ID veya SKU (benzersiz tanımlayıcı) |
| **Ad** | `{{iterator.item.name}}` |
| **SKU** | `{{iterator.item.sku}}` |
| **Fiyat** | `{{iterator.item.price}}` |
<Tip>
Use **Upsert** (update or create) instead of building separate branches for create vs. update. It's faster to build and easier to debug.
Oluşturma ve güncelleme için ayrı dallar oluşturmak yerine **Upsert** (güncelle veya oluştur) kullanın. Oluşturmak daha hızlı ve hata ayıklamak daha kolaydır.
</Tip>
## Example Use Cases
## Örnek Kullanım Durumları
| Kaynak | Veri |
| ----------------------- | ----------------------------------- |
| **ERP system** | Product catalog, pricing, inventory |
| **E-commerce platform** | Orders, customers, product updates |
| **Data warehouse** | Aggregated metrics, enriched data |
| **Inventory system** | Stock levels, reorder alerts |
| Kaynak | Veri |
| ----------------------- | ---------------------------------------------- |
| **ERP sistemi** | Ürün kataloğu, fiyatlandırma, envanter |
| **E-ticaret platformu** | Siparişler, müşteriler, ürün güncellemeleri |
| **Veri ambarı** | Toplanmış metrikler, zenginleştirilmiş veriler |
| **Envanter sistemi** | Stok seviyeleri, yeniden sipariş uyarıları |
## Related
## İlgili
* [Workflow Triggers](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/tr/user-guide/workflows/capabilities/workflow-actions)
* [Handle Arrays in Code Actions](/l/tr/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
* [İş Akışı Tetikleyicileri](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
* [İş Akışı Eylemleri](/l/tr/user-guide/workflows/capabilities/workflow-actions)
* [Kod Eylemlerinde Dizileri Ele Alma](/l/tr/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions)
@@ -1,6 +1,6 @@
---
title: İş Akışları
description: Learn how to build automations in Twenty.
description: Twenty'de otomasyonlar oluşturmayı öğrenin.
image: /images/user-guide/workflows/workflow.png
---
@@ -12,7 +12,7 @@ image: /images/user-guide/workflows/workflow.png
Twenty, kullanıcılarına maksimum esneklik sağlamak için tasarlandı. İş süreçlerinizi katı, önceden oluşturulmuş özelliklere uyarlamak yerine, iş akışları, benzersiz iş kullanım durumlarınızı en iyi destekleyen CRM'yi oluşturmanıza olanak tanır.
İş akışları, bu otomasyonları oluşturmak için Twenty'nin uygulama içi özelliğidir. They give you the building blocks to create exactly what your business needs, when it needs it.
İş akışları, bu otomasyonları oluşturmak için Twenty'nin uygulama içi özelliğidir. Bunlar, işletmenizin gerektiğinde tam olarak ihtiyaç duyduğu şeyi oluşturmanız için size yapı taşları sunarlar.
## İş akışlarıyla ne yapabilirim?
@@ -21,60 +21,60 @@ Twenty, kullanıcılarına maksimum esneklik sağlamak için tasarlandı. İş s
1. **Ekibinizin günlük işlerini kolaylaştırmak için iç otomasyonlar**: Ekibinizin yavaşlamasına neden olan manuel giriş ve tekrarlanan görevleri azaltın.
2. **Verileri içeri ve dışarı getirin**: Twenty'yi API çağrıları ve webhooks aracılığıyla veritabanınıza ve diğer araçlara bağlayın.
## Building Your First Workflow
## İlk İş Akışınızı Oluşturma
### Step 1: Create a New Workflow
### Adım 1: Yeni bir İş Akışı oluşturun
1. Go to **Workflows** accessible below the other objects
2. Click **+ New Record**
3. Give your workflow a name
1. Diğer nesnelerin altında bulunan **İş Akışları**'na gidin
2. **+ Yeni Kayıt**'a tıklayın
3. İş akışınıza bir ad verin
### Step 2: Add a Trigger
### Adım 2: Bir Tetikleyici ekleyin
Every workflow starts with a trigger. Choose from:
Her iş akışı bir tetikleyiciyle başlar. Şunlardan birini seçin:
* **Record events**: When a record is created, updated, or deleted
* **Schedule**: Run at specific times (daily, weekly, etc.)
* **Manual**: Triggered by a user action
* **Webhook**: Triggered by a webhook
* **Kayıt olayları**: Bir kayıt oluşturulduğunda, güncellendiğinde veya silindiğinde
* **Zamanlama**: Belirli zamanlarda çalıştırın (günlük, haftalık vb.)
* **Manuel**: Bir kullanıcı eylemiyle tetiklenir
* **Webhook**: Bir webhook tarafından tetiklenir
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
### Step 3: Add Actions
### Adım 3: Eylemler ekleyin
After your trigger, add one or more actions:
Tetikleyicinizden sonra bir veya daha fazla eylem ekleyin:
* **Create Record**: Add new records to any object
* **Update Record**: Modify existing record data
* **Delete Record**: Remove records from objects
* **Search Records**: Find records matching criteria
* **Upsert Record**: Create or update based on matching criteria
* **Iterator**: Loop through arrays of records
* **Filter**: Control which records proceed
* **Delay**: Wait before continuing (duration or scheduled date)
* **Send Email**: Send emails via your connected account
* **Code**: Run custom JavaScript
* **HTTP Request**: Call external APIs
* **Form**: Get inputs from users within Twenty UI at the time of execution
* **AI Agent** (Coming soon): Run intelligent AI tasks
* **Kayıt Oluştur**: Herhangi bir nesneye yeni kayıtlar ekleyin
* **Kaydı Güncelle**: Mevcut kayıt verilerini değiştirin
* **Kaydı Sil**: Nesnelerden kayıtları kaldırın
* **Kayıtları Ara**: Kriterlerle eşleşen kayıtları bulun
* **Kaydı Ekle/Güncelle**: Eşleşen kriterlere göre oluşturun veya güncelleyin
* **Yineleyici**: Kayıt dizileri üzerinde döngü kurun
* **Filtre**: Hangi kayıtların ilerleyeceğini kontrol edin
* **Gecikme**: Devam etmeden önce bekleyin (süre veya planlanan tarih)
* **E-posta Gönder**: Bağlı hesabınız aracılığıyla e-postalar gönderin
* **Kod**: Özel JavaScript çalıştırın
* **HTTP İsteği**: Harici API'leri çağırın
* **Form**: Yürütme sırasında Twenty UI içinde kullanıcı girdilerini alın
* **AI Agent** (Yakında): Akıllı yapay zekâ görevlerini çalıştırın
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Step 4: Test and Activate
### Adım 4: Test Edin ve Etkinleştirin
1. Use the **Test** button to run your workflow with sample data
2. Review the results to ensure it works as expected
3. Toggle the workflow **Active** when ready
1. İş akışınızı örnek verilerle çalıştırmak için **Test** düğmesini kullanın
2. Beklendiği gibi çalıştığından emin olmak için sonuçları inceleyin
3. Hazır olduğunda iş akışını **Aktif** durumuna getirin
## İş Akışı En İyi Uygulamaları
* **Adım isimlerini düzenleyin**: Her biri ne yaptığını açıkça tanımlamak için iş akışı adımlarınızı yeniden adlandırın. Bakım açısından yardımcı olur ve iş arkadaşlarına devretmeyi kolaylaştırır
* **Önceki adım verilerinden yararlanın**: İş akışınızdaki herhangi bir önceki adım tarafından döndürülen kayıtlardan alanları kullanabilirsiniz
* **Basit başlayın**: Temel iş akışlarıyla başlayın ve sistemle daha rahat hale geldikçe zamanla karmaşıklık ekleyin
* **Plan before building**: Map out your workflow logic before you start building to avoid getting stuck halfway through
* **Oluşturmadan önce plan yapın**: Yarı yolda takılıp kalmamak için oluşturmaya başlamadan önce iş akışınızın mantığını haritalandırın
## Sonraki Adımlar
* [Workflow Triggers](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/tr/user-guide/workflows/capabilities/workflow-actions)
* [CRM Automations](/l/tr/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
* [İş Akışı Tetikleyicileri](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
* [İş Akışı Eylemleri](/l/tr/user-guide/workflows/capabilities/workflow-actions)
* [CRM Otomasyonları](/l/tr/user-guide/workflows/how-tos/crm-automations/closed-won-automations)