i18n - docs translations (#16791)

Created by Github action

---------

Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
github-actions[bot]
2025-12-24 08:40:04 +01:00
committed by GitHub
parent b27a97f2c5
commit 1cd413834d
71 changed files with 2955 additions and 2955 deletions
@@ -1,6 +1,6 @@
---
title: الذكاء الاصطناعي
description: AI-powered features coming soon to Twenty.
description: ميزات مدعومة بالذكاء الاصطناعي قادمة قريبًا إلى Twenty.
---
<Frame>
@@ -9,54 +9,54 @@ description: AI-powered features coming soon to Twenty.
## ما القادم
Twenty is building AI capabilities to help your team work smarter. We're focusing on two major areas:
تعمل Twenty على بناء قدرات ذكاء اصطناعي لمساعدة فريقك على العمل بذكاء أكبر. نركز على مجالين رئيسيين:
### 1. AI Chatbot
### 1. روبوت محادثة بالذكاء الاصطناعي
A conversational assistant that understands your context and has access to all your Twenty data.
مساعد محادثة يفهم سياقك ولديه إمكانية الوصول إلى جميع بياناتك في Twenty.
**Key capabilities:**
**القدرات الرئيسية:**
* **Full data access**: Query any record, relationship, or metric in your workspace
* **Page context awareness**: Reference "this company" or "this opportunity" based on where you are in Twenty
* **Natural language**: Ask questions and get answers without navigating menus
* **وصول كامل إلى البيانات**: الاستعلام عن أي سجل أو علاقة أو مقياس في مساحة العمل لديك
* **إدراك سياق الصفحة**: الإشارة إلى "هذه الشركة" أو "هذه الفرصة" بناءً على مكانك في Twenty
* **اللغة الطبيعية**: اطرح الأسئلة واحصل على الإجابات دون التنقل عبر القوائم
**Example prompts:**
**أمثلة على الموجهات:**
* "What opportunities are closing this month?"
* "Which deals have been in Negotiation for more than 30 days?"
* "Summarize my interactions with this person"
* "ما الفرص التي ستُغلق هذا الشهر؟"
* "ما الصفقات التي كانت في مرحلة التفاوض لمدة تزيد على 30 يومًا؟"
* "لخِّص تفاعلاتي مع هذا الشخص"
### ٢. AI Agents in Workflows
### ٢. وكلاء الذكاء الاصطناعي في سير العمل
Extend your workflows with AI-powered actions and autonomous agents.
وسِّع سير العمل لديك بإجراءات مدعومة بالذكاء الاصطناعي ووكلاء مستقلين.
**Key capabilities:**
**القدرات الرئيسية:**
* **AI actions**: Use AI to enrich data, classify records, generate summaries, and more
* **Autonomous agents**: Let agents execute multi-step tasks within a workflow
* **Custom prompts**: Define exactly how AI should process your data
* **إجراءات الذكاء الاصطناعي**: استخدم الذكاء الاصطناعي لإثراء البيانات، وتصنيف السجلات، وإنشاء الملخصات، والمزيد
* **وكلاء مستقلون**: اسمح للوكلاء بتنفيذ مهام متعددة الخطوات ضمن سير عمل
* **موجهات مخصّصة**: حدِّد بدقة كيف ينبغي للذكاء الاصطناعي معالجة بياناتك
**حالات الاستخدام:**
* Automatically categorize inbound leads
* Enrich company data from public sources
* Generate follow-up email drafts based on meeting notes
* Score opportunities based on engagement patterns
* تصنيف العملاء المحتملين الواردين تلقائيًا
* إثراء بيانات الشركة من المصادر العامة
* إنشاء مسودات رسائل متابعة عبر البريد الإلكتروني استنادًا إلى ملاحظات الاجتماعات
* تقييم الفرص استنادًا إلى أنماط التفاعل
## Permissions and Access Control
## الأذونات والتحكّم في الوصول
AI agents will be managed through the existing permissions system:
سيُدار وكلاء الذكاء الاصطناعي عبر نظام الأذونات الحالي:
1. اذهب إلى **الإعدادات → الأدوار**
2. Configure which data each AI agent can access
3. Set read/write permissions per object
2. حدِّد البيانات التي يمكن لكل وكيل ذكاء اصطناعي الوصول إليها
3. عيّن أذونات القراءة/الكتابة لكل كائن
This ensures AI agents respect your data governance policies and only access what they need.
يضمن ذلك التزام وكلاء الذكاء الاصطناعي بسياسات حوكمة البيانات لديك والوصول فقط إلى ما يحتاجون إليه.
## ابق على إطلاع
We'll update this section as AI features become available. In the meantime:
سنحدّث هذا القسم عندما تصبح ميزات الذكاء الاصطناعي متاحة. وفي هذه الأثناء:
* Follow our [GitHub](https://github.com/twentyhq/twenty) for development updates
* Join our [Discord](https://discord.gg/twenty) to share feedback and feature requests
* تابع [GitHub](https://github.com/twentyhq/twenty) للاطّلاع على تحديثات التطوير
* انضم إلى [Discord](https://discord.gg/twenty) لمشاركة الملاحظات وطلبات الميزات
@@ -1,44 +1,44 @@
---
title: Can I Send Emails from Twenty?
description: Information about sending emails directly from Twenty.
title: هل يمكنني إرسال رسائل بريد إلكتروني من Twenty؟
description: معلومات حول إرسال رسائل البريد الإلكتروني مباشرةً من Twenty.
---
## Current Status
## الحالة الحالية
Twenty's email integration is designed to **sync and display** your email history. Emails cannot be composed or sent directly from Twenty's interface.
تم تصميم تكامل البريد الإلكتروني الخاص بـ Twenty لِـ **مزامنة وعرض** سجل بريدك الإلكتروني. لا يمكن إنشاء رسائل البريد الإلكتروني أو إرسالها مباشرةً من واجهة Twenty.
When you view an email thread on a record page and click **Reply**, you'll be redirected to the original thread in your mailbox (Gmail, Outlook, etc.). This is where you compose and send your reply.
عند عرض سلسلة بريد إلكتروني في صفحة سجل والنقر على **Reply**، سيتم إعادة توجيهك إلى السلسلة الأصلية في صندوق بريدك (Gmail وOutlook وما إلى ذلك). هنا تقوم بإنشاء ردّك وإرساله.
## What You Can Do Today
## ما الذي يمكنك فعله اليوم
* **View email history** on People, Companies, and Opportunities records
* **Read full email threads** with contacts in your CRM
* **Track communication context** alongside calendar events
* **Auto-create contacts** from email interactions
* **Reply via redirect** — click Reply to jump to your mailbox
* **عرض سجل البريد الإلكتروني** على سجلات الأشخاص والشركات والفرص
* **قراءة سلاسل البريد الإلكتروني كاملة** مع جهات الاتصال ضمن نظام إدارة علاقات العملاء (CRM)
* **تتبُّع سياق الاتصالات** إلى جانب أحداث التقويم
* **إنشاء جهات اتصال تلقائيًا** من تفاعلات البريد الإلكتروني
* **الرد عبر إعادة التوجيه** — انقر على Reply للانتقال إلى صندوق بريدك
## Sending Emails via Workflows
## إرسال رسائل البريد الإلكتروني عبر سير العمل
While you can't send emails manually from Twenty, you **can send emails automatically using Workflows**. This is useful for:
على الرغم من أنه لا يمكنك إرسال رسائل البريد الإلكتروني يدويًا من Twenty، إلا أنه يمكنك **إرسال رسائل البريد الإلكتروني تلقائيًا باستخدام سير العمل**. هذا مفيد من أجل:
* Automated follow-ups
* Notifications to contacts
* Triggered communications based on record changes
* متابعات تلقائية
* إشعارات لجهات الاتصال
* اتصالات مُحفَّزة بناءً على تغييرات السجل
Emails sent via workflows go through your connected mailbox account.
تُرسل رسائل البريد الإلكتروني عبر سير العمل من خلال حساب صندوق البريد المتصل لديك.
Learn about the [Send Email action](/l/ar/user-guide/workflows/capabilities/workflow-actions#send-email)
تعرّف على [إجراء إرسال البريد الإلكتروني](/l/ar/user-guide/workflows/capabilities/workflow-actions#send-email)
## Email Sequences and Newsletters
## تسلسلات البريد الإلكتروني والنشرات الإخبارية
For email sequences and newsletters, we recommend using workflows to connect Twenty to a dedicated email marketing tool.
بالنسبة لتسلسلات البريد الإلكتروني والنشرات الإخبارية، نوصي باستخدام سير العمل لربط Twenty بأداة مخصّصة للتسويق عبر البريد الإلكتروني.
<Warning>
Mass emails should not be sent directly from your mailbox to protect your domain reputation. Use a dedicated tool for bulk communications.
لا ينبغي إرسال رسائل بريد إلكتروني جماعية مباشرةً من صندوق بريدك لحماية سمعة نطاقك. استخدم أداة مخصّصة للاتصالات الجماعية.
</Warning>
See [How to send emails from workflows](/l/ar/user-guide/workflows/capabilities/send-emails-from-workflows) for setup instructions
اطّلع على [كيفية إرسال الرسائل عبر سير العمل](/l/ar/user-guide/workflows/capabilities/send-emails-from-workflows) للحصول على إرشادات الإعداد
## Future Plans
## الخطط المستقبلية
Native email composition from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
إن إنشاء رسائل البريد الإلكتروني محليًا من داخل Twenty مُدرج على خارطة الطريق لدينا. انضم إلى [نقاشات GitHub](https://github.com/twentyhq/twenty/discussions) لمشاركة حالة الاستخدام الخاصة بك والمساعدة في تحديد أولوية هذه الميزة.
@@ -1,35 +1,35 @@
---
title: Can I Track Email Activity on All Objects?
description: Understanding email activity tracking across different objects.
title: هل يمكنني تتبّع نشاط البريد الإلكتروني على جميع الكائنات؟
description: فهم تتبّع نشاط البريد الإلكتروني عبر كائنات مختلفة.
---
## Supported Objects
## الكائنات المدعومة
Email activity is currently available on **three standard objects**:
يتوفر نشاط البريد الإلكتروني حالياً على **ثلاثة كائنات قياسية**:
| كائن | What You See |
| ----------- | ---------------------------------------------------------------- |
| **People** | All emails exchanged with that specific contact |
| **الشركات** | All emails with anyone from that company (based on email domain) |
| **الفرص** | Emails related to the company linked to the opportunity |
| كائن | ما ستراه |
| ----------- | ------------------------------------------------------------------------------------------ |
| **الأشخاص** | جميع رسائل البريد الإلكتروني المتبادلة مع جهة الاتصال المحددة |
| **الشركات** | جميع رسائل البريد الإلكتروني مع أي شخص من تلك الشركة (استناداً إلى نطاق البريد الإلكتروني) |
| **الفرص** | رسائل البريد الإلكتروني المتعلقة بالشركة المرتبطة بالفرصة |
## Why Only These Objects?
## لماذا هذه الكائنات فقط؟
People, Companies, and Opportunities are the core relationship objects where email context adds the most value. Email threads are automatically linked based on:
الأشخاص والشركات والفرص هي كائنات العلاقات الأساسية حيث يضيف سياق البريد الإلكتروني أكبر قيمة. يتم ربط سلاسل البريد الإلكتروني تلقائياً بناءً على:
* **Email address** → matched to People records
* **Email domain** → matched to Company records
* **Company relation** → linked to Opportunities
* **عنوان البريد الإلكتروني** → تتم مطابقته مع سجلات الأشخاص
* **نطاق البريد الإلكتروني** → تتم مطابقته مع سجلات الشركة
* **علاقة الشركة** → ترتبط بالفرص
## كائنات مخصصة
**Email tracking is not available on custom objects** at this time.
**تتبّع البريد الإلكتروني غير متاح على الكائنات المخصصة** في الوقت الحالي.
If you need email context on a custom object, consider:
إذا كنت بحاجة إلى سياق البريد الإلكتروني على كائن مخصص، ففكّر في:
* Using a relation field to link your custom object to People or Companies
* Viewing email history on the linked People/Company record
* استخدام حقل علاقة لربط كائنك المخصص بالأشخاص أو الشركات
* عرض سجل البريد الإلكتروني في سجل الأشخاص/الشركة المرتبط
## Future Plans
## الخطط المستقبلية
Extending email visibility to custom objects is being considered. Share your use case on our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to help prioritize this feature.
يجري النظر في توسيع إمكانية عرض البريد الإلكتروني لتشمل الكائنات المخصصة. شارِك حالة الاستخدام الخاصة بك على [نقاشات GitHub](https://github.com/twentyhq/twenty/discussions) للمساعدة في تحديد أولوية هذه الميزة.
@@ -176,23 +176,23 @@ import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
VALUE1
```
See [here](#finding-api-names-for-select-fields) where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing.</Note>
اطلع [هنا](#finding-api-names-for-select-fields) على مكان العثور على أسماء واجهة برمجة التطبيقات.
<Note>لن يتم إنشاء خيارات الاختيار الجديدة تلقائيًا بواسطة الاستيراد. يجب إضافتها ضمن **الإعدادات → نموذج البيانات** قبل الاستيراد.</Note>
### Text Fields
### الحقول النصية
* No special formatting required
* Leading/trailing spaces are trimmed
* لا يلزم تنسيق خاص
* تُزال المسافات في البداية والنهاية
## Finding API Names
## العثور على أسماء واجهة برمجة التطبيقات
For Select, Multi-Select, and Array fields with predefined options, you must use the **API names**, not the display labels.
بالنسبة لحقول الاختيار، والاختيار المتعدد، والمصفوفة ذات الخيارات المحددة مسبقًا، يجب استخدام **أسماء واجهة برمجة التطبيقات**، وليس تسميات العرض.
### How to Find API Names
### كيفية العثور على أسماء واجهة برمجة التطبيقات
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at the bottom right of the settings page)
4. View the API name for each option
1. اذهب إلى **الإعدادات → نموذج البيانات**
2. اختر الكائن والحقل
3. فعّل **الوضع المتقدم** (زر التبديل في أسفل يمين صفحة الإعدادات)
4. اعرض اسم واجهة برمجة التطبيقات لكل خيار
<VimeoEmbed videoId="1144910809" title="Video demonstration" />
<VimeoEmbed videoId="1144910809" title="عرض توضيحي بالفيديو" />
@@ -1,6 +1,6 @@
---
title: ما هو Twenty
description: Twenty is an open-source CRM that gives you the building blocks to create exactly what your business needs.
description: Twenty هو نظام إدارة علاقات العملاء (CRM) مفتوح المصدر يوفّر لك اللبنات الأساسية لإنشاء ما يحتاجه عملك بدقة.
---
## الرؤية
@@ -26,11 +26,11 @@ description: Twenty is an open-source CRM that gives you the building blocks to
## الميزات الرئيسية
* **Calendar & Emails:** Sync your mailbox and calendar to see all communications on your CRM records. [تعرف على المزيد](/l/ar/user-guide/calendar-emails/overview).
* **Data Model:** Create custom objects and fields to match your unique business processes. [Explore](/l/ar/user-guide/data-model/overview).
* **Data Migration:** Import and export your data via CSV or API. [ابدأ](/l/ar/user-guide/data-migration/overview).
* **Views & Pipelines:** Organize your data with table views, kanban boards, and sales pipelines. [Discover](/l/ar/user-guide/views-pipelines/overview).
* **Workflows:** Automate your business processes and integrate with external tools. [Build automations](/l/ar/user-guide/workflows/overview).
* **التقويم والبريد الإلكتروني:** قم بمزامنة صندوق بريدك وتقويمك لترى جميع الاتصالات على سجلاتك في نظام إدارة علاقات العملاء (CRM). [تعرف على المزيد](/l/ar/user-guide/calendar-emails/overview).
* **نموذج البيانات:** أنشئ كائنات وحقولاً مخصصة لتتوافق مع عمليات عملك الفريدة. [استكشف](/l/ar/user-guide/data-model/overview).
* **ترحيل البيانات:** استورد بياناتك وصدّرها عبر CSV أو API. [ابدأ](/l/ar/user-guide/data-migration/overview).
* **طرق العرض والمسارات:** نظّم بياناتك باستخدام طرق عرض الجدول، ولوحات كانبان، ومسارات المبيعات. [اكتشف](/l/ar/user-guide/views-pipelines/overview).
* **سير العمل:** قم بأتمتة عمليات عملك ودمجها مع الأدوات الخارجية. [أنشئ عمليات أتمتة](/l/ar/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/ar/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/ar/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/ar/user-guide/permissions-access/overview).
@@ -1,46 +1,46 @@
---
title: عرض التقويم
description: Display records with date fields on a calendar.
description: اعرض السجلات التي تحتوي على حقول تاريخ على تقويم.
---
## About Calendar View
## حول عرض التقويم
Calendar view displays your records on a calendar based on a date field. Each record appears as an event on the corresponding date.
يعرض عرض التقويم سجلاتك على تقويم استنادًا إلى حقل تاريخ. يظهر كل سجل كحدث في التاريخ المقابل.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Creating a Calendar View
## إنشاء طريقة عرض التقويم
1. Navigate to an object with date fields
2. Click the view dropdown → **+ Add view**
3. Name your view and click **Create**
4. Open the **Options** on the right
5. Select **Calendar** as the layout
6. Choose the **date field** to use for positioning records
7. Click **Update view**
1. انتقل إلى كائن يحتوي على حقول تاريخ
2. انقر على القائمة المنسدلة لطريقة العرض → **+ إضافة طريقة عرض**
3. قم بتسمية طريقة العرض الخاصة بك ثم انقر على **إنشاء**
4. افتح **الخيارات** على اليمين
5. حدد **التقويم** كتخطيط
6. اختر **حقل التاريخ** لاستخدامه في تحديد موضع السجلات
7. انقر على **تحديث طريقة العرض**
## Configuring the Calendar
## تهيئة التقويم
### Choose the Date Field
### اختر حقل التاريخ
Under **Options**, select which date field determines where records appear on the calendar.
ضمن **الخيارات**، حدد أي حقل تاريخ يحدد مكان ظهور السجلات على التقويم.
### Display Fields
### حقول العرض
Configure which fields show on each calendar event:
قم بتهيئة الحقول التي تظهر في كل حدث في التقويم:
1. Click **Options → Fields**
2. Toggle fields on/off
3. Drag to reorder
1. انقر على **الخيارات → الحقول**
2. بدل حالة الحقول تشغيل/إيقاف
3. اسحب لإعادة الترتيب
## Use Cases
## حالات الاستخدام
* **Meetings and calls**: View upcoming appointments
* **Deadlines**: Track due dates and close dates
* **Events**: Plan and visualize scheduled activities
* **Follow-ups**: See when tasks are due
* **الاجتماعات والمكالمات**: اعرض المواعيد القادمة
* **المواعيد النهائية**: تتبع تواريخ الاستحقاق وتواريخ الإغلاق
* **الفعاليات**: خطط وتصور الأنشطة المجدولة
* **المتابعات**: اطلع على مواعيد استحقاق المهام
## Related
## ذات صلة
* [Views Overview](/l/ar/user-guide/views-pipelines/overview) — creating and managing views
* [Filters and Sorting](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtering calendar data
* [نظرة عامة على طرق العرض](/l/ar/user-guide/views-pipelines/overview) — إنشاء طرق العرض وإدارتها
* [عوامل التصفية والفرز](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — تصفية بيانات التقويم
@@ -1,51 +1,51 @@
---
title: Create a Table View with Grouping
description: Organize your records into collapsible groups by field value.
title: إنشاء عرض الجدول مع التجميع
description: نظم سجلاتك في مجموعات قابلة للطي حسب قيمة الحقل.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Group your table view by a Select field to organize records into collapsible sections.
قم بتجميع عرض الجدول حسب حقل الاختيار لتنظيم السجلات في أقسام قابلة للطي.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Steps
## الخطوات
1. Navigate to the object (People, Companies, etc.)
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Companies by Type")
4. Click **Create**
5. Click **Options → Group**
6. Choose a Select field to group by
1. انتقل إلى الكائن (الأشخاص، الشركات، إلخ)
2. انقر على القائمة المنسدلة لطريقة العرض → **+ إضافة طريقة عرض**
3. قم بتسمية العرض (مثلا: "الشركات حسب النوع")
4. انقر على **إنشاء**
5. انقر على **الخيارات → التجميع**
6. اختر حقل الاختيار للتجميع حسبه
7. انقر على **حفظ**
## Configure Group Order
## تكوين ترتيب المجموعات
Under **Options → Group → Sort**, choose how groups are ordered:
ضمن **الخيارات → التجميع → الفرز**، اختر كيفية ترتيب المجموعات:
| الخيار | الوصف |
| ------------------------ | --------------------------------------------- |
| **Alphabetical** | A to Z |
| **Reverse alphabetical** | Z to A |
| **Manual order** | Drag groups to reorder under "Visible groups" |
| الخيار | الوصف |
| -------------- | ----------------------------------------------------- |
| **أبجدي** | من A إلى Z |
| **أبجدي عكسي** | من Z إلى A |
| **ترتيب يدوي** | اسحب المجموعات لإعادة ترتيبها ضمن "المجموعات المرئية" |
Click the **eye icon** next to a group to hide it from the view.
انقر على **أيقونة العين** بجانب مجموعة لإخفائها من العرض.
<Note>
**For best performance, limit to 10-15 visible groups.** If you need more, consider using a Dashboard instead.
**لأفضل أداء، احصر العدد في 10-15 مجموعة مرئية.** إذا احتجت إلى المزيد، فكر في استخدام لوحة المعلومات بدلا من ذلك.
</Note>
## Example: Companies by Industry
## مثال: الشركات حسب الصناعة
1. Go to **Companies**
2. Create a new view named "By Industry"
3. Click **Options → Group**
4. Select the **Industry** field
1. اذهب إلى **الشركات**
2. أنشئ عرضا جديدا باسم "حسب الصناعة"
3. انقر على **الخيارات → التجميع**
4. اختر حقل **الصناعة**
5. حفظ
Now your companies are organized by industry, making it easy to focus on one segment at a time.
الآن أصبحت شركاتك منظمة حسب الصناعة، مما يسهل التركيز على شريحة واحدة في كل مرة.
## Related
## ذات صلة
* [Table Views](/l/ar/user-guide/views-pipelines/capabilities/table-views) — all table view features
* [Filters and Sorting](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — combine grouping with filters
* [عروض الجدول](/l/ar/user-guide/views-pipelines/capabilities/table-views) — جميع ميزات عرض الجدول
* [عوامل التصفية والفرز](/l/ar/user-guide/views-pipelines/capabilities/filters-and-sorting) — اجمع بين التجميع وعوامل التصفية
@@ -1,44 +1,44 @@
---
title: Set Up a Webhook Trigger
description: Receive data from external services to trigger workflows.
title: إعداد مشغّل ربط الويب
description: استقبل بيانات من خدمات خارجية لتشغيل عمليات سير العمل.
image: /images/user-guide/workflows/workflow.png
---
Webhook triggers allow external services to start your workflows by sending data to a unique URL. Use them to connect forms, third-party apps, and custom integrations.
تتيح مشغّلات ربط الويب للخدمات الخارجية بدء تشغيل عمليات سير العمل لديك عبر إرسال بيانات إلى عنوان URL فريد. استخدمها لربط النماذج والتطبيقات من جهات خارجية والتكاملات المخصّصة.
## When to Use Webhooks
## متى تستخدم ربط الويب
| Use Case | مثال |
| ----------------------- | --------------------------------------- |
| **Web forms** | Contact form submissions create leads |
| **Third-party apps** | Stripe payment → create customer record |
| **Custom integrations** | Your app → Twenty automation |
| **No-code tools** | Zapier, Make, n8n connections |
| حالة الاستخدام | مثال |
| ----------------------- | ---------------------------------------------- |
| **نماذج الويب** | تُنشئ عمليات إرسال نموذج الاتصال عملاء محتملين |
| **تطبيقات جهات خارجية** | دفعة Stripe → إنشاء سجل عميل |
| **تكاملات مخصّصة** | تطبيقك → أتمتة Twenty |
| **أدوات بدون كود** | اتصالات Zapier وMake وn8n |
## Step-by-Step Setup
## إعداد خطوة بخطوة
### Step 1: Create the Workflow
### الخطوة 1: إنشاء سير العمل
1. Go to **Settings → Workflows**
2. Click **+ New Workflow**
3. Name it (e.g., "Website Form Submission")
1. اذهب إلى **الإعدادات → سير العمل**
2. انقر **+ سير عمل جديد**
3. قم بتسميته (مثلًا، "إرسال نموذج الموقع")
### Step 2: Configure the Webhook Trigger
### الخطوة 2: تهيئة مشغّل ربط الويب
1. Click on the trigger block
2. Select **Webhook**
3. You'll receive a unique webhook URL like:
1. انقر على كتلة المشغّل
2. اختر **ربط الويب**
3. ستتلقى عنوان URL فريدًا لربط الويب مثل:
```
https://api.twenty.com/webhooks/workflow/abc123...
```
4. Copy this URL—you'll need it for your external service
4. انسخ هذا العنوان URL - ستحتاج إليه لخدمتك الخارجية
### Step 3: Define Expected Data Structure
### الخطوة 3: تحديد بنية البيانات المتوقعة
For **POST** requests, define the expected body structure:
بالنسبة لطلبات **POST**، حدِّد بنية جسم الطلب المتوقعة:
1. Click **Define expected body**
2. Enter a sample JSON that matches what your service will send:
1. انقر **تحديد الجسم المتوقع**
2. أدخل JSON نموذجيًا يطابق ما سترسله خدمتك:
```json
{
@@ -50,30 +50,30 @@ For **POST** requests, define the expected body structure:
}
```
3. Click **Save**—this creates variables you can use in subsequent steps
3. انقر **حفظ** - سيؤدي هذا إلى إنشاء متغيّرات يمكنك استخدامها في الخطوات اللاحقة
### Step 4: Add Actions
### الخطوة 4: إضافة إجراءات
Now add actions that use the webhook data:
أضف الآن إجراءات تستخدم بيانات ربط الويب:
**Example: Create a Person record**
**مثال: إنشاء سجل شخص**
1. Add **Create Record** action
2. Select **People** object
3. Map fields:
1. أضف إجراء **إنشاء سجل**
2. حدِّد كائن **الأشخاص**
3. عيّن الحقول:
| الحقل | القيمة |
| ----------------- | ---------------------------------------------------- |
| الاسم الأول | `{{trigger.body.firstName}}` |
| الاسم الأخير | `{{trigger.body.lastName}}` |
| البريد الإلكتروني | `{{trigger.body.email}}` |
| الشركة | Search or create based on `{{trigger.body.company}}` |
| الحقل | القيمة |
| ----------------- | ------------------------------------------------- |
| الاسم الأول | `{{trigger.body.firstName}}` |
| الاسم الأخير | `{{trigger.body.lastName}}` |
| البريد الإلكتروني | `{{trigger.body.email}}` |
| الشركة | ابحث أو أنشئ بناءً على `{{trigger.body.company}}` |
### Step 5: Test the Webhook
### الخطوة 5: اختبار ربط الويب
Before activating, test your webhook:
قبل التفعيل، اختبر ربط الويب لديك:
**Using cURL**:
**باستخدام cURL**:
```bash
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
@@ -81,22 +81,22 @@ curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
-d '{"firstName":"Test","lastName":"User","email":"test@example.com"}'
```
**Using Postman or similar**:
**باستخدام Postman أو ما شابهه**:
1. Create a POST request to your webhook URL
2. Set Content-Type header to `application/json`
3. Add your test JSON body
4. Send and check workflow runs
1. أنشئ طلب POST إلى عنوان ربط الويب الخاص بك
2. عيّن ترويسة Content-Type إلى `application/json`
3. أضف جسم JSON الاختباري الخاص بك
4. أرسل وتحقّق من تشغيلات سير العمل
### Step 6: Activate
### الخطوة 6: التفعيل
Once tested, click **Activate** to make the workflow live.
بعد الاختبار، انقر **تفعيل** لجعل سير العمل فعّالًا.
## Handling Different Data Structures
## التعامل مع بُنى بيانات مختلفة
### Nested Data
### بيانات متداخلة
If your webhook sends nested data:
إذا كان ربط الويب يرسل بيانات متداخلة:
```json
{
@@ -108,11 +108,11 @@ If your webhook sends nested data:
}
```
Reference with: `{{trigger.body.contact.email}}`
أشر إليها باستخدام: `{{trigger.body.contact.email}}`
### Arrays
### المصفوفات
If data includes arrays:
إذا كانت البيانات تتضمن مصفوفات:
```json
{
@@ -123,11 +123,11 @@ If data includes arrays:
}
```
How you handle arrays depends on your use case:
تعتمد طريقة تعاملك مع المصفوفات على حالة الاستخدام لديك:
**Unknown number of items → Use Iterator**
**عدد العناصر غير معروف → استخدم Iterator**
If you need to process each item in the array (e.g., create a record for each), add a **Code** action to parse the array, then use **Iterator**:
إذا كنت بحاجة إلى معالجة كل عنصر في المصفوفة (مثلًا، إنشاء سجل لكل عنصر)، أضف إجراء **Code** لتحليل المصفوفة، ثم استخدم **Iterator**:
```javascript
export const main = async (params: { items: any }) => {
@@ -138,11 +138,11 @@ export const main = async (params: { items: any }) => {
};
```
Then use Iterator to loop through: `{{code.items}}`
ثم استخدم Iterator للتكرار عبر: `{{code.items}}`
**Known/specific fields → Extract to named fields**
**حقول معروفة/محددة → استخرجها إلى حقول مسماة**
If the array contains specific fields you want to access individually (e.g., form answers where position 0 is always "first name", position 1 is always "last name"), add a **Code** action to extract them:
إذا كانت المصفوفة تحتوي على حقول محددة تريد الوصول إليها بشكل فردي (مثلًا، إجابات نموذج حيث الموضع 0 دائمًا هو "الاسم الأول"، والموضع 1 دائمًا هو "اسم العائلة")، فأضف إجراء **Code** لاستخراجها:
```javascript
export const main = async (params: { items: any }) => {
@@ -159,13 +159,13 @@ export const main = async (params: { items: any }) => {
};
```
Now you can select `product.name` and `product.qty` individually in subsequent steps.
يمكنك الآن اختيار `product.name` و`product.qty` بشكل فردي في الخطوات اللاحقة.
<Tip>
For more details on handling arrays, see [Handle Arrays in Code Actions](/l/ar/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
لمزيد من التفاصيل حول التعامل مع المصفوفات، راجع [التعامل مع المصفوفات في إجراءات Code](/l/ar/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
</Tip>
## Related
## ذات صلة
* [Workflow Triggers](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ar/user-guide/workflows/capabilities/workflow-actions)
* [مشغلات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
* [إجراءات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-actions)
@@ -1,48 +1,48 @@
---
title: Workflows FAQ
description: Frequently asked questions about workflows in Twenty.
title: الأسئلة الشائعة حول سير العمل
description: الأسئلة الشائعة حول سير العمل في Twenty.
---
<AccordionGroup>
<Accordion title="Why can't I activate a workflow?">
This is likely a permissions issue. You need access to workflows to create and activate them.
<Accordion title="لماذا لا أستطيع تفعيل سير عمل؟">
من المحتمل أن تكون مشكلة أذونات. تحتاج إلى صلاحية الوصول إلى سير العمل لإنشائها وتفعيلها.
**Solution**: Contact your workspace administrator to grant you workflow access under **Settings → Roles**.
**الحل**: تواصل مع مسؤول مساحة العمل لمنحك صلاحية الوصول إلى سير العمل ضمن **الإعدادات → الأدوار**.
If you don't see the Workflows section at all in your sidebar, this confirms it's a permissions issue.
إذا لم ترَ قسم سير العمل إطلاقاً في الشريط الجانبي لديك، فهذا يؤكد أنها مشكلة أذونات.
</Accordion>
<Accordion title="Why don't I see my manual workflow button in the top navbar?">
Manual workflows only appear in the navbar if properly configured:
<Accordion title="لماذا لا أرى زر سير العمل اليدوي في شريط التنقل العلوي؟">
تظهر عمليات سير العمل اليدوية في شريط التنقل فقط إذا تم إعدادها بشكل صحيح:
1. The workflow must be **activated** (not in draft mode)
2. The navbar placement must be set to **Pinned**
3. For Single/Bulk triggers, you must be on the correct object page
1. يجب أن يكون سير العمل **مفعَّلاً** (ليس في وضع المسودة)
2. يجب تعيين موضع شريط التنقل إلى **Pinned**
3. بالنسبة لمشغلات Single/Bulk، يجب أن تكون في صفحة الكائن الصحيحة
**To check**: Open the workflow → click the trigger → verify "Navbar placement" is set to "Pinned".
**للتحقق**: افتح سير العمل → انقر المشغل → تأكد من أن "Navbar placement" معيّن إلى "Pinned".
You can always access manual workflows via **Cmd + K** (or **Ctrl + K**) regardless of navbar settings.
يمكنك دائماً الوصول إلى عمليات سير العمل اليدوية عبر **Cmd + K** (أو **Ctrl + K**) بغض النظر عن إعدادات شريط التنقل.
</Accordion>
<Accordion title="What's the difference between Single, Global, and Bulk manual triggers?">
| النوع | Records Required | عمليات تشغيل سير العمل |
<Accordion title="ما الفرق بين المشغلات اليدوية Single وGlobal وBulk؟">
| النوع | السجلات المطلوبة | عمليات تشغيل سير العمل |
| ----- | ---------------- | ---------------------- |
\| **Global** | None | Once, no record input |
\| **Single** | One or more selected | Once per selected record |
\| **Bulk** | One or more selected | Once, with all records as array |
\| **Global** | لا شيء | مرة واحدة، دون إدخال سجل |
\| **Single** | واحد أو أكثر محدد | مرة لكل سجل محدد |
\| **Bulk** | واحد أو أكثر محدد | مرة واحدة، مع جميع السجلات كمصفوفة |
* **Global**: Use when the workflow doesn't need any record context (e.g., generate a report)
* **Single**: Use when you want to process each selected record independently (e.g., send individual emails)
* **Bulk**: Use when you need to process records together or optimize credit usage (requires Iterator action)
* **Global**: استخدمه عندما لا يحتاج سير العمل إلى سياق أي سجل (مثال: إنشاء تقرير)
* **Single**: استخدمه عندما تريد معالجة كل سجل محدد بشكل مستقل (مثال: إرسال رسائل بريد إلكتروني فردية)
* **Bulk**: استخدمه عندما تحتاج إلى معالجة السجلات معاً أو تحسين استخدام الرصيد (يتطلب إجراء Iterator)
See [Workflow Triggers](/l/ar/user-guide/workflows/capabilities/workflow-triggers) for details.
راجع [مشغلات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-triggers) للحصول على التفاصيل.
</Accordion>
<Accordion title="I don't see an If/Else node. ماذا يجب أن أفعل؟">
An explicit If/Else node is not yet available but is on our roadmap.
<Accordion title="لا أرى عقدة If/Else. ماذا يجب أن أفعل؟">
عقدة If/Else صريحة غير متاحة بعد، لكنها ضمن خارطة الطريق لدينا.
**Current workaround**: Create multiple branches from your step, each starting with a **Filter** action:
**الحل المؤقت الحالي**: أنشئ عدة فروع من خطوتك، يبدأ كل منها بإجراء **Filter**:
```
Step 1
@@ -52,203 +52,203 @@ description: Frequently asked questions about workflows in Twenty.
└── Branch B: Filter (condition = false) → Actions...
```
Only the branch where the filter condition passes will execute its subsequent actions.
فقط الفرع الذي يمر فيه شرط التصفية سيُنفِّذ إجراءاته اللاحقة.
See [How to Use Branches](/l/ar/user-guide/workflows/capabilities/workflow-branches) for a step-by-step guide.
راجع [كيفية استخدام الفروع](/l/ar/user-guide/workflows/capabilities/workflow-branches) للحصول على دليل خطوة بخطوة.
</Accordion>
<Accordion title="Are workflow branches running in parallel?">
**Yes**, branches run in parallel by default.
<Accordion title="هل تعمل فروع سير العمل بالتوازي؟">
**نعم**، تعمل الفروع بالتوازي افتراضياً.
If you want only one branch to execute:
إذا كنت تريد تنفيذ فرع واحد فقط:
* Add a **Filter** action at the start of each branch
* Set opposite conditions (e.g., Branch A: status = "Open", Branch B: status ≠ "Open")
* أضف إجراء **Filter** في بداية كل فرع
* عيّن شروطاً متعاكسة (مثال: Branch A: status = "Open", Branch B: status ≠ "Open")
Branches that fail their filter condition stop executing, while others continue.
الفروع التي لا تستوفي شرط التصفية تتوقف عن التنفيذ، بينما تستمر الفروع الأخرى.
</Accordion>
<Accordion title="Can I merge branches back together?">
**Yes**. After your parallel branches complete, you can add a step that both branches connect to.
<Accordion title="هل يمكنني دمج الفروع معاً مرة أخرى؟">
**نعم**. بعد اكتمال فروعك المتوازية، يمكنك إضافة خطوة يتصل بها الفرعان.
In the workflow editor:
في محرر سير العمل:
1. Complete your branched actions
2. Add a new step after the branches
3. Drag connections from the end of each branch to this new step
1. أكمل إجراءات الفروع
2. أضف خطوة جديدة بعد الفروع
3. اسحب الاتصالات من نهاية كل فرع إلى هذه الخطوة الجديدة
The merged step will execute after all connected branches complete.
ستُنفَّذ الخطوة المدمجة بعد اكتمال جميع الفروع المتصلة.
</Accordion>
<Accordion title="What's the limit on Search Records results?">
**Search Records returns a maximum of 200 records.**
<Accordion title="ما الحد الأقصى لنتائج Search Records؟">
**تعيد Search Records بحد أقصى 200 سجل.**
If you need to process more:
إذا كنت بحاجة إلى معالجة المزيد:
* Add more specific filters to reduce results
* Use scheduled workflows to process in batches
* Consider using the API for bulk operations
* أضف عوامل تصفية أكثر تحديداً لتقليل النتائج
* استخدم سير عمل مجدولاً للمعالجة على دفعات
* فكّر في استخدام الـAPI للعمليات المجمّعة
For most workflows, 200 records is sufficient. If you regularly hit this limit, consider restructuring your automation.
بالنسبة لمعظم سير العمل، يكفي 200 سجل. إذا بلغت هذا الحد بشكل متكرر، فكر في إعادة هيكلة الأتمتة لديك.
</Accordion>
<Accordion title="Can I CC people on workflow emails?">
**Not yet.** CC and BCC fields for the Send Email action are on our roadmap.
<Accordion title="هل يمكنني إضافة CC إلى الأشخاص في رسائل البريد الخاصة بسير العمل؟">
**ليس بعد.** حقولا CC وBCC لإجراء Send Email على خارطة الطريق لدينا.
**Current workaround**: Add multiple Send Email actions to send to additional recipients, or use an HTTP Request to send via an external email service that supports CC.
**الحل المؤقت الحالي**: أضف عدة إجراءات Send Email للإرسال إلى مستلمين إضافيين، أو استخدم HTTP Request للإرسال عبر خدمة بريد إلكتروني خارجية تدعم CC.
</Accordion>
<Accordion title="How do I use outputs from previous steps?">
Every action produces output data that can be used in subsequent steps.
<Accordion title="كيف أستخدم مخرجات الخطوات السابقة؟">
كل إجراء ينتج بيانات مخرجات يمكن استخدامها في الخطوات اللاحقة.
**To reference previous step data**:
**للإشارة إلى بيانات الخطوات السابقة**:
* Use the variable picker when configuring a field
* Or type `{{stepName.fieldName}}` directly
* استخدم أداة اختيار المتغير عند تكوين حقل
* أو اكتب `{{stepName.fieldName}}` مباشرةً
**أمثلة**:
* Trigger data: `{{trigger.object.email}}`
* Search results: `{{searchRecords[0].name}}`
* Code output: `{{code.calculatedValue}}`
* بيانات المشغل: `{{trigger.object.email}}`
* نتائج البحث: `{{searchRecords[0].name}}`
* مخرجات الكود: `{{code.calculatedValue}}`
Hover over any field in the action configuration to see available variables from previous steps.
مرّر المؤشر فوق أي حقل في تكوين الإجراء لرؤية المتغيرات المتاحة من الخطوات السابقة.
</Accordion>
<Accordion title="Why does my Iterator fail?">
**Iterator requires an array input.** Common issues:
<Accordion title="لماذا يفشل Iterator لدي؟">
**Iterator يتطلب مُدخلًا من نوع مصفوفة.** مشكلات شائعة:
1. **Input is not an array**: Ensure you're passing results from Search Records or another action that returns an array
2. **Array is empty**: Add a filter before Iterator to check `{{searchRecords.length}} > 0`
3. **Wrong variable selected**: Make sure you select the array itself, not a single record
1. **المدخل ليس مصفوفة**: تأكد من أنك تمرر نتائج من Search Records أو إجراء آخر يُرجع مصفوفة
2. **المصفوفة فارغة**: أضف عامل تصفية قبل Iterator للتحقق من `{{searchRecords.length}} > 0`
3. **تم اختيار متغير خاطئ**: تأكد من اختيارك للمصفوفة نفسها، وليس سجلاً واحداً
**Correct setup**:
**الإعداد الصحيح**:
1. Search Records (returns array)
1. Search Records (تُرجع مصفوفة)
2. Filter: length > 0
3. Iterator: select `{{searchRecords}}`
4. Actions inside iterator use `{{iterator.currentItem.fieldName}}`
3. Iterator: اختر `{{searchRecords}}`
4. الإجراءات داخل Iterator تستخدم `{{iterator.currentItem.fieldName}}`
</Accordion>
<Accordion title="What's the maximum execution time for Code actions?">
Code actions (serverless functions) have a **default timeout of 5 minutes** (300 seconds).
<Accordion title="ما أقصى وقت تنفيذ لإجراءات Code؟">
إجراءات Code (دوال بلا خادم) لديها **مهلة افتراضية قدرها 5 دقائق** (300 ثانية).
The maximum configurable timeout is **15 minutes** (900 seconds).
أقصى مهلة يمكن ضبطها هي **15 دقيقة** (900 ثانية).
If your code exceeds this limit, the action will fail with a timeout error.
إذا تجاوز الكود هذا الحد، سيفشل الإجراء بخطأ انتهاء المهلة.
**Tips to avoid timeouts**:
**نصائح لتجنب انتهاء المهلة**:
* Break large operations into smaller chunks using Iterator
* Avoid heavy computations; use external services via HTTP Request for intensive processing
* Optimize your code to reduce execution time
* If you need longer processing, consider using scheduled workflows that process data in batches
* قسّم العمليات الكبيرة إلى أجزاء أصغر باستخدام Iterator
* تجنب العمليات الحسابية الثقيلة؛ استخدم خدمات خارجية عبر HTTP Request للمعالجة المكثفة
* حسّن الكود لديك لتقليل وقت التنفيذ
* إذا كنت بحاجة إلى معالجة أطول، ففكّر في استخدام سير عمل مجدول يعالج البيانات على دفعات
</Accordion>
<Accordion title="How do I read workflow runs?">
Workflow runs show the execution history and help you debug issues.
<Accordion title="كيف أقرأ تشغيلات سير العمل؟">
تعرض تشغيلات سير العمل سجل التنفيذ وتساعدك على تصحيح المشكلات.
**Access runs**:
**الوصول إلى التشغيلات**:
* In workflow editor → **Runs** panel on the right
* Or go to **Workflow Runs** in the sidebar
* في محرر سير العمل → لوحة **التشغيلات** على اليمين
* أو انتقل إلى **تشغيلات سير العمل** في الشريط الجانبي
**Understanding a run**:
**فهم التشغيل**:
* **Status**: Running, Completed, Failed, Waiting
* **Steps**: See which steps executed and their output
* **Errors**: Click failed steps to see error messages
* **Data**: View input/output data at each step
* **الحالة**: قيد التشغيل، مكتمل، فشل، في الانتظار
* **الخطوات**: اطّلِع على الخطوات التي تم تنفيذها ومخرجاتها
* **الأخطاء**: انقر الخطوات الفاشلة لرؤية رسائل الخطأ
* **البيانات**: اعرض بيانات الإدخال/الإخراج في كل خطوة
See [Workflow Runs](/l/ar/user-guide/workflows/capabilities/workflow-runs) for details.
راجع [تشغيلات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-runs) للحصول على التفاصيل.
</Accordion>
<Accordion title="Why don't I see my workflow runs?">
Workflow runs might be failing immediately due to rate limits.
<Accordion title="لماذا لا أرى تشغيلات سير العمل الخاصة بي؟">
قد تفشل تشغيلات سير العمل فوراً بسبب حدود المعدل.
**Hard limit: 5,000 runs per hour per workspace.**
**حد صارم: 5,000 عملية تشغيل في الساعة لكل مساحة عمل.**
If you exceed this limit, workflows are immediately marked as failed and won't appear in your runs list as expected.
إذا تجاوزت هذا الحد، ستُعلَّم عمليات التشغيل فوراً كفاشلة ولن تظهر في قائمة التشغيلات كما هو متوقع.
**Common scenarios that hit this limit**:
**سيناريوهات شائعة تصل إلى هذا الحد**:
* Selecting more than 5,000 records with a Single manual trigger
* Multiple workflows running simultaneously across your workspace
* High-frequency automated triggers (e.g., Record Updated on a busy object)
* اختيار أكثر من 5,000 سجل باستخدام مشغل يدوي Single
* تشغيل عدة سير عمل بالتزامن عبر مساحة العمل
* مشغلات آلية عالية التكرار (مثال: Record Updated على كائن مزدحم)
**حلول**:
* Use **Bulk** triggers instead of Single to process many records in one run
* Space out large batch operations
* Use filters to reduce trigger frequency
* Schedule heavy workflows during off-peak hours
* استخدم مشغلات **Bulk** بدلاً من Single لمعالجة العديد من السجلات في تشغيل واحد
* وزّع العمليات الدفعية الكبيرة زمنياً
* استخدم عوامل تصفية لتقليل تكرار المشغل
* قم بجدولة سير العمل الثقيلة خلال ساعات خارج أوقات الذروة
</Accordion>
<Accordion title="What are the workflow rate limits?">
Twenty has two rate limits to ensure system stability:
<Accordion title="ما هي حدود معدل سير العمل؟">
لدى Twenty حدّان للمعدل لضمان استقرار النظام:
| Limit | القيمة | Behavior |
| ----- | ------ | -------- |
| الحد | القيمة | السلوك |
| ---- | ------ | ------ |
\| **Soft limit** | 100 runs/minute | Runs queue in "Not Started" status, processed gradually |
\| **Hard limit** | 5,000 runs/hour | Runs immediately fail |
\| **حد مرن** | 100 تشغيل/دقيقة | تُصفّ في قائمة الانتظار بحالة "Not Started" وتُعالَج تدريجياً |
\| **حد صارم** | 5,000 تشغيل/ساعة | تفشل التشغيلات فوراً |
**Soft limit (100/min)**: Your workflows won't fail—they just wait in the queue and are processed over time. You can trigger more than 100 records; execution will be slower.
**الحد المرن (100/دقيقة)**: لن تفشل سير العمل لديك—ستنتظر فقط في قائمة الانتظار وتُعالَج بمرور الوقت. يمكنك تشغيل أكثر من 100 سجل؛ سيكون التنفيذ أبطأ.
**Hard limit (5,000/hr)**: This applies to your entire workspace. If all your workflows combined exceed 5,000 runs in an hour, additional runs will fail immediately.
**الحد الصارم (5,000/ساعة)**: ينطبق هذا على مساحة العمل بالكامل. إذا تجاوز مجموع تشغيلات جميع سير العمل لديك 5,000 تشغيل في ساعة واحدة، فسوف تفشل التشغيلات الإضافية فوراً.
**Tips to stay within limits**:
**نصائح للبقاء ضمن الحدود**:
* Use Bulk triggers with Iterator instead of Single triggers for large batches
* Combine related automations into fewer workflows
* Use scheduled workflows to spread load over time
* استخدم مشغلات Bulk مع Iterator بدلاً من مشغلات Single للدفعات الكبيرة
* ادمج الأتمتة ذات الصلة في عدد أقل من سير العمل
* استخدم سير عمل مجدولة لتوزيع الحمل بمرور الوقت
</Accordion>
<Accordion title="Can I retry a failed workflow run?">
**No, there is no automatic retry functionality at the moment.**
<Accordion title="هل يمكنني إعادة محاولة تشغيل سير عمل فاشل؟">
**لا، لا توجد حالياً وظيفة إعادة المحاولة التلقائية.**
If a workflow run fails, you'll need to:
إذا فشل تشغيل سير عمل، فستحتاج إلى:
1. Review the error in **Settings → Workflows → [Your Workflow] → Runs**
2. Fix the issue (data, configuration, or external service)
3. Manually trigger the workflow again on the affected record(s)
1. راجع الخطأ في **الإعدادات → سير العمل → [سير العمل الخاص بك] → التشغيلات**
2. أصلِح المشكلة (البيانات، الإعداد، أو الخدمة الخارجية)
3. قم بتشغيل سير العمل يدوياً مرة أخرى على السجل/السجلات المتأثرة
**Tips to reduce failures**:
**نصائح لتقليل حالات الفشل**:
* Add **Filter** nodes to validate data before actions
* Use **Search Records** to check if related records exist
* Test thoroughly with a few records before bulk operations
* أضف عقد **Filter** للتحقق من البيانات قبل الإجراءات
* استخدم **Search Records** للتحقق مما إذا كانت السجلات ذات الصلة موجودة
* اختبر بدقة باستخدام عدد قليل من السجلات قبل العمليات المجمّعة
Automatic retry functionality is on our roadmap for a future release.
وظيفة إعادة المحاولة التلقائية ضمن خارطة الطريق لإصدار مستقبلي.
</Accordion>
<Accordion title="Should I deactivate workflows before CSV imports?">
**Yes, if your workflows are triggered by record creation or updates.**
<Accordion title="هل يجب إلغاء تفعيل سير العمل قبل استيراد CSV؟">
**نعم، إذا كانت سير العمل لديك تُشغَّل بإنشاء السجلات أو تحديثها.**
When you import data via CSV, each record created or updated can trigger workflows. A large import (thousands of records) could:
عند استيراد البيانات عبر CSV، يمكن لكل سجل يتم إنشاؤه أو تحديثه تشغيل سير العمل. قد يؤدي الاستيراد الكبير (آلاف السجلات) إلى:
* Hit the 5,000 runs/hour limit
* Consume significant workflow credits
* Send unexpected emails or notifications
* Create duplicate tasks or records
* بلوغ حد 5,000 تشغيل/ساعة
* استهلاك قدر كبير من اعتمادات سير العمل
* إرسال رسائل بريد إلكتروني أو إشعارات غير متوقعة
* إنشاء مهام أو سجلات مكررة
**Before a mass import**:
**قبل الاستيراد الكمي**:
1. Go to **Settings → Workflows**
2. Identify workflows triggered by the object you're importing
3. **Deactivate** them temporarily
4. Run your CSV import
5. **Reactivate** the workflows when done
1. اذهب إلى **الإعدادات → سير العمل**
2. حدّد سير العمل المُشغَّلة بواسطة الكائن الذي تقوم باستيراده
3. **عطِّلها** مؤقتاً
4. شغّل استيراد CSV الخاص بك
5. **أعد تفعيل** سير العمل عند الانتهاء
**Alternative**: If you need the workflows to run on imported data, import in smaller batches to stay within rate limits.
**بديل**: إذا كنت تحتاج إلى أن تعمل سير العمل على البيانات المستوردة، فقم بالاستيراد على دفعات أصغر للبقاء ضمن حدود المعدل.
</Accordion>
<Accordion title="How do I clean up my workflow layout?">
If your workflow canvas looks messy with nodes scattered around, you can automatically organize it:
<Accordion title="كيف أرتّب مخطط سير العمل؟">
إذا بدا مخطط سير العمل لديك فوضوياً مع تشتت العقد، فيمكنك تنظيمه تلقائياً:
1. Right-click anywhere on the workflow canvas
2. Click **Tidy up workflow**
1. انقر بزر الفأرة الأيمن في أي مكان على مخطط سير العمل
2. انقر **Tidy up workflow**
This will automatically rearrange all nodes into a clean, organized layout.
سيؤدي ذلك إلى إعادة ترتيب جميع العقد تلقائياً في مخطط نظيف ومنظم.
</Accordion>
</AccordionGroup>
@@ -1,62 +1,62 @@
---
title: AI
description: AI-powered features coming soon to Twenty.
description: Funkce s podporou AI brzy dorazí do Twenty.
---
<Frame>
<img src="/images/user-guide/workflows/robot.png" alt="AI" />
</Frame>
## What's Coming
## Co chystáme
Twenty is building AI capabilities to help your team work smarter. We're focusing on two major areas:
Twenty vyvíjí funkce AI, které pomohou vašemu týmu pracovat chytřeji. Zaměřujeme se na dvě hlavní oblasti:
### 1. AI Chatbot
### 1. AI chatbot
A conversational assistant that understands your context and has access to all your Twenty data.
Konverzační asistent, který rozumí vašemu kontextu a má přístup ke všem vašim datům v Twenty.
**Key capabilities:**
**Klíčové možnosti:**
* **Full data access**: Query any record, relationship, or metric in your workspace
* **Page context awareness**: Reference "this company" or "this opportunity" based on where you are in Twenty
* **Natural language**: Ask questions and get answers without navigating menus
* **Plný přístup k datům**: Vyhledejte libovolný záznam, vztah či metriku ve vašem pracovním prostoru
* **Znalost kontextu stránky**: Odkazujte na "tuto společnost" nebo "tuto příležitost" podle toho, kde se v Twenty nacházíte
* **Přirozený jazyk**: Ptejte se a získávejte odpovědi bez procházení nabídek
**Example prompts:**
**Příklady promptů:**
* "What opportunities are closing this month?"
* "Which deals have been in Negotiation for more than 30 days?"
* "Summarize my interactions with this person"
* "Které příležitosti se uzavírají tento měsíc?"
* "Které obchody jsou ve fázi vyjednávání déle než 30 d?"
* "Shrň moje interakce s touto osobou"
### 2. AI Agents in Workflows
### 2. AI agenti v pracovních postupech
Extend your workflows with AI-powered actions and autonomous agents.
Rozšiřte své pracovní postupy o akce poháněné AI a autonom agenty.
**Key capabilities:**
**Klíčové možnosti:**
* **AI actions**: Use AI to enrich data, classify records, generate summaries, and more
* **Autonomous agents**: Let agents execute multi-step tasks within a workflow
* **Custom prompts**: Define exactly how AI should process your data
* **Akce AI**: Používejte AI k obohacení dat, klasifikaci záznamů, tvorbě souhrnů a dalším
* **Autonom agenti**: Nechte agenty provádět vícekrokové úlohy v rámci pracovního postupu
* **Vlastní prompty**: Definujte přesně, jak má AI zpracovávat vaše data
**Případy použití:**
* Automatically categorize inbound leads
* Enrich company data from public sources
* Generate follow-up email drafts based on meeting notes
* Score opportunities based on engagement patterns
* Automaticky kategorizujte příchozí leady
* Obohaťte firemní data z veřejných zdrojů
* Generujte návrhy následných e-mailů na základě poznámek ze schůzek
* Ohodnocujte příležitosti na základě vzorců zapojení
## Permissions and Access Control
## Oprávnění a řízení přístupu
AI agents will be managed through the existing permissions system:
AI agenti budou spravováni prostřednictvím stávajícího systému oprávnění:
1. Přejděte na **Nastavení → Role**
2. Configure which data each AI agent can access
3. Set read/write permissions per object
2. Nastavte, k jakým datům může mít každý AI agent přístup
3. Nastavte oprávnění pro čtení/zápis pro jednotlivé objekty
This ensures AI agents respect your data governance policies and only access what they need.
To zajistí, že AI agenti budou respektovat vaše zásady správy dat a budou přistupovat pouze k tomu, co potřebují.
## Stay Updated
## Zůstaňte informováni
We'll update this section as AI features become available. In the meantime:
Tuto sekci budeme aktualizovat, jakmile budou funkce AI k dispozici. Mezitím:
* Follow our [GitHub](https://github.com/twentyhq/twenty) for development updates
* Join our [Discord](https://discord.gg/twenty) to share feedback and feature requests
* Sledujte náš [GitHub](https://github.com/twentyhq/twenty) pro novinky o vývoji
* Přidejte se na náš [Discord](https://discord.gg/twenty) a podělte se o zpětnou vazbu a návrhy na nové funkce
@@ -1,44 +1,44 @@
---
title: Can I Send Emails from Twenty?
description: Information about sending emails directly from Twenty.
title: Mohu z Twenty odesílat e-maily?
description: Informace o odesílání e-mailů přímo z Twenty.
---
## Current Status
## Aktuální stav
Twenty's email integration is designed to **sync and display** your email history. Emails cannot be composed or sent directly from Twenty's interface.
Emailová integrace Twenty je navržena tak, aby **synchronizovala a zobrazovala** vaši e-mailovou historii. E-maily nelze přímo z rozhraní Twenty vytvářet ani odesílat.
When you view an email thread on a record page and click **Reply**, you'll be redirected to the original thread in your mailbox (Gmail, Outlook, etc.). This is where you compose and send your reply.
Když si na stránce záznamu prohlížíte e-mailové vlákno a kliknete na **Odpovědět**, budete přesměrováni do původního vlákna ve své e-mailové schránce (Gmail, Outlook apod.). Zde svou odpověď vytvoříte a odešlete.
## What You Can Do Today
## Co můžete dělat už dnes
* **View email history** on People, Companies, and Opportunities records
* **Read full email threads** with contacts in your CRM
* **Track communication context** alongside calendar events
* **Auto-create contacts** from email interactions
* **Reply via redirect** — click Reply to jump to your mailbox
* **Zobrazujte historii e-mailů** u záznamů o Lidech, Podnicích a Příležitostech
* **Čtěte celá e-mailová vlákna** s kontakty ve vašem CRM
* **Sledujte kontext komunikace** společně s událostmi v kalendáři
* **Automaticky vytvářejte kontakty** z e-mailových interakcí
* **Odpověď přesměrováním** — klikněte na Odpovědět a přejdete do své schránky
## Sending Emails via Workflows
## Odesílání e-mailů pomocí Workflows
While you can't send emails manually from Twenty, you **can send emails automatically using Workflows**. This is useful for:
I když z Twenty nemůžete posílat e-maily ručně, **můžete je odesílat automaticky pomocí Workflows**. To je užitečné pro:
* Automated follow-ups
* Notifications to contacts
* Triggered communications based on record changes
* Automatické návazné akce
* Upozornění pro kontakty
* Komunikace spouštěná na základě změn v záznamech
Emails sent via workflows go through your connected mailbox account.
E-maily odesílané prostřednictvím Workflows procházejí vaším propojeným účtem e-mailové schránky.
Learn about the [Send Email action](/l/cs/user-guide/workflows/capabilities/workflow-actions#send-email)
Přečtěte si o [akci Odeslat e-mail](/l/cs/user-guide/workflows/capabilities/workflow-actions#send-email)
## Email Sequences and Newsletters
## E-mailové sekvence a newslettery
For email sequences and newsletters, we recommend using workflows to connect Twenty to a dedicated email marketing tool.
Pro e-mailové sekvence a newslettery doporučujeme použít Workflows k propojení Twenty se specializovaným nástrojem pro e-mailový marketing.
<Warning>
Mass emails should not be sent directly from your mailbox to protect your domain reputation. Use a dedicated tool for bulk communications.
Hromadné e-maily by se kvůli ochraně reputace vaší domény neměly posílat přímo z vaší schránky. Pro hromadnou komunikaci používejte specializovaný nástroj.
</Warning>
See [How to send emails from workflows](/l/cs/user-guide/workflows/capabilities/send-emails-from-workflows) for setup instructions
Podívejte se na [Jak odesílat e-maily z Workflows](/l/cs/user-guide/workflows/capabilities/send-emails-from-workflows) pro pokyny k nastavení
## Future Plans
## Plány do budoucna
Native email composition from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
Nativní vytváření e-mailů přímo v Twenty je v našem plánu. Připojte se k našim [diskuzím na GitHubu](https://github.com/twentyhq/twenty/discussions), podělte se o svůj případ použití a pomozte upřednostnit tuto funkci.
@@ -1,35 +1,35 @@
---
title: Can I Track Email Activity on All Objects?
description: Understanding email activity tracking across different objects.
title: Mohu sledovat e-mailovou aktivitu u všech objektů?
description: Jak funguje sledování e-mailové aktivity napříč různými objekty.
---
## Supported Objects
## Podporované objekty
Email activity is currently available on **three standard objects**:
E-mailová aktivita je aktuálně dostupná u **tří standardních objektů**:
| Objekt | What You See |
| ---------------- | ---------------------------------------------------------------- |
| **People** | All emails exchanged with that specific contact |
| **Společnosti** | All emails with anyone from that company (based on email domain) |
| **Příležitosti** | Emails related to the company linked to the opportunity |
| Objekt | Co uvidíte |
| ---------------- | -------------------------------------------------------------------------- |
| **Osoby** | Všechny e-maily vyměněné s konkrétním kontaktem |
| **Společnosti** | Všechny e-maily s kýmkoli z dané společnosti (na základě e-mailové domény) |
| **Příležitosti** | E-maily související se společností propojenou s příležitostí |
## Why Only These Objects?
## Proč právě tyto objekty?
People, Companies, and Opportunities are the core relationship objects where email context adds the most value. Email threads are automatically linked based on:
Osoby, Společnosti a Příležitosti jsou klíčové relační objekty, kde kontext e-mailů přináší největší hodnotu. E-mailová vlákna se automaticky propojují na základě:
* **Email address** → matched to People records
* **Email domain** → matched to Company records
* **Company relation** → linked to Opportunities
* **E-mailová adresa** → přiřazena k záznamům Osob
* **E-mailová doména** → přiřazena k záznamům Společností
* **Vazba na Společnost** → propojeno s Příležitostmi
## Vlastní objekty
**Email tracking is not available on custom objects** at this time.
**Sledování e-mailů není v tuto chvíli k dispozici u vlastních objektů**.
If you need email context on a custom object, consider:
Pokud potřebujete e-mailový kontext u vlastního objektu, zvažte:
* Using a relation field to link your custom object to People or Companies
* Viewing email history on the linked People/Company record
* Použití relačního pole k propojení vlastního objektu s Osobami nebo Společnostmi
* Zobrazení historie e-mailů na propojeném záznamu Osoby/Společnosti
## Future Plans
## Plány do budoucna
Extending email visibility to custom objects is being considered. Share your use case on our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to help prioritize this feature.
Zvažujeme rozšíření viditelnosti e-mailů na vlastní objekty. Sdílejte svůj případ použití v našich [diskuzích na GitHubu](https://github.com/twentyhq/twenty/discussions), abyste pomohli upřednostnit tuto funkci.
@@ -176,23 +176,23 @@ Použijte **název API** možnosti (nikoli zobrazovaný popisek):
VALUE1
```
See [here](#finding-api-names-for-select-fields) where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing.</Note>
Viz [zde](#finding-api-names-for-select-fields), kde najdete názvy API.
<Note>Nové možnosti výběru nebudou importem vytvořeny automaticky. Před importem je musíte přidat v **Nastavení → Datový model**.</Note>
### Text Fields
### Textová pole
* No special formatting required
* Leading/trailing spaces are trimmed
* Není potřeba žádné speciální formátování
* Úvodní a koncové mezery jsou odstraněny
## Finding API Names
## Hledání názvů API
For Select, Multi-Select, and Array fields with predefined options, you must use the **API names**, not the display labels.
U polí typu Select, Multi-Select a Array s předdefinovanými možnostmi musíte použít **názvy API**, nikoli zobrazené štítky.
### How to Find API Names
### Jak najít názvy API
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at the bottom right of the settings page)
4. View the API name for each option
1. Přejděte na **Nastavení → Datový model**
2. Vyberte objekt a pole
3. Povolte **Pokročilý režim** (přepínač je vpravo dole na stránce nastavení)
4. Zobrazte název API pro každou možnost
<VimeoEmbed videoId="1144910809" title="Video demonstration" />
<VimeoEmbed videoId="1144910809" title="Ukázka videa" />
@@ -1,6 +1,6 @@
---
title: Co je Twenty
description: Twenty is an open-source CRM that gives you the building blocks to create exactly what your business needs.
description: Twenty je open-source CRM systém, který vám poskytuje stavební bloky k vytvoření přesně toho, co vaše firma potřebuje.
---
## Vize
@@ -26,11 +26,11 @@ Open-source je základ našeho přístupu, zajišťuje, že Twenty se vyvíjí s
## Hlavní funkce
* **Calendar & Emails:** Sync your mailbox and calendar to see all communications on your CRM records. [Více se dozvíte zde](/l/cs/user-guide/calendar-emails/overview).
* **Data Model:** Create custom objects and fields to match your unique business processes. [Explore](/l/cs/user-guide/data-model/overview).
* **Data Migration:** Import and export your data via CSV or API. [Začněte](/l/cs/user-guide/data-migration/overview).
* **Views & Pipelines:** Organize your data with table views, kanban boards, and sales pipelines. [Discover](/l/cs/user-guide/views-pipelines/overview).
* **Workflows:** Automate your business processes and integrate with external tools. [Build automations](/l/cs/user-guide/workflows/overview).
* **Kalendář & e-maily:** Synchronizujte svou schránku a kalendář, abyste viděli veškerou komunikaci u svých záznamů v CRM. [Více se dozvíte zde](/l/cs/user-guide/calendar-emails/overview).
* **Datový model:** Vytvářejte vlastní objekty a pole, aby odpovídaly vašim jedinečným obchodním procesům. [Prozkoumejte](/l/cs/user-guide/data-model/overview).
* **Migrace dat:** Importujte a exportujte svá data pomocí CSV nebo API. [Začněte](/l/cs/user-guide/data-migration/overview).
* **Zobrazení & pipeline:** Uspořádejte svá data pomocí tabulkových zobrazení, kanbanových nástěnek a prodejních pipeline. [Objevte](/l/cs/user-guide/views-pipelines/overview).
* **Pracovní postupy:** Automatizujte své obchodní procesy a integrujte se s externími nástroji. [Vytvářejte automatizace](/l/cs/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/cs/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/cs/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/cs/user-guide/permissions-access/overview).
@@ -1,46 +1,46 @@
---
title: Kalendářní zobrazení
description: Display records with date fields on a calendar.
description: Zobrazte v kalendáři záznamy s poli typu datum.
---
## About Calendar View
## O zobrazení kalendáře
Calendar view displays your records on a calendar based on a date field. Each record appears as an event on the corresponding date.
Zobrazení kalendáře zobrazuje vaše záznamy v kalendáři podle pole s datem. Každý záznam se zobrazí jako událost v odpovídající den.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Creating a Calendar View
## Vytvoření zobrazení kalendáře
1. Navigate to an object with date fields
2. Click the view dropdown → **+ Add view**
3. Name your view and click **Create**
4. Open the **Options** on the right
5. Select **Calendar** as the layout
6. Choose the **date field** to use for positioning records
7. Click **Update view**
1. Přejděte k objektu s poli typu datum
2. Klikněte na rozbalovací nabídku zobrazení → **+ Přidat zobrazení**
3. Pojmenujte zobrazení a klikněte na **Vytvořit**
4. Otevřete **Možnosti** vpravo
5. Vyberte **Kalendář** jako rozložení
6. Zvolte **pole s datem**, které se použije pro umístění záznamů
7. Klikněte na **Aktualizovat zobrazení**
## Configuring the Calendar
## Konfigurace kalendáře
### Choose the Date Field
### Vyberte pole s datem
Under **Options**, select which date field determines where records appear on the calendar.
V části **Možnosti** vyberte, které pole s datem určuje, kde se záznamy v kalendáři zobrazí.
### Display Fields
### Zobrazená pole
Configure which fields show on each calendar event:
Nastavte, která pole se zobrazí u každé události v kalendáři:
1. Click **Options → Fields**
2. Toggle fields on/off
3. Drag to reorder
1. Klikněte na **Možnosti → Pole**
2. Zapínejte/vypínejte pole
3. Přetažením změňte pořadí
## Use Cases
## Případy použití
* **Meetings and calls**: View upcoming appointments
* **Deadlines**: Track due dates and close dates
* **Events**: Plan and visualize scheduled activities
* **Follow-ups**: See when tasks are due
* **Schůzky a hovory**: Zobrazte nadcházející termíny
* **Termíny**: Sledujte termíny splnění a data uzavření
* **Události**: Plánujte a vizualizujte naplánované aktivity
* **Následné kroky**: Zjistěte, kdy mají úkoly termín
## Related
## Související
* [Views Overview](/l/cs/user-guide/views-pipelines/overview) — creating and managing views
* [Filters and Sorting](/l/cs/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtering calendar data
* [Přehled zobrazení](/l/cs/user-guide/views-pipelines/overview) — vytváření a správa zobrazení
* [Filtry a řazení](/l/cs/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtrování dat v kalendáři
@@ -1,51 +1,51 @@
---
title: Create a Table View with Grouping
description: Organize your records into collapsible groups by field value.
title: Vytvořte tabulkové zobrazení se seskupením
description: Uspořádejte své záznamy do sbalitelných skupin podle hodnoty pole.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Group your table view by a Select field to organize records into collapsible sections.
Seskupte své tabulkové zobrazení podle pole Select, abyste uspořádali záznamy do sbalitelných sekcí.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Steps
## Postup
1. Navigate to the object (People, Companies, etc.)
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Companies by Type")
4. Click **Create**
5. Click **Options → Group**
6. Choose a Select field to group by
1. Přejděte k objektu (Lidé, Společnosti, atd.)
2. Klikněte na rozbalovací nabídku zobrazení → **+ Přidat zobrazení**
3. Pojmenujte své zobrazení (např. "Společnosti podle typu")
4. Klikněte na **Vytvořit**
5. Klikněte na **Možnosti → Seskupení**
6. Zvolte pole Select, podle kterého chcete seskupovat
7. Klikněte na **Uložit**
## Configure Group Order
## Konfigurace pořadí skupin
Under **Options → Group → Sort**, choose how groups are ordered:
V části **Možnosti → Seskupení → Seřadit** zvolte, jak budou skupiny seřazeny:
| Možnost | Popis |
| ------------------------ | --------------------------------------------- |
| **Alphabetical** | A to Z |
| **Reverse alphabetical** | Z to A |
| **Manual order** | Drag groups to reorder under "Visible groups" |
| Možnost | Popis |
| --------------------- | --------------------------------------------------------------------- |
| **Abecedně** | A až Z |
| **Obráceně abecedně** | Z až A |
| **Ruční pořadí** | Přetáhněte skupiny a změňte jejich pořadí v části "Viditelné skupiny" |
Click the **eye icon** next to a group to hide it from the view.
Klikněte na **ikonu oka** vedle skupiny a skryjte ji ze zobrazení.
<Note>
**For best performance, limit to 10-15 visible groups.** If you need more, consider using a Dashboard instead.
**Pro nejlepší výkon omezte počet viditelných skupin na 10-15.** Pokud jich potřebujete více, zvažte místo toho použití Dashboardu.
</Note>
## Example: Companies by Industry
## Příklad: Společnosti podle odvětví
1. Go to **Companies**
2. Create a new view named "By Industry"
3. Click **Options → Group**
4. Select the **Industry** field
1. Přejděte na **Společnosti**
2. Vytvořte nové zobrazení s názvem "Podle odvětví"
3. Klikněte na **Možnosti → Seskupení**
4. Vyberte pole **Odvětví**
5. Uložit
Now your companies are organized by industry, making it easy to focus on one segment at a time.
Nyní jsou vaše společnosti uspořádány podle odvětví, takže se můžete snadno soustředit vždy na jeden segment.
## Related
## Související
* [Table Views](/l/cs/user-guide/views-pipelines/capabilities/table-views) — all table view features
* [Filters and Sorting](/l/cs/user-guide/views-pipelines/capabilities/filters-and-sorting) — combine grouping with filters
* [Tabulková zobrazení](/l/cs/user-guide/views-pipelines/capabilities/table-views) — všechny funkce tabulkových zobrazení
* [Filtry a řazení](/l/cs/user-guide/views-pipelines/capabilities/filters-and-sorting) — kombinujte seskupení s filtry
@@ -1,44 +1,44 @@
---
title: Set Up a Webhook Trigger
description: Receive data from external services to trigger workflows.
title: Nastavení spouštěče webhooku
description: Přijímejte data z externích služeb pro spouštění pracovních postupů.
image: /images/user-guide/workflows/workflow.png
---
Webhook triggers allow external services to start your workflows by sending data to a unique URL. Use them to connect forms, third-party apps, and custom integrations.
Spouštěče webhooků umožňují externím službám spustit vaše pracovní postupy zasláním dat na jedinečnou adresu URL. Použijte je k propojení formulářů, aplikací třetích stran a vlastních integra.
## When to Use Webhooks
## Kdy použít webhooky
| Use Case | Příklad |
| ----------------------- | --------------------------------------- |
| **Web forms** | Contact form submissions create leads |
| **Third-party apps** | Stripe payment → create customer record |
| **Custom integrations** | Your app → Twenty automation |
| **No-code tools** | Zapier, Make, n8n connections |
| Případ použití | Příklad |
| -------------------------- | -------------------------------------------- |
| **Webové formuláře** | Odeslání kontaktního formuláře vytváří leady |
| **Aplikace třetích stran** | Platba ve Stripe → vytvořit záznam zákazníka |
| **Vlastní integrace** | Vaše aplikace → automatizace v Twenty |
| **Nástroje bez kódu** | Připojení Zapier, Make, n8n |
## Step-by-Step Setup
## Nastavení krok za krokem
### Step 1: Create the Workflow
### Krok 1: Vytvořte pracovní postup
1. Go to **Settings → Workflows**
2. Click **+ New Workflow**
3. Name it (e.g., "Website Form Submission")
1. Přejděte na **Nastavení → Pracovní postupy**
2. Klikněte na **+ Nový pracovní postup**
3. Pojmenujte jej (např. "Odeslání webového formuláře")
### Step 2: Configure the Webhook Trigger
### Krok 2: Nakonfigurujte spouštěč webhooku
1. Click on the trigger block
2. Select **Webhook**
3. You'll receive a unique webhook URL like:
1. Klikněte na blok spouštěče
2. Vyberte **Webhook**
3. Obdržíte jedinečnou adresu URL webhooku, například:
```
https://api.twenty.com/webhooks/workflow/abc123...
```
4. Copy this URL—you'll need it for your external service
4. Zkopírujte tuto adresu URL — budete ji potřebovat pro svou externí službu
### Step 3: Define Expected Data Structure
### Krok 3: Definujte očekávanou datovou strukturu
For **POST** requests, define the expected body structure:
Pro požadavky **POST** definujte očekávanou strukturu těla:
1. Click **Define expected body**
2. Enter a sample JSON that matches what your service will send:
1. Klikněte na **Definovat očekávané tělo**
2. Zadejte ukázkový JSON, který odpovídá tomu, co vaše služba pošle:
```json
{
@@ -50,30 +50,30 @@ For **POST** requests, define the expected body structure:
}
```
3. Click **Save**—this creates variables you can use in subsequent steps
3. Klikněte na **Uložit** — tím se vytvoří proměnné, které můžete použít v dalších krocích
### Step 4: Add Actions
### Krok 4: Přidejte akce
Now add actions that use the webhook data:
Nyní přidejte akce, které využívají data z webhooku:
**Example: Create a Person record**
**Příklad: Vytvořit záznam osoby**
1. Add **Create Record** action
2. Select **People** object
3. Map fields:
1. Přidejte akci **Vytvořit záznam**
2. Vyberte objekt **People**
3. Namapujte pole:
| Pole | Hodnota |
| ---------- | ---------------------------------------------------- |
| Jméno | `{{trigger.body.firstName}}` |
| Příjmení | `{{trigger.body.lastName}}` |
| Email | `{{trigger.body.email}}` |
| Společnost | Search or create based on `{{trigger.body.company}}` |
| Pole | Hodnota |
| ---------- | -------------------------------------------------------------- |
| Jméno | `{{trigger.body.firstName}}` |
| Příjmení | `{{trigger.body.lastName}}` |
| Email | `{{trigger.body.email}}` |
| Společnost | Vyhledejte nebo vytvořte na základě `{{trigger.body.company}}` |
### Step 5: Test the Webhook
### Krok 5: Otestujte webhook
Before activating, test your webhook:
Před aktivací otestujte svůj webhook:
**Using cURL**:
**Pomocí cURL**:
```bash
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
@@ -81,22 +81,22 @@ curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
-d '{"firstName":"Test","lastName":"User","email":"test@example.com"}'
```
**Using Postman or similar**:
**Pomocí Postmanu nebo podobného nástroje**:
1. Create a POST request to your webhook URL
2. Set Content-Type header to `application/json`
3. Add your test JSON body
4. Send and check workflow runs
1. Vytvořte požadavek POST na adresu URL vašeho webhooku
2. Nastavte hlavičku Content-Type na `application/json`
3. Přidejte své testovací tělo JSON
4. Odešlete a zkontrolujte spuštění pracovního postupu
### Step 6: Activate
### Krok 6: Aktivujte
Once tested, click **Activate** to make the workflow live.
Po otestování klikněte na **Aktivovat**, aby byl pracovní postup aktivní.
## Handling Different Data Structures
## Zpracování různých datových struktur
### Nested Data
### Vnořená data
If your webhook sends nested data:
Pokud váš webhook posílá vnořená data:
```json
{
@@ -108,11 +108,11 @@ If your webhook sends nested data:
}
```
Reference with: `{{trigger.body.contact.email}}`
Odkazujte pomocí: `{{trigger.body.contact.email}}`
### Arrays
### Pole
If data includes arrays:
Pokud data obsahují pole:
```json
{
@@ -123,11 +123,11 @@ If data includes arrays:
}
```
How you handle arrays depends on your use case:
Jak pole zpracujete, závisí na vašem případě použití:
**Unknown number of items → Use Iterator**
**Neznámý počet položek → Použijte Iterator**
If you need to process each item in the array (e.g., create a record for each), add a **Code** action to parse the array, then use **Iterator**:
Pokud potřebujete zpracovat každou položku v poli (např. pro každou vytvořit záznam), přidejte akci **Code** pro rozparsování pole a poté použijte **Iterator**:
```javascript
export const main = async (params: { items: any }) => {
@@ -138,11 +138,11 @@ export const main = async (params: { items: any }) => {
};
```
Then use Iterator to loop through: `{{code.items}}`
Poté použijte Iterator k procházení: `{{code.items}}`
**Known/specific fields → Extract to named fields**
**Známá/konkrétní pole → Extrahujte do pojmenovaných polí**
If the array contains specific fields you want to access individually (e.g., form answers where position 0 is always "first name", position 1 is always "last name"), add a **Code** action to extract them:
Pokud pole obsahuje konkrétní položky, ke kterým chcete přistupovat jednotlivě (např. odpovědi formuláře, kde pozice 0 je vždy "křestní jméno", pozice 1 je vždy "příjmení"), přidejte akci **Code** k jejich extrakci:
```javascript
export const main = async (params: { items: any }) => {
@@ -159,13 +159,13 @@ export const main = async (params: { items: any }) => {
};
```
Now you can select `product.name` and `product.qty` individually in subsequent steps.
Nyní můžete v následujících krocích vybírat `product.name` a `product.qty` jednotlivě.
<Tip>
For more details on handling arrays, see [Handle Arrays in Code Actions](/l/cs/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
Další podrobnosti o práci s poli viz [Zpracování polí v akcích Code](/l/cs/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
</Tip>
## Related
## Související
* [Workflow Triggers](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/cs/user-guide/workflows/capabilities/workflow-actions)
* [Spouštěče pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-triggers)
* [Akce pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-actions)
@@ -1,48 +1,48 @@
---
title: Workflows FAQ
description: Frequently asked questions about workflows in Twenty.
title: Často kladené otázky k pracovním postupům.
description: Často kladené otázky k pracovním postupům v Twenty.
---
<AccordionGroup>
<Accordion title="Why can't I activate a workflow?">
This is likely a permissions issue. You need access to workflows to create and activate them.
<Accordion title="Proč nemohu aktivovat pracovní postup?">
Pravděpodobně jde o problém s oprávněními. K vytváření a aktivaci potřebujete přístup k pracovním postupům.
**Solution**: Contact your workspace administrator to grant you workflow access under **Settings → Roles**.
**Řešení**: Kontaktujte správce pracovního prostoru, aby vám v **Settings → Roles** udělil přístup k pracovním postupům.
If you don't see the Workflows section at all in your sidebar, this confirms it's a permissions issue.
Pokud v postranním panelu vůbec nevidíte sekci Pracovní postupy, potvrzuje to, že jde o problém s oprávněními.
</Accordion>
<Accordion title="Why don't I see my manual workflow button in the top navbar?">
Manual workflows only appear in the navbar if properly configured:
<Accordion title="Proč nevidím tlačítko ručního pracovního postupu v horní navigační liště?">
Ruční pracovní postupy se v navigační liště zobrazují jen při správné konfiguraci:
1. The workflow must be **activated** (not in draft mode)
2. The navbar placement must be set to **Pinned**
3. For Single/Bulk triggers, you must be on the correct object page
1. Pracovní postup musí být **aktiv** (ne v režimu konceptu)
2. Umístění v navigační liště musí být nastaveno na **Pinned**
3. Pro spouštěče Single/Bulk musíte být na správné stránce objektu
**To check**: Open the workflowclick the trigger → verify "Navbar placement" is set to "Pinned".
**Jak ověřit**: Otevřete pracovní postupklikněte na spouštěč → ověřte, že "Navbar placement" je nastaveno na "Pinned".
You can always access manual workflows via **Cmd + K** (or **Ctrl + K**) regardless of navbar settings.
K ručním pracovním postupům se vždy dostanete přes **Cmd + K** (nebo **Ctrl + K**) bez ohledu na nastavení navigační lišty.
</Accordion>
<Accordion title="What's the difference between Single, Global, and Bulk manual triggers?">
| Typ | Records Required | Běhy průběhu práce |
| --- | ---------------- | ------------------ |
<Accordion title="Jaký je rozdíl mezi ručními spouštěči Single, Global a Bulk?">
| Typ | Požadované záznamy | Běhy průběhu práce |
| --- | ------------------ | ------------------ |
\| **Global** | None | Once, no record input |
\| **Single** | One or more selected | Once per selected record |
\| **Bulk** | One or more selected | Once, with all records as array |
\| **Global** | Žádné | Jednou, bez vstupu záznamu |
\| **Single** | Jeden nebo více vybraných | Jednou na každý vybraný záznam |
\| **Bulk** | Jeden nebo více vybraných | Jednou, se všemi záznamy jako pole |
* **Global**: Use when the workflow doesn't need any record context (e.g., generate a report)
* **Single**: Use when you want to process each selected record independently (e.g., send individual emails)
* **Bulk**: Use when you need to process records together or optimize credit usage (requires Iterator action)
* **Global**: Použijte, když pracovní postup nepotřebuje kontext žádného záznamu (např. vygenerování reportu)
* **Single**: Použijte, když chcete zpracovat každý vybraný záznam samostatně (např. poslat jednotlivé e-maily)
* **Bulk**: Použijte, když potřebujete zpracovávat záznamy společně nebo optimalizovat využití kreditů (vyžaduje akci Iterator)
See [Workflow Triggers](/l/cs/user-guide/workflows/capabilities/workflow-triggers) for details.
Podrobnosti viz [Spouštěče pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-triggers).
</Accordion>
<Accordion title="I don't see an If/Else node. Co mám dělat?">
An explicit If/Else node is not yet available but is on our roadmap.
<Accordion title="Nevidím uzel If/Else. Co mám dělat?">
Explicitní uzel If/Else zatím není dostupný, ale je na naší roadmapě.
**Current workaround**: Create multiple branches from your step, each starting with a **Filter** action:
**Aktuální řešení**: Vytvořte z kroku více větví, každou začněte akcí **Filter**:
```
Step 1
@@ -52,203 +52,203 @@ description: Frequently asked questions about workflows in Twenty.
└── Branch B: Filter (condition = false) → Actions...
```
Only the branch where the filter condition passes will execute its subsequent actions.
Pouze větev, ve které podmínka filtru projde, provede své následné akce.
See [How to Use Branches](/l/cs/user-guide/workflows/capabilities/workflow-branches) for a step-by-step guide.
Viz [Jak používat větve](/l/cs/user-guide/workflows/capabilities/workflow-branches) pro podrobný návod.
</Accordion>
<Accordion title="Are workflow branches running in parallel?">
**Yes**, branches run in parallel by default.
<Accordion title="Běží větve pracovního postupu paralel?">
**Ano**, větve ve výchozím nastavení běží paralel.
If you want only one branch to execute:
Pokud chcete spustit pouze jednu větev:
* Add a **Filter** action at the start of each branch
* Set opposite conditions (e.g., Branch A: status = "Open", Branch B: status ≠ "Open")
* Na začátek každé větve přidejte akci **Filter**
* Nastavte opačné podmínky (např. Větev A: status = "Open", Větev B: status ≠ "Open")
Branches that fail their filter condition stop executing, while others continue.
Větve, které nesplní podmínku filtru, se zastaví, ostatní pokračují.
</Accordion>
<Accordion title="Can I merge branches back together?">
**Yes**. After your parallel branches complete, you can add a step that both branches connect to.
<Accordion title="Mohu větve znovu sloučit dohromady?">
**Ano**. Po dokončení paralelních větví můžete přidat krok, na který se obě větve napojí.
In the workflow editor:
V editoru pracovního postupu:
1. Complete your branched actions
2. Add a new step after the branches
3. Drag connections from the end of each branch to this new step
1. Dokončete akce ve větvích
2. Přidejte nový krok za větve
3. Přetáhněte spojení z konce každé větve do tohoto nového kroku
The merged step will execute after all connected branches complete.
Sloučený krok se provede po dokončení všech připojených větví.
</Accordion>
<Accordion title="What's the limit on Search Records results?">
**Search Records returns a maximum of 200 records.**
<Accordion title="Jaký je limit výsledků akce Search Records?">
**Search Records vrací maximálně 200 záznamů.**
If you need to process more:
Pokud potřebujete zpracovat více:
* Add more specific filters to reduce results
* Use scheduled workflows to process in batches
* Consider using the API for bulk operations
* Přidejte konkrétnější filtry pro zmenšení výsledků
* Použijte plánované pracovní postupy ke zpracování po dávkách
* Zvažte použití API pro hromadné operace
For most workflows, 200 records is sufficient. If you regularly hit this limit, consider restructuring your automation.
Pro většinu pracovních postupů je 200 záznamů dostačující. Pokud na tento limit narážíte pravidelně, zvažte přepracování své automatizace.
</Accordion>
<Accordion title="Can I CC people on workflow emails?">
**Not yet.** CC and BCC fields for the Send Email action are on our roadmap.
<Accordion title="Mohu přidávat adresáty do kopie (CC) v e-mailech z pracovních postupů?">
**Zatím ne.** Pole CC a BCC pro akci Send Email jsou na naší roadmapě.
**Current workaround**: Add multiple Send Email actions to send to additional recipients, or use an HTTP Request to send via an external email service that supports CC.
**Aktuální řešení**: Přidejte více akcí Send Email pro odeslání dalším příjemcům nebo použijte HTTP Request k odeslání přes externí e-mailovou službu, která podporuje CC.
</Accordion>
<Accordion title="How do I use outputs from previous steps?">
Every action produces output data that can be used in subsequent steps.
<Accordion title="Jak použiji výstupy z předchozích kroků?">
Každá akce vytváří výstupní data, která lze použít v následujících krocích.
**To reference previous step data**:
**Jak odkazovat na data z předchozích kroků**:
* Use the variable picker when configuring a field
* Or type `{{stepName.fieldName}}` directly
* Při konfiguraci pole použijte výběr proměnné
* Nebo napište přímo `{{stepName.fieldName}}`
**Příklady**:
* Trigger data: `{{trigger.object.email}}`
* Search results: `{{searchRecords[0].name}}`
* Code output: `{{code.calculatedValue}}`
* Data spouštěče: `{{trigger.object.email}}`
* Výsledky hledání: `{{searchRecords[0].name}}`
* Výstup kódu: `{{code.calculatedValue}}`
Hover over any field in the action configuration to see available variables from previous steps.
Najetím myší na libovolné pole v konfiguraci akce uvidíte dostupné proměnné z předchozích kroků.
</Accordion>
<Accordion title="Why does my Iterator fail?">
**Iterator requires an array input.** Common issues:
<Accordion title="Proč můj Iterator selhává?">
**Iterator vyžaduje vstup typu pole (array).** Časté problémy:
1. **Input is not an array**: Ensure you're passing results from Search Records or another action that returns an array
2. **Array is empty**: Add a filter before Iterator to check `{{searchRecords.length}} > 0`
3. **Wrong variable selected**: Make sure you select the array itself, not a single record
1. **Vstup není pole (array)**: Ujistěte se, že předáváte výsledky z akce Search Records nebo jiné akce, která vrací pole
2. **Pole je prázdné**: Před Iterator přidejte filtr pro kontrolu `{{searchRecords.length}} > 0`
3. **Zvolená špatná proměnná**: Ujistěte se, že vybíráte samotné pole, ne jeden záznam
**Correct setup**:
**Správné nastavení**:
1. Search Records (returns array)
2. Filter: length > 0
3. Iterator: select `{{searchRecords}}`
4. Actions inside iterator use `{{iterator.currentItem.fieldName}}`
1. Search Records (vrací pole)
2. Filtr: length > 0
3. Iterator: vyberte `{{searchRecords}}`
4. Akce uvnitř iteratoru používají `{{iterator.currentItem.fieldName}}`
</Accordion>
<Accordion title="What's the maximum execution time for Code actions?">
Code actions (serverless functions) have a **default timeout of 5 minutes** (300 seconds).
<Accordion title="Jaký je maximální čas spuštění pro akce Code?">
Akce Code (serverless funkce) mají **výchozí časový limit 5 minut** (300 sekund).
The maximum configurable timeout is **15 minutes** (900 seconds).
Maximální nastavitelný časový limit je **15 minut** (900 sekund).
If your code exceeds this limit, the action will fail with a timeout error.
Pokud váš kód tento limit překročí, akce selže s chybou vypršení časového limitu.
**Tips to avoid timeouts**:
**Tipy, jak se vyhnout vypršení časových limitů**:
* Break large operations into smaller chunks using Iterator
* Avoid heavy computations; use external services via HTTP Request for intensive processing
* Optimize your code to reduce execution time
* If you need longer processing, consider using scheduled workflows that process data in batches
* Rozdělte velké operace na menší části pomocí Iteratoru
* Vyhněte se náročným výpočtům; pro intenzivní zpracování použijte externí služby přes HTTP Request
* Optimalizujte svůj kód pro zkrácení doby běhu
* Pokud potřebujete delší zpracování, zvažte použití plánovaných pracovních postupů, které zpracovávají data po dávkách
</Accordion>
<Accordion title="How do I read workflow runs?">
Workflow runs show the execution history and help you debug issues.
<Accordion title="Jak číst spuštění pracovních postupů?">
Spuštění pracovních postupů zobrazují historii provádění a pomáhají s laděním problémů.
**Access runs**:
**Přístup ke spuštěním**:
* In workflow editor → **Runs** panel on the right
* Or go to **Workflow Runs** in the sidebar
* V editoru pracovního postupu → panel **Runs** vpravo
* Nebo přejděte v postranním panelu do **Workflow Runs**
**Understanding a run**:
**Porozumění spuštění**:
* **Status**: Running, Completed, Failed, Waiting
* **Steps**: See which steps executed and their output
* **Errors**: Click failed steps to see error messages
* **Data**: View input/output data at each step
* **Stav**: Running, Completed, Failed, Waiting
* **Kroky**: Zobrazte, které kroky se provedly, a jejich výstup
* **Chyby**: Klikněte na neúspěšné kroky a zobrazíte chybové zprávy
* **Data**: Zobrazte vstupní/výstupní data v jednotlivých krocích
See [Workflow Runs](/l/cs/user-guide/workflows/capabilities/workflow-runs) for details.
Podrobnosti viz [Spuštění pracovních postupů](/l/cs/user-guide/workflows/capabilities/workflow-runs).
</Accordion>
<Accordion title="Why don't I see my workflow runs?">
Workflow runs might be failing immediately due to rate limits.
<Accordion title="Proč nevidím svá spuštění pracovních postupů?">
Spuštění pracovních postupů mohou selhávat okamžitě kvůli limitům rychlosti.
**Hard limit: 5,000 runs per hour per workspace.**
**Pevný limit: 5 000 spuštění za hodinu na pracovní prostor.**
If you exceed this limit, workflows are immediately marked as failed and won't appear in your runs list as expected.
Pokud tento limit překročíte, pracovní postupy jsou okamžitě označeny jako neúspěšné a v seznamu spuštění se nezobrazí podle očekávání.
**Common scenarios that hit this limit**:
**Běžné scénáře, které tento limit překročí**:
* Selecting more than 5,000 records with a Single manual trigger
* Multiple workflows running simultaneously across your workspace
* High-frequency automated triggers (e.g., Record Updated on a busy object)
* Výběr více než 5 000 záznamů pomocí ručního spouštěče Single
* Současné spuštění více pracovních postupů napříč vaším pracovním prostorem
* Časté automatické spouštěče (např. Record Updated na vytíženém objektu)
**Řešení**:
* Use **Bulk** triggers instead of Single to process many records in one run
* Space out large batch operations
* Use filters to reduce trigger frequency
* Schedule heavy workflows during off-peak hours
* Použijte spouštěče **Bulk** místo Single pro zpracování mnoha záznamů v jednom spuštění
* Rozložte velké dávkové operace v čase
* Používejte filtry ke snížení frekvence spouštění
* Náročné pracovní postupy plánujte mimo špičku
</Accordion>
<Accordion title="What are the workflow rate limits?">
Twenty has two rate limits to ensure system stability:
<Accordion title="Jaké jsou limity rychlosti pro pracovní postupy?">
Twenty má dva limity rychlosti pro zajištění stability systému:
| Limit | Hodnota | Behavior |
| ----- | ------- | -------- |
| Limit | Hodnota | Chování |
| ----- | ------- | ------- |
\| **Soft limit** | 100 runs/minute | Runs queue in "Not Started" status, processed gradually |
\| **Hard limit** | 5,000 runs/hour | Runs immediately fail |
\| **Soft limit** | 100 spuštění/minuta | Spuštění se zařadí do fronty se stavem "Not Started" a jsou zpracovávána postupně |
\| **Hard limit** | 5 000 spuštění/hodina | Spuštění okamžitě selžou |
**Soft limit (100/min)**: Your workflows won't fail—they just wait in the queue and are processed over time. You can trigger more than 100 records; execution will be slower.
**Soft limit (100/min)**: Vaše pracovní postupy neselžou—pouze čekají ve frontě a jsou postupně zpracovávány. Můžete spustit více než 100 záznamů; provádění bude pomalejší.
**Hard limit (5,000/hr)**: This applies to your entire workspace. If all your workflows combined exceed 5,000 runs in an hour, additional runs will fail immediately.
**Hard limit (5 000/hod)**: Týká se celého vašeho pracovního prostoru. Pokud všechny vaše pracovní postupy dohromady překročí 5 000 spuštění za hodinu, další spuštění okamžitě selžou.
**Tips to stay within limits**:
**Tipy, jak zůstat v rámci limitů**:
* Use Bulk triggers with Iterator instead of Single triggers for large batches
* Combine related automations into fewer workflows
* Use scheduled workflows to spread load over time
* Pro velké dávky použijte spouštěče Bulk s Iterator místo spouštěčů Single
* Kombinujte související automatizace do menšího počtu pracovních postupů
* Používejte plánované pracovní postupy k rozložení zátěže v čase
</Accordion>
<Accordion title="Can I retry a failed workflow run?">
**No, there is no automatic retry functionality at the moment.**
<Accordion title="Mohu znovu spustit neúspěšné spuštění pracovního postupu?">
**Ne, v tuto chvíli není k dispozici automatická funkce opakování.**
If a workflow run fails, you'll need to:
Pokud spuštění pracovního postupu selže, je potřeba:
1. Review the error in **Settings → Workflows → [Your Workflow] → Runs**
2. Fix the issue (data, configuration, or external service)
3. Manually trigger the workflow again on the affected record(s)
1. Zkontrolujte chybu v **Settings → Workflows → [Your Workflow] → Runs**
2. Opravte problém (data, konfigurace nebo externí služba)
3. Ručně znovu spusťte pracovní postup u dotčených záznamů
**Tips to reduce failures**:
**Tipy, jak snížit počet selhání**:
* Add **Filter** nodes to validate data before actions
* Use **Search Records** to check if related records exist
* Test thoroughly with a few records before bulk operations
* Přidejte uzly **Filter** pro ověření dat před akcemi
* Použijte **Search Records** ke kontrole, zda existují související záznamy
* Před hromadnými operacemi důkladně otestujte s několika záznamy
Automatic retry functionality is on our roadmap for a future release.
Funkce automatického opakování je v našem plánu pro budoucí vydání.
</Accordion>
<Accordion title="Should I deactivate workflows before CSV imports?">
**Yes, if your workflows are triggered by record creation or updates.**
<Accordion title="Mám před importy CSV deaktivovat pracovní postupy?">
**Ano, pokud se vaše pracovní postupy spouštějí vytvořením nebo aktualizací záznamu.**
When you import data via CSV, each record created or updated can trigger workflows. A large import (thousands of records) could:
Při importu dat pomocí CSV může každý vytvořený nebo aktualizovaný záznam spustit pracovní postupy. Velký import (tisíce záznamů) může:
* Hit the 5,000 runs/hour limit
* Consume significant workflow credits
* Send unexpected emails or notifications
* Create duplicate tasks or records
* Dosáhnout limitu 5 000 spuštění/hodinu
* Spotřebovat značné množství kreditů pracovních postupů
* Odeslat neočekávané e-maily nebo oznámení
* Vytvořit duplicitní úkoly nebo záznamy
**Before a mass import**:
**Před hromadným importem**:
1. Go to **Settings → Workflows**
2. Identify workflows triggered by the object you're importing
3. **Deactivate** them temporarily
4. Run your CSV import
5. **Reactivate** the workflows when done
1. Přejděte na **Nastavení → Pracovní postupy**
2. Identifikujte pracovní postupy spouštěné objektem, který importujete
3. **Deaktivujte** je dočasně
4. Spusťte import CSV
5. **Znovu aktivujte** pracovní postupy po dokončení
**Alternative**: If you need the workflows to run on imported data, import in smaller batches to stay within rate limits.
**Alternativa**: Pokud potřebujete, aby se pracovní postupy spouštěly na importovaných datech, importujte v menších dávkách, abyste zůstali v rámci limitů.
</Accordion>
<Accordion title="How do I clean up my workflow layout?">
If your workflow canvas looks messy with nodes scattered around, you can automatically organize it:
<Accordion title="Jak vyčistit rozvržení pracovního postupu?">
Pokud vaše plátno pracovního postupu vypadá nepořádně a uzly jsou rozházené, můžete jej automaticky uspořádat:
1. Right-click anywhere on the workflow canvas
2. Click **Tidy up workflow**
1. Klikněte pravým tlačítkem kamkoli na plátno pracovního postupu
2. Klikněte na **Tidy up workflow**
This will automatically rearrange all nodes into a clean, organized layout.
Tím se všechny uzly automaticky přeuspořádají do čistého, uspořádaného rozvržení.
</Accordion>
</AccordionGroup>
@@ -1,62 +1,62 @@
---
title: KI
description: AI-powered features coming soon to Twenty.
description: KI-gestützte Funktionen kommen bald in Twenty.
---
<Frame>
<img src="/images/user-guide/workflows/robot.png" alt="KI" />
</Frame>
## What's Coming
## Das kommt als Nächstes
Twenty is building AI capabilities to help your team work smarter. We're focusing on two major areas:
Twenty entwickelt KI-Funktionen, damit Ihr Team intelligenter arbeiten kann. Wir konzentrieren uns auf zwei Hauptbereiche:
### 1. AI Chatbot
### 1. KI-Chatbot
A conversational assistant that understands your context and has access to all your Twenty data.
Ein konversationeller Assistent, der Ihren Kontext versteht und Zugriff auf alle Ihre Twenty-Daten hat.
**Key capabilities:**
**Kernfunktionen:**
* **Full data access**: Query any record, relationship, or metric in your workspace
* **Page context awareness**: Reference "this company" or "this opportunity" based on where you are in Twenty
* **Natural language**: Ask questions and get answers without navigating menus
* **Vollständiger Datenzugriff**: Jeden Datensatz, jede Beziehung oder Kennzahl in Ihrem Arbeitsbereich abfragen
* **Seitenkontext-Erkennung**: Verweisen Sie auf "dieses Unternehmen" oder "diese Opportunity" basierend darauf, wo Sie sich in Twenty befinden
* **Natürliche Sprache**: Stellen Sie Fragen und erhalten Sie Antworten, ohne durch Menüs zu navigieren
**Example prompts:**
**Beispiel-Prompts:**
* "What opportunities are closing this month?"
* "Which deals have been in Negotiation for more than 30 days?"
* "Summarize my interactions with this person"
* "Welche Opportunities werden in diesem Monat abgeschlossen?"
* "Welche Deals befinden sich seit mehr als 30 Tagen in der Verhandlung?"
* "Fasse meine Interaktionen mit dieser Person zusammen"
### 2. AI Agents in Workflows
### 2. KI-Agenten in Workflows
Extend your workflows with AI-powered actions and autonomous agents.
Erweitern Sie Ihre Workflows mit KI-gestützten Aktionen und autonomen Agenten.
**Key capabilities:**
**Kernfunktionen:**
* **AI actions**: Use AI to enrich data, classify records, generate summaries, and more
* **Autonomous agents**: Let agents execute multi-step tasks within a workflow
* **Custom prompts**: Define exactly how AI should process your data
* **KI-Aktionen**: Nutzen Sie KI, um Daten anzureichern, Datensätze zu klassifizieren, Zusammenfassungen zu erzeugen und mehr
* **Autonome Agenten**: Lassen Sie Agenten mehrstufige Aufgaben innerhalb eines Workflows ausführen
* **Benutzerdefinierte Prompts**: Legen Sie genau fest, wie KI Ihre Daten verarbeiten soll
**Anwendungsfälle:**
* Automatically categorize inbound leads
* Enrich company data from public sources
* Generate follow-up email drafts based on meeting notes
* Score opportunities based on engagement patterns
* Eingehende Leads automatisch kategorisieren
* Unternehmensdaten aus öffentlichen Quellen anreichern
* Entwürfe für Follow-up-E-Mails auf Basis von Besprechungsnotizen erstellen
* Opportunities anhand von Interaktionsmustern bewerten
## Permissions and Access Control
## Berechtigungen und Zugriffskontrolle
AI agents will be managed through the existing permissions system:
KI-Agenten werden über das bestehende Berechtigungssystem verwaltet:
1. Gehen Sie zu **Einstellungen → Rollen**
2. Configure which data each AI agent can access
3. Set read/write permissions per object
2. Konfigurieren Sie, auf welche Daten jeder KI-Agent zugreifen kann
3. Legen Sie Lese-/Schreibberechtigungen pro Objekt fest
This ensures AI agents respect your data governance policies and only access what they need.
So wird sichergestellt, dass KI-Agenten Ihre Richtlinien zur Daten-Governance respektieren und nur auf das zugreifen, was sie benötigen.
## Bleiben Sie auf dem Laufenden
We'll update this section as AI features become available. In the meantime:
Wir werden diesen Abschnitt aktualisieren, sobald KI-Funktionen verfügbar werden. In der Zwischenzeit:
* Follow our [GitHub](https://github.com/twentyhq/twenty) for development updates
* Join our [Discord](https://discord.gg/twenty) to share feedback and feature requests
* Folgen Sie unserem [GitHub](https://github.com/twentyhq/twenty) für Entwicklungsupdates
* Treten Sie unserem [Discord](https://discord.gg/twenty) bei, um Feedback und Funktionswünsche zu teilen
@@ -1,44 +1,44 @@
---
title: Can I Send Emails from Twenty?
description: Information about sending emails directly from Twenty.
title: Kann ich E-Mails aus Twenty senden?
description: Informationen zum direkten Senden von E-Mails aus Twenty.
---
## Current Status
## Aktueller Status
Twenty's email integration is designed to **sync and display** your email history. Emails cannot be composed or sent directly from Twenty's interface.
Die E-Mail-Integration von Twenty ist dafür ausgelegt, Ihren E-Mail-Verlauf zu **synchronisieren und anzuzeigen**. E-Mails können nicht direkt in der Benutzeroberfläche von Twenty verfasst oder gesendet werden.
When you view an email thread on a record page and click **Reply**, you'll be redirected to the original thread in your mailbox (Gmail, Outlook, etc.). This is where you compose and send your reply.
Wenn Sie einen E-Mail-Thread auf einer Datensatzseite ansehen und auf **Antworten** klicken, werden Sie zu dem ursprünglichen Thread in Ihrem Postfach (Gmail, Outlook usw.) weitergeleitet. Dort verfassen und senden Sie Ihre Antwort.
## What You Can Do Today
## Was Sie heute tun können
* **View email history** on People, Companies, and Opportunities records
* **Read full email threads** with contacts in your CRM
* **Track communication context** alongside calendar events
* **Auto-create contacts** from email interactions
* **Reply via redirect** — click Reply to jump to your mailbox
* **E-Mail-Verlauf anzeigen** bei Datensätzen zu Personen, Unternehmen und Gelegenheiten
* **Vollständige E-Mail-Threads lesen** mit Kontakten in Ihrem CRM
* **Kommunikationskontext nachverfolgen** zusammen mit Kalenderereignissen
* **Kontakte automatisch erstellen** aus E-Mail-Interaktionen
* **Per Weiterleitung antworten** — klicken Sie auf Antworten, um zu Ihrem Postfach zu springen
## Sending Emails via Workflows
## E-Mails über Workflows senden
While you can't send emails manually from Twenty, you **can send emails automatically using Workflows**. This is useful for:
Auch wenn Sie E-Mails nicht manuell aus Twenty senden können, **können Sie E-Mails automatisch mithilfe von Workflows senden**. Dies ist nützlich für:
* Automated follow-ups
* Notifications to contacts
* Triggered communications based on record changes
* Automatisierte Nachverfolgungen
* Benachrichtigungen an Kontakte
* Ausgelöste Mitteilungen auf Grundlage von Änderungen an Datensätzen
Emails sent via workflows go through your connected mailbox account.
Über Workflows gesendete E-Mails werden über Ihr verbundenes E-Mail-Konto versendet.
Learn about the [Send Email action](/l/de/user-guide/workflows/capabilities/workflow-actions#send-email)
Erfahren Sie mehr über die [Aktion „E-Mail senden"](/l/de/user-guide/workflows/capabilities/workflow-actions#send-email)
## Email Sequences and Newsletters
## E-Mail-Sequenzen und Newsletter
For email sequences and newsletters, we recommend using workflows to connect Twenty to a dedicated email marketing tool.
Für E-Mail-Sequenzen und Newsletter empfehlen wir, Workflows zu verwenden, um Twenty mit einem dedizierten E-Mail-Marketing-Tool zu verbinden.
<Warning>
Mass emails should not be sent directly from your mailbox to protect your domain reputation. Use a dedicated tool for bulk communications.
Massen-E-Mails sollten zum Schutz der Reputation Ihrer Domain nicht direkt aus Ihrem Postfach gesendet werden. Verwenden Sie ein dediziertes Tool für Massenkommunikation.
</Warning>
→ See [How to send emails from workflows](/l/de/user-guide/workflows/capabilities/send-emails-from-workflows) for setup instructions
→ Siehe [E-Mails aus Workflows senden](/l/de/user-guide/workflows/capabilities/send-emails-from-workflows) für Anweisungen zur Einrichtung
## Future Plans
## Zukünftige Pläne
Native email composition from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
Das native Verfassen von E-Mails direkt in Twenty steht auf unserer Roadmap. Beteiligen Sie sich an unseren [GitHub-Diskussionen](https://github.com/twentyhq/twenty/discussions), um Ihren Anwendungsfall zu teilen und bei der Priorisierung dieser Funktion zu helfen.
@@ -1,35 +1,35 @@
---
title: Can I Track Email Activity on All Objects?
description: Understanding email activity tracking across different objects.
title: Kann ich die E-Mail-Aktivität für alle Objekte nachverfolgen?
description: So funktioniert die Nachverfolgung der E-Mail-Aktivität über verschiedene Objekte hinweg.
---
## Supported Objects
## Unterstützte Objekte
Email activity is currently available on **three standard objects**:
Die E-Mail-Aktivität ist derzeit für **drei Standardobjekte** verfügbar:
| Objekt | What You See |
| ----------------- | ---------------------------------------------------------------- |
| **People** | All emails exchanged with that specific contact |
| **Companies** | All emails with anyone from that company (based on email domain) |
| **Opportunities** | Emails related to the company linked to the opportunity |
| Objekt | Was Sie sehen |
| ----------------- | ---------------------------------------------------------------------------------- |
| **Personen** | Alle mit diesem bestimmten Kontakt ausgetauschten E-Mails |
| **Unternehmen** | Alle E-Mails mit Personen aus diesem Unternehmen (basierend auf der E-Mail-Domain) |
| **Opportunities** | E-Mails, die sich auf das mit der Verkaufschance verknüpfte Unternehmen beziehen |
## Why Only These Objects?
## Warum nur diese Objekte?
People, Companies, and Opportunities are the core relationship objects where email context adds the most value. Email threads are automatically linked based on:
Personen, Unternehmen und Verkaufschancen sind die zentralen Beziehungsobjekte, bei denen E-Mail-Kontext den größten Mehrwert bietet. E-Mail-Threads werden automatisch verknüpft basierend auf:
* **Email address** → matched to People records
* **Email domain** → matched to Company records
* **Company relation** → linked to Opportunities
* **E-Mail-Adresse** → Abgleich mit Personendatensätzen
* **E-Mail-Domain** → Abgleich mit Unternehmensdatensätzen
* **Unternehmensbeziehung** → verknüpft mit Verkaufschancen
## Benutzerdefinierte Objekte
**Email tracking is not available on custom objects** at this time.
**E-Mail-Tracking ist nicht für benutzerdefinierte Objekte verfügbar** zurzeit.
If you need email context on a custom object, consider:
Wenn Sie E-Mail-Kontext bei einem benutzerdefinierten Objekt benötigen, ziehen Sie Folgendes in Betracht:
* Using a relation field to link your custom object to People or Companies
* Viewing email history on the linked People/Company record
* Verwenden Sie ein Beziehungsfeld, um Ihr benutzerdefiniertes Objekt mit Personen oder Unternehmen zu verknüpfen
* Den E-Mail-Verlauf im verknüpften Personen-/Unternehmensdatensatz anzeigen
## Future Plans
## Zukünftige Pläne
Extending email visibility to custom objects is being considered. Share your use case on our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to help prioritize this feature.
Die Erweiterung der E-Mail-Sichtbarkeit auf benutzerdefinierte Objekte wird in Betracht gezogen. Teilen Sie Ihren Anwendungsfall in unseren [GitHub-Diskussionen](https://github.com/twentyhq/twenty/discussions), um die Priorisierung dieser Funktion zu unterstützen.
@@ -176,23 +176,23 @@ Verwenden Sie den **API-Namen** der Option (nicht den Anzeigenamen):
VALUE1
```
See [here](#finding-api-names-for-select-fields) where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing.</Note>
Siehe [hier](#finding-api-names-for-select-fields), wo Sie die API-Namen finden.
<Note>Neue Auswahloptionen werden durch den Import nicht automatisch erstellt. Sie müssen vor dem Import unter **Einstellungen → Datenmodell** hinzugefügt werden.</Note>
### Text Fields
### Textfelder
* No special formatting required
* Leading/trailing spaces are trimmed
* Keine besondere Formatierung erforderlich
* Führende/abschließende Leerzeichen werden entfernt
## Finding API Names
## API-Namen finden
For Select, Multi-Select, and Array fields with predefined options, you must use the **API names**, not the display labels.
Für Select-, Multi-Select- und Array-Felder mit vordefinierten Optionen müssen Sie die **API-Namen** verwenden, nicht die Anzeigenamen.
### How to Find API Names
### So finden Sie API-Namen
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at the bottom right of the settings page)
4. View the API name for each option
1. Gehen Sie zu **Einstellungen → Datenmodell**
2. Wählen Sie das Objekt und das Feld aus
3. Aktivieren Sie den **Erweiterten Modus** (Schalter unten rechts auf der Einstellungsseite)
4. Zeigen Sie den API-Namen für jede Option an
<VimeoEmbed videoId="1144910809" title="Video demonstration" />
<VimeoEmbed videoId="1144910809" title="Video-Demonstration" />
@@ -1,6 +1,6 @@
---
title: Was ist Twenty
description: Twenty is an open-source CRM that gives you the building blocks to create exactly what your business needs.
description: Twenty ist ein Open-Source-CRM, das Ihnen die Bausteine liefert, um genau das zu erstellen, was Ihr Unternehmen benötigt.
---
## Vision
@@ -26,11 +26,11 @@ Open-Source ist das Fundament unseres Ansatzes, das sicherstellt, dass Twenty si
## Hauptmerkmale
* **Calendar & Emails:** Sync your mailbox and calendar to see all communications on your CRM records. [Mehr erfahren](/l/de/user-guide/calendar-emails/overview).
* **Data Model:** Create custom objects and fields to match your unique business processes. [Explore](/l/de/user-guide/data-model/overview).
* **Data Migration:** Import and export your data via CSV or API. [Erste Schritte](/l/de/user-guide/data-migration/overview).
* **Views & Pipelines:** Organize your data with table views, kanban boards, and sales pipelines. [Discover](/l/de/user-guide/views-pipelines/overview).
* **Workflows:** Automate your business processes and integrate with external tools. [Build automations](/l/de/user-guide/workflows/overview).
* **Kalender & E-Mails:** Synchronisieren Sie Ihr Postfach und Ihren Kalender, um sämtliche Kommunikation in Ihren CRM-Datensätzen zu sehen. [Mehr erfahren](/l/de/user-guide/calendar-emails/overview).
* **Datenmodell:** Erstellen Sie benutzerdefinierte Objekte und Felder, die zu Ihren individuellen Geschäftsprozessen passen. [Entdecken](/l/de/user-guide/data-model/overview).
* **Datenmigration:** Importieren und exportieren Sie Ihre Daten per CSV oder API. [Erste Schritte](/l/de/user-guide/data-migration/overview).
* **Ansichten & Pipelines:** Organisieren Sie Ihre Daten mit Tabellenansichten, Kanban-Boards und Vertriebspipelines. [Entdecken](/l/de/user-guide/views-pipelines/overview).
* **Workflows:** Automatisieren Sie Ihre Geschäftsprozesse und integrieren Sie externe Tools. [Automatisierungen erstellen](/l/de/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/de/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/de/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/de/user-guide/permissions-access/overview).
@@ -1,46 +1,46 @@
---
title: Kalenderansicht
description: Display records with date fields on a calendar.
description: Datensätze mit Datumsfeldern in einem Kalender anzeigen.
---
## About Calendar View
## Über die Kalenderansicht
Calendar view displays your records on a calendar based on a date field. Each record appears as an event on the corresponding date.
Die Kalenderansicht zeigt Ihre Datensätze in einem Kalender basierend auf einem Datumsfeld an. Jeder Datensatz erscheint als Kalendereintrag am entsprechenden Datum.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Creating a Calendar View
## Eine Kalenderansicht erstellen
1. Navigate to an object with date fields
2. Click the view dropdown → **+ Add view**
3. Name your view and click **Create**
4. Open the **Options** on the right
5. Select **Calendar** as the layout
6. Choose the **date field** to use for positioning records
7. Click **Update view**
1. Navigieren Sie zu einem Objekt mit Datumsfeldern
2. Klicken Sie auf das Ansichts-Dropdown → **+ Ansicht hinzufügen**
3. Benennen Sie Ihre Ansicht und klicken Sie auf **Erstellen**
4. Öffnen Sie rechts die **Optionen**
5. Wählen Sie **Kalender** als Layout
6. Wählen Sie das **Datumsfeld**, das für die Positionierung der Datensätze verwendet werden soll
7. Klicken Sie auf **Ansicht aktualisieren**
## Configuring the Calendar
## Kalender konfigurieren
### Choose the Date Field
### Das Datumsfeld auswählen
Under **Options**, select which date field determines where records appear on the calendar.
Wählen Sie unter **Optionen** aus, welches Datumsfeld bestimmt, wo Datensätze im Kalender angezeigt werden.
### Display Fields
### Felder anzeigen
Configure which fields show on each calendar event:
Legen Sie fest, welche Felder bei jedem Kalendereintrag angezeigt werden:
1. Click **Options → Fields**
2. Toggle fields on/off
3. Drag to reorder
1. Klicken Sie auf **Optionen → Felder**
2. Felder ein-/ausschalten
3. Ziehen, um neu anzuordnen
## Use Cases
## Anwendungsfälle
* **Meetings and calls**: View upcoming appointments
* **Deadlines**: Track due dates and close dates
* **Events**: Plan and visualize scheduled activities
* **Follow-ups**: See when tasks are due
* **Besprechungen und Anrufe**: Bevorstehende Termine anzeigen
* **Fristen**: Fälligkeiten und Abschlussdaten nachverfolgen
* **Veranstaltungen**: Terminierte Aktivitäten planen und visualisieren
* **Nachfassaktionen**: Sehen, wann Aufgaben fällig sind
## Related
## Verwandt
* [Views Overview](/l/de/user-guide/views-pipelines/overview) — creating and managing views
* [Filters and Sorting](/l/de/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtering calendar data
* [Übersicht über Ansichten](/l/de/user-guide/views-pipelines/overview) — Erstellen und Verwalten von Ansichten
* [Filter und Sortierung](/l/de/user-guide/views-pipelines/capabilities/filters-and-sorting) — Kalenderdaten filtern
@@ -1,51 +1,51 @@
---
title: Create a Table View with Grouping
description: Organize your records into collapsible groups by field value.
title: Eine Tabellenansicht mit Gruppierung erstellen
description: Organisieren Sie Ihre Datensätze anhand von Feldwerten in einklappbare Gruppen.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Group your table view by a Select field to organize records into collapsible sections.
Gruppieren Sie Ihre Tabellenansicht nach einem Auswahlfeld, um Datensätze in einklappbare Abschnitte zu organisieren.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Steps
## Schritte
1. Navigate to the object (People, Companies, etc.)
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Companies by Type")
4. Click **Create**
5. Click **Options → Group**
6. Choose a Select field to group by
1. Navigieren Sie zum Objekt (Personen, Unternehmen usw.)
2. Klicken Sie auf das Ansichts-Dropdown → **+ Ansicht hinzufügen**
3. Benennen Sie Ihre Ansicht (z. B. "Unternehmen nach Typ")
4. Klicken Sie auf **Erstellen**
5. Klicken Sie auf **Optionen → Gruppieren**
6. Wählen Sie ein Auswahlfeld zum Gruppieren aus
7. Klicken Sie auf **Speichern**
## Configure Group Order
## Reihenfolge der Gruppen konfigurieren
Under **Options → Group → Sort**, choose how groups are ordered:
Wählen Sie unter **Optionen → Gruppieren → Sortieren**, wie Gruppen angeordnet werden:
| Option | Beschreibung |
| ------------------------ | --------------------------------------------- |
| **Alphabetical** | A to Z |
| **Reverse alphabetical** | Z to A |
| **Manual order** | Drag groups to reorder under "Visible groups" |
| Option | Beschreibung |
| -------------------------- | ------------------------------------------------------------------- |
| **Alphabetisch** | A bis Z |
| **Umgekehrt alphabetisch** | Z bis A |
| **Manuelle Reihenfolge** | Ziehen Sie Gruppen, um sie unter "Sichtbare Gruppen" neu anzuordnen |
Click the **eye icon** next to a group to hide it from the view.
Klicken Sie auf das **Augensymbol** neben einer Gruppe, um sie aus der Ansicht auszublenden.
<Note>
**For best performance, limit to 10-15 visible groups.** If you need more, consider using a Dashboard instead.
**Für optimale Leistung beschränken Sie sich auf 10-15 sichtbare Gruppen.** Wenn Sie mehr benötigen, erwägen Sie stattdessen die Verwendung eines Dashboards.
</Note>
## Example: Companies by Industry
## Beispiel: Unternehmen nach Branche
1. Go to **Companies**
2. Create a new view named "By Industry"
3. Click **Options → Group**
4. Select the **Industry** field
1. Gehen Sie zu **Unternehmen**
2. Erstellen Sie eine neue Ansicht mit dem Namen "Nach Branche"
3. Klicken Sie auf **Optionen → Gruppieren**
4. Wählen Sie das Feld **Branche** aus
5. Speichern
Now your companies are organized by industry, making it easy to focus on one segment at a time.
Ihre Unternehmen sind nun nach Branche organisiert, sodass Sie sich jeweils leicht auf ein Segment konzentrieren können.
## Related
## Verwandt
* [Table Views](/l/de/user-guide/views-pipelines/capabilities/table-views) — all table view features
* [Filters and Sorting](/l/de/user-guide/views-pipelines/capabilities/filters-and-sorting) — combine grouping with filters
* [Tabellenansichten](/l/de/user-guide/views-pipelines/capabilities/table-views) — alle Funktionen der Tabellenansicht
* [Filter und Sortierung](/l/de/user-guide/views-pipelines/capabilities/filters-and-sorting) — Gruppieren mit Filtern kombinieren
@@ -1,44 +1,44 @@
---
title: Set Up a Webhook Trigger
description: Receive data from external services to trigger workflows.
title: Webhook-Trigger einrichten
description: Empfangen Sie Daten von externen Diensten, um Workflows auszulösen.
image: /images/user-guide/workflows/workflow.png
---
Webhook triggers allow external services to start your workflows by sending data to a unique URL. Use them to connect forms, third-party apps, and custom integrations.
Webhook-Trigger ermöglichen es externen Diensten, Ihre Workflows zu starten, indem sie Daten an eine eindeutige URL senden. Verwenden Sie sie, um Formulare, Drittanbieter-Apps und benutzerdefinierte Integrationen zu verbinden.
## When to Use Webhooks
## Wann Sie Webhooks verwenden sollten
| Use Case | Beispiel |
| ----------------------- | --------------------------------------- |
| **Web forms** | Contact form submissions create leads |
| **Third-party apps** | Stripe payment → create customer record |
| **Custom integrations** | Your app → Twenty automation |
| **No-code tools** | Zapier, Make, n8n connections |
| Anwendungsfall | Beispiel |
| ------------------------------------ | ------------------------------------------------- |
| **Webformulare** | Einsendungen von Kontaktformularen erzeugen Leads |
| **Drittanbieter-Apps** | Stripe-Zahlung → Kundendatensatz erstellen |
| **Benutzerdefinierte Integrationen** | Ihre App → Twenty-Automatisierung |
| **No-Code-Tools** | Zapier-, Make- und n8n-Verbindungen |
## Step-by-Step Setup
## Schritt-für-Schritt-Einrichtung
### Step 1: Create the Workflow
### Schritt 1: Workflow erstellen
1. Go to **Settings → Workflows**
2. Click **+ New Workflow**
3. Name it (e.g., "Website Form Submission")
1. Gehen Sie zu **Einstellungen → Workflows**
2. Klicken Sie auf **+ Neuer Workflow**
3. Benennen Sie ihn (z. B. „Website-Formularübermittlung“)
### Step 2: Configure the Webhook Trigger
### Schritt 2: Webhook-Trigger konfigurieren
1. Click on the trigger block
2. Select **Webhook**
3. You'll receive a unique webhook URL like:
1. Klicken Sie auf den Trigger-Block
2. Wählen Sie **Webhook** aus
3. Sie erhalten eine eindeutige Webhook-URL wie:
```
https://api.twenty.com/webhooks/workflow/abc123...
```
4. Copy this URL—you'll need it for your external service
4. Kopieren Sie diese URL — Sie benötigen sie für Ihren externen Dienst
### Step 3: Define Expected Data Structure
### Schritt 3: Erwartete Datenstruktur definieren
For **POST** requests, define the expected body structure:
Bei **POST**-Anfragen die erwartete Body-Struktur definieren:
1. Click **Define expected body**
2. Enter a sample JSON that matches what your service will send:
1. Klicken Sie auf **Erwarteten Body definieren**
2. Geben Sie ein Beispiel-JSON ein, das dem entspricht, was Ihr Dienst sendet:
```json
{
@@ -50,30 +50,30 @@ For **POST** requests, define the expected body structure:
}
```
3. Click **Save**—this creates variables you can use in subsequent steps
3. Klicken Sie auf **Speichern** — dadurch werden Variablen erstellt, die Sie in den nächsten Schritten verwenden können.
### Step 4: Add Actions
### Schritt 4: Aktionen hinzufügen
Now add actions that use the webhook data:
Fügen Sie nun Aktionen hinzu, die die Webhook-Daten verwenden:
**Example: Create a Person record**
**Beispiel: Einen Personendatensatz erstellen**
1. Add **Create Record** action
2. Select **People** object
3. Map fields:
1. Fügen Sie die Aktion **Datensatz erstellen** hinzu
2. Wählen Sie das Objekt **Personen** aus
3. Felder zuordnen:
| Feld | Wert |
| ----------- | ---------------------------------------------------- |
| Vorname | `{{trigger.body.firstName}}` |
| Nachname | `{{trigger.body.lastName}}` |
| E-Mail | `{{trigger.body.email}}` |
| Unternehmen | Search or create based on `{{trigger.body.company}}` |
| Feld | Wert |
| ----------- | ------------------------------------------------------------------ |
| Vorname | `{{trigger.body.firstName}}` |
| Nachname | `{{trigger.body.lastName}}` |
| E-Mail | `{{trigger.body.email}}` |
| Unternehmen | Suchen oder erstellen Sie basierend auf `{{trigger.body.company}}` |
### Step 5: Test the Webhook
### Schritt 5: Den Webhook testen
Before activating, test your webhook:
Testen Sie Ihren Webhook, bevor Sie ihn aktivieren:
**Using cURL**:
**Mit cURL**:
```bash
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
@@ -81,22 +81,22 @@ curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
-d '{"firstName":"Test","lastName":"User","email":"test@example.com"}'
```
**Using Postman or similar**:
**Mit Postman oder ähnlichen Tools**:
1. Create a POST request to your webhook URL
2. Set Content-Type header to `application/json`
3. Add your test JSON body
4. Send and check workflow runs
1. Erstellen Sie eine POST-Anfrage an Ihre Webhook-URL
2. Setzen Sie den Content-Type-Header auf `application/json`
3. Fügen Sie Ihren Test-JSON-Body hinzu
4. Senden und die Workflow-Ausführungen prüfen
### Step 6: Activate
### Schritt 6: Aktivieren
Once tested, click **Activate** to make the workflow live.
Nach dem Testen klicken Sie auf **Aktivieren**, um den Workflow live zu schalten.
## Handling Different Data Structures
## Umgang mit unterschiedlichen Datenstrukturen
### Nested Data
### Verschachtelte Daten
If your webhook sends nested data:
Wenn Ihr Webhook verschachtelte Daten sendet:
```json
{
@@ -108,11 +108,11 @@ If your webhook sends nested data:
}
```
Reference with: `{{trigger.body.contact.email}}`
Referenzieren mit: `{{trigger.body.contact.email}}`
### Arrays
If data includes arrays:
Wenn die Daten Arrays enthalten:
```json
{
@@ -123,11 +123,11 @@ If data includes arrays:
}
```
How you handle arrays depends on your use case:
Wie Sie Arrays handhaben, hängt von Ihrem Anwendungsfall ab:
**Unknown number of items → Use Iterator**
**Unbekannte Anzahl von Elementen → Iterator verwenden**
If you need to process each item in the array (e.g., create a record for each), add a **Code** action to parse the array, then use **Iterator**:
Wenn Sie jedes Element im Array verarbeiten müssen (z. B. für jedes einen Datensatz erstellen), fügen Sie eine **Code**-Aktion hinzu, um das Array zu parsen, und verwenden Sie anschließend **Iterator**:
```javascript
export const main = async (params: { items: any }) => {
@@ -138,11 +138,11 @@ export const main = async (params: { items: any }) => {
};
```
Then use Iterator to loop through: `{{code.items}}`
Verwenden Sie dann Iterator, um zu iterieren: `{{code.items}}`
**Known/specific fieldsExtract to named fields**
**Bekannte/spezifische FelderIn benannte Felder extrahieren**
If the array contains specific fields you want to access individually (e.g., form answers where position 0 is always "first name", position 1 is always "last name"), add a **Code** action to extract them:
Wenn das Array bestimmte Felder enthält, auf die Sie einzeln zugreifen möchten (z. B. Formularantworten, bei denen Position 0 immer „Vorname“ und Position 1 immer „Nachname“ ist), fügen Sie eine **Code**-Aktion hinzu, um sie zu extrahieren:
```javascript
export const main = async (params: { items: any }) => {
@@ -159,13 +159,13 @@ export const main = async (params: { items: any }) => {
};
```
Now you can select `product.name` and `product.qty` individually in subsequent steps.
Jetzt können Sie `product.name` und `product.qty` in den folgenden Schritten jeweils einzeln auswählen.
<Tip>
For more details on handling arrays, see [Handle Arrays in Code Actions](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
Weitere Details zum Umgang mit Arrays finden Sie unter [Arrays in Code-Aktionen verarbeiten](/l/de/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
</Tip>
## Related
## Verwandt
* [Workflow Triggers](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/de/user-guide/workflows/capabilities/workflow-actions)
* [Workflow-Trigger](/l/de/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow-Aktionen](/l/de/user-guide/workflows/capabilities/workflow-actions)
@@ -1,254 +1,254 @@
---
title: Workflows FAQ
description: Frequently asked questions about workflows in Twenty.
title: FAQ zu Workflows
description: Häufig gestellte Fragen zu Workflows in Twenty.
---
<AccordionGroup>
<Accordion title="Why can't I activate a workflow?">
This is likely a permissions issue. You need access to workflows to create and activate them.
<Accordion title="Warum kann ich einen Workflow nicht aktivieren?">
Dies ist wahrscheinlich ein Berechtigungsproblem. Sie benötigen Zugriff auf Workflows, um sie zu erstellen und zu aktivieren.
**Solution**: Contact your workspace administrator to grant you workflow access under **Settings → Roles**.
**Lösung**: Wenden Sie sich an Ihren Workspace-Administrator, damit er Ihnen unter **Einstellungen → Rollen** Zugriff auf Workflows gewährt.
If you don't see the Workflows section at all in your sidebar, this confirms it's a permissions issue.
Wenn Sie den Bereich Workflows in Ihrer Seitenleiste überhaupt nicht sehen, bestätigt dies ein Berechtigungsproblem.
</Accordion>
<Accordion title="Why don't I see my manual workflow button in the top navbar?">
Manual workflows only appear in the navbar if properly configured:
<Accordion title="Warum sehe ich die Schaltfläche für manuelle Workflows nicht in der oberen Navigationsleiste?">
Manuelle Workflows erscheinen nur in der Navigationsleiste, wenn sie korrekt konfiguriert sind:
1. The workflow must be **activated** (not in draft mode)
2. The navbar placement must be set to **Pinned**
3. For Single/Bulk triggers, you must be on the correct object page
1. Der Workflow muss **aktiviert** sein (nicht im Entwurfsmodus)
2. Die Platzierung in der Navigationsleiste muss auf **Pinned** gesetzt sein
3. Für Single-/Bulk-Trigger müssen Sie sich auf der richtigen Objektseite befinden
**To check**: Open the workflow → click the trigger → verify "Navbar placement" is set to "Pinned".
**Zum Überprüfen**: Öffnen Sie den Workflow → klicken Sie auf den Trigger → prüfen Sie, dass "Navbar placement" auf "Pinned" gesetzt ist.
You can always access manual workflows via **Cmd + K** (or **Ctrl + K**) regardless of navbar settings.
Unabhängig von den Navbar-Einstellungen können Sie manuelle Workflows jederzeit über **Cmd + K** (oder **Ctrl + K**) aufrufen.
</Accordion>
<Accordion title="What's the difference between Single, Global, and Bulk manual triggers?">
| Typ | Records Required | Workflow-Läufe |
| --- | ---------------- | -------------- |
<Accordion title="Was ist der Unterschied zwischen manuellen Single-, Global- und Bulk-Triggern?">
| Typ | Erforderliche Datensätze | Workflow-Läufe |
| --- | ------------------------ | -------------- |
\| **Global** | None | Once, no record input |
\| **Single** | One or more selected | Once per selected record |
\| **Bulk** | One or more selected | Once, with all records as array |
\| **Global** | Keine | Einmal, ohne Datensatzeingabe |
\| **Single** | Ein oder mehrere ausgewählte | Einmal pro ausgewähltem Datensatz |
\| **Bulk** | Ein oder mehrere ausgewählte | Einmal, mit allen Datensätzen als Array |
* **Global**: Use when the workflow doesn't need any record context (e.g., generate a report)
* **Single**: Use when you want to process each selected record independently (e.g., send individual emails)
* **Bulk**: Use when you need to process records together or optimize credit usage (requires Iterator action)
* **Global**: Verwenden Sie dies, wenn der Workflow keinen Datensatzkontext benötigt (z. B. einen Bericht erzeugen)
* **Single**: Verwenden Sie dies, wenn Sie jeden ausgewählten Datensatz unabhängig verarbeiten möchten (z. B. einzelne E-Mails senden)
* **Bulk**: Verwenden Sie dies, wenn Sie Datensätze gemeinsam verarbeiten oder den Credit-Verbrauch optimieren möchten (erfordert die Iterator-Aktion)
See [Workflow Triggers](/l/de/user-guide/workflows/capabilities/workflow-triggers) for details.
Siehe [Workflow-Trigger](/l/de/user-guide/workflows/capabilities/workflow-triggers) für Details.
</Accordion>
<Accordion title="I don't see an If/Else node. Was sollte ich tun?">
An explicit If/Else node is not yet available but is on our roadmap.
<Accordion title="Ich sehe keinen If/Else-Knoten. Was sollte ich tun?">
Ein expliziter If/Else-Knoten ist noch nicht verfügbar, steht aber auf unserer Roadmap.
**Current workaround**: Create multiple branches from your step, each starting with a **Filter** action:
**Aktuelle Problemumgehung**: Erstellen Sie mehrere Verzweigungen von Ihrem Schritt aus, die jeweils mit einer **Filter**-Aktion beginnen:
```
Step 1
Schritt 1
├── Branch A: Filter (condition = true) → Actions...
├── Verzweigung A: Filter (Bedingung = true) → Aktionen...
└── Branch B: Filter (condition = false) → Actions...
└── Verzweigung B: Filter (Bedingung = false) → Aktionen...
```
Only the branch where the filter condition passes will execute its subsequent actions.
Nur die Verzweigung, deren Filterbedingung erfüllt ist, führt die nachfolgenden Aktionen aus.
See [How to Use Branches](/l/de/user-guide/workflows/capabilities/workflow-branches) for a step-by-step guide.
Siehe [Verzweigungen verwenden](/l/de/user-guide/workflows/capabilities/workflow-branches) für eine Schritt-für-Schritt-Anleitung.
</Accordion>
<Accordion title="Are workflow branches running in parallel?">
**Yes**, branches run in parallel by default.
<Accordion title="Laufen Workflow-Verzweigungen parallel?">
**Ja**, Verzweigungen laufen standardmäßig parallel.
If you want only one branch to execute:
Wenn nur eine Verzweigung ausgeführt werden soll:
* Add a **Filter** action at the start of each branch
* Set opposite conditions (e.g., Branch A: status = "Open", Branch B: status ≠ "Open")
* Fügen Sie am Anfang jeder Verzweigung eine **Filter**-Aktion hinzu
* Legen Sie gegensätzliche Bedingungen fest (z. B., Verzweigung A: status = "Open", Verzweigung B: status ≠ "Open")
Branches that fail their filter condition stop executing, while others continue.
Verzweigungen, deren Filterbedingung fehlschlägt, werden nicht weiter ausgeführt; andere laufen weiter.
</Accordion>
<Accordion title="Can I merge branches back together?">
**Yes**. After your parallel branches complete, you can add a step that both branches connect to.
<Accordion title="Kann ich Verzweigungen wieder zusammenführen?">
**Ja**. Nachdem Ihre parallelen Verzweigungen abgeschlossen sind, können Sie einen Schritt hinzufügen, mit dem beide Verzweigungen verbunden werden.
In the workflow editor:
Im Workflow-Editor:
1. Complete your branched actions
2. Add a new step after the branches
3. Drag connections from the end of each branch to this new step
1. Schließen Sie Ihre verzweigten Aktionen ab
2. Fügen Sie nach den Verzweigungen einen neuen Schritt hinzu
3. Ziehen Sie Verbindungen vom Ende jeder Verzweigung zu diesem neuen Schritt
The merged step will execute after all connected branches complete.
Der zusammengeführte Schritt wird ausgeführt, nachdem alle verbundenen Verzweigungen abgeschlossen sind.
</Accordion>
<Accordion title="What's the limit on Search Records results?">
**Search Records returns a maximum of 200 records.**
<Accordion title="Wie lautet das Limit für die Ergebnisse von Search Records?">
**Search Records gibt maximal 200 Datensätze zurück.**
If you need to process more:
Wenn Sie mehr verarbeiten müssen:
* Add more specific filters to reduce results
* Use scheduled workflows to process in batches
* Consider using the API for bulk operations
* Fügen Sie spezifischere Filter hinzu, um die Ergebnisse zu reduzieren
* Verwenden Sie geplante Workflows, um in Batches zu verarbeiten
* Ziehen Sie die Verwendung der API für Massenoperationen in Betracht
For most workflows, 200 records is sufficient. If you regularly hit this limit, consider restructuring your automation.
Für die meisten Workflows sind 200 Datensätze ausreichend. Wenn Sie dieses Limit regelmäßig erreichen, sollten Sie Ihre Automatisierung neu strukturieren.
</Accordion>
<Accordion title="Can I CC people on workflow emails?">
**Not yet.** CC and BCC fields for the Send Email action are on our roadmap.
<Accordion title="Kann ich Personen in Workflow-E-Mails in CC setzen?">
**Noch nicht.** CC- und BCC-Felder für die Aktion "Send Email" stehen auf unserer Roadmap.
**Current workaround**: Add multiple Send Email actions to send to additional recipients, or use an HTTP Request to send via an external email service that supports CC.
**Aktuelle Problemumgehung**: Fügen Sie mehrere "Send Email"-Aktionen hinzu, um an zusätzliche Empfänger zu senden, oder verwenden Sie einen HTTP Request, um über einen externen E-Mail-Dienst zu senden, der CC unterstützt.
</Accordion>
<Accordion title="How do I use outputs from previous steps?">
Every action produces output data that can be used in subsequent steps.
<Accordion title="Wie verwende ich Ausgaben aus vorherigen Schritten?">
Jede Aktion erzeugt Ausgabedaten, die in nachfolgenden Schritten verwendet werden können.
**To reference previous step data**:
**So verweisen Sie auf Daten aus vorherigen Schritten**:
* Use the variable picker when configuring a field
* Or type `{{stepName.fieldName}}` directly
* Verwenden Sie den Variablenauswähler, wenn Sie ein Feld konfigurieren
* Oder geben Sie `{{stepName.fieldName}}` direkt ein
**Beispiele**:
* Trigger data: `{{trigger.object.email}}`
* Search results: `{{searchRecords[0].name}}`
* Code output: `{{code.calculatedValue}}`
* Trigger-Daten: `{{trigger.object.email}}`
* Suchergebnisse: `{{searchRecords[0].name}}`
* Code-Ausgabe: `{{code.calculatedValue}}`
Hover over any field in the action configuration to see available variables from previous steps.
Fahren Sie in der Aktionskonfiguration mit der Maus über ein beliebiges Feld, um verfügbare Variablen aus vorherigen Schritten zu sehen.
</Accordion>
<Accordion title="Why does my Iterator fail?">
**Iterator requires an array input.** Common issues:
<Accordion title="Warum schlägt mein Iterator fehl?">
**Iterator erfordert eine Array-Eingabe.** Häufige Probleme:
1. **Input is not an array**: Ensure you're passing results from Search Records or another action that returns an array
2. **Array is empty**: Add a filter before Iterator to check `{{searchRecords.length}} > 0`
3. **Wrong variable selected**: Make sure you select the array itself, not a single record
1. **Eingabe ist kein Array**: Stellen Sie sicher, dass Sie Ergebnisse von Search Records oder einer anderen Aktion übergeben, die ein Array zurückgibt
2. **Array ist leer**: Fügen Sie vor Iterator einen Filter hinzu, um `{{searchRecords.length}} > 0` zu prüfen
3. **Falsche Variable ausgewählt**: Stellen Sie sicher, dass Sie das Array selbst auswählen, nicht einen einzelnen Datensatz
**Correct setup**:
**Korrekte Einrichtung**:
1. Search Records (returns array)
1. Search Records (gibt ein Array zurück)
2. Filter: length > 0
3. Iterator: select `{{searchRecords}}`
4. Actions inside iterator use `{{iterator.currentItem.fieldName}}`
3. Iterator: Wählen Sie `{{searchRecords}}` aus
4. Aktionen innerhalb des Iterators verwenden `{{iterator.currentItem.fieldName}}`
</Accordion>
<Accordion title="What's the maximum execution time for Code actions?">
Code actions (serverless functions) have a **default timeout of 5 minutes** (300 seconds).
<Accordion title="Wie lang ist die maximale Ausführungszeit für Code-Aktionen?">
Code-Aktionen (serverlose Funktionen) haben ein **Standard-Timeout von 5 Minuten** (300 Sekunden).
The maximum configurable timeout is **15 minutes** (900 seconds).
Das maximal konfigurierbare Timeout beträgt **15 Minuten** (900 Sekunden).
If your code exceeds this limit, the action will fail with a timeout error.
Wenn Ihr Code dieses Limit überschreitet, schlägt die Aktion mit einem Timeout-Fehler fehl.
**Tips to avoid timeouts**:
**Tipps zur Vermeidung von Timeouts**:
* Break large operations into smaller chunks using Iterator
* Avoid heavy computations; use external services via HTTP Request for intensive processing
* Optimize your code to reduce execution time
* If you need longer processing, consider using scheduled workflows that process data in batches
* Zerlegen Sie große Operationen mithilfe des Iterators in kleinere Teile
* Vermeiden Sie rechenintensive Vorgänge; verwenden Sie für aufwändige Verarbeitung externe Dienste über HTTP Request
* Optimieren Sie Ihren Code, um die Ausführungszeit zu reduzieren
* Wenn Sie längere Verarbeitung benötigen, sollten Sie geplante Workflows verwenden, die Daten in Batches verarbeiten
</Accordion>
<Accordion title="How do I read workflow runs?">
Workflow runs show the execution history and help you debug issues.
<Accordion title="Wie lese ich Workflow-Ausführungen?">
Workflow-Ausführungen zeigen die Ausführungshistorie und helfen beim Debuggen von Problemen.
**Access runs**:
**Auf Ausführungen zugreifen**:
* In workflow editor → **Runs** panel on the right
* Or go to **Workflow Runs** in the sidebar
* Im Workflow-Editor → **Runs**-Bereich auf der rechten Seite
* Oder gehen Sie in der Seitenleiste zu **Workflow Runs**
**Understanding a run**:
**Eine Ausführung verstehen**:
* **Status**: Running, Completed, Failed, Waiting
* **Steps**: See which steps executed and their output
* **Errors**: Click failed steps to see error messages
* **Data**: View input/output data at each step
* **Schritte**: Sehen Sie, welche Schritte ausgeführt wurden und deren Ausgabe
* **Fehler**: Klicken Sie auf fehlgeschlagene Schritte, um Fehlermeldungen zu sehen
* **Daten**: Betrachten Sie Eingabe-/Ausgabedaten in jedem Schritt
See [Workflow Runs](/l/de/user-guide/workflows/capabilities/workflow-runs) for details.
Siehe [Workflow-Ausführungen](/l/de/user-guide/workflows/capabilities/workflow-runs) für Details.
</Accordion>
<Accordion title="Why don't I see my workflow runs?">
Workflow runs might be failing immediately due to rate limits.
<Accordion title="Warum sehe ich meine Workflow-Ausführungen nicht?">
Workflow-Ausführungen schlagen möglicherweise aufgrund von Rate Limits sofort fehl.
**Hard limit: 5,000 runs per hour per workspace.**
**Hartes Limit: 5.000 Ausführungen pro Stunde und Workspace.**
If you exceed this limit, workflows are immediately marked as failed and won't appear in your runs list as expected.
Wenn Sie dieses Limit überschreiten, werden Workflows sofort als fehlgeschlagen markiert und erscheinen nicht wie erwartet in Ihrer Ausführungsliste.
**Common scenarios that hit this limit**:
**Häufige Szenarien, die dieses Limit erreichen**:
* Selecting more than 5,000 records with a Single manual trigger
* Multiple workflows running simultaneously across your workspace
* High-frequency automated triggers (e.g., Record Updated on a busy object)
* Auswahl von mehr als 5.000 Datensätzen mit einem manuellen Single-Trigger
* Mehrere Workflows, die gleichzeitig in Ihrem Workspace ausgeführt werden
* Hochfrequente automatisierte Trigger (z. B. Record Updated bei einem stark genutzten Objekt)
**Lösungen**:
* Use **Bulk** triggers instead of Single to process many records in one run
* Space out large batch operations
* Use filters to reduce trigger frequency
* Schedule heavy workflows during off-peak hours
* Verwenden Sie **Bulk**-Trigger statt Single, um viele Datensätze in einer Ausführung zu verarbeiten
* Staffeln Sie große Batch-Vorgänge zeitlich
* Verwenden Sie Filter, um die Triggerfrequenz zu reduzieren
* Planen Sie umfangreiche Workflows außerhalb der Stoßzeiten
</Accordion>
<Accordion title="What are the workflow rate limits?">
Twenty has two rate limits to ensure system stability:
<Accordion title="Wie lauten die Workflow-Rate-Limits?">
Twenty hat zwei Rate-Limits, um die Systemstabilität sicherzustellen:
| Limit | Wert | Behavior |
| ----- | ---- | -------- |
| Limit | Wert | Verhalten |
| ----- | ---- | --------- |
\| **Soft limit** | 100 runs/minute | Runs queue in "Not Started" status, processed gradually |
\| **Hard limit** | 5,000 runs/hour | Runs immediately fail |
\| **Weiches Limit** | 100 Ausführungen/Minute | Ausführungen werden im Status "Not Started" in die Warteschlange gestellt und nach und nach verarbeitet |
\| **Hartes Limit** | 5.000 Ausführungen/Stunde | Ausführungen schlagen sofort fehl |
**Soft limit (100/min)**: Your workflows won't fail—they just wait in the queue and are processed over time. You can trigger more than 100 records; execution will be slower.
**Weiches Limit (100/Min.)**: Ihre Workflows schlagen nicht fehl sie warten lediglich in der Warteschlange und werden mit der Zeit verarbeitet. Sie können mehr als 100 Datensätze auslösen; die Ausführung wird langsamer sein.
**Hard limit (5,000/hr)**: This applies to your entire workspace. If all your workflows combined exceed 5,000 runs in an hour, additional runs will fail immediately.
**Hartes Limit (5.000/Stunde)**: Dies gilt für Ihren gesamten Workspace. Wenn alle Ihre Workflows zusammen in einer Stunde mehr als 5.000 Ausführungen erreichen, schlagen zusätzliche Ausführungen sofort fehl.
**Tips to stay within limits**:
**Tipps, um innerhalb der Limits zu bleiben**:
* Use Bulk triggers with Iterator instead of Single triggers for large batches
* Combine related automations into fewer workflows
* Use scheduled workflows to spread load over time
* Verwenden Sie für große Batches Bulk-Trigger mit Iterator statt Single-Triggern
* Kombinieren Sie verwandte Automatisierungen in weniger Workflows
* Verwenden Sie geplante Workflows, um die Last über die Zeit zu verteilen
</Accordion>
<Accordion title="Can I retry a failed workflow run?">
**No, there is no automatic retry functionality at the moment.**
<Accordion title="Kann ich eine fehlgeschlagene Workflow-Ausführung erneut ausführen?">
**Nein, derzeit gibt es keine automatische Wiederholungsfunktion.**
If a workflow run fails, you'll need to:
Wenn eine Workflow-Ausführung fehlschlägt, müssen Sie:
1. Review the error in **Settings → Workflows → [Your Workflow] → Runs**
2. Fix the issue (data, configuration, or external service)
3. Manually trigger the workflow again on the affected record(s)
1. Den Fehler prüfen unter **Einstellungen → Workflows → [Ihr Workflow] → Runs**
2. Das Problem beheben (Daten, Konfiguration oder externer Dienst)
3. Den Workflow erneut manuell für die betroffenen Datensätze auslösen
**Tips to reduce failures**:
**Tipps zur Reduzierung von Fehlschlägen**:
* Add **Filter** nodes to validate data before actions
* Use **Search Records** to check if related records exist
* Test thoroughly with a few records before bulk operations
* Fügen Sie **Filter**-Knoten hinzu, um Daten vor Aktionen zu validieren
* Verwenden Sie **Search Records**, um zu prüfen, ob verknüpfte Datensätze existieren
* Testen Sie gründlich mit einigen Datensätzen, bevor Sie Massenoperationen durchführen
Automatic retry functionality is on our roadmap for a future release.
Eine automatische Wiederholungsfunktion steht auf unserer Roadmap für eine zukünftige Version.
</Accordion>
<Accordion title="Should I deactivate workflows before CSV imports?">
**Yes, if your workflows are triggered by record creation or updates.**
<Accordion title="Sollte ich Workflows vor CSV-Importen deaktivieren?">
**Ja, wenn Ihre Workflows durch das Erstellen oder Aktualisieren von Datensätzen ausgelöst werden.**
When you import data via CSV, each record created or updated can trigger workflows. A large import (thousands of records) could:
Wenn Sie Daten per CSV importieren, kann jeder erstellte oder aktualisierte Datensatz Workflows auslösen. Ein großer Import (Tausende von Datensätzen) könnte:
* Hit the 5,000 runs/hour limit
* Consume significant workflow credits
* Send unexpected emails or notifications
* Create duplicate tasks or records
* Das Limit von 5.000 Ausführungen/Stunde erreichen
* Erhebliche Workflow-Credits verbrauchen
* Unerwartete E-Mails oder Benachrichtigungen senden
* Doppelte Aufgaben oder Datensätze erstellen
**Before a mass import**:
**Vor einem Massenimport**:
1. Go to **Settings → Workflows**
2. Identify workflows triggered by the object you're importing
3. **Deactivate** them temporarily
4. Run your CSV import
5. **Reactivate** the workflows when done
1. Gehen Sie zu **Einstellungen → Workflows**
2. Identifizieren Sie Workflows, die durch das Objekt ausgelöst werden, das Sie importieren
3. **Deaktivieren** Sie diese vorübergehend
4. Führen Sie Ihren CSV-Import aus
5. **Reaktivieren** Sie die Workflows, wenn Sie fertig sind
**Alternative**: If you need the workflows to run on imported data, import in smaller batches to stay within rate limits.
**Alternative**: Wenn die Workflows für importierte Daten ausgeführt werden sollen, importieren Sie in kleineren Batches, um innerhalb der Rate-Limits zu bleiben.
</Accordion>
<Accordion title="How do I clean up my workflow layout?">
If your workflow canvas looks messy with nodes scattered around, you can automatically organize it:
<Accordion title="Wie bereinige ich mein Workflow-Layout?">
Wenn Ihre Workflow-Canvas unübersichtlich aussieht, mit verstreuten Knoten, können Sie sie automatisch organisieren:
1. Right-click anywhere on the workflow canvas
2. Click **Tidy up workflow**
1. Klicken Sie mit der rechten Maustaste irgendwo auf der Workflow-Canvas
2. Klicken Sie auf **Tidy up workflow**
This will automatically rearrange all nodes into a clean, organized layout.
Dadurch werden alle Knoten automatisch in ein übersichtliches, organisiertes Layout gebracht.
</Accordion>
</AccordionGroup>
@@ -1,6 +1,6 @@
---
title: AI
description: AI-powered features coming soon to Twenty.
description: Funzionalità basate sull'IA in arrivo su Twenty.
---
<Frame>
@@ -9,54 +9,54 @@ description: AI-powered features coming soon to Twenty.
## Novità in arrivo
Twenty is building AI capabilities to help your team work smarter. We're focusing on two major areas:
Twenty sta sviluppando funzionalità di IA per aiutare il tuo team a lavorare in modo più intelligente. Ci stiamo concentrando su due aree principali:
### 1. AI Chatbot
### 1. Chatbot con IA
A conversational assistant that understands your context and has access to all your Twenty data.
Un assistente conversazionale che comprende il tuo contesto e ha accesso a tutti i tuoi dati su Twenty.
**Key capabilities:**
**Funzionalità principali:**
* **Full data access**: Query any record, relationship, or metric in your workspace
* **Page context awareness**: Reference "this company" or "this opportunity" based on where you are in Twenty
* **Natural language**: Ask questions and get answers without navigating menus
* **Accesso completo ai dati**: Interroga qualsiasi record, relazione o metrica nel tuo spazio di lavoro
* **Consapevolezza del contesto della pagina**: Fai riferimento a "questa azienda" o "questa opportunità" in base a dove ti trovi in Twenty
* **Linguaggio naturale**: Fai domande e ottieni risposte senza navigare tra i menu
**Example prompts:**
**Esempi di prompt:**
* "What opportunities are closing this month?"
* "Which deals have been in Negotiation for more than 30 days?"
* "Summarize my interactions with this person"
* "Quali opportunità si chiuderanno questo mese?"
* "Quali affari sono in Negoziazione da più di 30 giorni?"
* "Riassumi le mie interazioni con questa persona"
### 2. AI Agents in Workflows
### 2. Agenti di IA nei flussi di lavoro
Extend your workflows with AI-powered actions and autonomous agents.
Estendi i tuoi flussi di lavoro con azioni basate sull'IA e agenti autonomi.
**Key capabilities:**
**Funzionalità principali:**
* **AI actions**: Use AI to enrich data, classify records, generate summaries, and more
* **Autonomous agents**: Let agents execute multi-step tasks within a workflow
* **Custom prompts**: Define exactly how AI should process your data
* **Azioni di IA**: Usa l'IA per arricchire i dati, classificare i record, generare riepiloghi e altro ancora
* **Agenti autonomi**: Consenti agli agenti di eseguire attività in più passaggi all'interno di un flusso di lavoro
* **Prompt personalizzati**: Definisci esattamente come l'IA deve elaborare i tuoi dati
**Casi di utilizzo:**
* Automatically categorize inbound leads
* Enrich company data from public sources
* Generate follow-up email drafts based on meeting notes
* Score opportunities based on engagement patterns
* Classifica automaticamente i lead in entrata
* Arricchisci i dati aziendali da fonti pubbliche
* Genera bozze di email di follow-up basate sulle note della riunione
* Assegna un punteggio alle opportunità in base ai modelli di coinvolgimento
## Permissions and Access Control
## Autorizzazioni e controllo degli accessi
AI agents will be managed through the existing permissions system:
Gli agenti di IA saranno gestiti tramite il sistema di autorizzazioni esistente:
1. Vai a **Impostazioni → Ruoli**
2. Configure which data each AI agent can access
3. Set read/write permissions per object
2. Configura a quali dati può accedere ciascun agente di IA
3. Imposta le autorizzazioni di lettura/scrittura per oggetto
This ensures AI agents respect your data governance policies and only access what they need.
Questo garantisce che gli agenti di IA rispettino le tue politiche di governance dei dati e accedano solo a ciò di cui hanno bisogno.
## Rimani aggiornato
We'll update this section as AI features become available. In the meantime:
Aggiorneremo questa sezione man mano che le funzionalità di IA saranno disponibili. Nel frattempo:
* Follow our [GitHub](https://github.com/twentyhq/twenty) for development updates
* Join our [Discord](https://discord.gg/twenty) to share feedback and feature requests
* Segui il nostro [GitHub](https://github.com/twentyhq/twenty) per gli aggiornamenti sullo sviluppo
* Unisciti al nostro [Discord](https://discord.gg/twenty) per condividere feedback e richieste di funzionalità
@@ -1,44 +1,44 @@
---
title: Can I Send Emails from Twenty?
description: Information about sending emails directly from Twenty.
title: Posso inviare email da Twenty?
description: Informazioni sull'invio di email direttamente da Twenty.
---
## Current Status
## Stato attuale
Twenty's email integration is designed to **sync and display** your email history. Emails cannot be composed or sent directly from Twenty's interface.
L'integrazione email di Twenty è progettata per **sincronizzare e visualizzare** la cronologia delle tue email. Le email non possono essere composte o inviate direttamente dall'interfaccia di Twenty.
When you view an email thread on a record page and click **Reply**, you'll be redirected to the original thread in your mailbox (Gmail, Outlook, etc.). This is where you compose and send your reply.
Quando visualizzi una conversazione email nella pagina di un record e fai clic su **Rispondi**, verrai reindirizzato alla conversazione originale nella tua casella di posta (Gmail, Outlook, ecc.). Qui componi e invii la tua risposta.
## What You Can Do Today
## Cosa puoi fare oggi
* **View email history** on People, Companies, and Opportunities records
* **Read full email threads** with contacts in your CRM
* **Track communication context** alongside calendar events
* **Auto-create contacts** from email interactions
* **Reply via redirect** — click Reply to jump to your mailbox
* **Visualizzare la cronologia delle email** sui record di Persone, Aziende e Opportunità
* **Leggere le conversazioni email complete** con i contatti nel tuo CRM
* **Tenere traccia del contesto delle comunicazioni** accanto agli eventi del calendario
* **Creare automaticamente contatti** dalle interazioni email
* **Rispondere tramite reindirizzamento** — fai clic su Rispondi per passare alla tua casella di posta
## Sending Emails via Workflows
## Invio di email tramite flussi di lavoro
While you can't send emails manually from Twenty, you **can send emails automatically using Workflows**. This is useful for:
Anche se non puoi inviare email manualmente da Twenty, **puoi inviare email automaticamente usando i flussi di lavoro**. Questo è utile per:
* Automated follow-ups
* Notifications to contacts
* Triggered communications based on record changes
* Follow-up automatizzati
* Notifiche ai contatti
* Comunicazioni attivate in base alle modifiche dei record
Emails sent via workflows go through your connected mailbox account.
Le email inviate tramite flussi di lavoro passano attraverso l'account della casella di posta collegato.
Learn about the [Send Email action](/l/it/user-guide/workflows/capabilities/workflow-actions#send-email)
Scopri di più sull'[azione Invia email](/l/it/user-guide/workflows/capabilities/workflow-actions#send-email)
## Email Sequences and Newsletters
## Sequenze di email e newsletter
For email sequences and newsletters, we recommend using workflows to connect Twenty to a dedicated email marketing tool.
Per le sequenze di email e le newsletter, consigliamo di usare i flussi di lavoro per collegare Twenty a uno strumento dedicato di email marketing.
<Warning>
Mass emails should not be sent directly from your mailbox to protect your domain reputation. Use a dedicated tool for bulk communications.
Le email di massa non dovrebbero essere inviate direttamente dalla tua casella di posta per proteggere la reputazione del tuo dominio. Usa uno strumento dedicato per le comunicazioni in massa.
</Warning>
See [How to send emails from workflows](/l/it/user-guide/workflows/capabilities/send-emails-from-workflows) for setup instructions
Vedi [Come inviare email dai flussi di lavoro](/l/it/user-guide/workflows/capabilities/send-emails-from-workflows) per le istruzioni di configurazione
## Future Plans
## Piani futuri
Native email composition from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
La composizione nativa delle email direttamente da Twenty è nella nostra roadmap. Partecipa alle nostre [discussioni su GitHub](https://github.com/twentyhq/twenty/discussions) per condividere il tuo caso d'uso e aiutarci a dare priorità a questa funzionalità.
@@ -1,35 +1,35 @@
---
title: Can I Track Email Activity on All Objects?
description: Understanding email activity tracking across different objects.
title: Posso monitorare l'attività email su tutti gli oggetti?
description: Comprendere il tracciamento dell'attività email tra i diversi oggetti.
---
## Supported Objects
## Oggetti supportati
Email activity is currently available on **three standard objects**:
L'attività email è attualmente disponibile su **tre oggetti standard**:
| Oggetto | What You See |
| --------------- | ---------------------------------------------------------------- |
| **People** | All emails exchanged with that specific contact |
| **Aziende** | All emails with anyone from that company (based on email domain) |
| **Opportunità** | Emails related to the company linked to the opportunity |
| Oggetto | Cosa vedrai |
| --------------- | ------------------------------------------------------------------------ |
| **Persone** | Tutte le email scambiate con quel contatto specifico |
| **Aziende** | Tutte le email con chiunque di quella azienda (in base al dominio email) |
| **Opportunità** | Email relative all'azienda collegata all'opportunità |
## Why Only These Objects?
## Perché solo questi oggetti?
People, Companies, and Opportunities are the core relationship objects where email context adds the most value. Email threads are automatically linked based on:
Persone, Aziende e Opportunità sono gli oggetti relazionali principali in cui il contesto delle email offre il maggior valore. I thread email vengono collegati automaticamente in base a:
* **Email address** → matched to People records
* **Email domain** → matched to Company records
* **Company relation** → linked to Opportunities
* **Indirizzo email** → associato ai record delle Persone
* **Dominio email** → associato ai record delle Aziende
* **Relazione con l'Azienda** → collegata alle Opportunità
## Oggetti personalizzati
**Email tracking is not available on custom objects** at this time.
**Il tracciamento delle email non è disponibile sugli oggetti personalizzati** al momento.
If you need email context on a custom object, consider:
Se ti serve il contesto delle email su un oggetto personalizzato, valuta:
* Using a relation field to link your custom object to People or Companies
* Viewing email history on the linked People/Company record
* Usare un campo relazione per collegare il tuo oggetto personalizzato a Persone o Aziende
* Visualizzare la cronologia delle email sul record della Persona o dell'Azienda collegato.
## Future Plans
## Piani futuri
Extending email visibility to custom objects is being considered. Share your use case on our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to help prioritize this feature.
Stiamo valutando di estendere la visibilità delle email agli oggetti personalizzati. Partecipa alle nostre [discussioni su GitHub](https://github.com/twentyhq/twenty/discussions) per condividere il tuo caso d'uso e aiutarci a dare priorità a questa funzionalità.
@@ -176,23 +176,23 @@ Usa il nome API dell'opzione (non l'etichetta visualizzata):
VALUE1
```
See [here](#finding-api-names-for-select-fields) where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing.</Note>
Vedi [qui](#finding-api-names-for-select-fields) dove trovare i nomi API.
<Note>Le nuove opzioni di Select non verranno create automaticamente dall'importazione. Devono essere aggiunte in **Impostazioni → Modello dati** prima dell'importazione.</Note>
### Text Fields
### Campi di testo
* No special formatting required
* Leading/trailing spaces are trimmed
* Nessuna formattazione speciale richiesta
* Gli spazi iniziali e finali vengono rimossi
## Finding API Names
## Trovare i nomi API
For Select, Multi-Select, and Array fields with predefined options, you must use the **API names**, not the display labels.
Per i campi Select, Multi-Select e Array con opzioni predefinite, è necessario usare i **nomi API**, non le etichette visualizzate.
### How to Find API Names
### Come trovare i nomi API
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at the bottom right of the settings page)
4. View the API name for each option
1. Vai a **Impostazioni → Modello dati**
2. Seleziona l'oggetto e il campo
3. Abilita la **Modalità avanzata** (interruttore in basso a destra nella pagina delle impostazioni)
4. Visualizza il nome API per ogni opzione
<VimeoEmbed videoId="1144910809" title="Video demonstration" />
<VimeoEmbed videoId="1144910809" title="Dimostrazione video" />
@@ -1,6 +1,6 @@
---
title: Che cos'è Twenty
description: Twenty is an open-source CRM that gives you the building blocks to create exactly what your business needs.
description: Twenty è un CRM open source che ti fornisce i componenti di base per creare esattamente ciò di cui la tua azienda ha bisogno.
---
## Visione
@@ -26,11 +26,11 @@ L'open-source è la base del nostro approccio, garantendo che Twenty evolva con
## Caratteristiche principali
* **Calendar & Emails:** Sync your mailbox and calendar to see all communications on your CRM records. [Scopri di più](/l/it/user-guide/calendar-emails/overview).
* **Data Model:** Create custom objects and fields to match your unique business processes. [Explore](/l/it/user-guide/data-model/overview).
* **Data Migration:** Import and export your data via CSV or API. [Inizia qui](/l/it/user-guide/data-migration/overview).
* **Views & Pipelines:** Organize your data with table views, kanban boards, and sales pipelines. [Discover](/l/it/user-guide/views-pipelines/overview).
* **Workflows:** Automate your business processes and integrate with external tools. [Build automations](/l/it/user-guide/workflows/overview).
* **Calendario ed email:** Sincronizza la tua casella di posta e il calendario per vedere tutte le comunicazioni sui record del tuo CRM. [Scopri di più](/l/it/user-guide/calendar-emails/overview).
* **Modello dati:** Crea oggetti e campi personalizzati per rispecchiare i tuoi processi aziendali specifici. [Esplora](/l/it/user-guide/data-model/overview).
* **Migrazione dei dati:** Importa ed esporta i tuoi dati via CSV o API. [Inizia qui](/l/it/user-guide/data-migration/overview).
* **Viste e pipeline:** Organizza i tuoi dati con viste tabellari, bacheche Kanban e pipeline di vendita. [Scopri](/l/it/user-guide/views-pipelines/overview).
* **Flussi di lavoro:** Automatizza i tuoi processi aziendali e integra con strumenti esterni. [Crea automazioni](/l/it/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/it/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/it/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/it/user-guide/permissions-access/overview).
@@ -1,46 +1,46 @@
---
title: Vista Calendario
description: Display records with date fields on a calendar.
description: Visualizza i record con campi data su un calendario.
---
## About Calendar View
## Informazioni sulla Vista Calendario
Calendar view displays your records on a calendar based on a date field. Each record appears as an event on the corresponding date.
La Vista Calendario visualizza i tuoi record su un calendario in base a un campo data. Ogni record viene visualizzato come evento nella data corrispondente.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Creating a Calendar View
## Creare una Vista Calendario
1. Navigate to an object with date fields
2. Click the view dropdown → **+ Add view**
3. Name your view and click **Create**
4. Open the **Options** on the right
5. Select **Calendar** as the layout
6. Choose the **date field** to use for positioning records
7. Click **Update view**
1. Vai a un oggetto con campi data
2. Clicca sul menu a discesa della vista → **+ Aggiungi vista**
3. Assegna un nome alla vista e clicca su **Crea**
4. Apri le **Opzioni** sulla destra
5. Seleziona **Calendario** come layout
6. Scegli il **campo data** da usare per posizionare i record
7. Clicca su **Aggiorna vista**
## Configuring the Calendar
## Configurare il Calendario
### Choose the Date Field
### Scegli il campo data
Under **Options**, select which date field determines where records appear on the calendar.
In **Opzioni**, seleziona quale campo data determina dove vengono visualizzati i record sul calendario.
### Display Fields
### Campi da visualizzare
Configure which fields show on each calendar event:
Configura quali campi vengono mostrati in ogni evento del calendario:
1. Click **OptionsFields**
2. Toggle fields on/off
3. Drag to reorder
1. Clicca su **OpzioniCampi**
2. Attiva/disattiva i campi
3. Trascina per riordinare
## Use Cases
## Casi d'uso
* **Meetings and calls**: View upcoming appointments
* **Deadlines**: Track due dates and close dates
* **Events**: Plan and visualize scheduled activities
* **Follow-ups**: See when tasks are due
* **Riunioni e chiamate**: Visualizza gli appuntamenti in arrivo
* **Scadenze**: Tieni traccia delle date di scadenza e delle date di chiusura
* **Eventi**: Pianifica e visualizza le attività programmate
* **Follow-up**: Vedi quando le attività scadono
## Related
## Correlati
* [Views Overview](/l/it/user-guide/views-pipelines/overview) — creating and managing views
* [Filters and Sorting](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtering calendar data
* [Panoramica delle viste](/l/it/user-guide/views-pipelines/overview) — creazione e gestione delle viste
* [Filtri e ordinamento](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtrare i dati del calendario
@@ -1,51 +1,51 @@
---
title: Create a Table View with Grouping
description: Organize your records into collapsible groups by field value.
title: Crea una vista tabella con raggruppamento
description: Organizza i tuoi record in gruppi comprimibili per valore di campo.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Group your table view by a Select field to organize records into collapsible sections.
Raggruppa la vista tabella in base a un campo Selezione per organizzare i record in sezioni comprimibili.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Steps
## Passaggi
1. Navigate to the object (People, Companies, etc.)
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Companies by Type")
4. Click **Create**
5. Click **OptionsGroup**
6. Choose a Select field to group by
1. Vai all'oggetto (Persone, Aziende, ecc.)
2. Clicca sul menu a discesa della vista → **+ Aggiungi vista**
3. Dai un nome alla tua vista (ad es., "Aziende per tipo")
4. Clicca **Crea**
5. Clicca **OpzioniRaggruppa**
6. Scegli un campo Selezione in base al quale raggruppare
7. Clicca su **Salva**
## Configure Group Order
## Configura l'ordine dei gruppi
Under **OptionsGroup → Sort**, choose how groups are ordered:
In **OpzioniRaggruppa → Ordina**, scegli come ordinare i gruppi:
| Opzione | Descrizione |
| ------------------------ | --------------------------------------------- |
| **Alphabetical** | A to Z |
| **Reverse alphabetical** | Z to A |
| **Manual order** | Drag groups to reorder under "Visible groups" |
| Opzione | Descrizione |
| ---------------------- | --------------------------------------------------------- |
| **Alfabetico** | Da A a Z |
| **Alfabetico inverso** | Da Z a A |
| **Ordine manuale** | Trascina i gruppi per riordinarli sotto "Gruppi visibili" |
Click the **eye icon** next to a group to hide it from the view.
Clicca sull'**icona a forma di occhio** accanto a un gruppo per nasconderlo dalla vista.
<Note>
**For best performance, limit to 10-15 visible groups.** If you need more, consider using a Dashboard instead.
**Per prestazioni ottimali, limita a 10-15 gruppi visibili.** Se te ne servono di più, prendi in considerazione l'uso di una Dashboard.
</Note>
## Example: Companies by Industry
## Esempio: Aziende per settore
1. Go to **Companies**
2. Create a new view named "By Industry"
3. Click **OptionsGroup**
4. Select the **Industry** field
1. Vai su **Aziende**
2. Crea una nuova vista chiamata "Per settore"
3. Clicca **OpzioniRaggruppa**
4. Seleziona il campo **Settore**
5. Salva
Now your companies are organized by industry, making it easy to focus on one segment at a time.
Ora le tue aziende sono organizzate per settore, rendendo facile concentrarti su un segmento alla volta.
## Related
## Correlati
* [Table Views](/l/it/user-guide/views-pipelines/capabilities/table-views) — all table view features
* [Filters and Sorting](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — combine grouping with filters
* [Viste tabella](/l/it/user-guide/views-pipelines/capabilities/table-views) — tutte le funzionalità delle viste tabella
* [Filtri e ordinamento](/l/it/user-guide/views-pipelines/capabilities/filters-and-sorting) — combina il raggruppamento con i filtri
@@ -1,44 +1,44 @@
---
title: Set Up a Webhook Trigger
description: Receive data from external services to trigger workflows.
title: Configura un trigger webhook
description: Ricevi dati da servizi esterni per attivare i flussi di lavoro.
image: /images/user-guide/workflows/workflow.png
---
Webhook triggers allow external services to start your workflows by sending data to a unique URL. Use them to connect forms, third-party apps, and custom integrations.
I trigger webhook consentono ai servizi esterni di avviare i tuoi flussi di lavoro inviando dati a un URL univoco. Usali per connettere moduli, app di terze parti e integrazioni personalizzate.
## When to Use Webhooks
## Quando utilizzare i webhook
| Use Case | Esempio |
| ----------------------- | --------------------------------------- |
| **Web forms** | Contact form submissions create leads |
| **Third-party apps** | Stripe payment → create customer record |
| **Custom integrations** | Your app → Twenty automation |
| **No-code tools** | Zapier, Make, n8n connections |
| Caso d'uso | Esempio |
| ------------------------------- | -------------------------------------------- |
| **Moduli web** | Gli invii del modulo di contatto creano lead |
| **App di terze parti** | Pagamento Stripe → crea un record cliente |
| **Integrazioni personalizzate** | La tua app → automazione Twenty |
| **Strumenti no-code** | Connessioni Zapier, Make, n8n |
## Step-by-Step Setup
## Configurazione passo-passo
### Step 1: Create the Workflow
### Passaggio 1: Crea il flusso di lavoro
1. Go to **Settings → Workflows**
2. Click **+ New Workflow**
3. Name it (e.g., "Website Form Submission")
1. Vai a **Impostazioni → Flussi di lavoro**
2. Fai clic su **+ Nuovo flusso di lavoro**
3. Assegnagli un nome (ad es., "Invio modulo sito web")
### Step 2: Configure the Webhook Trigger
### Passaggio 2: Configura il trigger webhook
1. Click on the trigger block
2. Select **Webhook**
3. You'll receive a unique webhook URL like:
1. Fai clic sul blocco del trigger
2. Seleziona **Webhook**
3. Riceverai un URL webhook univoco come:
```
https://api.twenty.com/webhooks/workflow/abc123...
```
4. Copy this URL—you'll need it for your external service
4. Copia questo URL—ti servirà per il tuo servizio esterno
### Step 3: Define Expected Data Structure
### Passaggio 3: Definisci la struttura dati attesa
For **POST** requests, define the expected body structure:
Per le richieste **POST**, definisci la struttura del corpo prevista:
1. Click **Define expected body**
2. Enter a sample JSON that matches what your service will send:
1. Fai clic su **Definisci corpo previsto**
2. Inserisci un JSON di esempio che corrisponda a ciò che il tuo servizio invierà:
```json
{
@@ -50,30 +50,30 @@ For **POST** requests, define the expected body structure:
}
```
3. Click **Save**—this creates variables you can use in subsequent steps
3. Fai clic su **Salva**—questo crea variabili che puoi usare nei passaggi successivi
### Step 4: Add Actions
### Passaggio 4: Aggiungi azioni
Now add actions that use the webhook data:
Ora aggiungi azioni che utilizzano i dati del webhook:
**Example: Create a Person record**
**Esempio: Crea un record Persona**
1. Add **Create Record** action
2. Select **People** object
3. Map fields:
1. Aggiungi l'azione **Crea record**
2. Seleziona l'oggetto **People**
3. Mappa i campi:
| Campo | Valore |
| ------- | ---------------------------------------------------- |
| Nome | `{{trigger.body.firstName}}` |
| Cognome | `{{trigger.body.lastName}}` |
| Email | `{{trigger.body.email}}` |
| Azienda | Search or create based on `{{trigger.body.company}}` |
| Campo | Valore |
| ------- | ------------------------------------------------- |
| Nome | `{{trigger.body.firstName}}` |
| Cognome | `{{trigger.body.lastName}}` |
| Email | `{{trigger.body.email}}` |
| Azienda | Cerca o crea in base a `{{trigger.body.company}}` |
### Step 5: Test the Webhook
### Passaggio 5: Testa il webhook
Before activating, test your webhook:
Prima di attivare, testa il tuo webhook:
**Using cURL**:
**Utilizzando cURL**:
```bash
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
@@ -81,22 +81,22 @@ curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
-d '{"firstName":"Test","lastName":"User","email":"test@example.com"}'
```
**Using Postman or similar**:
**Utilizzando Postman o simili**:
1. Create a POST request to your webhook URL
2. Set Content-Type header to `application/json`
3. Add your test JSON body
4. Send and check workflow runs
1. Crea una richiesta POST verso l'URL del tuo webhook
2. Imposta l'header Content-Type su `application/json`
3. Aggiungi il body JSON di test
4. Invia e controlla le esecuzioni del flusso di lavoro
### Step 6: Activate
### Passaggio 6: Attiva
Once tested, click **Activate** to make the workflow live.
Una volta testato, fai clic su **Attiva** per rendere operativo il flusso di lavoro.
## Handling Different Data Structures
## Gestione di strutture dati diverse
### Nested Data
### Dati annidati
If your webhook sends nested data:
Se il tuo webhook invia dati annidati:
```json
{
@@ -108,11 +108,11 @@ If your webhook sends nested data:
}
```
Reference with: `{{trigger.body.contact.email}}`
Fai riferimento con: `{{trigger.body.contact.email}}`
### Arrays
### Array
If data includes arrays:
Se i dati includono array:
```json
{
@@ -123,11 +123,11 @@ If data includes arrays:
}
```
How you handle arrays depends on your use case:
Il modo in cui gestisci gli array dipende dal caso d'uso:
**Unknown number of items → Use Iterator**
**Numero di elementi sconosciuto → Usa Iterator**
If you need to process each item in the array (e.g., create a record for each), add a **Code** action to parse the array, then use **Iterator**:
Se devi elaborare ogni elemento dell'array (ad es., creare un record per ciascuno), aggiungi un'azione **Code** per analizzare l'array, quindi usa **Iterator**:
```javascript
export const main = async (params: { items: any }) => {
@@ -138,11 +138,11 @@ export const main = async (params: { items: any }) => {
};
```
Then use Iterator to loop through: `{{code.items}}`
Quindi usa Iterator per iterare su: `{{code.items}}`
**Known/specific fields → Extract to named fields**
**Campi noti/specifici → Estrai in campi denominati**
If the array contains specific fields you want to access individually (e.g., form answers where position 0 is always "first name", position 1 is always "last name"), add a **Code** action to extract them:
Se l'array contiene campi specifici a cui vuoi accedere singolarmente (ad es., risposte di un modulo in cui la posizione 0 è sempre "nome", la posizione 1 è sempre "cognome"), aggiungi un'azione **Code** per estrarli:
```javascript
export const main = async (params: { items: any }) => {
@@ -159,13 +159,13 @@ export const main = async (params: { items: any }) => {
};
```
Now you can select `product.name` and `product.qty` individually in subsequent steps.
Ora puoi selezionare `product.name` e `product.qty` singolarmente nei passaggi successivi.
<Tip>
For more details on handling arrays, see [Handle Arrays in Code Actions](/l/it/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
Per maggiori dettagli sulla gestione degli array, vedi [Gestire gli array nelle azioni Code](/l/it/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
</Tip>
## Related
## Correlati
* [Workflow Triggers](/l/it/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/it/user-guide/workflows/capabilities/workflow-actions)
* [Trigger dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-triggers)
* [Azioni dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-actions)
@@ -1,254 +1,254 @@
---
title: Workflows FAQ
description: Frequently asked questions about workflows in Twenty.
title: FAQ sui flussi di lavoro
description: Domande frequenti sui flussi di lavoro in Twenty.
---
<AccordionGroup>
<Accordion title="Why can't I activate a workflow?">
This is likely a permissions issue. You need access to workflows to create and activate them.
<Accordion title="Perché non riesco ad attivare un flusso di lavoro?">
È probabilmente un problema di permessi. Hai bisogno dell'accesso ai flussi di lavoro per crearli e attivarli.
**Solution**: Contact your workspace administrator to grant you workflow access under **Settings → Roles**.
**Soluzione**: Contatta l'amministratore dello spazio di lavoro per concederti l'accesso ai flussi di lavoro in **Impostazioni → Ruoli**.
If you don't see the Workflows section at all in your sidebar, this confirms it's a permissions issue.
Se non vedi affatto la sezione Flussi di lavoro nella barra laterale, ciò conferma che è un problema di permessi.
</Accordion>
<Accordion title="Why don't I see my manual workflow button in the top navbar?">
Manual workflows only appear in the navbar if properly configured:
<Accordion title="Perché non vedo il pulsante del flusso di lavoro manuale nella barra di navigazione superiore?">
I flussi di lavoro manuali compaiono nella barra di navigazione solo se configurati correttamente:
1. The workflow must be **activated** (not in draft mode)
2. The navbar placement must be set to **Pinned**
3. For Single/Bulk triggers, you must be on the correct object page
1. Il flusso di lavoro deve essere **attivato** (non in modalità bozza)
2. Il posizionamento nella barra di navigazione deve essere impostato su **Pinned**
3. Per i trigger Single/Bulk, devi trovarti nella pagina dell'oggetto corretta
**To check**: Open the workflow → click the trigger → verify "Navbar placement" is set to "Pinned".
**Per verificare**: Apri il flusso di lavoro → fai clic sul trigger → verifica che "Navbar placement" sia impostato su "Pinned".
You can always access manual workflows via **Cmd + K** (or **Ctrl + K**) regardless of navbar settings.
Puoi sempre accedere ai flussi di lavoro manuali tramite **Cmd + K** (o **Ctrl + K**) indipendentemente dalle impostazioni della barra di navigazione.
</Accordion>
<Accordion title="What's the difference between Single, Global, and Bulk manual triggers?">
| Tipo | Records Required | Esecuzioni del workflow |
<Accordion title="Qual è la differenza tra i trigger manuali Single, Global e Bulk?">
| Tipo | Record richiesti | Esecuzioni del workflow |
| ---- | ---------------- | ----------------------- |
\| **Global** | None | Once, no record input |
\| **Single** | One or more selected | Once per selected record |
\| **Bulk** | One or more selected | Once, with all records as array |
\| **Global** | Nessuno | Una volta, senza input di record |
\| **Single** | Uno o più selezionati | Una volta per ogni record selezionato |
\| **Bulk** | Uno o più selezionati | Una volta, con tutti i record come array |
* **Global**: Use when the workflow doesn't need any record context (e.g., generate a report)
* **Single**: Use when you want to process each selected record independently (e.g., send individual emails)
* **Bulk**: Use when you need to process records together or optimize credit usage (requires Iterator action)
* **Global**: Usalo quando il flusso di lavoro non richiede alcun contesto di record (ad es., generare un report)
* **Single**: Usalo quando vuoi elaborare ogni record selezionato in modo indipendente (ad es., inviare email singole)
* **Bulk**: Usalo quando devi elaborare i record insieme o ottimizzare l'uso dei crediti (richiede l'azione Iterator)
See [Workflow Triggers](/l/it/user-guide/workflows/capabilities/workflow-triggers) for details.
Vedi [Trigger dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-triggers) per i dettagli.
</Accordion>
<Accordion title="I don't see an If/Else node. Cosa devo fare?">
An explicit If/Else node is not yet available but is on our roadmap.
<Accordion title="Non vedo un nodo If/Else. Cosa devo fare?">
Un nodo If/Else esplicito non è ancora disponibile ma è nella nostra roadmap.
**Current workaround**: Create multiple branches from your step, each starting with a **Filter** action:
**Soluzione temporanea**: Crea più diramazioni dal tuo passaggio, ciascuna iniziando con un'azione **Filtro**:
```
Step 1
Passaggio 1
├── Branch A: Filter (condition = true) → Actions...
├── Diramazione A: Filtro (condizione = true) → Azioni...
└── Branch B: Filter (condition = false) → Actions...
└── Diramazione B: Filtro (condizione = false) → Azioni...
```
Only the branch where the filter condition passes will execute its subsequent actions.
Solo la diramazione in cui la condizione del filtro è soddisfatta eseguirà le azioni successive.
See [How to Use Branches](/l/it/user-guide/workflows/capabilities/workflow-branches) for a step-by-step guide.
Consulta [Come usare le diramazioni](/l/it/user-guide/workflows/capabilities/workflow-branches) per una guida passo passo.
</Accordion>
<Accordion title="Are workflow branches running in parallel?">
**Yes**, branches run in parallel by default.
<Accordion title="Le diramazioni del flusso di lavoro vengono eseguite in parallelo?">
****, le diramazioni vengono eseguite in parallelo per impostazione predefinita.
If you want only one branch to execute:
Se vuoi che venga eseguita solo una diramazione:
* Add a **Filter** action at the start of each branch
* Set opposite conditions (e.g., Branch A: status = "Open", Branch B: status ≠ "Open")
* Aggiungi un'azione **Filtro** all'inizio di ogni diramazione
* Imposta condizioni opposte (ad es., Diramazione A: stato = "Open", Diramazione B: stato ≠ "Open")
Branches that fail their filter condition stop executing, while others continue.
Le diramazioni che non soddisfano la loro condizione di filtro interrompono l'esecuzione, mentre le altre continuano.
</Accordion>
<Accordion title="Can I merge branches back together?">
**Yes**. After your parallel branches complete, you can add a step that both branches connect to.
<Accordion title="Posso riunire le diramazioni?">
****. Dopo che le diramazioni parallele sono state completate, puoi aggiungere un passaggio a cui si colleghino entrambe.
In the workflow editor:
Nell'editor dei flussi di lavoro:
1. Complete your branched actions
2. Add a new step after the branches
3. Drag connections from the end of each branch to this new step
1. Completa le azioni nelle diramazioni
2. Aggiungi un nuovo passaggio dopo le diramazioni
3. Trascina le connessioni dalla fine di ciascuna diramazione verso questo nuovo passaggio
The merged step will execute after all connected branches complete.
Il passaggio unificato verrà eseguito dopo il completamento di tutte le diramazioni collegate.
</Accordion>
<Accordion title="What's the limit on Search Records results?">
**Search Records returns a maximum of 200 records.**
<Accordion title="Qual è il limite dei risultati di Search Records?">
**Search Records restituisce un massimo di 200 record.**
If you need to process more:
Se devi elaborarne di più:
* Add more specific filters to reduce results
* Use scheduled workflows to process in batches
* Consider using the API for bulk operations
* Aggiungi filtri più specifici per ridurre i risultati
* Usa flussi di lavoro pianificati per elaborare in lotti
* Valuta di usare le API per operazioni in blocco
For most workflows, 200 records is sufficient. If you regularly hit this limit, consider restructuring your automation.
Per la maggior parte dei flussi di lavoro, 200 record sono sufficienti. Se raggiungi regolarmente questo limite, valuta di ristrutturare l'automazione.
</Accordion>
<Accordion title="Can I CC people on workflow emails?">
**Not yet.** CC and BCC fields for the Send Email action are on our roadmap.
<Accordion title="Posso mettere in CC persone nelle email dei flussi di lavoro?">
**Non ancora.** I campi CC e BCC per l'azione Send Email sono nella nostra roadmap.
**Current workaround**: Add multiple Send Email actions to send to additional recipients, or use an HTTP Request to send via an external email service that supports CC.
**Soluzione temporanea**: Aggiungi più azioni Send Email per inviare ad altri destinatari, oppure usa una HTTP Request per inviare tramite un servizio email esterno che supporti CC.
</Accordion>
<Accordion title="How do I use outputs from previous steps?">
Every action produces output data that can be used in subsequent steps.
<Accordion title="Come si usano gli output dai passaggi precedenti?">
Ogni azione produce dati di output che possono essere utilizzati nei passaggi successivi.
**To reference previous step data**:
**Per fare riferimento ai dati del passaggio precedente**:
* Use the variable picker when configuring a field
* Or type `{{stepName.fieldName}}` directly
* Usa il selettore di variabili durante la configurazione di un campo
* Oppure digita `{{stepName.fieldName}}` direttamente
**Esempi**:
* Trigger data: `{{trigger.object.email}}`
* Search results: `{{searchRecords[0].name}}`
* Code output: `{{code.calculatedValue}}`
* Dati del trigger: `{{trigger.object.email}}`
* Risultati della ricerca: `{{searchRecords[0].name}}`
* Output del codice: `{{code.calculatedValue}}`
Hover over any field in the action configuration to see available variables from previous steps.
Passa il mouse su qualsiasi campo nella configurazione dell'azione per vedere le variabili disponibili dai passaggi precedenti.
</Accordion>
<Accordion title="Why does my Iterator fail?">
**Iterator requires an array input.** Common issues:
<Accordion title="Perché il mio Iterator non riesce?">
**Iterator richiede un input di tipo array.** Problemi comuni:
1. **Input is not an array**: Ensure you're passing results from Search Records or another action that returns an array
2. **Array is empty**: Add a filter before Iterator to check `{{searchRecords.length}} > 0`
3. **Wrong variable selected**: Make sure you select the array itself, not a single record
1. **L'input non è un array**: Assicurati di passare i risultati di Search Records o di un'altra azione che restituisce un array
2. **L'array è vuoto**: Aggiungi un filtro prima di Iterator per verificare `{{searchRecords.length}} > 0`
3. **Variabile sbagliata selezionata**: Assicurati di selezionare l'array stesso, non un singolo record
**Correct setup**:
**Configurazione corretta**:
1. Search Records (returns array)
2. Filter: length > 0
3. Iterator: select `{{searchRecords}}`
4. Actions inside iterator use `{{iterator.currentItem.fieldName}}`
1. Search Records (restituisce un array)
2. Filtro: length > 0
3. Iterator: seleziona `{{searchRecords}}`
4. Le azioni all'interno di Iterator usano `{{iterator.currentItem.fieldName}}`
</Accordion>
<Accordion title="What's the maximum execution time for Code actions?">
Code actions (serverless functions) have a **default timeout of 5 minutes** (300 seconds).
<Accordion title="Qual è il tempo massimo di esecuzione per le azioni di codice?">
Le azioni di codice (funzioni serverless) hanno un **timeout predefinito di 5 minuti** (300 secondi).
The maximum configurable timeout is **15 minutes** (900 seconds).
Il timeout massimo configurabile è di **15 minuti** (900 secondi).
If your code exceeds this limit, the action will fail with a timeout error.
Se il tuo codice supera questo limite, l'azione non riuscirà con un errore di timeout.
**Tips to avoid timeouts**:
**Suggerimenti per evitare timeout**:
* Break large operations into smaller chunks using Iterator
* Avoid heavy computations; use external services via HTTP Request for intensive processing
* Optimize your code to reduce execution time
* If you need longer processing, consider using scheduled workflows that process data in batches
* Suddividi le operazioni grandi in parti più piccole usando Iterator
* Evita elaborazioni pesanti; usa servizi esterni tramite HTTP Request per processi intensivi
* Ottimizza il tuo codice per ridurre il tempo di esecuzione
* Se hai bisogno di elaborazioni più lunghe, valuta l'uso di flussi di lavoro pianificati che elaborano i dati in lotti
</Accordion>
<Accordion title="How do I read workflow runs?">
Workflow runs show the execution history and help you debug issues.
<Accordion title="Come leggere le esecuzioni dei flussi di lavoro?">
Le esecuzioni dei flussi di lavoro mostrano la cronologia di esecuzione e ti aiutano a eseguire il debug dei problemi.
**Access runs**:
**Accesso alle esecuzioni**:
* In workflow editor → **Runs** panel on the right
* Or go to **Workflow Runs** in the sidebar
* Nell'editor dei flussi di lavoropannello **Runs** a destra
* Oppure vai a **Workflow Runs** nella barra laterale
**Understanding a run**:
**Comprendere un'esecuzione**:
* **Status**: Running, Completed, Failed, Waiting
* **Steps**: See which steps executed and their output
* **Errors**: Click failed steps to see error messages
* **Data**: View input/output data at each step
* **Stato**: In esecuzione, Completato, Non riuscito, In attesa
* **Passaggi**: Vedi quali passaggi sono stati eseguiti e il loro output
* **Errori**: Fai clic sui passaggi non riusciti per vedere i messaggi di errore
* **Dati**: Visualizza i dati di input/output a ogni passaggio
See [Workflow Runs](/l/it/user-guide/workflows/capabilities/workflow-runs) for details.
Vedi [Esecuzioni dei flussi di lavoro](/l/it/user-guide/workflows/capabilities/workflow-runs) per i dettagli.
</Accordion>
<Accordion title="Why don't I see my workflow runs?">
Workflow runs might be failing immediately due to rate limits.
<Accordion title="Perché non vedo le esecuzioni dei miei flussi di lavoro?">
Le esecuzioni dei flussi di lavoro potrebbero non riuscire immediatamente a causa dei limiti di frequenza.
**Hard limit: 5,000 runs per hour per workspace.**
**Limite hard: 5.000 esecuzioni all'ora per spazio di lavoro.**
If you exceed this limit, workflows are immediately marked as failed and won't appear in your runs list as expected.
Se superi questo limite, i flussi di lavoro vengono contrassegnati immediatamente come non riusciti e non appariranno nell'elenco delle esecuzioni come previsto.
**Common scenarios that hit this limit**:
**Scenari comuni che raggiungono questo limite**:
* Selecting more than 5,000 records with a Single manual trigger
* Multiple workflows running simultaneously across your workspace
* High-frequency automated triggers (e.g., Record Updated on a busy object)
* Selezionare più di 5.000 record con un trigger manuale Single
* Più flussi di lavoro in esecuzione simultaneamente nel tuo spazio di lavoro
* Trigger automatici ad alta frequenza (ad es., Record Updated su un oggetto molto attivo)
**Soluzioni**:
* Use **Bulk** triggers instead of Single to process many records in one run
* Space out large batch operations
* Use filters to reduce trigger frequency
* Schedule heavy workflows during off-peak hours
* Usa i trigger **Bulk** invece di Single per elaborare molti record in un'unica esecuzione
* Scagliona nel tempo le operazioni in grandi batch
* Usa filtri per ridurre la frequenza dei trigger
* Pianifica i flussi di lavoro pesanti nelle ore di minore traffico
</Accordion>
<Accordion title="What are the workflow rate limits?">
Twenty has two rate limits to ensure system stability:
<Accordion title="Quali sono i limiti di frequenza dei flussi di lavoro?">
Twenty ha due limiti di frequenza per garantire la stabilità del sistema:
| Limit | Valore | Behavior |
| ----- | ------ | -------- |
| Limite | Valore | Comportamento |
| ------ | ------ | ------------- |
\| **Soft limit** | 100 runs/minute | Runs queue in "Not Started" status, processed gradually |
\| **Hard limit** | 5,000 runs/hour | Runs immediately fail |
\| **Soft limit** | 100 esecuzioni/minuto | Le esecuzioni vanno in coda con stato "Not Started", elaborate gradualmente |
\| **Hard limit** | 5.000 esecuzioni/ora | Le esecuzioni falliscono immediatamente |
**Soft limit (100/min)**: Your workflows won't fail—they just wait in the queue and are processed over time. You can trigger more than 100 records; execution will be slower.
**Limite soft (100/min)**: I tuoi flussi di lavoro non falliranno: semplicemente attendono in coda e vengono elaborati nel tempo. Puoi attivare più di 100 record; l'esecuzione sarà più lenta.
**Hard limit (5,000/hr)**: This applies to your entire workspace. If all your workflows combined exceed 5,000 runs in an hour, additional runs will fail immediately.
**Limite hard (5.000/ora)**: Si applica all'intero spazio di lavoro. Se tutti i tuoi flussi di lavoro combinati superano 5.000 esecuzioni in un'ora, le esecuzioni aggiuntive falliranno immediatamente.
**Tips to stay within limits**:
**Suggerimenti per rimanere entro i limiti**:
* Use Bulk triggers with Iterator instead of Single triggers for large batches
* Combine related automations into fewer workflows
* Use scheduled workflows to spread load over time
* Usa trigger Bulk con Iterator invece dei trigger Single per grandi batch
* Combina automazioni correlate in un numero minore di flussi di lavoro
* Usa flussi di lavoro pianificati per distribuire il carico nel tempo
</Accordion>
<Accordion title="Can I retry a failed workflow run?">
**No, there is no automatic retry functionality at the moment.**
<Accordion title="Posso ritentare un'esecuzione di flusso di lavoro non riuscita?">
**No, al momento non esiste una funzionalità di ritentativo automatico.**
If a workflow run fails, you'll need to:
Se un'esecuzione di flusso di lavoro non riesce, dovrai:
1. Review the error in **Settings → Workflows → [Your Workflow] → Runs**
2. Fix the issue (data, configuration, or external service)
3. Manually trigger the workflow again on the affected record(s)
1. Rivedi l'errore in **Impostazioni → Flussi di lavoro → [Il tuo flusso di lavoro] → Runs**
2. Risolvi il problema (dati, configurazione o servizio esterno)
3. Attiva manualmente di nuovo il flusso di lavoro sui record interessati
**Tips to reduce failures**:
**Suggerimenti per ridurre gli errori**:
* Add **Filter** nodes to validate data before actions
* Use **Search Records** to check if related records exist
* Test thoroughly with a few records before bulk operations
* Aggiungi nodi **Filtro** per convalidare i dati prima delle azioni
* Usa **Search Records** per verificare se esistono record correlati
* Esegui test accurati con pochi record prima delle operazioni in blocco
Automatic retry functionality is on our roadmap for a future release.
La funzionalità di ritentativo automatico è nella nostra roadmap per un rilascio futuro.
</Accordion>
<Accordion title="Should I deactivate workflows before CSV imports?">
**Yes, if your workflows are triggered by record creation or updates.**
<Accordion title="Devo disattivare i flussi di lavoro prima delle importazioni CSV?">
**Sì, se i tuoi flussi di lavoro sono attivati dalla creazione o dall'aggiornamento dei record.**
When you import data via CSV, each record created or updated can trigger workflows. A large import (thousands of records) could:
Quando importi dati tramite CSV, ogni record creato o aggiornato può attivare flussi di lavoro. Una grande importazione (migliaia di record) potrebbe:
* Hit the 5,000 runs/hour limit
* Consume significant workflow credits
* Send unexpected emails or notifications
* Create duplicate tasks or records
* Raggiungere il limite di 5.000 esecuzioni/ora
* Consumare una quantità significativa di crediti dei flussi di lavoro
* Inviare email o notifiche inattese
* Creare attività o record duplicati
**Before a mass import**:
**Prima di un'importazione massiva**:
1. Go to **Settings → Workflows**
2. Identify workflows triggered by the object you're importing
3. **Deactivate** them temporarily
4. Run your CSV import
5. **Reactivate** the workflows when done
1. Vai a **Impostazioni → Flussi di lavoro**
2. Identifica i flussi di lavoro attivati dall'oggetto che stai importando
3. **Disattivali** temporaneamente
4. Esegui l'importazione CSV
5. **Riattiva** i flussi di lavoro al termine
**Alternative**: If you need the workflows to run on imported data, import in smaller batches to stay within rate limits.
**Alternativa**: Se hai bisogno che i flussi di lavoro vengano eseguiti sui dati importati, importa in batch più piccoli per rimanere entro i limiti di frequenza.
</Accordion>
<Accordion title="How do I clean up my workflow layout?">
If your workflow canvas looks messy with nodes scattered around, you can automatically organize it:
<Accordion title="Come posso pulire il layout del mio flusso di lavoro?">
Se il canvas del flusso di lavoro sembra disordinato, con nodi sparsi, puoi organizzarli automaticamente:
1. Right-click anywhere on the workflow canvas
2. Click **Tidy up workflow**
1. Fai clic con il pulsante destro in un punto qualsiasi del canvas del flusso di lavoro
2. Fai clic su **Tidy up workflow**
This will automatically rearrange all nodes into a clean, organized layout.
Questo riorganizzerà automaticamente tutti i nodi in un layout pulito e ordinato.
</Accordion>
</AccordionGroup>
@@ -1,6 +1,6 @@
---
title: AI
description: AI-powered features coming soon to Twenty.
description: Funcționalități alimentate de IA, în curând în Twenty.
---
<Frame>
@@ -9,54 +9,54 @@ description: AI-powered features coming soon to Twenty.
## Ce urmează
Twenty is building AI capabilities to help your team work smarter. We're focusing on two major areas:
Twenty dezvoltă capabilități IA pentru a ajuta echipa ta să lucreze mai inteligent. Ne concentrăm pe două domenii majore:
### 1. AI Chatbot
### 1. Chatbot IA
A conversational assistant that understands your context and has access to all your Twenty data.
Un asistent conversațional care îți înțelege contextul și are acces la toate datele tale din Twenty.
**Key capabilities:**
**Capabilități cheie:**
* **Full data access**: Query any record, relationship, or metric in your workspace
* **Page context awareness**: Reference "this company" or "this opportunity" based on where you are in Twenty
* **Natural language**: Ask questions and get answers without navigating menus
* **Acces complet la date**: Interoghează orice înregistrare, relație sau metrică din spațiul tău de lucru
* **Conștientizare a contextului paginii**: Fă referire la "această companie" sau "această oportunitate" în funcție de locul în care te afli în Twenty
* **Limbaj natural**: Pune întrebări și primește răspunsuri fără a naviga prin meniuri
**Example prompts:**
**Exemple de prompturi:**
* "What opportunities are closing this month?"
* "Which deals have been in Negotiation for more than 30 days?"
* "Summarize my interactions with this person"
* "Ce oportunități se încheie luna aceasta?"
* "Care tranzacții au fost în Negociere de mai mult de 30 de zile?"
* "Rezumă interacțiunile mele cu această persoană"
### 2. AI Agents in Workflows
### 2. Agenți IA în fluxuri de lucru
Extend your workflows with AI-powered actions and autonomous agents.
Extinde-ți fluxurile de lucru cu acțiuni bazate pe IA și agenți autonomi.
**Key capabilities:**
**Capabilități cheie:**
* **AI actions**: Use AI to enrich data, classify records, generate summaries, and more
* **Autonomous agents**: Let agents execute multi-step tasks within a workflow
* **Custom prompts**: Define exactly how AI should process your data
* **Acțiuni IA**: Folosește IA pentru a îmbogăți datele, a clasifica înregistrările, a genera rezumate și altele
* **Agenți autonomi**: Permite agenților să execute sarcini în mai mulți pași în cadrul unui flux de lucru
* **Prompturi personalizate**: Definește exact cum ar trebui IA să îți proceseze datele
**Cazuri de utilizare:**
* Automatically categorize inbound leads
* Enrich company data from public sources
* Generate follow-up email drafts based on meeting notes
* Score opportunities based on engagement patterns
* Categorizează automat lead-urile primite
* Îmbogățește datele companiei din surse publice
* Generează ciorne de email de urmărire pe baza notițelor din întâlniri
* Atribuie scor oportunităților pe baza tiparelor de implicare
## Permissions and Access Control
## Permisiuni și control al accesului
AI agents will be managed through the existing permissions system:
Agenții IA vor fi gestionați prin sistemul de permisiuni existent:
1. Accesați **Setări → Roluri**
2. Configure which data each AI agent can access
3. Set read/write permissions per object
2. Configurează la ce date poate avea acces fiecare agent IA
3. Stabilește permisiuni de citire/scriere pentru fiecare obiect
This ensures AI agents respect your data governance policies and only access what they need.
Astfel, agenții IA respectă politicile tale de guvernanță a datelor și accesează doar ceea ce le este necesar.
## Rămâi la curent
We'll update this section as AI features become available. In the meantime:
Vom actualiza această secțiune pe măsură ce funcționalitățile IA devin disponibile. Între timp:
* Follow our [GitHub](https://github.com/twentyhq/twenty) for development updates
* Join our [Discord](https://discord.gg/twenty) to share feedback and feature requests
* Urmărește-ne pe [GitHub](https://github.com/twentyhq/twenty) pentru actualizări privind dezvoltarea
* Alătură-te serverului nostru pe [Discord](https://discord.gg/twenty) pentru a împărtăși feedback și solicitări de funcționalități
@@ -1,44 +1,44 @@
---
title: Can I Send Emails from Twenty?
description: Information about sending emails directly from Twenty.
title: Pot să trimit e-mailuri din Twenty?
description: Informații despre trimiterea e-mailurilor direct din Twenty.
---
## Current Status
## Starea actuală
Twenty's email integration is designed to **sync and display** your email history. Emails cannot be composed or sent directly from Twenty's interface.
Integrarea de e-mail a Twenty este concepută pentru a **sincroniza și afișa** istoricul e-mailurilor dumneavoastră. E-mailurile nu pot fi redactate sau trimise direct din interfața Twenty.
When you view an email thread on a record page and click **Reply**, you'll be redirected to the original thread in your mailbox (Gmail, Outlook, etc.). This is where you compose and send your reply.
Când vizualizați un fir de discuție prin e-mail pe pagina unei înregistrări și faceți clic pe **Răspunde**, veți fi redirecționați către firul original din căsuța poștală (Gmail, Outlook etc.). Acolo veți redacta și trimite răspunsul.
## What You Can Do Today
## Ce puteți face astăzi
* **View email history** on People, Companies, and Opportunities records
* **Read full email threads** with contacts in your CRM
* **Track communication context** alongside calendar events
* **Auto-create contacts** from email interactions
* **Reply via redirect** — click Reply to jump to your mailbox
* **Vizualizați istoricul e-mailurilor** pe înregistrările Persoane, Companii și Oportunități
* **Citiți firele complete de e-mail** cu contactele din CRM-ul dumneavoastră
* **Urmăriți contextul comunicării** alături de evenimentele din calendar
* **Creați automat contacte** din interacțiunile prin e-mail
* **Răspundeți prin redirecționare** — faceți clic pe Răspunde pentru a ajunge în căsuța poștală
## Sending Emails via Workflows
## Trimiterea e-mailurilor prin fluxuri de lucru
While you can't send emails manually from Twenty, you **can send emails automatically using Workflows**. This is useful for:
Deși nu puteți trimite e-mailuri manual din Twenty, **puteți trimite e-mailuri automat folosind fluxuri de lucru**. Acest lucru este util pentru:
* Automated follow-ups
* Notifications to contacts
* Triggered communications based on record changes
* Mesaje de urmărire automate
* Notificări către contacte
* Comunicări declanșate pe baza modificărilor în cadrul înregistrărilor
Emails sent via workflows go through your connected mailbox account.
E-mailurile trimise prin fluxuri de lucru trec prin contul de e-mail conectat.
Learn about the [Send Email action](/l/ro/user-guide/workflows/capabilities/workflow-actions#send-email)
Aflați mai multe despre [acțiunea Trimite e-mail](/l/ro/user-guide/workflows/capabilities/workflow-actions#send-email)
## Email Sequences and Newsletters
## Secvențe de e-mail și buletine informative
For email sequences and newsletters, we recommend using workflows to connect Twenty to a dedicated email marketing tool.
Pentru secvențe de e-mail și buletine informative, recomandăm utilizarea fluxurilor de lucru pentru a conecta Twenty la un instrument dedicat de marketing prin e-mail.
<Warning>
Mass emails should not be sent directly from your mailbox to protect your domain reputation. Use a dedicated tool for bulk communications.
E-mailurile în masă nu ar trebui trimise direct din căsuța poștală, pentru a proteja reputația domeniului. Folosiți un instrument dedicat pentru comunicări în masă.
</Warning>
See [How to send emails from workflows](/l/ro/user-guide/workflows/capabilities/send-emails-from-workflows) for setup instructions
Consultați [Cum să trimiteți e-mailuri din fluxuri de lucru](/l/ro/user-guide/workflows/capabilities/send-emails-from-workflows) pentru instrucțiuni de configurare
## Future Plans
## Planuri viitoare
Native email composition from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
Redactarea nativă a e-mailurilor din Twenty se află pe foaia noastră de parcurs. Alăturați-vă [discuțiilor noastre pe GitHub](https://github.com/twentyhq/twenty/discussions) pentru a împărtăși cazul dvs. de utilizare și a ajuta la prioritizarea acestei funcționalități.
@@ -1,35 +1,35 @@
---
title: Can I Track Email Activity on All Objects?
description: Understanding email activity tracking across different objects.
title: Pot urmări activitatea e-mailurilor pe toate obiectele?
description: Înțelegerea urmăririi activității e-mailurilor în cadrul diferitelor obiecte.
---
## Supported Objects
## Obiecte acceptate
Email activity is currently available on **three standard objects**:
Urmărirea activității e-mailurilor este disponibilă în prezent pe **trei obiecte standard**:
| Obiect | What You See |
| ---------------- | ---------------------------------------------------------------- |
| **People** | All emails exchanged with that specific contact |
| **Companii** | All emails with anyone from that company (based on email domain) |
| **Oportunități** | Emails related to the company linked to the opportunity |
| Obiect | Ce veți vedea |
| ---------------- | ----------------------------------------------------------------------------- |
| **Persoane** | Toate e-mailurile schimbate cu respectivul contact |
| **Companii** | Toate e-mailurile cu oricine din acea companie (pe baza domeniului de e-mail) |
| **Oportunități** | Toate e-mailurile legate de compania asociată oportunității |
## Why Only These Objects?
## De ce doar aceste obiecte?
People, Companies, and Opportunities are the core relationship objects where email context adds the most value. Email threads are automatically linked based on:
Persoane, Companii și Oportunități sunt obiectele esențiale de relație în care contextul e-mailului aduce cea mai mare valoare. Conversațiile prin e-mail sunt asociate automat pe baza:
* **Email address** → matched to People records
* **Email domain** → matched to Company records
* **Company relation** → linked to Opportunities
* **Adresă de e-mail** → asociată cu înregistrările din Persoane
* **Domeniu de e-mail** → asociat cu înregistrările din Companii
* **Relație cu compania** → legată de Oportunități
## Obiecte personalizate
**Email tracking is not available on custom objects** at this time.
**Urmărirea e-mailurilor nu este disponibilă pe obiectele personalizate** în acest moment.
If you need email context on a custom object, consider:
Dacă aveți nevoie de contextul e-mailului pe un obiect personalizat, luați în considerare:
* Using a relation field to link your custom object to People or Companies
* Viewing email history on the linked People/Company record
* Folosirea unui câmp de relație pentru a lega obiectul personalizat de Persoane sau Companii
* Vizualizarea istoricului e-mailurilor în înregistrarea Persoane/Companie asociată
## Future Plans
## Planuri viitoare
Extending email visibility to custom objects is being considered. Share your use case on our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to help prioritize this feature.
Se ia în considerare extinderea vizibilității e-mailurilor la obiectele personalizate. Împărtășiți cazul dvs. de utilizare în [discuțiile noastre pe GitHub](https://github.com/twentyhq/twenty/discussions) pentru a ajuta la prioritizarea acestei funcționalități.
@@ -176,23 +176,23 @@ Folosiți **numele API** al opțiunii (nu eticheta de afișare):
VALUE1
```
See [here](#finding-api-names-for-select-fields) where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing.</Note>
Consultați [aici](#finding-api-names-for-select-fields) unde puteți găsi numele API.
<Note>Opțiunile noi de selectare nu vor fi create automat în urma importului. Acestea trebuie adăugate în **Setări → Model de date** înainte de import.</Note>
### Text Fields
### Câmpuri text
* No special formatting required
* Leading/trailing spaces are trimmed
* Nu este necesară nicio formatare specială
* Spațiile de la început și de la sfârșit sunt eliminate
## Finding API Names
## Găsirea numelor API
For Select, Multi-Select, and Array fields with predefined options, you must use the **API names**, not the display labels.
Pentru câmpurile Select, Multi-Select și Array cu opțiuni predefinite, trebuie să utilizați **numele API**, nu etichetele de afișare.
### How to Find API Names
### Cum găsiți numele API
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at the bottom right of the settings page)
4. View the API name for each option
1. Accesați **Setări → Model de date**
2. Selectați obiectul și câmpul
3. Activați **Modul avansat** (comutator în dreapta jos a paginii de setări)
4. Vizualizați numele API pentru fiecare opțiune
<VimeoEmbed videoId="1144910809" title="Demonstrație video" />
@@ -1,6 +1,6 @@
---
title: Ce este Twenty
description: Twenty is an open-source CRM that gives you the building blocks to create exactly what your business needs.
description: Twenty este un CRM cu sursă deschisă care vă oferă elementele de bază pentru a crea exact ceea ce are nevoie afacerea dvs.
---
## Viziune
@@ -26,11 +26,11 @@ Open-source este fundamentul abordării noastre, asigurându-ne că Twenty evolu
## Funcționalități principale
* **Calendar & Emails:** Sync your mailbox and calendar to see all communications on your CRM records. [Aflați mai multe](/l/ro/user-guide/calendar-emails/overview).
* **Data Model:** Create custom objects and fields to match your unique business processes. [Explore](/l/ro/user-guide/data-model/overview).
* **Data Migration:** Import and export your data via CSV or API. [Începeți](/l/ro/user-guide/data-migration/overview).
* **Views & Pipelines:** Organize your data with table views, kanban boards, and sales pipelines. [Discover](/l/ro/user-guide/views-pipelines/overview).
* **Workflows:** Automate your business processes and integrate with external tools. [Build automations](/l/ro/user-guide/workflows/overview).
* **Calendar și e-mailuri:** Sincronizați-vă căsuța poștală și calendarul pentru a vedea toate comunicările în înregistrările dvs. din CRM. [Aflați mai multe](/l/ro/user-guide/calendar-emails/overview).
* **Model de date:** Creați obiecte și câmpuri personalizate, adaptate proceselor dvs. de afaceri unice. [Explorați](/l/ro/user-guide/data-model/overview).
* **Migrarea datelor:** Importați și exportați datele prin CSV sau API. [Începeți](/l/ro/user-guide/data-migration/overview).
* **Vizualizări și pipeline-uri:** Organizați-vă datele cu vizualizări tabelare, panouri kanban și fluxuri de vânzări. [Descoperiți](/l/ro/user-guide/views-pipelines/overview).
* **Fluxuri de lucru:** Automatizați procesele de afaceri și integrați cu instrumente externe. [Creați automatizări](/l/ro/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/ro/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/ro/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/ro/user-guide/permissions-access/overview).
@@ -3,44 +3,44 @@ title: Vizualizare calendar
description: Afișează înregistrările cu câmpuri de dată într-un calendar.
---
## About Calendar View
## Despre vizualizarea Calendar
Calendar view displays your records on a calendar based on a date field. Each record appears as an event on the corresponding date.
Vizualizarea Calendar afișează înregistrările pe un calendar, pe baza unui câmp de dată. Fiecare înregistrare apare ca un eveniment la data corespunzătoare.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Creating a Calendar View
## Crearea unei Vizualizări Calendar
1. Navigate to an object with date fields
2. Click the view dropdown → **+ Add view**
3. Name your view and click **Create**
4. Open the **Options** on the right
5. Select **Calendar** as the layout
6. Choose the **date field** to use for positioning records
7. Click **Update view**
1. Navigați la un obiect cu câmpuri de dată
2. Faceți clic pe meniul derulant al vizualizării → **+ Adaugă vizualizare**
3. Denumiți vizualizarea și faceți clic pe **Creează**
4. Deschideți **Opțiuni** din partea dreaptă
5. Selectați **Calendar** ca dispunere
6. Alegeți **câmpul de dată** care va fi folosit pentru poziționarea înregistrărilor
7. Faceți clic pe **Actualizează vizualizarea**
## Configuring the Calendar
## Configurarea Calendarului
### Choose the Date Field
### Alegerea câmpului de dată
Under **Options**, select which date field determines where records appear on the calendar.
În **Opțiuni**, selectați ce câmp de dată determină unde apar înregistrările în calendar.
### Display Fields
### Afișare câmpuri
Configure which fields show on each calendar event:
Configurați ce câmpuri sunt afișate în fiecare eveniment din calendar:
1. Click **Options → Fields**
2. Toggle fields on/off
3. Drag to reorder
1. Faceți clic pe **Opțiuni → Câmpuri**
2. Activați/dezactivați câmpurile
3. Trageți pentru a reordona
## Use Cases
## Cazuri de utilizare
* **Meetings and calls**: View upcoming appointments
* **Deadlines**: Track due dates and close dates
* **Events**: Plan and visualize scheduled activities
* **Follow-ups**: See when tasks are due
* **Întâlniri și apeluri**: Vizualizați programările viitoare
* **Termene**: Urmăriți datele scadente și datele de închidere
* **Evenimente**: Planificați și vizualizați activitățile programate
* **Urmăriri**: Vedeți când sunt scadente sarcinile
## Related
## Conexe
* [Views Overview](/l/ro/user-guide/views-pipelines/overview) — creating and managing views
* [Filters and Sorting](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtering calendar data
* [Prezentare generală a vizualizărilor](/l/ro/user-guide/views-pipelines/overview) — crearea și gestionarea vizualizărilor
* [Filtre și sortare](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtrarea datelor din calendar
@@ -1,51 +1,51 @@
---
title: Create a Table View with Grouping
description: Organize your records into collapsible groups by field value.
title: Creați o vizualizare de tabel cu grupare
description: Organizați înregistrările în grupuri pliabile după valoarea câmpului.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Group your table view by a Select field to organize records into collapsible sections.
Grupați vizualizarea de tabel după un câmp Select pentru a organiza înregistrările în secțiuni pliabile.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Steps
## Pași
1. Navigate to the object (People, Companies, etc.)
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Companies by Type")
4. Click **Create**
5. Click **Options → Group**
6. Choose a Select field to group by
1. Navigați la obiect (Persoane, Companii etc.)
2. Faceți clic pe meniul derulant al vizualizării → **+ Adaugă vizualizare**
3. Denumiți vizualizarea (de ex., "Companii după tip")
4. Faceți clic pe **Creare**
5. Faceți clic pe **Opțiuni → Grupare**
6. Alegeți un câmp Select după care să grupați
7. Faceți clic pe **Salvare**
## Configure Group Order
## Configurați ordinea grupurilor
Under **Options → Group → Sort**, choose how groups are ordered:
În **Opțiuni → Grupare → Sortare**, alegeți cum sunt ordonate grupurile:
| Opțiunea | Descriere |
| ------------------------ | --------------------------------------------- |
| **Alphabetical** | A to Z |
| **Reverse alphabetical** | Z to A |
| **Manual order** | Drag groups to reorder under "Visible groups" |
| Opțiunea | Descriere |
| -------------------- | ------------------------------------------------------------ |
| **Alfabetic** | de la A la Z |
| **Alfabetic invers** | de la Z la A |
| **Ordine manuală** | Trageți grupurile pentru a le reordona în "Grupuri vizibile" |
Click the **eye icon** next to a group to hide it from the view.
Faceți clic pe **pictograma în formă de ochi** de lângă un grup pentru a-l ascunde din vizualizare.
<Note>
**For best performance, limit to 10-15 visible groups.** If you need more, consider using a Dashboard instead.
**Pentru performanțe optime, limitați la 10-15 grupuri vizibile.** Dacă aveți nevoie de mai multe, luați în considerare utilizarea unui tablou de bord.
</Note>
## Example: Companies by Industry
## Exemplu: Companii după industrie
1. Go to **Companies**
2. Create a new view named "By Industry"
3. Click **Options → Group**
4. Select the **Industry** field
1. Mergeți la **Companii**
2. Creați o vizualizare nouă numită "După industrie"
3. Faceți clic pe **Opțiuni → Grupare**
4. Selectați câmpul **Industrie**
5. Salvează
Now your companies are organized by industry, making it easy to focus on one segment at a time.
Acum companiile dvs. sunt organizate după industrie, ceea ce facilitează concentrarea pe câte un segment odată.
## Related
## Conexe
* [Table Views](/l/ro/user-guide/views-pipelines/capabilities/table-views) — all table view features
* [Filters and Sorting](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — combine grouping with filters
* [Vizualizări de Tabel](/l/ro/user-guide/views-pipelines/capabilities/table-views) — toate funcționalitățile vizualizărilor de tabel
* [Filtre și sortare](/l/ro/user-guide/views-pipelines/capabilities/filters-and-sorting) — combinați gruparea cu filtrele
@@ -1,44 +1,44 @@
---
title: Set Up a Webhook Trigger
description: Receive data from external services to trigger workflows.
title: Configurați un declanșator webhook
description: Primiți date de la servicii externe pentru a declanșa fluxuri de lucru.
image: /images/user-guide/workflows/workflow.png
---
Webhook triggers allow external services to start your workflows by sending data to a unique URL. Use them to connect forms, third-party apps, and custom integrations.
Declanșatoarele webhook permit serviciilor externe să pornească fluxurile dvs. de lucru trimițând date către un URL unic. Folosiți-le pentru a conecta formulare, aplicații terțe și integrări personalizate.
## When to Use Webhooks
## Când să folosiți webhook-uri
| Use Case | Exemplu |
| ----------------------- | --------------------------------------- |
| **Web forms** | Contact form submissions create leads |
| **Third-party apps** | Stripe payment → create customer record |
| **Custom integrations** | Your app → Twenty automation |
| **No-code tools** | Zapier, Make, n8n connections |
| Caz de utilizare | Exemplu |
| --------------------------- | ---------------------------------------------------------------- |
| **Formulare web** | Trimiterile din formularul de contact creează potențiali clienți |
| **Aplicații terțe** | Plată Stripe → creează o înregistrare de client |
| **Integrări personalizate** | Aplicația dvs. → automatizare în Twenty |
| **Instrumente no-code** | Conexiuni Zapier, Make, n8n |
## Step-by-Step Setup
## Configurare pas cu pas
### Step 1: Create the Workflow
### Pasul 1: Creați fluxul de lucru
1. Go to **Settings → Workflows**
2. Click **+ New Workflow**
3. Name it (e.g., "Website Form Submission")
1. Accesați **Setări → Fluxuri de lucru**
2. Faceți clic pe **+ Flux de lucru nou**
3. Denumiți-l (de ex., "Trimitere formular site")
### Step 2: Configure the Webhook Trigger
### Pasul 2: Configurați declanșatorul webhook
1. Click on the trigger block
2. Select **Webhook**
3. You'll receive a unique webhook URL like:
1. Faceți clic pe blocul declanșator
2. Selectați **Webhook**
3. Veți primi un URL de webhook unic, de exemplu:
```
https://api.twenty.com/webhooks/workflow/abc123...
```
4. Copy this URL—you'll need it for your external service
4. Copiați acest URL — veți avea nevoie de el pentru serviciul dvs. extern
### Step 3: Define Expected Data Structure
### Pasul 3: Definiți structura de date așteptată
For **POST** requests, define the expected body structure:
Pentru cererile **POST**, definiți structura așteptată a corpului:
1. Click **Define expected body**
2. Enter a sample JSON that matches what your service will send:
1. Faceți clic pe **Define expected body**
2. Introduceți un exemplu JSON care corespunde cu ceea ce va trimite serviciul dvs.:
```json
{
@@ -50,30 +50,30 @@ For **POST** requests, define the expected body structure:
}
```
3. Click **Save**—this creates variables you can use in subsequent steps
3. Faceți clic pe **Salvați** — aceasta creează variabile pe care le puteți utiliza în pașii următori
### Step 4: Add Actions
### Pasul 4: Adăugați acțiuni
Now add actions that use the webhook data:
Acum adăugați acțiuni care folosesc datele webhook-ului:
**Example: Create a Person record**
**Exemplu: Creați o înregistrare Person**
1. Add **Create Record** action
2. Select **People** object
3. Map fields:
1. Adăugați acțiunea **Create Record**
2. Selectați obiectul **People**
3. Asociați câmpurile:
| Câmp | Valoare |
| --------------- | ---------------------------------------------------- |
| Prenume | `{{trigger.body.firstName}}` |
| Nume de familie | `{{trigger.body.lastName}}` |
| Email | `{{trigger.body.email}}` |
| Companie | Search or create based on `{{trigger.body.company}}` |
| Câmp | Valoare |
| --------------- | ----------------------------------------------------- |
| Prenume | `{{trigger.body.firstName}}` |
| Nume de familie | `{{trigger.body.lastName}}` |
| Email | `{{trigger.body.email}}` |
| Companie | Căutați sau creați pe baza `{{trigger.body.company}}` |
### Step 5: Test the Webhook
### Pasul 5: Testați webhook-ul
Before activating, test your webhook:
Înainte de activare, testați webhook-ul:
**Using cURL**:
**Folosind cURL**:
```bash
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
@@ -81,22 +81,22 @@ curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
-d '{"firstName":"Test","lastName":"User","email":"test@example.com"}'
```
**Using Postman or similar**:
**Folosind Postman sau similar**:
1. Create a POST request to your webhook URL
2. Set Content-Type header to `application/json`
3. Add your test JSON body
4. Send and check workflow runs
1. Creați o cerere POST către URL-ul webhook-ului
2. Setați antetul Content-Type la `application/json`
3. Adăugați corpul JSON de test
4. Trimiteți și verificați rulările fluxului de lucru
### Step 6: Activate
### Pasul 6: Activați
Once tested, click **Activate** to make the workflow live.
După testare, faceți clic pe **Activați** pentru a activa fluxul de lucru.
## Handling Different Data Structures
## Gestionarea diferitelor structuri de date
### Nested Data
### Date îmbricate
If your webhook sends nested data:
Dacă webhook-ul trimite date îmbricate:
```json
{
@@ -108,11 +108,11 @@ If your webhook sends nested data:
}
```
Reference with: `{{trigger.body.contact.email}}`
Faceți referire astfel: `{{trigger.body.contact.email}}`
### Arrays
### Tablouri
If data includes arrays:
Dacă datele includ tablouri:
```json
{
@@ -123,11 +123,11 @@ If data includes arrays:
}
```
How you handle arrays depends on your use case:
Modul în care gestionați tablourile depinde de cazul dvs. de utilizare:
**Unknown number of items → Use Iterator**
**Număr necunoscut de elemente → Folosiți Iterator**
If you need to process each item in the array (e.g., create a record for each), add a **Code** action to parse the array, then use **Iterator**:
Dacă trebuie să procesați fiecare element din tablou (de ex., să creați o înregistrare pentru fiecare), adăugați o acțiune **Code** pentru a analiza tabloul, apoi folosiți **Iterator**:
```javascript
export const main = async (params: { items: any }) => {
@@ -138,11 +138,11 @@ export const main = async (params: { items: any }) => {
};
```
Then use Iterator to loop through: `{{code.items}}`
Apoi utilizați Iterator pentru a itera: `{{code.items}}`
**Known/specific fields → Extract to named fields**
**Câmpuri cunoscute/specifice → Extrageți în câmpuri denumite**
If the array contains specific fields you want to access individually (e.g., form answers where position 0 is always "first name", position 1 is always "last name"), add a **Code** action to extract them:
Dacă tabloul conține câmpuri specifice la care doriți să accesați individual (de ex., răspunsuri de formular în care poziția 0 este întotdeauna "prenume", poziția 1 este întotdeauna "nume"), adăugați o acțiune **Code** pentru a le extrage:
```javascript
export const main = async (params: { items: any }) => {
@@ -159,13 +159,13 @@ export const main = async (params: { items: any }) => {
};
```
Now you can select `product.name` and `product.qty` individually in subsequent steps.
Acum puteți selecta `product.name` și `product.qty` individual în pașii următori.
<Tip>
For more details on handling arrays, see [Handle Arrays in Code Actions](/l/ro/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
Pentru mai multe detalii despre gestionarea tablourilor, consultați [Gestionarea tablourilor în acțiunile Code](/l/ro/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
</Tip>
## Related
## Conexe
* [Workflow Triggers](/l/ro/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ro/user-guide/workflows/capabilities/workflow-actions)
* [Declanșatoare ale fluxurilor de lucru](/l/ro/user-guide/workflows/capabilities/workflow-triggers)
* [Acțiuni ale fluxurilor de lucru](/l/ro/user-guide/workflows/capabilities/workflow-actions)
@@ -1,48 +1,48 @@
---
title: Workflows FAQ
description: Frequently asked questions about workflows in Twenty.
title: Întrebări frecvente despre fluxuri de lucru
description: Întrebări frecvente despre fluxurile de lucru din Twenty.
---
<AccordionGroup>
<Accordion title="Why can't I activate a workflow?">
This is likely a permissions issue. You need access to workflows to create and activate them.
<Accordion title="De ce nu pot activa un flux de lucru?">
Este probabil o problemă de permisiuni. Aveți nevoie de acces la fluxuri de lucru pentru a le crea și activa.
**Solution**: Contact your workspace administrator to grant you workflow access under **Settings → Roles**.
**Soluție**: Contactați administratorul spațiului de lucru pentru a vă acorda acces la fluxuri de lucru în **Setări → Roluri**.
If you don't see the Workflows section at all in your sidebar, this confirms it's a permissions issue.
Dacă nu vedeți deloc secțiunea Fluxuri de lucru în bara laterală, acest lucru confirmă că este o problemă de permisiuni.
</Accordion>
<Accordion title="Why don't I see my manual workflow button in the top navbar?">
Manual workflows only appear in the navbar if properly configured:
<Accordion title="De ce nu văd butonul fluxului de lucru manual în bara de navigare de sus?">
Fluxurile de lucru manuale apar în bara de navigare doar dacă sunt configurate corect:
1. The workflow must be **activated** (not in draft mode)
2. The navbar placement must be set to **Pinned**
3. For Single/Bulk triggers, you must be on the correct object page
1. Fluxul de lucru trebuie să fie **activat** (nu în modul de schiță)
2. Poziționarea în bara de navigare trebuie setată la **Pinned**
3. Pentru declanșatoarele Single/Bulk, trebuie să vă aflați pe pagina obiectului corect
**To check**: Open the workflow → click the trigger → verify "Navbar placement" is set to "Pinned".
**Pentru a verifica**: Deschideți fluxul de lucru → faceți clic pe declanșator → verificați că "Navbar placement" este setat la "Pinned".
You can always access manual workflows via **Cmd + K** (or **Ctrl + K**) regardless of navbar settings.
Puteți accesa oricând fluxurile de lucru manuale prin **Cmd + K** (sau **Ctrl + K**), indiferent de setările barei de navigare.
</Accordion>
<Accordion title="What's the difference between Single, Global, and Bulk manual triggers?">
| Tip | Records Required | Rulările fluxului de lucru |
| --- | ---------------- | -------------------------- |
<Accordion title="Care este diferența dintre declanșatoarele manuale Single, Global și Bulk?">
| Tip | Înregistrări necesare | Rulările fluxului de lucru |
| --- | --------------------- | -------------------------- |
\| **Global** | None | Once, no record input |
\| **Single** | One or more selected | Once per selected record |
\| **Bulk** | One or more selected | Once, with all records as array |
\| **Global** | Niciuna | O dată, fără input de înregistrare |
\| **Single** | Una sau mai multe selectate | O dată pentru fiecare înregistrare selectată |
\| **Bulk** | Una sau mai multe selectate | O dată, cu toate înregistrările ca un array |
* **Global**: Use when the workflow doesn't need any record context (e.g., generate a report)
* **Single**: Use when you want to process each selected record independently (e.g., send individual emails)
* **Bulk**: Use when you need to process records together or optimize credit usage (requires Iterator action)
* **Global**: Utilizați când fluxul de lucru nu are nevoie de context de înregistrare (de ex., generarea unui raport)
* **Single**: Utilizați când doriți să procesați fiecare înregistrare selectată independent (de ex., trimiteți e-mailuri individuale)
* **Bulk**: Utilizați când aveți nevoie să procesați înregistrările împreună sau să optimizați utilizarea creditelor (necesită acțiunea Iterator)
See [Workflow Triggers](/l/ro/user-guide/workflows/capabilities/workflow-triggers) for details.
Consultați [Declanșatoare ale fluxurilor de lucru](/l/ro/user-guide/workflows/capabilities/workflow-triggers) pentru detalii.
</Accordion>
<Accordion title="I don't see an If/Else node. Ce ar trebui să fac?">
An explicit If/Else node is not yet available but is on our roadmap.
<Accordion title="Nu văd un nod If/Else. Ce ar trebui să fac?">
Un nod If/Else explicit nu este încă disponibil, dar se află pe foaia noastră de parcurs.
**Current workaround**: Create multiple branches from your step, each starting with a **Filter** action:
**Soluție temporară**: Creați mai multe ramuri din pasul dvs., fiecare începând cu o acțiune **Filter**:
```
Step 1
@@ -52,203 +52,203 @@ description: Frequently asked questions about workflows in Twenty.
└── Branch B: Filter (condition = false) → Actions...
```
Only the branch where the filter condition passes will execute its subsequent actions.
Doar ramura în care condiția filtrului este îndeplinită își va executa acțiunile următoare.
See [How to Use Branches](/l/ro/user-guide/workflows/capabilities/workflow-branches) for a step-by-step guide.
Consultați [Cum să utilizați ramurile](/l/ro/user-guide/workflows/capabilities/workflow-branches) pentru un ghid pas cu pas.
</Accordion>
<Accordion title="Are workflow branches running in parallel?">
**Yes**, branches run in parallel by default.
<Accordion title="Rulează ramurile fluxului de lucru în paralel?">
**Da**, ramurile rulează în paralel în mod implicit.
If you want only one branch to execute:
Dacă doriți ca doar o singură ramură să se execute:
* Add a **Filter** action at the start of each branch
* Set opposite conditions (e.g., Branch A: status = "Open", Branch B: status ≠ "Open")
* Adăugați o acțiune **Filter** la începutul fiecărei ramuri
* Setați condiții opuse (de ex., Ramura A: status = "Open", Ramura B: status ≠ "Open")
Branches that fail their filter condition stop executing, while others continue.
Ramurile care nu îndeplinesc condiția filtrului se opresc din execuție, în timp ce altele continuă.
</Accordion>
<Accordion title="Can I merge branches back together?">
**Yes**. After your parallel branches complete, you can add a step that both branches connect to.
<Accordion title="Pot să îmbin din nou ramurile?">
**Da**. După ce ramurile paralele se finalizează, puteți adăuga un pas la care se conectează ambele ramuri.
In the workflow editor:
În editorul de fluxuri de lucru:
1. Complete your branched actions
2. Add a new step after the branches
3. Drag connections from the end of each branch to this new step
1. Finalizați acțiunile din ramuri
2. Adăugați un pas nou după ramuri
3. Trageți conexiuni de la finalul fiecărei ramuri către acest pas nou
The merged step will execute after all connected branches complete.
Pasul îmbinat se va executa după ce toate ramurile conectate se finalizează.
</Accordion>
<Accordion title="What's the limit on Search Records results?">
**Search Records returns a maximum of 200 records.**
<Accordion title="Care este limita rezultatelor pentru Search Records?">
**Search Records returnează maximum 200 de înregistrări.**
If you need to process more:
Dacă aveți nevoie să procesați mai multe:
* Add more specific filters to reduce results
* Use scheduled workflows to process in batches
* Consider using the API for bulk operations
* Adăugați filtre mai specifice pentru a reduce rezultatele
* Utilizați fluxuri de lucru programate pentru a procesa în loturi
* Luați în considerare utilizarea API-ului pentru operațiuni în masă
For most workflows, 200 records is sufficient. If you regularly hit this limit, consider restructuring your automation.
Pentru majoritatea fluxurilor de lucru, 200 de înregistrări sunt suficiente. Dacă atingeți frecvent această limită, luați în considerare restructurarea automatizării.
</Accordion>
<Accordion title="Can I CC people on workflow emails?">
**Not yet.** CC and BCC fields for the Send Email action are on our roadmap.
<Accordion title="Pot adăuga persoane în CC în e-mailurile fluxurilor de lucru?">
**Încă nu.** Câmpurile CC și BCC pentru acțiunea Send Email se află pe foaia noastră de parcurs.
**Current workaround**: Add multiple Send Email actions to send to additional recipients, or use an HTTP Request to send via an external email service that supports CC.
**Soluție temporară**: Adăugați mai multe acțiuni Send Email pentru a trimite către destinatari suplimentari sau utilizați un HTTP Request pentru a trimite printr-un serviciu extern de e-mail care acceptă CC.
</Accordion>
<Accordion title="How do I use outputs from previous steps?">
Every action produces output data that can be used in subsequent steps.
<Accordion title="Cum folosesc rezultatele din pașii anteriori?">
Fiecare acțiune produce date de ieșire care pot fi utilizate în pașii următori.
**To reference previous step data**:
**Pentru a face referire la datele din pașii anteriori**:
* Use the variable picker when configuring a field
* Or type `{{stepName.fieldName}}` directly
* Utilizați selectorul de variabile când configurați un câmp
* Sau tastați direct `{{stepName.fieldName}}`
**Exemple**:
* Trigger data: `{{trigger.object.email}}`
* Search results: `{{searchRecords[0].name}}`
* Code output: `{{code.calculatedValue}}`
* Datele declanșatorului: `{{trigger.object.email}}`
* Rezultatele căutării: `{{searchRecords[0].name}}`
* Rezultatul codului: `{{code.calculatedValue}}`
Hover over any field in the action configuration to see available variables from previous steps.
Treceți cursorul peste orice câmp din configurația acțiunii pentru a vedea variabilele disponibile din pașii anteriori.
</Accordion>
<Accordion title="Why does my Iterator fail?">
**Iterator requires an array input.** Common issues:
<Accordion title="De ce eșuează Iteratorul?">
**Iterator necesită un input de tip array.** Probleme frecvente:
1. **Input is not an array**: Ensure you're passing results from Search Records or another action that returns an array
2. **Array is empty**: Add a filter before Iterator to check `{{searchRecords.length}} > 0`
3. **Wrong variable selected**: Make sure you select the array itself, not a single record
1. **Inputul nu este un array**: Asigurați-vă că transmiteți rezultate din Search Records sau dintr-o altă acțiune care returnează un array
2. **Array-ul este gol**: Adăugați un filtru înainte de Iterator pentru a verifica `{{searchRecords.length}} > 0`
3. **Variabilă selectată greșit**: Asigurați-vă că selectați array-ul în sine, nu o singură înregistrare
**Correct setup**:
**Configurare corectă**:
1. Search Records (returns array)
1. Search Records (returnează un array)
2. Filter: length > 0
3. Iterator: select `{{searchRecords}}`
4. Actions inside iterator use `{{iterator.currentItem.fieldName}}`
3. Iterator: selectați `{{searchRecords}}`
4. Acțiunile din interiorul iteratorului folosesc `{{iterator.currentItem.fieldName}}`
</Accordion>
<Accordion title="What's the maximum execution time for Code actions?">
Code actions (serverless functions) have a **default timeout of 5 minutes** (300 seconds).
<Accordion title="Care este timpul maxim de execuție pentru acțiunile Code?">
Acțiunile Code (funcții serverless) au un **timeout implicit de 5 minute** (300 de secunde).
The maximum configurable timeout is **15 minutes** (900 seconds).
Timeoutul maxim configurabil este de **15 minute** (900 de secunde).
If your code exceeds this limit, the action will fail with a timeout error.
Dacă codul depășește această limită, acțiunea va eșua cu o eroare de timeout.
**Tips to avoid timeouts**:
**Sfaturi pentru a evita timeout-urile**:
* Break large operations into smaller chunks using Iterator
* Avoid heavy computations; use external services via HTTP Request for intensive processing
* Optimize your code to reduce execution time
* If you need longer processing, consider using scheduled workflows that process data in batches
* Împărțiți operațiunile mari în bucăți mai mici folosind Iterator
* Evitați calculele grele; utilizați servicii externe prin HTTP Request pentru procesări intensive
* Optimizați codul pentru a reduce timpul de execuție
* Dacă aveți nevoie de procesare mai lungă, luați în considerare utilizarea fluxurilor de lucru programate care procesează datele în loturi
</Accordion>
<Accordion title="How do I read workflow runs?">
Workflow runs show the execution history and help you debug issues.
<Accordion title="Cum citesc rulările fluxului de lucru?">
Rulările fluxului de lucru afișează istoricul execuției și vă ajută să depanați problemele.
**Access runs**:
**Accesarea rulărilor**:
* In workflow editor → **Runs** panel on the right
* Or go to **Workflow Runs** in the sidebar
* În editorul de fluxuri de lucru → panoul **Runs** din dreapta
* Sau accesați **Rulări ale fluxurilor de lucru** în bara laterală
**Understanding a run**:
**Înțelegerea unei rulări**:
* **Status**: Running, Completed, Failed, Waiting
* **Steps**: See which steps executed and their output
* **Errors**: Click failed steps to see error messages
* **Data**: View input/output data at each step
* **Pași**: Vedeți ce pași au fost executați și rezultatul lor
* **Erori**: Faceți clic pe pașii eșuați pentru a vedea mesajele de eroare
* **Date**: Vizualizați datele de intrare/ieșire la fiecare pas
See [Workflow Runs](/l/ro/user-guide/workflows/capabilities/workflow-runs) for details.
Consultați [Rulări ale fluxurilor de lucru](/l/ro/user-guide/workflows/capabilities/workflow-runs) pentru detalii.
</Accordion>
<Accordion title="Why don't I see my workflow runs?">
Workflow runs might be failing immediately due to rate limits.
<Accordion title="De ce nu văd rulările fluxului meu de lucru?">
Rulările fluxului de lucru ar putea eșua imediat din cauza limitelor de rată.
**Hard limit: 5,000 runs per hour per workspace.**
**Limită hard: 5.000 de rulări pe oră per spațiu de lucru.**
If you exceed this limit, workflows are immediately marked as failed and won't appear in your runs list as expected.
Dacă depășiți această limită, fluxurile de lucru sunt marcate imediat ca eșuate și nu vor apărea în lista de rulări, așa cum v-ați aștepta.
**Common scenarios that hit this limit**:
**Scenarii comune care ating această limită**:
* Selecting more than 5,000 records with a Single manual trigger
* Multiple workflows running simultaneously across your workspace
* High-frequency automated triggers (e.g., Record Updated on a busy object)
* Selectarea a mai mult de 5.000 de înregistrări cu un declanșator manual Single
* Mai multe fluxuri de lucru care rulează simultan în spațiul dvs. de lucru
* Declanșatoare automate cu frecvență ridicată (de ex., Record Updated pe un obiect aglomerat)
**Soluții**:
* Use **Bulk** triggers instead of Single to process many records in one run
* Space out large batch operations
* Use filters to reduce trigger frequency
* Schedule heavy workflows during off-peak hours
* Utilizați declanșatoare **Bulk** în loc de Single pentru a procesa multe înregistrări într-o singură rulare
* Eșalonați în timp operațiunile mari efectuate în loturi
* Folosiți filtre pentru a reduce frecvența declanșărilor
* Programați fluxurile de lucru intensive în afara orelor de vârf
</Accordion>
<Accordion title="What are the workflow rate limits?">
Twenty has two rate limits to ensure system stability:
<Accordion title="Care sunt limitele de rată pentru fluxurile de lucru?">
Twenty are două limite de rată pentru a asigura stabilitatea sistemului:
| Limit | Valoare | Behavior |
| ----- | ------- | -------- |
| Limită | Valoare | Comportament |
| ------ | ------- | ------------ |
\| **Soft limit** | 100 runs/minute | Runs queue in "Not Started" status, processed gradually |
\| **Hard limit** | 5,000 runs/hour | Runs immediately fail |
\| **Limită soft** | 100 rulări/minut | Rulările se pun în coadă cu statusul "Not Started", procesate treptat |
\| **Limită hard** | 5.000 rulări/oră | Rulările eșuează imediat |
**Soft limit (100/min)**: Your workflows won't fail—they just wait in the queue and are processed over time. You can trigger more than 100 records; execution will be slower.
**Limită soft (100/min)**: Fluxurile dvs. de lucru nu vor eșua — doar așteaptă în coadă și sunt procesate în timp. Puteți declanșa mai mult de 100 de înregistrări; execuția va fi mai lentă.
**Hard limit (5,000/hr)**: This applies to your entire workspace. If all your workflows combined exceed 5,000 runs in an hour, additional runs will fail immediately.
**Limită hard (5.000/oră)**: Se aplică întregului dvs. spațiu de lucru. Dacă toate fluxurile dvs. de lucru cumulate depășesc 5.000 de rulări într-o oră, rulările suplimentare vor eșua imediat.
**Tips to stay within limits**:
**Sfaturi pentru a rămâne în limite**:
* Use Bulk triggers with Iterator instead of Single triggers for large batches
* Combine related automations into fewer workflows
* Use scheduled workflows to spread load over time
* Utilizați declanșatoare Bulk cu Iterator în locul declanșatoarelor Single pentru loturi mari
* Combinați automatizările înrudite în mai puține fluxuri de lucru
* Utilizați fluxuri de lucru programate pentru a distribui încărcarea în timp
</Accordion>
<Accordion title="Can I retry a failed workflow run?">
**No, there is no automatic retry functionality at the moment.**
<Accordion title="Pot reîncerca o rulare de flux de lucru eșuată?">
**Nu, momentan nu există o funcționalitate de reîncercare automată.**
If a workflow run fails, you'll need to:
Dacă o rulare de flux de lucru eșuează, va trebui să:
1. Review the error in **Settings → Workflows → [Your Workflow] → Runs**
2. Fix the issue (data, configuration, or external service)
3. Manually trigger the workflow again on the affected record(s)
1. Examinați eroarea în **Setări → Workflows → [Workflow-ul dvs.] → Runs**
2. Remediați problema (date, configurație sau serviciu extern)
3. Declanșați manual din nou fluxul de lucru pe înregistrarea/înregistrările afectate
**Tips to reduce failures**:
**Sfaturi pentru a reduce eșecurile**:
* Add **Filter** nodes to validate data before actions
* Use **Search Records** to check if related records exist
* Test thoroughly with a few records before bulk operations
* Adăugați noduri **Filter** pentru a valida datele înaintea acțiunilor
* Utilizați **Search Records** pentru a verifica dacă există înregistrări asociate
* Testați temeinic cu câteva înregistrări înainte de operațiuni în masă
Automatic retry functionality is on our roadmap for a future release.
Funcționalitatea de reîncercare automată este pe foaia noastră de parcurs pentru o versiune viitoare.
</Accordion>
<Accordion title="Should I deactivate workflows before CSV imports?">
**Yes, if your workflows are triggered by record creation or updates.**
<Accordion title="Ar trebui să dezactivez fluxurile de lucru înainte de importurile CSV?">
**Da, dacă fluxurile dvs. de lucru sunt declanșate de crearea sau actualizarea înregistrărilor.**
When you import data via CSV, each record created or updated can trigger workflows. A large import (thousands of records) could:
Când importați date prin CSV, fiecare înregistrare creată sau actualizată poate declanșa fluxuri de lucru. Un import mare (mii de înregistrări) ar putea:
* Hit the 5,000 runs/hour limit
* Consume significant workflow credits
* Send unexpected emails or notifications
* Create duplicate tasks or records
* Atinge limita de 5.000 de rulări/oră
* Consumă un număr semnificativ de credite de flux de lucru
* Trimite e-mailuri sau notificări neașteptate
* Creează sarcini sau înregistrări duplicate
**Before a mass import**:
**Înaintea unui import în masă**:
1. Go to **Settings → Workflows**
2. Identify workflows triggered by the object you're importing
3. **Deactivate** them temporarily
4. Run your CSV import
5. **Reactivate** the workflows when done
1. Accesați **Setări → Fluxuri de lucru**
2. Identificați fluxurile de lucru declanșate de obiectul pe care îl importați
3. **Dezactivați**-le temporar
4. Rulați importul CSV
5. **Reactivați** fluxurile de lucru când ați terminat
**Alternative**: If you need the workflows to run on imported data, import in smaller batches to stay within rate limits.
**Alternativă**: Dacă aveți nevoie ca fluxurile de lucru să ruleze pe datele importate, importați în loturi mai mici pentru a rămâne în limitele de rată.
</Accordion>
<Accordion title="How do I clean up my workflow layout?">
If your workflow canvas looks messy with nodes scattered around, you can automatically organize it:
<Accordion title="Cum îmi curăț aspectul fluxului de lucru?">
Dacă planșa fluxului de lucru arată dezordonată, cu noduri împrăștiate, o puteți organiza automat:
1. Right-click anywhere on the workflow canvas
2. Click **Tidy up workflow**
1. Faceți clic dreapta oriunde pe planșa fluxului de lucru
2. Faceți clic pe **Aranjează fluxul de lucru**
This will automatically rearrange all nodes into a clean, organized layout.
Acest lucru va rearanja automat toate nodurile într-un aspect curat și organizat.
</Accordion>
</AccordionGroup>
@@ -1,6 +1,6 @@
---
title: ИИ
description: AI-powered features coming soon to Twenty.
description: Функции на базе ИИ скоро появятся в Twenty.
---
<Frame>
@@ -9,54 +9,54 @@ description: AI-powered features coming soon to Twenty.
## Что нового
Twenty is building AI capabilities to help your team work smarter. We're focusing on two major areas:
Twenty разрабатывает возможности ИИ, чтобы помочь вашей команде работать эффективнее. Мы сосредоточены на двух основных направлениях:
### 1. AI Chatbot
### 1. Чат-бот на базе ИИ
A conversational assistant that understands your context and has access to all your Twenty data.
Разговорный помощник, который понимает ваш контекст и имеет доступ ко всем вашим данным Twenty.
**Key capabilities:**
**Ключевые возможности:**
* **Full data access**: Query any record, relationship, or metric in your workspace
* **Page context awareness**: Reference "this company" or "this opportunity" based on where you are in Twenty
* **Natural language**: Ask questions and get answers without navigating menus
* **Полный доступ к данным**: Запрашивайте любую запись, связь или метрику в вашем рабочем пространстве
* **Осведомлённость о контексте страницы**: Ссылайтесь на «эту компанию» или «эту сделку» в зависимости от того, где вы находитесь в Twenty
* **Естественный язык**: Задавайте вопросы и получайте ответы без навигации по меню
**Example prompts:**
**Примеры подсказок:**
* "What opportunities are closing this month?"
* "Which deals have been in Negotiation for more than 30 days?"
* "Summarize my interactions with this person"
* "Какие сделки закрываются в этом месяце?"
* "Какие сделки находятся на этапе «Переговоры» более 30 дней?"
* "Суммируйте мои взаимодействия с этим человеком"
### 2. AI Agents in Workflows
### 2. ИИ-агенты в рабочих процессах
Extend your workflows with AI-powered actions and autonomous agents.
Расширяйте свои рабочие процессы с помощью действий на базе ИИ и автономных агентов.
**Key capabilities:**
**Ключевые возможности:**
* **AI actions**: Use AI to enrich data, classify records, generate summaries, and more
* **Autonomous agents**: Let agents execute multi-step tasks within a workflow
* **Custom prompts**: Define exactly how AI should process your data
* **Действия ИИ**: Используйте ИИ для обогащения данных, классификации записей, создания сводок и многого другого
* **Автономные агенты**: Позвольте агентам выполнять многошаговые задачи в рамках рабочего процесса
* **Пользовательские подсказки**: Определяйте точно, как ИИ должен обрабатывать ваши данные
**Сценарии использования:**
* Automatically categorize inbound leads
* Enrich company data from public sources
* Generate follow-up email drafts based on meeting notes
* Score opportunities based on engagement patterns
* Автоматически классифицируйте входящие лиды
* Обогащайте данные о компании из открытых источников
* Генерируйте черновики последующих писем на основе заметок встречи
* Оценивайте сделки на основе шаблонов вовлеченности
## Permissions and Access Control
## Разрешения и контроль доступа
AI agents will be managed through the existing permissions system:
ИИ-агенты будут управляться через существующую систему разрешений:
1. Перейдите в **Настройки → Роли**
2. Configure which data each AI agent can access
3. Set read/write permissions per object
2. Настройте, к каким данным каждый ИИ-агент может получать доступ
3. Задайте права на чтение и запись для каждого объекта
This ensures AI agents respect your data governance policies and only access what they need.
Это гарантирует, что ИИ-агенты соблюдают ваши политики управления данными и получают доступ только к необходимому.
## Будьте в курсе
We'll update this section as AI features become available. In the meantime:
Мы будем обновлять этот раздел по мере появления функций ИИ. А пока:
* Follow our [GitHub](https://github.com/twentyhq/twenty) for development updates
* Join our [Discord](https://discord.gg/twenty) to share feedback and feature requests
* Следите за обновлениями разработки в нашем [GitHub](https://github.com/twentyhq/twenty)
* Присоединяйтесь к нашему [Discord](https://discord.gg/twenty), чтобы делиться отзывами и запросами на функции
@@ -1,49 +1,49 @@
---
title: Workflow Credits
description: Understanding workflow credits, consumption, and how to purchase more.
title: Кредиты рабочих процессов
description: Что такое кредиты рабочих процессов, их потребление и как приобрести больше.
---
## Обзор
Credits power your workflow automations in Twenty. Every workflow action consumes credits based on its complexity.
Кредиты обеспечивают работу ваших автоматизаций рабочих процессов в Twenty. Каждое действие рабочего процесса потребляет кредиты в зависимости от своей сложности.
## Credit Allocation
## Распределение кредитов
Credits are based on your billing cycle, not your plan:
Кредиты привязаны к вашему платёжному циклу, а не к плану:
| Billing Cycle | Credits |
| ------------- | --------------- |
| Ежемесячно | 5 million/month |
| Ежегодно | 50 million/year |
| Платёжный цикл | Кредиты |
| -------------- | ----------------- |
| Ежемесячно | 5 миллионов/месяц |
| Ежегодно | 50 миллионов/год |
<Note>
The 5 million monthly credits are designed to empower you to run automations without worrying about costs. For most workflows using standard actions, this is more than enough. You'll only need additional credits when running advanced code nodes or AI-powered features.
5 миллионов кредитов в месяц позволяют вам запускать автоматизации, не беспокоясь о расходах. Для большинства рабочих процессов, использующих стандартные действия, этого более чем достаточно. Дополнительные кредиты понадобятся только при запуске продвинутых узлов с кодом или функций на базе ИИ.
</Note>
## Credit Consumption
## Потребление кредитов
Different actions consume different amounts of credits:
Разные действия потребляют разное количество кредитов:
| Action Type | Использование кредита |
| ------------------------------------------------------- | ----------------------- |
| **Basic operations** (search, update, create records) | Minimal |
| **Complex operations** (code nodes, external API calls) | More credits |
| **AI prompts** (coming soon) | Variable based on usage |
| Тип действия | Использование кредита |
| ---------------------------------------------------------- | ------------------------------------------ |
| **Базовые операции** (поиск, обновление, создание записей) | Минимальные |
| **Сложные операции** (узлы с кодом, внешние вызовы API) | Больше кредитов |
| **Запросы ИИ** (скоро) | Варьируется в зависимости от использования |
Credits are deducted in real-time when workflows execute.
Кредиты списываются в режиме реального времени при выполнении рабочих процессов.
## Monitoring Usage
## Отслеживание использования
Track your credit consumption:
Отслеживайте своё потребление кредитов:
1. Перейдите в **Настройки → Оплата**
2. View your current usage and remaining credits
3. Monitor trends to plan for additional credits if needed
2. Просматривайте текущее использование и остаток кредитов
3. Отслеживайте тенденции, чтобы при необходимости планировать дополнительные кредиты
## Приобретение дополнительных кредитов
Need more credits?
Нужно больше кредитов?
1. Перейдите в **Настройки → Оплата**
2. Click on the option to purchase additional credit packs
3. Select the amount you need
2. Нажмите на опцию, чтобы приобрести дополнительные пакеты кредитов
3. Выберите нужное количество
@@ -1,28 +1,28 @@
---
title: Can I Book Meetings from Twenty?
description: Information about booking meetings directly from Twenty.
title: Могу ли я назначать встречи из Twenty?
description: Информация о назначении встреч непосредственно из Twenty.
---
## Current Status
## Текущий статус
**No, Twenty does not currently support booking meetings directly from the platform.**
**Нет, в настоящее время в Twenty нельзя напрямую назначать встречи.**
Twenty's calendar integration is designed to **sync and display** your existing calendar events, not to create new ones. All meeting scheduling should be done through your native calendar application (Google Calendar, Microsoft Outlook, etc.).
Интеграция календаря Twenty предназначена для того, чтобы **синхронизировать и отображать** ваши существующие события календаря, а не создавать новые. Все планирование встреч следует выполнять через ваше родное приложение календаря (Google Calendar, Microsoft Outlook и т. д.).
## What You Can Do
## Что вы можете сделать
* **View meeting history** on People, Companies, and Opportunities records
* **See upcoming meetings** with contacts in your CRM
* **Track meeting context** alongside email communications
* **Auto-create contacts** from meeting participants
* **Просматривать историю встреч** в записях Людей, Компаний и Возможностей
* **Просматривать предстоящие встречи** с контактами в вашей CRM
* **Отслеживать контекст встреч** наряду с электронной перепиской
* **Автоматически создавать контакты** из участников встреч
## How to Schedule Meetings
## Как назначать встречи
1. Use your native calendar app (Google Calendar, Outlook, etc.)
2. Create the meeting as you normally would
3. The meeting will automatically sync to Twenty within 5 minutes
4. View the meeting on the relevant CRM records
1. Используйте ваше родное приложение календаря (Google Calendar, Outlook и т. д.)
2. Создайте встречу как обычно
3. Встреча автоматически синхронизируется с Twenty в течение 5 минут
4. Просматривайте встречу в соответствующих записях CRM
## Future Plans
## Планы на будущее
Meeting creation from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
В нашей дорожной карте запланирована возможность создания встреч прямо в Twenty. Присоединяйтесь к нашим [обсуждениям на GitHub](https://github.com/twentyhq/twenty/discussions), чтобы поделиться своим сценарием использования и помочь расставить приоритеты для этой функции.
@@ -1,44 +1,44 @@
---
title: Can I Send Emails from Twenty?
description: Information about sending emails directly from Twenty.
title: Могу ли я отправлять письма из Twenty?
description: Информация об отправке писем непосредственно из Twenty.
---
## Current Status
## Текущий статус
Twenty's email integration is designed to **sync and display** your email history. Emails cannot be composed or sent directly from Twenty's interface.
Интеграция электронной почты Twenty предназначена для того, чтобы **синхронизировать и отображать** вашу историю переписки по электронной почте. Письма нельзя составлять или отправлять непосредственно из интерфейса Twenty.
When you view an email thread on a record page and click **Reply**, you'll be redirected to the original thread in your mailbox (Gmail, Outlook, etc.). This is where you compose and send your reply.
Когда вы просматриваете цепочку писем на странице записи и нажимаете **Ответить**, вы будете перенаправлены к исходной переписке в своём почтовом ящике (Gmail, Outlook и т. п.). Именно там вы создаёте и отправляете свой ответ.
## What You Can Do Today
## Что вы можете делать уже сегодня
* **View email history** on People, Companies, and Opportunities records
* **Read full email threads** with contacts in your CRM
* **Track communication context** alongside calendar events
* **Auto-create contacts** from email interactions
* **Reply via redirect** — click Reply to jump to your mailbox
* **Просматривать историю переписки** в записях Людей, Компаний и Возможностей
* **Читать полные цепочки писем** с контактами в вашей CRM
* **Отслеживать контекст переписки** вместе с событиями календаря
* **Автоматически создавать контакты** из взаимодействий по электронной почте
* **Отвечать через переадресацию** — нажмите «Ответить», чтобы перейти к своему почтовому ящику
## Sending Emails via Workflows
## Отправка писем через рабочие процессы
While you can't send emails manually from Twenty, you **can send emails automatically using Workflows**. This is useful for:
Хотя вы не можете отправлять письма вручную из Twenty, вы **можете автоматически отправлять письма с помощью рабочих процессов**. Это полезно для:
* Automated follow-ups
* Notifications to contacts
* Triggered communications based on record changes
* Автоматические последующие письма
* Уведомления контактам
* Триггерные коммуникации на основе изменений записей
Emails sent via workflows go through your connected mailbox account.
Письма, отправленные через рабочие процессы, проходят через подключённую учётную запись почтового ящика.
Learn about the [Send Email action](/l/ru/user-guide/workflows/capabilities/workflow-actions#send-email)
Узнайте больше о [действии «Отправить письмо»](/l/ru/user-guide/workflows/capabilities/workflow-actions#send-email)
## Email Sequences and Newsletters
## Последовательности писем и рассылки
For email sequences and newsletters, we recommend using workflows to connect Twenty to a dedicated email marketing tool.
Для последовательностей писем и рассылок мы рекомендуем использовать рабочие процессы, чтобы подключить Twenty к специализированному инструменту email-маркетинга.
<Warning>
Mass emails should not be sent directly from your mailbox to protect your domain reputation. Use a dedicated tool for bulk communications.
Массовые письма не следует отправлять напрямую из вашего почтового ящика, чтобы защитить репутацию домена. Используйте специализированный инструмент для массовых рассылок.
</Warning>
See [How to send emails from workflows](/l/ru/user-guide/workflows/capabilities/send-emails-from-workflows) for setup instructions
См. [Как отправлять письма из рабочих процессов](/l/ru/user-guide/workflows/capabilities/send-emails-from-workflows) для получения инструкций по настройке
## Future Plans
## Планы на будущее
Native email composition from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
В нашей дорожной карте запланирована возможность нативного создания писем прямо в Twenty. Присоединяйтесь к нашим [обсуждениям на GitHub](https://github.com/twentyhq/twenty/discussions), чтобы поделиться своим сценарием использования и помочь расставить приоритеты для этой функции.
@@ -1,35 +1,35 @@
---
title: Can I Track Email Activity on All Objects?
description: Understanding email activity tracking across different objects.
title: Могу ли я отслеживать активность электронной почты на всех объектах?
description: Как работает отслеживание активности электронной почты на разных объектах.
---
## Supported Objects
## Поддерживаемые объекты
Email activity is currently available on **three standard objects**:
Активность электронной почты в настоящее время доступна на **трёх стандартных объектах**:
| Объект | What You See |
| --------------- | ---------------------------------------------------------------- |
| **People** | All emails exchanged with that specific contact |
| **Компании** | All emails with anyone from that company (based on email domain) |
| **Возможности** | Emails related to the company linked to the opportunity |
| Объект | Что вы увидите |
| --------------- | ---------------------------------------------------------------------------------------------- |
| **Люди** | Все электронные письма, которыми обменивались с этим контактом |
| **Компании** | Все электронные письма с любым контактом из этой компании (на основе домена электронной почты) |
| **Возможности** | Электронные письма, связанные с компанией, привязанной к возможности |
## Why Only These Objects?
## Почему только эти объекты?
People, Companies, and Opportunities are the core relationship objects where email context adds the most value. Email threads are automatically linked based on:
Люди, Компании и Возможности — это ключевые объекты отношений, где контекст электронной почты даёт наибольшую ценность. Цепочки писем автоматически связываются на основании:
* **Email address** → matched to People records
* **Email domain** → matched to Company records
* **Company relation** → linked to Opportunities
* **Адрес электронной почты** → сопоставляется с записями Людей
* **Домен электронной почты** → сопоставляется с записями Компаний
* **Связь с компанией** → сопоставляется с Возможностями
## Пользовательские объекты
**Email tracking is not available on custom objects** at this time.
**Отслеживание электронной почты недоступно на пользовательских объектах** в настоящее время.
If you need email context on a custom object, consider:
Если вам нужен контекст электронной почты в пользовательском объекте, рассмотрите:
* Using a relation field to link your custom object to People or Companies
* Viewing email history on the linked People/Company record
* Использование поля связи для привязки вашего пользовательского объекта к Людям или Компаниям
* Просмотр истории электронной почты в связанной записи человека/компании
## Future Plans
## Планы на будущее
Extending email visibility to custom objects is being considered. Share your use case on our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to help prioritize this feature.
Рассматривается расширение видимости электронной почты на пользовательские объекты. Поделитесь своим сценарием использования в наших [обсуждениях на GitHub](https://github.com/twentyhq/twenty/discussions), чтобы помочь расставить приоритеты для этой функции.
@@ -176,23 +176,23 @@ Twenty пытается сопоставлять столбцы на основ
VALUE1
```
See [here](#finding-api-names-for-select-fields) where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing.</Note>
См. [здесь](#finding-api-names-for-select-fields), где найти имена API.
<Note>Новые варианты списка не будут созданы автоматически при импорте. Добавьте их в **Настройки → Модель данных** перед импортом.</Note>
### Text Fields
### Текстовые поля
* No special formatting required
* Leading/trailing spaces are trimmed
* Специальное форматирование не требуется
* Начальные и конечные пробелы удаляются
## Finding API Names
## Поиск имен API
For Select, Multi-Select, and Array fields with predefined options, you must use the **API names**, not the display labels.
Для полей Select, Multi-Select и Array с предопределёнными вариантами необходимо использовать **имена API**, а не отображаемые метки.
### How to Find API Names
### Как найти имена API
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at the bottom right of the settings page)
4. View the API name for each option
1. Перейдите в **Настройки → Модель данных**
2. Выберите объект и поле
3. Включите **Расширенный режим** (переключатель внизу справа на странице настроек)
4. Просмотрите имя API для каждого варианта
<VimeoEmbed videoId="1144910809" title="Видеодемонстрация" />
@@ -1,209 +1,209 @@
---
title: Export Your Data
description: Complete step-by-step guide to exporting data from Twenty.
title: Экспортируйте ваши данные
description: Полное пошаговое руководство по экспорту данных из Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Обзор
Export your workspace data to CSV for backups, reporting, or migration.
Экспортируйте данные своего рабочего пространства в CSV для резервного копирования, отчетности или миграции.
**Сценарии использования:**
* **Regular backups** — keep copies of your data
* **External reporting** — analyze data in Excel, Google Sheets, or BI tools
* **Migration** — move data to another system
* **Bulk updates** — export, edit, and re-import to update records
* **Регулярные резервные копии** — храните копии ваших данных
* **Внешняя отчетность** — анализируйте данные в Excel, Google Sheets или инструментах BI
* **Миграция** — перенесите данные в другую систему
* **Массовые обновления** — экспортируйте, редактируйте и повторно импортируйте для обновления записей
## What You Need to Know
## Что нужно знать
### Export Limits
### Ограничения экспорта
* **Maximum 20,000 records** per export
* Only **visible columns** are exported
* Only **filtered records** are exported (based on your current view)
* **Максимум 20 000 записей** на один экспорт
* Экспортируются только **видимые столбцы**
* Экспортируются только **отфильтрованные записи** (на основе вашего текущего представления)
<Note>For larger exports (20,000+ records), use filters to export in batches or use the [API](/l/ru/developers/extend/capabilities/apis).</Note>
<Note>Для больших экспортов (20 000+ записей) используйте фильтры для экспорта партиями или используйте [API](/l/ru/developers/extend/capabilities/apis).</Note>
### Разрешения
You need the **"Export CSV"** permission to export data. Contact your workspace admin if you don't have this option.
Для экспорта данных вам требуется разрешение **"Export CSV"**. Свяжитесь с администратором рабочего пространства, если у вас нет этой опции.
## Step 1: Navigate to the Object
## Шаг 1: Перейдите к объекту
Go to the object you want to export:
Перейдите к объекту, который хотите экспортировать:
* **People** — for contacts
* **Companies** — for organizations
* **Opportunities** — for deals
* **Custom objects** — any object you've created
* **People** — для контактов
* **Companies** — для организаций
* **Opportunities** — для сделок
* **Пользовательские объекты** — любой объект, который вы создали
## Step 2: Configure Your View
## Шаг 2: Настройте ваше представление
**Important:** The export includes only what's visible in your current view.
**Важно:** Экспорт включает только то, что видно в вашем текущем представлении.
### Add/Remove Columns
### Добавление/удаление столбцов
1. Click **Options → Fields** (or the **+** at the end of columns)
2. Check the fields you want to export
3. Uncheck fields you don't need
1. Нажмите **Параметры → Поля** (или **+** в конце столбцов)
2. Отметьте поля, которые хотите экспортировать
3. Снимите отметку с полей, которые вам не нужны
### Filter Records (Optional)
### Фильтрация записей (необязательно)
If you only need a subset of data:
Если вам нужен только поднабор данных:
1. Click **Filter**
2. Add filter conditions (e.g., "Created date > January 1, 2024")
3. Only matching records will be exported
1. Нажмите **Фильтр**
2. Добавьте условия фильтра (например, "Created date > January 1, 2024")
3. Будут экспортированы только соответствующие записи
### Sort Records (Optional)
### Сортировка записей (необязательно)
1. Click a column header to sort
2. The export will follow your sort order
1. Нажмите заголовок столбца, чтобы отсортировать
2. Экспорт сохранит ваш порядок сортировки
<Note>**Create a dedicated export view.** Save a view specifically configured for exports so you don't need to reconfigure each time.</Note>
<Note>**Создайте отдельное представление для экспорта.** Сохраните представление, специально настроенное для экспорта, чтобы вам не приходилось перенастраивать его каждый раз.</Note>
## Step 3: Export the Data
## Шаг 3: Экспорт данных
1. Click the **⋮** icon on the top right of the table
2. Select **Export view**
3. Choose where to save the CSV file
4. Wait for the download to complete
1. Нажмите значок **⋮** в правом верхнем углу таблицы
2. Выберите **Экспорт представления**
3. Выберите, куда сохранить файл CSV
4. Дождитесь завершения загрузки
## What Gets Exported
## Что экспортируется
| Included | Not Included |
| -------------------------------- | ---------------------- |
| All visible columns | Hidden columns |
| Records matching current filters | Filtered-out records |
| Custom field values | Fields not in the view |
| Record IDs | File attachments |
| Relation IDs | Images |
| Включено | Не включено |
| ---------------------------------------- | ----------------------------------- |
| Все видимые столбцы | Скрытые столбцы |
| Записи, соответствующие текущим фильтрам | Записи, исключенные фильтрами |
| Значения пользовательских полей | Поля, отсутствующие в представлении |
| ID записей | Файловые вложения |
| ID связей | Изображения |
### Поля связи
Relation IDs are only exported on the **"many" side** of a relationship:
Идентификаторы связей экспортируются только на стороне **"many"** связи:
* **People export** includes a `companyId` column (People → Company relation)
* **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
* **Экспорт People** включает столбец `companyId` (связь People → Company)
* **Экспорт Companies** НЕ включает `peopleIds` (Companies — это сторона "one")
This means you can use the People export to re-import and maintain the Company link, but you'll need to re-import People after Companies to recreate the relationships.
Это означает, что вы можете использовать экспорт People для повторного импорта и сохранения связи с Company, но вам нужно будет повторно импортировать People после Companies, чтобы восстановить связи.
## Exporting for Specific Purposes
## Экспорт для конкретных целей
### For Backups
### Для резервного копирования
1. Create a view with **all fields** visible
2. Remove all filters to include all records
3. Export each object type separately
4. Store exports in a secure location
5. Set a recurring reminder (weekly/monthly)
1. Создайте представление, в котором видны **все поля**
2. Удалите все фильтры, чтобы включить все записи
3. Экспортируйте каждый тип объекта отдельно
4. Храните экспортированные файлы в защищенном месте
5. Настройте регулярное напоминание (еженедельно/ежемесячно)
### For External Reporting
### Для внешней отчетности
1. Include only the fields you need for analysis
2. Apply filters to focus on relevant data
3. Consider sorting by the field you'll analyze
1. Включайте только те поля, которые нужны для анализа
2. Примените фильтры, чтобы сосредоточиться на релевантных данных
3. Рассмотрите сортировку по полю, которое вы будете анализировать
### For Bulk Updates
### Для массовых обновлений
1. Export the records you want to update
2. Include the unique identifier (`email`, `domain`, or `id`)
3. Edit the exported file
4. Re-import to update records
See: [How to Update Existing Records](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import)
1. Экспортируйте записи, которые хотите обновить
2. Включайте уникальный идентификатор (`email`, `domain` или `id`)
3. Отредактируйте экспортированный файл
4. Импортируйте повторно, чтобы обновить записи
См.: [Как обновить существующие записи](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import)
### For Migration
### Для миграции
If you're exporting to migrate to another system:
Если вы экспортируете для миграции в другую систему:
1. **Export each object separately** — People, Companies, Opportunities, etc.
2. **Include ID fields** — these help maintain relationships
3. **Document field mappings** — note how Twenty fields map to your target system
1. **Экспортируйте каждый объект отдельно** — People, Companies, Opportunities и т. д.
2. **Включайте поля с ID** — они помогают сохранять связи
3. **Задокументируйте сопоставления полей** — отметьте, как поля Twenty соответствуют вашей целевой системе
## Handling Large Datasets (20,000+ Records)
## Обработка больших наборов данных (20 000+ записей)
The export limit is 20,000 records. For larger datasets:
Лимит экспорта — 20 000 записей. Для больших наборов данных:
### Option 1: Export in Batches
### Вариант 1: Экспорт партиями
1. Add a filter (e.g., "Created date" ranges)
2. Export the first batch
3. Change the filter
4. Export the next batch
5. Combine files in your spreadsheet
1. Добавьте фильтр (например, диапазоны "Created date")
2. Экспортируйте первую партию
3. Измените фильтр
4. Экспортируйте следующую партию
5. Объедините файлы в вашей таблице
**Example filters for batching:**
**Примеры фильтров для разбиения на партии:**
* By date range (January, February, March...)
* By owner (Team member A, Team member B...)
* By status (Active, Inactive...)
* По диапазону дат (январь, февраль, март...)
* По владельцу (участник команды A, участник команды B...)
* По статусу (Активен, Неактивен...)
### Option 2: Use the API
### Вариант 2: Используйте API
The API has no record limit:
В API нет ограничения по числу записей:
1. Get your API key from **Settings → Developers**
2. Use the GraphQL API to query records
3. Process results in your application
1. Получите ключ API в **Настройки → Разработчики**
2. Используйте GraphQL API для выборки записей
3. Обрабатывайте результаты в вашем приложении
See: [API Documentation](/l/ru/developers/extend/capabilities/apis)
См.: [Документация по API](/l/ru/developers/extend/capabilities/apis)
## Tips and Best Practices
## Советы и лучшие практики
### Create Export Views
### Создавайте представления для экспорта
Save views configured specifically for exports:
Сохраняйте представления, специально настроенные для экспорта:
1. Configure columns and filters
2. Click **View options** → **Save as new view**
3. Name it "Export - [Purpose]"
1. Настройте столбцы и фильтры
2. Нажмите **Параметры представления** → **Сохранить как новое представление**
3. Назовите его "Export - [Purpose]"
### Secure Your Exports
### Защитите экспортируемые данные
Exported files may contain sensitive data:
Экспортированные файлы могут содержать конфиденциальные данные:
* Store in secure locations
* Delete old exports when no longer needed
* Be careful sharing export files
* Храните в защищенных местах
* Удаляйте старые экспортированные файлы, когда они больше не нужны
* Будьте осторожны при обмене экспортированными файлами
### Check Before Exporting
### Проверьте перед экспортом
<Check>Correct columns are visible</Check>
<Check>Filters are set correctly (or removed for full export)</Check>
<Check>You have Export permission</Check>
<Check>Отображаются нужные столбцы</Check>
<Check>Фильтры настроены корректно (или отключены для полного экспорта)</Check>
<Check>У вас есть разрешение на экспорт</Check>
## FAQ
## Часто задаваемые вопросы
<AccordionGroup>
<Accordion title="Why are some columns missing from my export?">
Only visible columns are exported. Add the columns you need via **Options → Fields** before exporting.
<Accordion title="Почему в моем экспорте отсутствуют некоторые столбцы?">
Экспортируются только видимые столбцы. Перед экспортом добавьте нужные столбцы через **Параметры → Поля**.
</Accordion>
<Accordion title="Why doesn't my export have all records?">
Check your filters. The export only includes records matching your current view filters. Remove filters to export all records.
<Accordion title="Почему мой экспорт содержит не все записи?">
Проверьте ваши фильтры. Экспорт включает только записи, соответствующие фильтрам вашего текущего представления. Удалите фильтры, чтобы экспортировать все записи.
</Accordion>
<Accordion title="Can I export more than 20,000 records?">
Not in a single export. Use filters to export in batches, or use the API for larger datasets.
<Accordion title="Могу ли я экспортировать более 20 000 записей?">
Не одним экспортом. Используйте фильтры для экспорта партиями или используйте API для больших наборов данных.
</Accordion>
<Accordion title="What format is the export file?">
CSV (Comma Separated Values). Opens in Excel, Google Sheets, or any spreadsheet application.
<Accordion title="В каком формате файл экспорта?">
CSV (значения, разделенные запятыми). Открывается в Excel, Google Sheets или любом табличном приложении.
</Accordion>
<Accordion title="Are relation IDs included?">
Yes, but only on the "many" side of relationships. For example, a People export includes `companyId`, but a Companies export does not include people IDs.
<Accordion title="Включаются ли идентификаторы связей?">
Да, но только на стороне "many" в связях. Например, экспорт People включает `companyId`, а экспорт Companies не включает ID людей.
</Accordion>
<Accordion title="Can I automate exports?">
Not directly through the UI. Use the API to build automated export workflows.
<Accordion title="Могу ли я автоматизировать экспорт?">
Не напрямую через интерфейс. Используйте API, чтобы создать автоматизированные рабочие процессы экспорта.
</Accordion>
</AccordionGroup>
## Следующие шаги
* [How to Update Existing Records](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
* [How to Import Data via API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
* [API Documentation](/l/ru/developers/extend/capabilities/apis) — build custom export workflows
* [Как обновить существующие записи](/l/ru/user-guide/data-migration/how-tos/update-existing-records-via-import) — отредактируйте и импортируйте ваш экспорт повторно
* [Как импортировать данные через API](/l/ru/user-guide/data-migration/how-tos/import-data-via-api) — для больших наборов данных
* [Документация по API](/l/ru/developers/extend/capabilities/apis) — создавайте собственные рабочие процессы экспорта
@@ -1,90 +1,90 @@
---
title: Import Contacts via CSV
description: Complete step-by-step guide to importing people/contacts into Twenty.
title: Импорт контактов через CSV
description: Полное пошаговое руководство по импорту людей/контактов в Twenty.
---
## Обзор
This guide walks you through importing your contacts (People) into Twenty. **Import Companies first** if you want to link People to Companies.
Это руководство проведет вас через процесс импорта ваших контактов (People) в 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 email addresses in your file
В вашем файле нет повторяющихся адресов электронной почты
</Check>
<Check>
**Companies imported first** (if linking People to Companies)
**Компании импортированы первыми** (если вы связываете Людей с Компаниями)
</Check>
<Check>
All custom fields exist in **Settings → Data Model**
Все пользовательские поля созданы в **Настройки → Модель данных**
</Check>
<Warning>
**Import Companies Before People**
**Импортируйте Компании перед импортом Людей**
If you want to link People to Companies, import Companies first. The Company must exist before you can reference it.
Если вы хотите связать Людей с Компаниями, сначала импортируйте Компании. Компания должна существовать до того, как вы сможете на неё сослаться.
</Warning>
## Step 1: Prepare Your Contact Data
## Шаг 1: Подготовьте данные контактов
### Required and Recommended Fields
### Обязательные и рекомендуемые поля
| Поле | Required? | Формат | Заметки |
| --------------------- | ----------- | ----------------- | ------------------------- |
| **Электронная почта** | Recommended | `name@domain.com` | Must be unique |
| **First Name** | Recommended | Текст | |
| **Last Name** | Recommended | Текст | |
| **Company** | Optional | Domain or ID | Links to existing Company |
| **Phone** | Optional | Multiple columns | See below |
| **Job Title** | Optional | Текст | |
| **Custom fields** | Optional | Varies | Must exist in Data Model |
| Поле | Обязательно? | Формат | Заметки |
| ------------------------- | ------------- | ------------------ | ----------------------------------- |
| **Электронная почта** | Рекомендуется | `name@domain.com` | Должен быть уникальным |
| **Имя** | Рекомендуется | Текст | |
| **Фамилия** | Рекомендуется | Текст | |
| **Компания** | Необязательно | Домен или ID | Связывает с существующей Компанией |
| **Телефон** | Необязательно | Несколько столбцов | См. ниже |
| **Должность** | Необязательно | Текст | |
| **Пользовательские поля** | Необязательно | Различается | Должны существовать в модели данных |
### Email Format
### Формат электронной почты
* Must be valid email format: `name@domain.com`
* **Must be unique** — no duplicates in your file or in Twenty
* For additional emails, use the **Emails / Additional Emails** column:
* Должен быть корректный формат электронной почты: `name@domain.com`
* **Должен быть уникальным** — без дубликатов в вашем файле или в Twenty
* Для дополнительных адресов используйте столбец **Emails / Additional Emails**:
```
["jane@twenty.com","jane.doe@twenty.com"]
```
### Phone Format
### Формат телефона
Phone is a **nested field** requiring multiple columns:
Телефон — это **вложенное поле**, требующее нескольких столбцов:
| Column | Пример |
| Столбец | Пример |
| --------------------------------------- | ------------ |
| **Phones / Primary Phone Number** | `4159095555` |
| **Phones / Primary Phone Country Code** | `US` |
| **Phones / Primary Phone Calling Code** | `+1` |
### Linking to Companies
### Связывание с компаниями
Add a column with the Company's unique identifier:
Добавьте столбец с уникальным идентификатором компании:
| Column Name | Формат | Пример |
| --------------- | ---------- | -------------------------------------- |
| `companyDomain` | URL format | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
| Название столбца | Формат | Пример |
| ---------------- | ---------- | -------------------------------------- |
| `companyDomain` | Формат URL | `https://acme.com` |
| `companyId` | UUID | `c776ee49-f608-4a77-8cc8-6fe96ae1e43f` |
<Note>
**Use Domain URL format** (`https://acme.com`), not the label. This matches how Companies are stored in Twenty.
**Используйте формат URL домена** (`https://acme.com`), а не метку. Это соответствует тому, как Компании хранятся в Twenty.
</Note>
### Sample CSV Structure
### Пример структуры CSV
```csv
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
@@ -93,56 +93,56 @@ Jane,Doe,jane@widgets.co,CTO,https://widgets.co,2125551234,US
```
<Note>
**Pro tip:** Click **Download sample file** during import or export a few existing People to see the exact column names Twenty expects.
**Совет профессионала:** Нажмите **Download sample file** во время импорта или экспортируйте несколько существующих Людей, чтобы увидеть точные названия столбцов, которые ожидает Twenty.
</Note>
## Step 2: Access the Import Feature
## Шаг 2: Откройте функцию импорта
**Option 1: From the People View**
**Вариант 1: Из представления Люди**
1. Navigate to **People** 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 **People**
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
### Важные правила сопоставления
| Column Type | Map To | Заметки |
| ----------------- | ------------------------------ | ---------------------------------- |
| Company reference | **Company** relation field | Use domain OR id, not both |
| Электронная почта | **Электронная почта** | Primary email address |
| Additional emails | **Emails / Additional Emails** | Array format |
| Телефон | Separate columns | Number, Country Code, Calling Code |
| Тип столбца | Сопоставить с | Заметки |
| --------------------------------------- | ------------------------------ | --------------------------------- |
| Ссылка на Компанию | Поле связи **Компания** | Используйте домен ИЛИ id, не оба |
| Электронная почта | **Электронная почта** | Основной адрес электронной почты |
| Дополнительные адреса электронной почты | **Emails / Additional Emails** | Формат массива |
| Телефон | Отдельные столбцы | Номер, код страны, телефонный код |
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
### Mapping the Company Relation
### Сопоставление связи с Компанией
When mapping the company column:
При сопоставлении столбца компании:
1. Find your company reference column (e.g., `companyDomain`)
2. Map it to the **Company** relation field
3. Twenty will link each Person to the matching Company
1. Найдите столбец ссылки на компанию (например, `companyDomain`)
2. Сопоставьте его с полем связи **Компания**
3. Twenty свяжет каждого человека с соответствующей Компанией
<Warning>
**Map only ONE unique identifier for relations.**
@@ -1,13 +1,13 @@
---
title: Что такое Twenty
description: Twenty is an open-source CRM that gives you the building blocks to create exactly what your business needs.
description: Twenty — это CRM с открытым исходным кодом, которая предоставляет вам строительные блоки, чтобы создать именно то, что нужно вашему бизнесу.
---
## Видение
Creating a good CRM is hard because it's a balancing act.
Создать хорошую CRM сложно, потому что это вопрос баланса.
Для каждого бизнеса требования кажутся простыми, но у всех потребности разные.
The result is a CRM that's either too basic, or one that's attempting to be a jack-of-all-trades but ending up as a master of none.
В итоге получается либо слишком простая CRM, либо та, что пытается быть «мастером на все руки», но в итоге не преуспевает ни в чем.
Сначала Twenty выглядит как большинство известных вам CRM: вы можете отслеживать сделки, организовывать контакты, управлять задачами и заметками.
**Но что отличает его, так это наш подход к расширяемости. Мы создаем открытую платформу, которая предоставляет строительные блоки для решения уникальных бизнес-задач.**
@@ -26,16 +26,16 @@ The result is a CRM that's either too basic, or one that's attempting to be a ja
## Основные функции
* **Calendar & Emails:** Sync your mailbox and calendar to see all communications on your CRM records. [Узнать больше](/l/ru/user-guide/calendar-emails/overview).
* **Data Model:** Create custom objects and fields to match your unique business processes. [Explore](/l/ru/user-guide/data-model/overview).
* **Data Migration:** Import and export your data via CSV or API. [Начните](/l/ru/user-guide/data-migration/overview).
* **Views & Pipelines:** Organize your data with table views, kanban boards, and sales pipelines. [Discover](/l/ru/user-guide/views-pipelines/overview).
* **Workflows:** Automate your business processes and integrate with external tools. [Build automations](/l/ru/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/ru/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/ru/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/ru/user-guide/permissions-access/overview).
* **Notes & Tasks:** Create notes and tasks linked to your records for better collaboration.
* **API & Webhooks:** Connect to other apps and build custom integrations. [Начать интеграцию](/l/ru/developers/extend/capabilities/apis).
* **Календарь и электронная почта:** Синхронизируйте свой почтовый ящик и календарь, чтобы видеть все коммуникации в записях CRM. [Узнать больше](/l/ru/user-guide/calendar-emails/overview).
* **Модель данных:** Создавайте пользовательские объекты и поля, соответствующие вашим уникальным бизнес-процессам. [Подробнее](/l/ru/user-guide/data-model/overview).
* **Миграция данных:** Импортируйте и экспортируйте свои данные в CSV или через API. [Начните](/l/ru/user-guide/data-migration/overview).
* **Представления и воронки:** Организуйте данные с помощью табличных представлений, досок канбан и воронок продаж. [Подробнее](/l/ru/user-guide/views-pipelines/overview).
* **Рабочие процессы:** Автоматизируйте свои бизнес-процессы и интегрируйтесь с внешними инструментами. [Создать автоматизации](/l/ru/user-guide/workflows/overview).
* **ИИ:** Расширьте возможности вашей CRM с помощью функций и агентов на базе ИИ. [Подробнее об ИИ](/l/ru/user-guide/ai/overview).
* **Панели управления:** Отслеживайте производительность с помощью индивидуальных отчетов и визуализаций. [Посмотреть панели управления](/l/ru/user-guide/dashboards/overview).
* **Права и доступ:** Управляйте тем, кто может просматривать, редактировать и управлять вашими данными, с помощью ролевых прав доступа. [Настроить доступ](/l/ru/user-guide/permissions-access/overview).
* **Заметки и задачи:** Создавайте заметки и задачи, связанные с вашими записями, для более эффективной совместной работы.
* **API и Вебхуки:** Подключайтесь к другим приложениям и создавайте индивидуальные интеграции. [Начать интеграцию](/l/ru/developers/extend/capabilities/apis).
## Присоединяйтесь сейчас
@@ -3,44 +3,44 @@ title: Календарное представление
description: Отображайте записи с полями даты в календаре.
---
## About Calendar View
## О календарном представлении
Calendar view displays your records on a calendar based on a date field. Each record appears as an event on the corresponding date.
Календарное представление отображает ваши записи в календаре на основе поля даты. Каждая запись отображается как событие в соответствующую дату.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Creating a Calendar View
## Создание календарного представления
1. Navigate to an object with date fields
2. Click the view dropdown → **+ Add view**
3. Name your view and click **Create**
4. Open the **Options** on the right
5. Select **Calendar** as the layout
6. Choose the **date field** to use for positioning records
7. Click **Update view**
1. Перейдите к объекту с полями даты
2. Откройте выпадающее меню представления → **+ Добавить представление**
3. Назовите представление и нажмите **Создать**
4. Откройте **Параметры** справа
5. Выберите **Календарь** в качестве макета
6. Выберите **поле даты**, которое будет использоваться для размещения записей
7. Нажмите **Обновить представление**
## Configuring the Calendar
## Настройка календаря
### Choose the Date Field
### Выберите поле даты
Under **Options**, select which date field determines where records appear on the calendar.
В разделе **Параметры** выберите, какое поле даты определяет, где записи отображаются в календаре.
### Display Fields
### Отображаемые поля
Configure which fields show on each calendar event:
Настройте, какие поля отображаются в каждом событии календаря:
1. Click **Options → Fields**
2. Toggle fields on/off
3. Drag to reorder
1. Нажмите **Параметры → Поля**
2. Включайте и отключайте поля
3. Перетащите, чтобы изменить порядок
## Use Cases
## Сценарии использования
* **Meetings and calls**: View upcoming appointments
* **Deadlines**: Track due dates and close dates
* **Events**: Plan and visualize scheduled activities
* **Follow-ups**: See when tasks are due
* **Встречи и звонки**: просматривайте предстоящие встречи
* **Сроки**: отслеживайте даты выполнения и закрытия
* **События**: планируйте и визуализируйте запланированные активности
* **Последующие действия**: смотрите, когда наступает срок выполнения задач
## Related
## Связанные материалы
* [Views Overview](/l/ru/user-guide/views-pipelines/overview) — creating and managing views
* [Filters and Sorting](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtering calendar data
* [Обзор представлений](/l/ru/user-guide/views-pipelines/overview) — создание и управление представлениями
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — фильтрация данных календаря
@@ -1,51 +1,51 @@
---
title: Create a Table View with Grouping
description: Organize your records into collapsible groups by field value.
title: Создание табличного представления с группировкой
description: Организуйте записи в сворачиваемые группы по значению поля.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Group your table view by a Select field to organize records into collapsible sections.
Сгруппируйте табличное представление по полю Select, чтобы организовать записи в сворачиваемые разделы.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Steps
## Шаги
1. Navigate to the object (People, Companies, etc.)
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Companies by Type")
4. Click **Create**
5. Click **Options → Group**
6. Choose a Select field to group by
1. Перейдите к объекту (Люди, Компании и т. д.)
2. Откройте выпадающее меню представления → **+ Добавить представление**
3. Назовите представление (например, "Компании по типу")
4. Нажмите **Создать**
5. Нажмите **Параметры → Группировка**
6. Выберите поле Select для группировки
7. Нажмите **Сохранить**
## Configure Group Order
## Настройка порядка групп
Under **Options → Group → Sort**, choose how groups are ordered:
В **Параметры → Группировка → Сортировка** выберите порядок групп:
| Вариант | Описание |
| ------------------------ | --------------------------------------------- |
| **Alphabetical** | A to Z |
| **Reverse alphabetical** | Z to A |
| **Manual order** | Drag groups to reorder under "Visible groups" |
| Вариант | Описание |
| --------------------------------- | --------------------------------------------------------------------- |
| **По алфавиту** | От A до Z |
| **В обратном алфавитном порядке** | От Z до A |
| **Ручной порядок** | Перетащите группы, чтобы изменить порядок, в разделе "Видимые группы" |
Click the **eye icon** next to a group to hide it from the view.
Нажмите **значок глаза** рядом с группой, чтобы скрыть её в представлении.
<Note>
**For best performance, limit to 10-15 visible groups.** If you need more, consider using a Dashboard instead.
**Для лучшей производительности ограничьте количество видимых групп до 1015.** Если нужно больше, рассмотрите возможность использования вместо этого панели мониторинга.
</Note>
## Example: Companies by Industry
## Пример: Компании по отрасли
1. Go to **Companies**
2. Create a new view named "By Industry"
3. Click **Options → Group**
4. Select the **Industry** field
1. Перейдите в **Компании**
2. Создайте новое представление с названием "По отрасли"
3. Нажмите **Параметры → Группировка**
4. Выберите поле **Отрасль**
5. Сохранить
Now your companies are organized by industry, making it easy to focus on one segment at a time.
Теперь ваши компании организованы по отраслям, что позволяет легко сосредоточиться на одном сегменте.
## Related
## Связанные материалы
* [Table Views](/l/ru/user-guide/views-pipelines/capabilities/table-views) — all table view features
* [Filters and Sorting](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — combine grouping with filters
* [Табличные представления](/l/ru/user-guide/views-pipelines/capabilities/table-views) — все возможности табличных представлений
* [Фильтры и сортировка](/l/ru/user-guide/views-pipelines/capabilities/filters-and-sorting) — сочетайте группировку с фильтрами
@@ -1,24 +1,24 @@
---
title: Handle Arrays in Code Actions
description: Learn how to properly handle array inputs in workflow Code actions.
title: Работа с массивами в действиях Code
description: Узнайте, как правильно обрабатывать входные массивы в действиях Code в рабочих процессах.
---
When working with arrays in Code actions, you may encounter two common challenges:
При работе с массивами в действиях Code вы можете столкнуться с двумя распространёнными проблемами:
1. **Arrays passed as strings** — data from external systems or previous steps arrives as a string instead of an actual array
2. **Can't select individual items** — you can only select the entire array, not specific fields within it
1. **Массивы, передаваемые как строки** — данные из внешних систем или предыдущих шагов приходят строкой, а не как настоящий массив
2. **Невозможно выбрать отдельные элементы** — можно выбрать только весь массив, а не конкретные поля внутри него
Both can be solved with a Code node.
Обе проблемы решаются с помощью узла Code.
## Parsing Arrays from Strings
## Разбор массивов из строк
Arrays are often passed between workflow steps as strings or JSON rather than native arrays. This happens when:
Массивы часто передаются между шагами рабочего процесса как строки или JSON, а не как нативные массивы. Это происходит, когда:
* Receiving data from external APIs via HTTP Request
* Processing webhook payloads
* Passing data between workflow steps
* Получение данных из внешних API через HTTP Request
* Обработка полезной нагрузки вебхуков
* Передача данных между шагами рабочего процесса
**Solution**: Add this pattern at the start of your Code action:
**Решение**: Добавьте этот шаблон в начало вашего действия Code:
```javascript
export const main = async (params: {
@@ -39,13 +39,13 @@ export const main = async (params: {
};
```
The key line `typeof users === "string" ? JSON.parse(users) : users` checks if the input is a string, parses it if needed, or uses it directly if it's already an array.
Ключевая строка `typeof users === "string" ? JSON.parse(users) : users` проверяет, является ли входное значение строкой, парсит его при необходимости или использует напрямую, если это уже массив.
## Extracting Individual Fields from Arrays
## Извлечение отдельных полей из массивов
A webhook might return an array like `answers: [...]`, but in subsequent workflow steps you can only select the **entire array** — not individual items within it.
Вебхук может вернуть массив вида `answers: [...]`, но на последующих шагах рабочего процесса вы сможете выбрать только **весь массив** — не отдельные элементы внутри него.
**Solution**: Add a Code node to extract specific fields and return them as a structured object:
**Решение**: Добавьте узел Code, чтобы извлечь нужные поля и вернуть их в виде структурированного объекта:
```javascript
export const main = async (params: {
@@ -71,12 +71,12 @@ export const main = async (params: {
};
```
The Code node returns a structured object instead of an array. In subsequent steps, you can now select individual fields like `answer.firstname` and `answer.name` from the variable picker.
Узел Code возвращает структурированный объект вместо массива. На последующих шагах теперь можно выбирать отдельные поля, такие как `answer.firstname` и `answer.name`, в селекторе переменных.
<Note>
We're actively working on making array handling easier in future updates.
Мы активно работаем над упрощением работы с массивами в будущих обновлениях.
</Note>
<Tip>
Click the square icon at the top right of the code editor to display it in full screen — helpful since the default editor width is limited.
Нажмите квадратный значок в правом верхнем углу редактора кода, чтобы отобразить его на весь экран — это полезно, поскольку ширина редактора по умолчанию ограничена.
</Tip>
@@ -1,52 +1,52 @@
---
title: Generate a Quote or Invoice from Twenty
description: Automatically create invoices in external tools when deals close.
title: Создайте коммерческое предложение или счёт из Twenty
description: Автоматически создавайте счёта во внешних инструментах при закрытии сделок.
---
Automatically send deal data to your invoicing system (Stripe, QuickBooks, Xero, etc.) when an opportunity is won.
Автоматически отправляйте данные по сделке в вашу систему выставления счетов (Stripe, QuickBooks, Xero и т. д.). когда сделка выиграна.
## Workflow Structure
## Структура рабочего процесса
1. **Trigger**: Record is Updated (Opportunity)
2. **Filter**: Stage = Closed Won
3. **Search Record**: Get Company details
4. **Code** (optional): Format payload
5. **HTTP Request**: Send to invoicing system
1. **Триггер**: Запись обновлена (объект 'Сделка')
2. **Фильтр**: Этап = Закрыто — выиграно
3. **Поиск записи**: Получить сведения о компании
4. **Код** (необязательно): Сформатировать полезную нагрузку
5. **HTTP-запрос**: Отправить в систему выставления счетов
## Step 1: Set Up the Trigger
## Шаг 1: Настройте триггер
1. Create a new workflow
2. Select **Record is Updated** trigger
3. Choose **Opportunity** as the object
1. Создайте новый рабочий процесс
2. Выберите триггер **Запись обновлена**
3. Выберите **Сделка** в качестве объекта
## Step 2: Filter for Closed Won
## Шаг 2: Отфильтруйте по «Закрыто — выиграно»
Add a **Filter** action to only continue when the deal is won:
| Настройка | Значение |
| ------------- | --------------------------------- |
| **Field** | Этап |
| **Condition** | Equals |
| **Value** | `CLOSED_WON` (or your stage name) |
<Tip>
The trigger fires on any Opportunity update. The Filter ensures the workflow only continues when the stage changes to Closed Won.
</Tip>
## Step 3: Get Company Details
The Opportunity record may not include all Company fields you need for the invoice. Add a **Search Record** action:
Добавьте действие **Фильтр**, чтобы продолжать только когда сделка выиграна:
| Настройка | Значение |
| ------------ | ---------------------------------------- |
| **Object** | Компания |
| **Match by** | ID equals `{{trigger.object.companyId}}` |
| **Поле** | Этап |
| **Условие** | Равно |
| **Значение** | `CLOSED_WON` (или название вашего этапа) |
This retrieves the full Company record with billing address, tax ID, etc.
<Tip>
Триггер срабатывает при любом обновлении Сделки. Фильтр гарантирует, что рабочий процесс продолжится только когда этап изменится на «Закрыто — выиграно».
</Tip>
## Step 4: Format the Payload (Optional)
## Шаг 3: Получите сведения о компании
If your invoicing system expects a specific format, add a **Code** action:
Запись Сделки может не содержать всех полей Компании, которые нужны для счёта. Добавьте действие **Поиск записи**:
| Настройка | Значение |
| -------------------- | --------------------------------------- |
| **Объект** | Компания |
| **Сопоставление по** | ID равен `{{trigger.object.companyId}}` |
Это вернёт полную запись Компании с платёжным адресом, налоговым идентификатором и т. д.
## Шаг 4: Сформатируйте полезную нагрузку (необязательно)
Если ваша система выставления счетов ожидает определённый формат, добавьте действие **Код**:
```javascript
export const main = async (params: {
@@ -84,18 +84,18 @@ export const main = async (params: {
};
```
## Step 5: Send to Invoicing System
## Шаг 5: Отправьте в систему выставления счетов
Add an **HTTP Request** action:
Добавьте действие **HTTP-запрос**:
| Настройка | Значение |
| ----------- | ----------------------------------------- |
| **Method** | POST |
| **URL** | Your invoicing API endpoint |
| **Headers** | `Authorization: Bearer YOUR_API_KEY` |
| **Body** | `{{code.invoice}}` or map fields directly |
| Настройка | Значение |
| -------------- | --------------------------------------------------- |
| **Метод** | POST |
| **URL-адрес** | Конечная точка API вашей системы выставления счетов |
| **Заголовки** | `Authorization: Bearer YOUR_API_KEY` |
| **Содержимое** | `{{code.invoice}}` или сопоставьте поля напрямую |
### Example: Stripe Invoice
### Пример: счёт Stripe
```
POST https://api.stripe.com/v1/invoices
@@ -109,7 +109,7 @@ Body:
days_until_due: 30
```
### Example: QuickBooks Invoice
### Пример: счёт QuickBooks
```
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice
@@ -120,24 +120,24 @@ Headers:
Body: {{code.invoice}}
```
## Complete Workflow Summary
## Итоговая сводка рабочего процесса
| Step | Действие | Purpose |
| ---- | ----------------------- | ------------------------------------ |
| 1 | Trigger: Record Updated | Fires when any Opportunity changes |
| 2 | Фильтр | Only proceed if Stage = Closed Won |
| 3 | Search Record | Get full Company details for billing |
| 4 | Код | Format data for invoicing API |
| 5 | HTTP-запрос | Create invoice in external system |
| Шаг | Действие | Назначение |
| --- | ------------------------- | --------------------------------------------------------- |
| 1 | Триггер: запись обновлена | Срабатывает при любых изменениях в Сделке |
| 2 | Фильтр | Продолжать только если Этап = Закрыто — выиграно |
| 3 | Поиск записи | Получить полные сведения о компании для выставления счёта |
| 4 | Код | Сформатировать данные для API выставления счетов |
| 5 | HTTP-запрос | Создать счёт во внешней системе |
## Tips
## Советы
* **Store external IDs**: Save the invoice ID returned by the API back to the Opportunity using an **Update Record** action
* **Error handling**: Add a branch to send a notification if the HTTP request fails
* **Test first**: Use your invoicing system's sandbox/test mode before going live
* **Сохраняйте внешние ID**: Сохраните идентификатор счёта, возвращённый API, обратно в Сделку с помощью действия **Обновить запись**
* **Обработка ошибок**: Добавьте ветку, чтобы отправлять уведомление, если HTTP-запрос завершится ошибкой
* **Сначала протестируйте**: Используйте песочницу/тестовый режим вашей системы выставления счетов перед запуском в рабочую среду
## Related
## Связанные материалы
* [Workflow Triggers](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [Closed Won 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)
* [Автоматизации «Закрыто — выиграно»](/l/ru/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
@@ -1,44 +1,44 @@
---
title: Set Up a Webhook Trigger
description: Receive data from external services to trigger workflows.
title: Настройка триггера вебхука
description: Получайте данные из внешних сервисов, чтобы запускать рабочие процессы.
image: /images/user-guide/workflows/workflow.png
---
Webhook triggers allow external services to start your workflows by sending data to a unique URL. Use them to connect forms, third-party apps, and custom integrations.
Триггеры вебхуков позволяют внешним сервисам запускать ваши рабочие процессы, отправляя данные на уникальный URL. Используйте их для подключения форм, сторонних приложений и пользовательских интеграций.
## When to Use Webhooks
## Когда использовать вебхуки
| Use Case | Пример |
| ----------------------- | --------------------------------------- |
| **Web forms** | Contact form submissions create leads |
| **Third-party apps** | Stripe payment → create customer record |
| **Custom integrations** | Your app → Twenty automation |
| **No-code tools** | Zapier, Make, n8n connections |
| Сценарий использования | Пример |
| ------------------------------- | ------------------------------------------ |
| **Веб-формы** | Отправки формы обратной связи создают лиды |
| **Сторонние приложения** | Платеж в Stripe → создать запись клиента |
| **Пользовательские интеграции** | Ваше приложение → автоматизация Twenty |
| **Инструменты без кода** | Подключения Zapier, Make, n8n |
## Step-by-Step Setup
## Пошаговая настройка
### Step 1: Create the Workflow
### Шаг 1: Создайте рабочий процесс
1. Go to **Settings → Workflows**
2. Click **+ New Workflow**
3. Name it (e.g., "Website Form Submission")
1. Перейдите в **Настройки → Рабочие процессы**
2. Нажмите **+ Новый рабочий процесс**
3. Дайте ему имя (например, "Отправка формы на сайте")
### Step 2: Configure the Webhook Trigger
### Шаг 2: Настройте триггер вебхука
1. Click on the trigger block
2. Select **Webhook**
3. You'll receive a unique webhook URL like:
1. Нажмите на блок триггера
2. Выберите **Вебхук**
3. Вы получите уникальный URL вебхука, например:
```
https://api.twenty.com/webhooks/workflow/abc123...
```
4. Copy this URL—you'll need it for your external service
4. Скопируйте этот URL — он понадобится вашему внешнему сервису
### Step 3: Define Expected Data Structure
### Шаг 3: Определите ожидаемую структуру данных
For **POST** requests, define the expected body structure:
Для **POST**-запросов определите ожидаемую структуру тела:
1. Click **Define expected body**
2. Enter a sample JSON that matches what your service will send:
1. Нажмите **Определить ожидаемое тело**
2. Введите пример JSON, который ваш сервис будет отправлять:
```json
{
@@ -50,30 +50,30 @@ For **POST** requests, define the expected body structure:
}
```
3. Click **Save**—this creates variables you can use in subsequent steps
3. Нажмите **Сохранить** — это создаст переменные, которые можно использовать на следующих шагах
### Step 4: Add Actions
### Шаг 4: Добавьте действия
Now add actions that use the webhook data:
Теперь добавьте действия, которые используют данные вебхука:
**Example: Create a Person record**
**Пример: Создать запись Person**
1. Add **Create Record** action
2. Select **People** object
3. Map fields:
1. Добавьте действие **Создать запись**
2. Выберите объект **People**
3. Сопоставьте поля:
| Поле | Значение |
| ----------------- | ---------------------------------------------------- |
| Имя | `{{trigger.body.firstName}}` |
| Фамилия | `{{trigger.body.lastName}}` |
| Электронная почта | `{{trigger.body.email}}` |
| Компания | Search or create based on `{{trigger.body.company}}` |
| Поле | Значение |
| ----------------- | --------------------------------------------------------- |
| Имя | `{{trigger.body.firstName}}` |
| Фамилия | `{{trigger.body.lastName}}` |
| Электронная почта | `{{trigger.body.email}}` |
| Компания | Найдите или создайте на основе `{{trigger.body.company}}` |
### Step 5: Test the Webhook
### Шаг 5: Протестируйте вебхук
Before activating, test your webhook:
Перед активацией протестируйте вебхук:
**Using cURL**:
**С помощью cURL**:
```bash
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
@@ -81,22 +81,22 @@ curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
-d '{"firstName":"Test","lastName":"User","email":"test@example.com"}'
```
**Using Postman or similar**:
**С помощью Postman или аналогов**:
1. Create a POST request to your webhook URL
2. Set Content-Type header to `application/json`
3. Add your test JSON body
4. Send and check workflow runs
1. Создайте POST-запрос на URL вашего вебхука
2. Установите заголовок Content-Type в `application/json`
3. Добавьте тестовое тело JSON
4. Отправьте и проверьте запуски рабочего процесса
### Step 6: Activate
### Шаг 6: Активируйте
Once tested, click **Activate** to make the workflow live.
После тестирования нажмите **Активировать**, чтобы сделать рабочий процесс активным.
## Handling Different Data Structures
## Обработка разных структур данных
### Nested Data
### Вложенные данные
If your webhook sends nested data:
Если ваш вебхук отправляет вложенные данные:
```json
{
@@ -108,11 +108,11 @@ If your webhook sends nested data:
}
```
Reference with: `{{trigger.body.contact.email}}`
Обращайтесь так: `{{trigger.body.contact.email}}`
### Arrays
### Массивы
If data includes arrays:
Если данные включают массивы:
```json
{
@@ -123,11 +123,11 @@ If data includes arrays:
}
```
How you handle arrays depends on your use case:
То, как обрабатывать массивы, зависит от сценария использования:
**Unknown number of items → Use Iterator**
**Неизвестное количество элементов → Используйте Iterator**
If you need to process each item in the array (e.g., create a record for each), add a **Code** action to parse the array, then use **Iterator**:
Если нужно обработать каждый элемент массива (например, создать запись для каждого), добавьте действие **Code** для разбора массива, затем используйте **Iterator**:
```javascript
export const main = async (params: { items: any }) => {
@@ -138,11 +138,11 @@ export const main = async (params: { items: any }) => {
};
```
Then use Iterator to loop through: `{{code.items}}`
Затем используйте Iterator для перебора: `{{code.items}}`
**Known/specific fields → Extract to named fields**
**Известные/конкретные поля → Извлеките в именованные поля**
If the array contains specific fields you want to access individually (e.g., form answers where position 0 is always "first name", position 1 is always "last name"), add a **Code** action to extract them:
Если массив содержит конкретные поля, к которым нужно обращаться по отдельности (например, ответы формы, где позиция 0 — всегда "имя", позиция 1 — всегда "фамилия"), добавьте действие **Code** для их извлечения:
```javascript
export const main = async (params: { items: any }) => {
@@ -159,13 +159,13 @@ export const main = async (params: { items: any }) => {
};
```
Now you can select `product.name` and `product.qty` individually in subsequent steps.
Теперь вы можете выбирать `product.name` и `product.qty` по отдельности на следующих шагах.
<Tip>
For more details on handling arrays, see [Handle Arrays in Code Actions](/l/ru/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
Для получения подробностей об обработке массивов см. [Обработка массивов в действиях Code](/l/ru/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
</Tip>
## Related
## Связанные материалы
* [Workflow Triggers](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/ru/user-guide/workflows/capabilities/workflow-actions)
* [Триггеры рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-triggers)
* [Действия рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-actions)
@@ -1,48 +1,48 @@
---
title: Workflows FAQ
description: Frequently asked questions about workflows in Twenty.
title: Часто задаваемые вопросы о рабочих процессах
description: Часто задаваемые вопросы о рабочих процессах в Twenty.
---
<AccordionGroup>
<Accordion title="Why can't I activate a workflow?">
This is likely a permissions issue. You need access to workflows to create and activate them.
<Accordion title="Почему я не могу активировать рабочий процесс?">
Скорее всего, это проблема с правами доступа. Вам нужен доступ к рабочим процессам, чтобы создавать и активировать их.
**Solution**: Contact your workspace administrator to grant you workflow access under **Settings → Roles**.
**Решение**: Свяжитесь с администратором рабочего пространства, чтобы он предоставил вам доступ к рабочим процессам в **Настройки → Роли**.
If you don't see the Workflows section at all in your sidebar, this confirms it's a permissions issue.
Если вы совсем не видите раздел "Рабочие процессы" в боковой панели, это подтверждает, что проблема в правах доступа.
</Accordion>
<Accordion title="Why don't I see my manual workflow button in the top navbar?">
Manual workflows only appear in the navbar if properly configured:
<Accordion title="Почему я не вижу кнопку ручного рабочего процесса в верхней панели навигации?">
Ручные рабочие процессы отображаются в панели навигации только при правильной настройке:
1. The workflow must be **activated** (not in draft mode)
2. The navbar placement must be set to **Pinned**
3. For Single/Bulk triggers, you must be on the correct object page
1. Рабочий процесс должен быть **активирован** (не в режиме черновика)
2. Размещение в панели навигации должно быть установлено в значение **Pinned**
3. Для триггеров Single/Bulk вы должны находиться на правильной странице объекта
**To check**: Open the workflow → click the trigger → verify "Navbar placement" is set to "Pinned".
**Как проверить**: Откройте рабочий процесс → нажмите на триггер → убедитесь, что "Navbar placement" установлено в значение "Pinned".
You can always access manual workflows via **Cmd + K** (or **Ctrl + K**) regardless of navbar settings.
Вы всегда можете получить доступ к ручным рабочим процессам через **Cmd + K** (или **Ctrl + K**) независимо от настроек панели навигации.
</Accordion>
<Accordion title="What's the difference between Single, Global, and Bulk manual triggers?">
| Тип | Records Required | Запуски рабочего процесса |
<Accordion title="В чем разница между ручными триггерами Single, Global и Bulk?">
| Тип | Требуемые записи | Запуски рабочего процесса |
| --- | ---------------- | ------------------------- |
\| **Global** | None | Once, no record input |
\| **Single** | One or more selected | Once per selected record |
\| **Bulk** | One or more selected | Once, with all records as array |
\| **Global** | Нет | Один раз, без входной записи |
\| **Single** | Одна или несколько выбранных | По одному разу для каждой выбранной записи |
\| **Bulk** | Одна или несколько выбранных | Один раз, со всеми записями в виде массива |
* **Global**: Use when the workflow doesn't need any record context (e.g., generate a report)
* **Single**: Use when you want to process each selected record independently (e.g., send individual emails)
* **Bulk**: Use when you need to process records together or optimize credit usage (requires Iterator action)
* **Global**: Используйте, когда рабочему процессу не нужен контекст записи (например, для создания отчета)
* **Single**: Используйте, когда нужно обрабатывать каждую выбранную запись независимо (например, отправлять отдельные письма)
* **Bulk**: Используйте, когда нужно обрабатывать записи вместе или оптимизировать использование кредитов (требуется действие Iterator)
See [Workflow Triggers](/l/ru/user-guide/workflows/capabilities/workflow-triggers) for details.
См. [Триггеры рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-triggers) для подробностей.
</Accordion>
<Accordion title="I don't see an If/Else node. Что мне делать?">
An explicit If/Else node is not yet available but is on our roadmap.
<Accordion title="Я не вижу узла If/Else. Что мне делать?">
Явный узел If/Else пока недоступен, но находится в нашем плане развития.
**Current workaround**: Create multiple branches from your step, each starting with a **Filter** action:
**Текущее решение**: Создайте несколько веток от вашего шага, каждая начинается с действия **Filter**:
```
Step 1
@@ -52,203 +52,203 @@ description: Frequently asked questions about workflows in Twenty.
└── Branch B: Filter (condition = false) → Actions...
```
Only the branch where the filter condition passes will execute its subsequent actions.
Только ветка, в которой условие фильтра выполняется, будет выполнять последующие действия.
See [How to Use Branches](/l/ru/user-guide/workflows/capabilities/workflow-branches) for a step-by-step guide.
См. пошаговое руководство [Как использовать ветки](/l/ru/user-guide/workflows/capabilities/workflow-branches).
</Accordion>
<Accordion title="Are workflow branches running in parallel?">
**Yes**, branches run in parallel by default.
<Accordion title="Ветки рабочего процесса выполняются параллельно?">
**Да**, ветки по умолчанию выполняются параллельно.
If you want only one branch to execute:
Если вы хотите, чтобы выполнялась только одна ветка:
* Add a **Filter** action at the start of each branch
* Set opposite conditions (e.g., Branch A: status = "Open", Branch B: status ≠ "Open")
* Добавьте действие **Filter** в начало каждой ветки
* Задайте противоположные условия (например, Ветка A: status = "Open", Ветка B: status ≠ "Open")
Branches that fail their filter condition stop executing, while others continue.
Ветки, не прошедшие свое условие фильтра, прекращают выполнение, остальные продолжают.
</Accordion>
<Accordion title="Can I merge branches back together?">
**Yes**. After your parallel branches complete, you can add a step that both branches connect to.
<Accordion title="Можно ли объединить ветки обратно?">
**Да**. После завершения параллельных веток вы можете добавить шаг, к которому будут подключены обе ветки.
In the workflow editor:
В редакторе рабочего процесса:
1. Complete your branched actions
2. Add a new step after the branches
3. Drag connections from the end of each branch to this new step
1. Завершите действия в ветках
2. Добавьте новый шаг после веток
3. Перетащите соединения с конца каждой ветки к этому новому шагу
The merged step will execute after all connected branches complete.
Объединенный шаг выполнится после завершения всех подключенных веток.
</Accordion>
<Accordion title="What's the limit on Search Records results?">
**Search Records returns a maximum of 200 records.**
<Accordion title="Каково ограничение на результаты Search Records?">
**Search Records возвращает максимум 200 записей.**
If you need to process more:
Если нужно обработать больше:
* Add more specific filters to reduce results
* Use scheduled workflows to process in batches
* Consider using the API for bulk operations
* Добавьте более точные фильтры, чтобы сократить результаты
* Используйте запланированные рабочие процессы для пакетной обработки
* Рассмотрите использование API для массовых операций
For most workflows, 200 records is sufficient. If you regularly hit this limit, consider restructuring your automation.
Для большинства рабочих процессов 200 записей достаточно. Если вы регулярно упираетесь в этот предел, подумайте о переработке вашей автоматизации.
</Accordion>
<Accordion title="Can I CC people on workflow emails?">
**Not yet.** CC and BCC fields for the Send Email action are on our roadmap.
<Accordion title="Можно ли добавлять получателей в копию (CC) в письмах рабочего процесса?">
**Пока нет.** Поля CC и BCC для действия Send Email в нашем плане развития.
**Current workaround**: Add multiple Send Email actions to send to additional recipients, or use an HTTP Request to send via an external email service that supports CC.
**Текущее решение**: Добавьте несколько действий Send Email, чтобы отправить дополнительным получателям, или используйте HTTP Request для отправки через внешний почтовый сервис, поддерживающий CC.
</Accordion>
<Accordion title="How do I use outputs from previous steps?">
Every action produces output data that can be used in subsequent steps.
<Accordion title="Как использовать выходные данные из предыдущих шагов?">
Каждое действие формирует выходные данные, которые можно использовать в последующих шагах.
**To reference previous step data**:
**Как ссылаться на данные предыдущих шагов**:
* Use the variable picker when configuring a field
* Or type `{{stepName.fieldName}}` directly
* Используйте выбор переменных при настройке поля
* Или введите `{{stepName.fieldName}}` напрямую
**Примеры**:
* Trigger data: `{{trigger.object.email}}`
* Search results: `{{searchRecords[0].name}}`
* Code output: `{{code.calculatedValue}}`
* Данные триггера: `{{trigger.object.email}}`
* Результаты поиска: `{{searchRecords[0].name}}`
* Вывод кода: `{{code.calculatedValue}}`
Hover over any field in the action configuration to see available variables from previous steps.
Наведите курсор на любое поле в настройках действия, чтобы увидеть доступные переменные из предыдущих шагов.
</Accordion>
<Accordion title="Why does my Iterator fail?">
**Iterator requires an array input.** Common issues:
<Accordion title="Почему Iterator завершается с ошибкой?">
**Iterator требует массив на входе.** Частые проблемы:
1. **Input is not an array**: Ensure you're passing results from Search Records or another action that returns an array
2. **Array is empty**: Add a filter before Iterator to check `{{searchRecords.length}} > 0`
3. **Wrong variable selected**: Make sure you select the array itself, not a single record
1. **Входные данные не являются массивом**: Убедитесь, что вы передаете результаты из Search Records или другого действия, возвращающего массив
2. **Массив пуст**: Добавьте фильтр перед Iterator, чтобы проверить `{{searchRecords.length}} > 0`
3. **Выбрана неверная переменная**: Убедитесь, что вы выбираете сам массив, а не одну запись
**Correct setup**:
**Правильная настройка**:
1. Search Records (returns array)
1. Search Records (возвращает массив)
2. Filter: length > 0
3. Iterator: select `{{searchRecords}}`
4. Actions inside iterator use `{{iterator.currentItem.fieldName}}`
3. Iterator: выберите `{{searchRecords}}`
4. Действия внутри Iterator используют `{{iterator.currentItem.fieldName}}`
</Accordion>
<Accordion title="What's the maximum execution time for Code actions?">
Code actions (serverless functions) have a **default timeout of 5 minutes** (300 seconds).
<Accordion title="Каково максимальное время выполнения для действий Code?">
Действия Code (serverless-функции) имеют **тайм-аут по умолчанию 5 минут** (300 секунд).
The maximum configurable timeout is **15 minutes** (900 seconds).
Максимально настраиваемый тайм-аут — **15 минут** (900 секунд).
If your code exceeds this limit, the action will fail with a timeout error.
Если ваш код превышает этот предел, действие завершится ошибкой тайм-аута.
**Tips to avoid timeouts**:
**Советы по предотвращению тайм-аутов**:
* Break large operations into smaller chunks using Iterator
* Avoid heavy computations; use external services via HTTP Request for intensive processing
* Optimize your code to reduce execution time
* If you need longer processing, consider using scheduled workflows that process data in batches
* Разбейте большие операции на небольшие части с помощью Iterator
* Избегайте тяжелых вычислений; используйте внешние сервисы через HTTP Request для ресурсоемкой обработки
* Оптимизируйте ваш код, чтобы сократить время выполнения
* Если требуется более длительная обработка, рассмотрите использование запланированных рабочих процессов, которые обрабатывают данные пакетами
</Accordion>
<Accordion title="How do I read workflow runs?">
Workflow runs show the execution history and help you debug issues.
<Accordion title="Как понимать запуски рабочего процесса?">
Запуски рабочего процесса показывают историю выполнения и помогают диагностировать проблемы.
**Access runs**:
**Доступ к запускам**:
* In workflow editor → **Runs** panel on the right
* Or go to **Workflow Runs** in the sidebar
* В редакторе рабочего процесса → панель **Запуски** справа
* Или перейдите в **Запуски рабочего процесса** в боковой панели
**Understanding a run**:
**Понимание запуска**:
* **Status**: Running, Completed, Failed, Waiting
* **Steps**: See which steps executed and their output
* **Errors**: Click failed steps to see error messages
* **Data**: View input/output data at each step
* **Статус**: Running, Completed, Failed, Waiting
* **Шаги**: Просматривайте, какие шаги выполнились и их вывод
* **Ошибки**: Нажмите на шаги с ошибкой, чтобы увидеть сообщения об ошибках
* **Данные**: Просматривайте входные/выходные данные на каждом шаге
See [Workflow Runs](/l/ru/user-guide/workflows/capabilities/workflow-runs) for details.
См. [Запуски рабочего процесса](/l/ru/user-guide/workflows/capabilities/workflow-runs) для подробностей.
</Accordion>
<Accordion title="Why don't I see my workflow runs?">
Workflow runs might be failing immediately due to rate limits.
<Accordion title="Почему я не вижу свои запуски рабочего процесса?">
Запуски рабочего процесса могут сразу завершаться с ошибкой из-за ограничений скорости.
**Hard limit: 5,000 runs per hour per workspace.**
**Жесткий лимит: 5 000 запусков в час на рабочее пространство.**
If you exceed this limit, workflows are immediately marked as failed and won't appear in your runs list as expected.
Если вы превышаете этот лимит, рабочие процессы сразу помечаются как завершившиеся с ошибкой и не появляются в списке запусков, как можно было бы ожидать.
**Common scenarios that hit this limit**:
**Распространенные сценарии, при которых достигается этот лимит**:
* Selecting more than 5,000 records with a Single manual trigger
* Multiple workflows running simultaneously across your workspace
* High-frequency automated triggers (e.g., Record Updated on a busy object)
* Выбор более 5 000 записей с ручным триггером Single
* Одновременная работа нескольких рабочих процессов в вашем рабочем пространстве
* Высокочастотные автоматические триггеры (например, Record Updated на загруженном объекте)
**Решения**:
* Use **Bulk** triggers instead of Single to process many records in one run
* Space out large batch operations
* Use filters to reduce trigger frequency
* Schedule heavy workflows during off-peak hours
* Используйте триггеры **Bulk** вместо Single, чтобы обработать много записей за один запуск
* Разнесите во времени крупные пакетные операции
* Используйте фильтры, чтобы снизить частоту срабатываний
* Запускайте «тяжелые» рабочие процессы в часы низкой нагрузки
</Accordion>
<Accordion title="What are the workflow rate limits?">
Twenty has two rate limits to ensure system stability:
<Accordion title="Каковы ограничения скорости для рабочих процессов?">
В Twenty есть два лимита скорости для обеспечения стабильности системы:
| Лимит | Значение | Behavior |
| ----- | -------- | -------- |
| Лимит | Значение | Поведение |
| ----- | -------- | --------- |
\| **Soft limit** | 100 runs/minute | Runs queue in "Not Started" status, processed gradually |
\| **Hard limit** | 5,000 runs/hour | Runs immediately fail |
\| **Мягкий лимит** | 100 запусков/мин | Запуски ставятся в очередь со статусом "Not Started", обрабатываются постепенно |
\| **Жесткий лимит** | 5 000 запусков/час | Запуски сразу завершаются с ошибкой |
**Soft limit (100/min)**: Your workflows won't fail—they just wait in the queue and are processed over time. You can trigger more than 100 records; execution will be slower.
**Мягкий лимит (100/мин)**: Ваши рабочие процессы не будут завершаться с ошибкой — они просто ждут в очереди и обрабатываются со временем. Вы можете запускать более 100 записей; выполнение будет медленнее.
**Hard limit (5,000/hr)**: This applies to your entire workspace. If all your workflows combined exceed 5,000 runs in an hour, additional runs will fail immediately.
**Жесткий лимит (5 000/ч)**: Он применяется ко всему вашему рабочему пространству. Если суммарно все ваши рабочие процессы превышают 5 000 запусков за час, дополнительные запуски сразу завершатся с ошибкой.
**Tips to stay within limits**:
**Советы, чтобы не выходить за пределы лимитов**:
* Use Bulk triggers with Iterator instead of Single triggers for large batches
* Combine related automations into fewer workflows
* Use scheduled workflows to spread load over time
* Используйте триггеры Bulk с Iterator вместо Single для больших пакетов
* Объединяйте связанные автоматизации в меньшее количество рабочих процессов
* Используйте запланированные рабочие процессы, чтобы распределить нагрузку во времени
</Accordion>
<Accordion title="Can I retry a failed workflow run?">
**No, there is no automatic retry functionality at the moment.**
<Accordion title="Можно ли повторно запустить неудавшийся запуск рабочего процесса?">
**Нет, в настоящий момент нет функции автоматического повтора.**
If a workflow run fails, you'll need to:
Если запуск рабочего процесса завершился с ошибкой, вам нужно:
1. Review the error in **Settings → Workflows → [Your Workflow] → Runs**
2. Fix the issue (data, configuration, or external service)
3. Manually trigger the workflow again on the affected record(s)
1. Просмотрите ошибку в **Настройки → Рабочие процессы → [Ваш рабочий процесс] → Запуски**
2. Исправьте проблему (данные, конфигурация или внешний сервис)
3. Повторно запустите рабочий процесс вручную для затронутой записи (записей)
**Tips to reduce failures**:
**Советы по снижению количества ошибок**:
* Add **Filter** nodes to validate data before actions
* Use **Search Records** to check if related records exist
* Test thoroughly with a few records before bulk operations
* Добавьте узлы **Filter** для проверки данных перед действиями
* Используйте **Search Records**, чтобы проверить, существуют ли связанные записи
* Тщательно протестируйте на нескольких записях перед массовыми операциями
Automatic retry functionality is on our roadmap for a future release.
Функция автоматического повтора находится в нашем плане развития для будущего релиза.
</Accordion>
<Accordion title="Should I deactivate workflows before CSV imports?">
**Yes, if your workflows are triggered by record creation or updates.**
<Accordion title="Нужно ли деактивировать рабочие процессы перед импортом CSV?">
**Да, если ваши рабочие процессы запускаются при создании или обновлении записей.**
When you import data via CSV, each record created or updated can trigger workflows. A large import (thousands of records) could:
При импорте данных через CSV каждая созданная или обновленная запись может запускать рабочие процессы. Крупный импорт (тысячи записей) может:
* Hit the 5,000 runs/hour limit
* Consume significant workflow credits
* Send unexpected emails or notifications
* Create duplicate tasks or records
* Достигнуть лимита 5 000 запусков/час
* Потреблять значительное количество кредитов рабочего процесса
* Отправить неожиданные письма или уведомления
* Создать дублирующиеся задачи или записи
**Before a mass import**:
**Перед массовым импортом**:
1. Go to **Settings → Workflows**
2. Identify workflows triggered by the object you're importing
3. **Deactivate** them temporarily
4. Run your CSV import
5. **Reactivate** the workflows when done
1. Перейдите в **Настройки → Рабочие процессы**
2. Определите рабочие процессы, запускаемые объектом, который вы импортируете
3. **Деактивируйте** их временно
4. Выполните импорт CSV
5. **Повторно активируйте** рабочие процессы по завершении
**Alternative**: If you need the workflows to run on imported data, import in smaller batches to stay within rate limits.
**Альтернатива**: Если вам нужно, чтобы рабочие процессы запускались на импортируемых данных, импортируйте небольшими партиями, чтобы укладываться в лимиты скорости.
</Accordion>
<Accordion title="How do I clean up my workflow layout?">
If your workflow canvas looks messy with nodes scattered around, you can automatically organize it:
<Accordion title="Как привести в порядок схему моего рабочего процесса?">
Если ваше полотно рабочего процесса выглядит беспорядочно, с разбросанными узлами, вы можете автоматически упорядочить его:
1. Right-click anywhere on the workflow canvas
2. Click **Tidy up workflow**
1. Щелкните правой кнопкой мыши в любом месте полотна рабочего процесса
2. Нажмите **Упорядочить рабочий процесс**
This will automatically rearrange all nodes into a clean, organized layout.
Это автоматически переупорядочит все узлы в чистое, упорядоченное расположение.
</Accordion>
</AccordionGroup>
@@ -1,6 +1,6 @@
---
title: AI
description: AI-powered features coming soon to Twenty.
description: Yapay zeka destekli özellikler yakında Twenty'ye geliyor.
---
<Frame>
@@ -9,54 +9,54 @@ description: AI-powered features coming soon to Twenty.
## Neler Geliyor?
Twenty is building AI capabilities to help your team work smarter. We're focusing on two major areas:
Ekibinizin daha akıllıca çalışmasına yardımcı olmak için Twenty, yapay zeka yetkinlikleri geliştiriyor. İki ana alana odaklanıyoruz:
### 1. AI Chatbot
### 1. Yapay Zeka Sohbet Botu
A conversational assistant that understands your context and has access to all your Twenty data.
Bağlamınızı anlayan ve tüm Twenty verilerinize erişimi olan konuşmaya dayalı bir asistan.
**Key capabilities:**
**Temel yetkinlikler:**
* **Full data access**: Query any record, relationship, or metric in your workspace
* **Page context awareness**: Reference "this company" or "this opportunity" based on where you are in Twenty
* **Natural language**: Ask questions and get answers without navigating menus
* **Tam veri erişimi**: Çalışma alanınızdaki herhangi bir kaydı, ilişkiyi veya metriği sorgulayın
* **Sayfa bağlamı farkındalığı**: Twenty içinde bulunduğunuz yere göre "bu şirket" veya "bu fırsat" ifadelerine atıfta bulunun
* **Doğal dil**: Menülerde gezinmeden sorular sorun ve yanıtlar alın
**Example prompts:**
**Örnek istemler:**
* "What opportunities are closing this month?"
* "Which deals have been in Negotiation for more than 30 days?"
* "Summarize my interactions with this person"
* "Bu ay hangi fırsatlar kapanıyor?"
* "30 günden uzun süredir Müzakere aşamasında olan hangi anlaşmalar var?"
* "Bu kişiyle etkileşimlerimi özetle"
### 2. AI Agents in Workflows
### 2. İş Akışlarında Yapay Zeka Ajanları
Extend your workflows with AI-powered actions and autonomous agents.
İş akışlarınızı yapay zeka destekli eylemler ve otonom ajanlarla genişletin.
**Key capabilities:**
**Temel yetkinlikler:**
* **AI actions**: Use AI to enrich data, classify records, generate summaries, and more
* **Autonomous agents**: Let agents execute multi-step tasks within a workflow
* **Custom prompts**: Define exactly how AI should process your data
* **Yapay zeka eylemleri**: Verileri zenginleştirmek, kayıtları sınıflandırmak, özetler oluşturmak ve daha fazlası için yapay zekayı kullanın
* **Otonom ajanlar**: Ajanların bir iş akışı içinde çok adımlı görevler yürütmesine izin verin
* **Özel istemler**: Yapay zekanın verilerinizi tam olarak nasıl işlemesi gerektiğini tanımlayın
**Kullanım alanları:**
* Automatically categorize inbound leads
* Enrich company data from public sources
* Generate follow-up email drafts based on meeting notes
* Score opportunities based on engagement patterns
* Gelen potansiyel müşterileri otomatik olarak kategorilere ayırın
* Kamuya açık kaynaklardan şirket verilerini zenginleştirin
* Toplantı notlarına dayalı takip e-postası taslakları oluşturun
* Etkileşim kalıplarına göre fırsatları puanlayın
## Permissions and Access Control
## İzinler ve Erişim Kontrolü
AI agents will be managed through the existing permissions system:
Yapay zeka ajanları mevcut izin sistemi aracılığıyla yönetilecektir:
1. **Ayarlar → Roller** bölümüne gidin
2. Configure which data each AI agent can access
3. Set read/write permissions per object
2. Her bir yapay zeka ajanının hangi verilere erişebileceğini yapılandırın
3. Nesne başına okuma/yazma izinleri belirleyin
This ensures AI agents respect your data governance policies and only access what they need.
Bu, yapay zeka ajanlarının veri yönetişimi politikalarınıza saygı duymasını ve yalnızca ihtiyaç duydukları verilere erişmesini sağlar.
## Güncel Kalın
We'll update this section as AI features become available. In the meantime:
Yapay zeka özellikleri kullanıma sunuldukça bu bölümü güncelleyeceğiz. Bu arada:
* Follow our [GitHub](https://github.com/twentyhq/twenty) for development updates
* Join our [Discord](https://discord.gg/twenty) to share feedback and feature requests
* Geliştirme güncellemeleri için [GitHub](https://github.com/twentyhq/twenty) hesabımızı takip edin
* Geri bildirim ve özellik isteklerinizi paylaşmak için [Discord](https://discord.gg/twenty) sunucumuza katılın
@@ -1,49 +1,49 @@
---
title: İş Akışı Kredileri
description: Understanding workflow credits, consumption, and how to purchase more.
description: İş akışı kredilerini, tüketimi ve daha fazla kredi satın almayı anlama.
---
## Genel Bakış
Credits power your workflow automations in Twenty. Every workflow action consumes credits based on its complexity.
Krediler, Twenty'deki iş akışı otomasyonlarınıza güç verir. Her iş akışı eylemi, karmaşıklığına bağlı olarak kredi tüketir.
## Credit Allocation
## Kredi Tahsisi
Credits are based on your billing cycle, not your plan:
Krediler planınıza değil, faturalandırma döngünüze göre belirlenir:
| Billing Cycle | Credits |
| ------------- | --------------- |
| Aylık | 5 million/month |
| Yıllık | 50 million/year |
| Faturalandırma Döngüsü | Krediler |
| ---------------------- | ------------- |
| Aylık | 5 milyon/ay |
| Yıllık | 50 milyon/yıl |
<Note>
The 5 million monthly credits are designed to empower you to run automations without worrying about costs. For most workflows using standard actions, this is more than enough. You'll only need additional credits when running advanced code nodes or AI-powered features.
Aylık 5 milyon kredi, maliyetleri dert etmeden otomasyonları çalıştırabilmenizi sağlamak üzere tasarlanmıştır. Standart eylemler kullanan çoğu iş akışı için bu fazlasıyla yeterlidir. Yalnızca gelişmiş kod düğümlerini veya yapay zeka destekli özellikleri çalıştırırken ek krediye ihtiyaç duyarsınız.
</Note>
## Credit Consumption
## Kredi Tüketimi
Different actions consume different amounts of credits:
Farklı eylemler farklı miktarlarda kredi tüketir:
| Action Type | Kredi Kullanımı |
| ------------------------------------------------------- | ----------------------- |
| **Basic operations** (search, update, create records) | Minimal |
| **Complex operations** (code nodes, external API calls) | More credits |
| **AI istemleri** (yakında geliyor) | Variable based on usage |
| Eylem Türü | Kredi Kullanımı |
| ----------------------------------------------------------- | ---------------- |
| **Temel işlemler** (arama, güncelleme, kayıt oluşturma) | Minimum |
| **Karmaşık işlemler** (kod düğümleri, harici API çağrıları) | Daha fazla kredi |
| **AI istemleri** (yakında geliyor) | Kullanıma bağlı |
Krediler, iş akışları yürütülürken gerçek zamanlı olarak düşer.
## Monitoring Usage
## Kullanımı İzleme
Track your credit consumption:
Kredi tüketiminizi takip edin:
1. **Ayarlar → Faturalama** bölümüne gidin
2. View your current usage and remaining credits
3. Monitor trends to plan for additional credits if needed
2. Mevcut kullanımınızı ve kalan kredilerinizi görüntüleyin
3. Gerekirse ek kredileri planlamak için eğilimleri izleyin
## Ek Kredi Satın Alma
Need more credits?
Daha fazla krediye mi ihtiyacınız var?
1. **Ayarlar → Faturalama** bölümüne gidin
2. Click on the option to purchase additional credit packs
3. Select the amount you need
2. Ek kredi paketleri satın alma seçeneğine tıklayın
3. İhtiyacınız olan miktarı seçin
@@ -1,44 +1,44 @@
---
title: Can I Send Emails from Twenty?
description: Information about sending emails directly from Twenty.
title: Twenty'den E-posta Gönderebilir miyim?
description: E-postaları doğrudan Twenty üzerinden göndermeye ilişkin bilgiler.
---
## Current Status
## Mevcut Durum
Twenty's email integration is designed to **sync and display** your email history. Emails cannot be composed or sent directly from Twenty's interface.
Twenty'nin e-posta entegrasyonu, e-posta geçmişinizi **eşitlemek ve görüntülemek** üzere tasarlanmıştır. E-postalar, Twenty'nin arayüzünden doğrudan oluşturulamaz veya gönderilemez.
When you view an email thread on a record page and click **Reply**, you'll be redirected to the original thread in your mailbox (Gmail, Outlook, etc.). This is where you compose and send your reply.
Bir kayıt sayfasında bir e-posta dizisini görüntüleyip **Yanıtla**'ya tıkladığınızda, posta kutunuzdaki (Gmail, Outlook vb.) orijinal ileti dizisine yönlendirilirsiniz. Yanıtınızı burada oluşturur ve gönderirsiniz.
## What You Can Do Today
## Bugün Yapabilecekleriniz
* **View email history** on People, Companies, and Opportunities records
* **Read full email threads** with contacts in your CRM
* **Track communication context** alongside calendar events
* **Auto-create contacts** from email interactions
* **Reply via redirect** — click Reply to jump to your mailbox
* **E-posta geçmişini görüntüleyin** Kişiler, Şirketler ve Fırsatlar kayıtlarında
* **Tam e-posta dizilerini okuyun** — CRMinizdeki kişilerle olan
* **İletişim bağlamını takip edin** — takvim etkinlikleriyle birlikte
* **Otomatik olarak kişi oluşturun** — e-posta etkileşimlerinden
* **Yönlendirme yoluyla yanıtlayın** — posta kutunuza gitmek için Yanıtla'ya tıklayın
## Sending Emails via Workflows
## İş Akışları Aracılığıyla E-posta Gönderme
While you can't send emails manually from Twenty, you **can send emails automatically using Workflows**. This is useful for:
Twenty'den e-postaları manuel olarak gönderemezsiniz, ancak **İş Akışlarını kullanarak e-postaları otomatik olarak gönderebilirsiniz**. Şunlar için kullanışlıdır:
* Automated follow-ups
* Notifications to contacts
* Triggered communications based on record changes
* Otomatik takipler
* Kişilere bildirimler
* Kayıt değişikliklerine bağlı olarak tetiklenen iletişimler
Emails sent via workflows go through your connected mailbox account.
İş akışları aracılığıyla gönderilen e-postalar, bağlı posta kutusu hesabınız üzerinden iletilir.
Learn about the [Send Email action](/l/tr/user-guide/workflows/capabilities/workflow-actions#send-email)
[E-posta Gönder eylemi](/l/tr/user-guide/workflows/capabilities/workflow-actions#send-email) hakkında bilgi edinin
## Email Sequences and Newsletters
## E-posta Dizileri ve Bültenler
For email sequences and newsletters, we recommend using workflows to connect Twenty to a dedicated email marketing tool.
E-posta dizileri ve bültenler için, Twenty'yi özel bir e-posta pazarlama aracına bağlamak üzere iş akışlarını kullanmanızı öneririz.
<Warning>
Mass emails should not be sent directly from your mailbox to protect your domain reputation. Use a dedicated tool for bulk communications.
Alan adınızın itibarını korumak için toplu e-postalar doğrudan posta kutunuzdan gönderilmemelidir. Toplu iletişim için özel bir araç kullanın.
</Warning>
See [How to send emails from workflows](/l/tr/user-guide/workflows/capabilities/send-emails-from-workflows) for setup instructions
Kurulum talimatları için [İş akışlarından nasıl e-posta gönderilir](/l/tr/user-guide/workflows/capabilities/send-emails-from-workflows) bölümüne bakın
## Future Plans
## Gelecek Planları
Native email composition from within Twenty is on our roadmap. Join our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to share your use case and help prioritize this feature.
Twenty içinde yerel e-posta oluşturma, yol haritamızda yer alıyor. Kullanım senaryonuzu paylaşmak ve bu özelliğin önceliklendirilmesine yardımcı olmak için [GitHub tartışmalarımıza](https://github.com/twentyhq/twenty/discussions) katılın.
@@ -1,35 +1,35 @@
---
title: Can I Track Email Activity on All Objects?
description: Understanding email activity tracking across different objects.
title: Tüm nesnelerde e-posta etkinliğini izleyebilir miyim?
description: Farklı nesneler genelinde e-posta etkinliği izlemenin anlaşılması.
---
## Supported Objects
## Desteklenen Nesneler
Email activity is currently available on **three standard objects**:
E-posta etkinliği şu anda **üç standart nesnede** kullanılabilir:
| Nesne | What You See |
| ------------- | ---------------------------------------------------------------- |
| **People** | All emails exchanged with that specific contact |
| **Şirketler** | All emails with anyone from that company (based on email domain) |
| **Fırsatlar** | Emails related to the company linked to the opportunity |
| Nesne | Görecekleriniz |
| ------------- | --------------------------------------------------------------------------- |
| **Kişiler** | İlgili kişiyle karşılıklı tüm e-postalar |
| **Şirketler** | O şirketteki herhangi biriyle olan tüm e-postalar (e-posta alan adına göre) |
| **Fırsatlar** | Fırsatla bağlantılı şirkete ilişkin e-postalar |
## Why Only These Objects?
## Neden Yalnızca Bu Nesneler?
People, Companies, and Opportunities are the core relationship objects where email context adds the most value. Email threads are automatically linked based on:
Kişiler, Şirketler ve Fırsatlar, e-posta bağlamının en fazla değer kattığı temel ilişki nesneleridir. E-posta dizileri aşağıdakilere göre otomatik olarak bağlanır:
* **Email address** → matched to People records
* **Email domain** → matched to Company records
* **Company relation** → linked to Opportunities
* **E-posta adresi** → Kişi kayıtlarıyla eşleştirilir
* **E-posta alan adı** → Şirket kayıtlarıyla eşleştirilir
* **Şirket ilişkisi** → Fırsatlara bağlanır
## Özel Nesneler
**Email tracking is not available on custom objects** at this time.
**E-posta izleme şu anda özel nesnelerde mevcut değildir**.
If you need email context on a custom object, consider:
Özel bir nesnede e-posta bağlamına ihtiyacınız varsa, şunları göz önünde bulundurun:
* Using a relation field to link your custom object to People or Companies
* Viewing email history on the linked People/Company record
* Özel nesnenizi Kişiler veya Şirketler ile ilişkilendirmek için bir ilişki alanı kullanmak
* Bağlı Kişi/Şirket kaydında e-posta geçmişini görüntülemek
## Future Plans
## Gelecek Planları
Extending email visibility to custom objects is being considered. Share your use case on our [GitHub discussions](https://github.com/twentyhq/twenty/discussions) to help prioritize this feature.
E-posta görünürlüğünün özel nesnelere genişletilmesi değerlendiriliyor. Bu özelliğin önceliklendirilmesine yardımcı olmak için kullanım senaryonuzu [GitHub tartışmalarımızda](https://github.com/twentyhq/twenty/discussions) paylaşın.
@@ -176,23 +176,23 @@ Lütfen şu özel makalemize bakın: [Nesneler Arasındaki İlişkileri İçe Ak
VALUE1
```
See [here](#finding-api-names-for-select-fields) where to find the API names.
<Note>New select options will not be created automatically by the import. They must be added under **Settings → Data Model** before importing.</Note>
API adlarının nerede bulunacağını [buradan](#finding-api-names-for-select-fields) görün.
<Note>Yeni seçim seçenekleri içe aktarma tarafından otomatik olarak oluşturulmaz. İçe aktarmadan önce **Ayarlar → Veri Modeli** altında eklenmelidir.</Note>
### Text Fields
### Metin Alanları
* No special formatting required
* Leading/trailing spaces are trimmed
* Özel biçimlendirme gerekmez
* Baştaki/sondaki boşluklar kırpılır
## Finding API Names
## API Adlarını Bulma
For Select, Multi-Select, and Array fields with predefined options, you must use the **API names**, not the display labels.
Önceden tanımlı seçeneklere sahip Select, Multi-Select ve Array alanları için, görünen etiketler değil, **API adlarını** kullanmalısınız.
### How to Find API Names
### API Adları Nasıl Bulunur
1. Go to **Settings → Data Model**
2. Select the object and field
3. Enable **Advanced mode** (toggle at the bottom right of the settings page)
4. View the API name for each option
1. **Ayarlar → Veri Modeli** bölümüne gidin
2. Nesneyi ve alanı seçin
3. **Gelişmiş mod**u etkinleştirin (ayarlar sayfasının sağ altındaki anahtarı kullanarak)
4. Her seçenek için API adını görüntüleyin
<VimeoEmbed videoId="1144910809" title="Video demonstration" />
<VimeoEmbed videoId="1144910809" title="Video gösterimi" />
@@ -1,209 +1,209 @@
---
title: Export Your Data
description: Complete step-by-step guide to exporting data from Twenty.
title: Verilerinizi Dışa Aktarın
description: Twenty'den veri dışa aktarmaya yönelik eksiksiz, adım adım kılavuz.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## Genel Bakış
Export your workspace data to CSV for backups, reporting, or migration.
Yedekleme, raporlama veya geçiş için çalışma alanı verilerinizi CSV'ye dışa aktarın.
**Kullanım alanları:**
* **Regular backups** — keep copies of your data
* **External reporting** — analyze data in Excel, Google Sheets, or BI tools
* **Migration** — move data to another system
* **Bulk updates** — export, edit, and re-import to update records
* **Düzenli yedeklemeler** — verilerinizin kopyalarını saklayın
* **Harici raporlama** — verileri Excel, Google Sheets veya BI araçlarında analiz edin
* **Geçiş** — verileri başka bir sisteme taşıyın
* **Toplu güncellemeler** — kayıtları güncellemek için dışa aktarın, düzenleyin ve yeniden içe aktarın
## What You Need to Know
## Bilmeniz Gerekenler
### Export Limits
### Dışa Aktarma Sınırları
* **Maximum 20,000 records** per export
* Only **visible columns** are exported
* Only **filtered records** are exported (based on your current view)
* Dışa aktarma başına **en fazla 20.000 kayıt**
* Yalnızca **görünür sütunlar** dışa aktarılır
* Yalnızca **filtrelenmiş kayıtlar** dışa aktarılır (mevcut görünümünüze göre)
<Note>For larger exports (20,000+ records), use filters to export in batches or use the [API](/l/tr/developers/extend/capabilities/apis).</Note>
<Note>Daha büyük dışa aktarmalar için (20.000+ kayıt), toplu halde dışa aktarmak üzere filtreleri kullanın veya [API](/l/tr/developers/extend/capabilities/apis)'yi kullanın.</Note>
### İzinler
You need the **"Export CSV"** permission to export data. Contact your workspace admin if you don't have this option.
Verileri dışa aktarmak için **"Export CSV"** iznine ihtiyacınız var. Bu seçeneğiniz yoksa çalışma alanı yöneticinizle iletişime geçin.
## Step 1: Navigate to the Object
## Adım 1: Nesneye gidin
Go to the object you want to export:
Dışa aktarmak istediğiniz nesneye gidin:
* **People** — for contacts
* **Companies** — for organizations
* **Opportunities** — for deals
* **Custom objects** — any object you've created
* **People** — kişiler için
* **Companies** — kuruluşlar için
* **Opportunities** — anlaşmalar için
* **Özel nesneler** — oluşturduğunuz herhangi bir nesne
## Step 2: Configure Your View
## Adım 2: Görünümünüzü yapılandırın
**Important:** The export includes only what's visible in your current view.
**Önemli:** Dışa aktarma, yalnızca mevcut görünümünüzde görünenleri içerir.
### Add/Remove Columns
### Sütun Ekle/Kaldır
1. Click **Options → Fields** (or the **+** at the end of columns)
2. Check the fields you want to export
3. Uncheck fields you don't need
1. **Options → Fields**'a tıklayın (veya sütunların sonundaki **+** simgesine)
2. Dışa aktarmak istediğiniz alanları işaretleyin
3. Gerek duymadığınız alanların işaretini kaldırın
### Filter Records (Optional)
### Kayıtları Filtrele (İsteğe bağlı)
If you only need a subset of data:
Yalnızca verilerin bir alt kümesine ihtiyacınız varsa:
1. Click **Filter**
2. Add filter conditions (e.g., "Created date > January 1, 2024")
3. Only matching records will be exported
1. **Filter**'a tıklayın
2. Filtre koşulları ekleyin (ör. "Created date > January 1, 2024")
3. Yalnızca eşleşen kayıtlar dışa aktarılır
### Sort Records (Optional)
### Kayıtları Sırala (İsteğe bağlı)
1. Click a column header to sort
2. The export will follow your sort order
1. Sıralamak için bir sütun başlığına tıklayın
2. Dışa aktarma, sıralama düzeninizi takip eder
<Note>**Create a dedicated export view.** Save a view specifically configured for exports so you don't need to reconfigure each time.</Note>
<Note>**Dışa aktarma için özel bir görünüm oluşturun.** Her seferinde yeniden yapılandırmamak için özellikle dışa aktarmaya göre yapılandırılmış bir görünümü kaydedin.</Note>
## Step 3: Export the Data
## Adım 3: Verileri dışa aktarın
1. Click the **⋮** icon on the top right of the table
2. Select **Export view**
3. Choose where to save the CSV file
4. Wait for the download to complete
1. Tablonun sağ üst köşesindeki **⋮** simgesine tıklayın
2. **Export view**'i seçin
3. CSV dosyasının nereye kaydedileceğini seçin
4. İndirmenin tamamlanmasını bekleyin
## What Gets Exported
## Neler Dışa Aktarılır
| Included | Not Included |
| -------------------------------- | ---------------------- |
| All visible columns | Hidden columns |
| Records matching current filters | Filtered-out records |
| Custom field values | Fields not in the view |
| Record IDs | File attachments |
| Relation IDs | Images |
| Dahil | Dahil Değil |
| ----------------------------------- | -------------------------------- |
| Tüm görünür sütunlar | Gizli sütunlar |
| Mevcut filtrelerle eşleşen kayıtlar | Filtreyle hariç tutulan kayıtlar |
| Özel alan değerleri | Görünümde olmayan alanlar |
| Kayıt ID'leri | Dosya ekleri |
| İlişki ID'leri | Görseller |
### İlişki Alanları
Relation IDs are only exported on the **"many" side** of a relationship:
İlişki ID'leri yalnızca bir ilişkinin **"çok" tarafında** dışa aktarılır:
* **People export** includes a `companyId` column (People → Company relation)
* **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
* **People dışa aktarması**, `companyId` sütununu içerir (People → Company ilişkisi)
* **Companies dışa aktarması**, `peopleIds` içermez (Companies ilişkide "tek" taraftır)
This means you can use the People export to re-import and maintain the Company link, but you'll need to re-import People after Companies to recreate the relationships.
Bu, Company bağlantısını koruyarak yeniden içe aktarmak için People dışa aktarmasını kullanabileceğiniz anlamına gelir; ancak ilişkileri yeniden oluşturmak için Companies'ten sonra People'ı yeniden içe aktarmanız gerekir.
## Exporting for Specific Purposes
## Belirli Amaçlar İçin Dışa Aktarma
### For Backups
### Yedeklemeler İçin
1. Create a view with **all fields** visible
2. Remove all filters to include all records
3. Export each object type separately
4. Store exports in a secure location
5. Set a recurring reminder (weekly/monthly)
1. **Tüm alanların** görünür olduğu bir görünüm oluşturun
2. Tüm kayıtları dahil etmek için tüm filtreleri kaldırın
3. Her nesne türünü ayrı ayrı dışa aktarın
4. Dışa aktarmaları güvenli bir konumda saklayın
5. Tekrarlayan bir hatırlatıcı ayarlayın (haftalık/aylık)
### For External Reporting
### Harici Raporlama İçin
1. Include only the fields you need for analysis
2. Apply filters to focus on relevant data
3. Consider sorting by the field you'll analyze
1. Analiz için yalnızca ihtiyaç duyduğunuz alanları dahil edin
2. İlgili verilere odaklanmak için filtreler uygulayın
3. Analiz edeceğiniz alana göre sıralamayı düşünün
### For Bulk Updates
### Toplu Güncellemeler İçin
1. Export the records you want to update
2. Include the unique identifier (`email`, `domain`, or `id`)
3. Edit the exported file
4. Re-import to update records
See: [How to Update Existing Records](/l/tr/user-guide/data-migration/how-tos/update-existing-records-via-import)
1. Güncellemek istediğiniz kayıtları dışa aktarın
2. Benzersiz tanımlayıcıyı dahil edin (`email`, `domain` veya `id`)
3. Dışa aktarılan dosyayı düzenleyin
4. Kayıtları güncellemek için yeniden içe aktarın
Bkz: [Mevcut Kayıtlar Nasıl Güncellenir](/l/tr/user-guide/data-migration/how-tos/update-existing-records-via-import)
### For Migration
### Geçiş İçin
If you're exporting to migrate to another system:
Başka bir sisteme geçiş yapmak için dışa aktarıyorsanız:
1. **Export each object separately** — People, Companies, Opportunities, etc.
2. **Include ID fields** — these help maintain relationships
3. **Document field mappings** — note how Twenty fields map to your target system
1. **Her nesneyi ayrı ayrı dışa aktarın** — People, Companies, Opportunities, vb.
2. **ID alanlarını dahil edin** — bunlar ilişkilerin korunmasına yardımcı olur
3. **Alan eşlemelerini belgeleyin** — Twenty alanlarının hedef sisteminize nasıl eşlendiğini not edin
## Handling Large Datasets (20,000+ Records)
## Büyük Veri Kümelerini Yönetme (20.000+ Kayıt)
The export limit is 20,000 records. For larger datasets:
Dışa aktarma sınırı 20.000 kayıttır. Daha büyük veri kümeleri için:
### Option 1: Export in Batches
### Seçenek 1: Partiler halinde dışa aktarma
1. Add a filter (e.g., "Created date" ranges)
2. Export the first batch
3. Change the filter
4. Export the next batch
5. Combine files in your spreadsheet
1. Bir filtre ekleyin (ör. "Created date" aralıkları)
2. İlk partiyi dışa aktarın
3. Filtreyi değiştirin
4. Sonraki partiyi dışa aktarın
5. Dosyaları hesap tablonuzda birleştirin
**Example filters for batching:**
**Partiler için örnek filtreler:**
* By date range (January, February, March...)
* By owner (Team member A, Team member B...)
* By status (Active, Inactive...)
* Tarih aralığına göre (Ocak, Şubat, Mart...)
* Sahibine göre (Ekip üyesi A, Ekip üyesi B...)
* Duruma göre (Aktif, Pasif...)
### Option 2: Use the API
### Seçenek 2: API'yi kullanın
The API has no record limit:
API'nin kayıt sınırı yoktur:
1. Get your API key from **Settings → Developers**
2. Use the GraphQL API to query records
3. Process results in your application
1. API anahtarınızı **Settings → Developers** bölümünden alın
2. Kayıtları sorgulamak için GraphQL API'sini kullanın
3. Sonuçları uygulamanızda işleyin
See: [API Documentation](/l/tr/developers/extend/capabilities/apis)
Bkz: [API Belgeleri](/l/tr/developers/extend/capabilities/apis)
## Tips and Best Practices
## İpuçları ve En İyi Uygulamalar
### Create Export Views
### Dışa Aktarma Görünümleri Oluşturun
Save views configured specifically for exports:
Özellikle dışa aktarma için yapılandırılmış görünümleri kaydedin:
1. Configure columns and filters
2. Click **View options** → **Save as new view**
3. Name it "Export - [Purpose]"
1. Sütunları ve filtreleri yapılandırın
2. **View options** → **Save as new view** seçeneğine tıklayın
3. Adını "Export - [Purpose]" olarak verin
### Secure Your Exports
### Dışa Aktarmalarınızı Güvenceye Alın
Exported files may contain sensitive data:
Dışa aktarılan dosyalar hassas veriler içerebilir:
* Store in secure locations
* Delete old exports when no longer needed
* Be careful sharing export files
* Güvenli konumlarda depolayın
* Artık gerekmediğinde eski dışa aktarmaları silin
* Dışa aktarma dosyalarını paylaşırken dikkatli olun
### Check Before Exporting
### Dışa Aktarmadan Önce Kontrol Edin
<Check>Correct columns are visible</Check>
<Check>Filters are set correctly (or removed for full export)</Check>
<Check>You have Export permission</Check>
<Check>Doğru sütunlar görünür</Check>
<Check>Filtreler doğru ayarlanmış (veya tam dışa aktarma için kaldırılmış)</Check>
<Check>Dışa aktarma iznine sahipsiniz</Check>
## FAQ
## SSS
<AccordionGroup>
<Accordion title="Why are some columns missing from my export?">
Only visible columns are exported. Add the columns you need via **Options → Fields** before exporting.
<Accordion title="Dışa aktarmamda bazı sütunlar neden eksik?">
Yalnızca görünür sütunlar dışa aktarılır. Dışa aktarmadan önce ihtiyaç duyduğunuz sütunları **Options → Fields** üzerinden ekleyin.
</Accordion>
<Accordion title="Why doesn't my export have all records?">
Check your filters. The export only includes records matching your current view filters. Remove filters to export all records.
<Accordion title="Dışa aktarmamda neden tüm kayıtlar yok?">
Filtrelerinizi kontrol edin. Dışa aktarma, yalnızca mevcut görünüm filtrelerinizle eşleşen kayıtları içerir. Tüm kayıtları dışa aktarmak için filtreleri kaldırın.
</Accordion>
<Accordion title="Can I export more than 20,000 records?">
Not in a single export. Use filters to export in batches, or use the API for larger datasets.
<Accordion title="20.000'den fazla kayıt dışa aktarabilir miyim?">
Tek bir dışa aktarmada mümkün değil. Partiler halinde dışa aktarmak için filtreleri kullanın veya daha büyük veri kümeleri için API'yi kullanın.
</Accordion>
<Accordion title="What format is the export file?">
CSV (Comma Separated Values). Opens in Excel, Google Sheets, or any spreadsheet application.
<Accordion title="Dışa aktarma dosyasının biçimi nedir?">
CSV (Virgülle Ayrılmış Değerler). Excel, Google Sheets veya herhangi bir hesap tablosu uygulamasında açılır.
</Accordion>
<Accordion title="Are relation IDs included?">
Yes, but only on the "many" side of relationships. For example, a People export includes `companyId`, but a Companies export does not include people IDs.
<Accordion title="İlişki ID'leri dahil mi?">
Evet, ancak yalnızca ilişkilerin "çok" tarafında. Örneğin, bir People dışa aktarması `companyId` içerir, ancak bir Companies dışa aktarması people ID'lerini içermez.
</Accordion>
<Accordion title="Can I automate exports?">
Not directly through the UI. Use the API to build automated export workflows.
<Accordion title="Dışa aktarmaları otomatikleştirebilir miyim?">
Doğrudan UI üzerinden değil. Otomatik dışa aktarma iş akışları oluşturmak için API'yi kullanın.
</Accordion>
</AccordionGroup>
## Sonraki Adımlar
* [How to Update Existing Records](/l/tr/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
* [How to Import Data via API](/l/tr/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
* [API Documentation](/l/tr/developers/extend/capabilities/apis) — build custom export workflows
* [Mevcut Kayıtlar Nasıl Güncellenir](/l/tr/user-guide/data-migration/how-tos/update-existing-records-via-import) — dışa aktarmanızı düzenleyin ve yeniden içe aktarın
* [API ile Veri Nasıl İçe Aktarılır](/l/tr/user-guide/data-migration/how-tos/import-data-via-api) — büyük veri kümeleri için
* [API Belgeleri](/l/tr/developers/extend/capabilities/apis) — özel dışa aktarma iş akışları oluşturun
@@ -1,6 +1,6 @@
---
title: Twenty nedir
description: Twenty is an open-source CRM that gives you the building blocks to create exactly what your business needs.
description: Twenty, işletmenizin tam olarak ihtiyaç duyduğu şeyi oluşturmanız için size yapı taşlarını sunan açık kaynaklı bir Müşteri İlişkileri Yönetimi (CRM) sistemidir.
---
## Vizyon
@@ -26,16 +26,16 @@ Açık kaynak, yaklaşımımızın temel taşıdır, Twenty'nin topluluğu ile b
## Ana Özellikler
* **Calendar & Emails:** Sync your mailbox and calendar to see all communications on your CRM records. [Daha Fazla Bilgi Edinin](/l/tr/user-guide/calendar-emails/overview).
* **Data Model:** Create custom objects and fields to match your unique business processes. [Explore](/l/tr/user-guide/data-model/overview).
* **Data Migration:** Import and export your data via CSV or API. [Başlayın](/l/tr/user-guide/data-migration/overview).
* **Views & Pipelines:** Organize your data with table views, kanban boards, and sales pipelines. [Discover](/l/tr/user-guide/views-pipelines/overview).
* **Workflows:** Automate your business processes and integrate with external tools. [Build automations](/l/tr/user-guide/workflows/overview).
* **AI:** Enhance your CRM with AI-powered features and agents. [Explore AI](/l/tr/user-guide/ai/overview).
* **Dashboards:** Track performance with custom reports and visualizations. [View dashboards](/l/tr/user-guide/dashboards/overview).
* **Permissions & Access:** Control who can view, edit, and manage your data with role-based permissions. [Configure access](/l/tr/user-guide/permissions-access/overview).
* **Notes & Tasks:** Create notes and tasks linked to your records for better collaboration.
* **API & Webhooks:** Connect to other apps and build custom integrations. [Start integrating](/l/tr/developers/extend/capabilities/apis).
* **Takvim ve E-postalar:** Müşteri İlişkileri Yönetimi (CRM) kayıtlarınızda tüm iletişimleri görmek için posta kutunuzu ve takviminizi senkronize edin. [Daha Fazla Bilgi Edinin](/l/tr/user-guide/calendar-emails/overview).
* **Veri Modeli:** Benzersiz iş süreçlerinize uyması için özel nesneler ve alanlar oluşturun. [Keşfet](/l/tr/user-guide/data-model/overview).
* **Veri Geçişi:** Verilerinizi CSV veya API aracılığıyla içe ve dışa aktarın. [Başlayın](/l/tr/user-guide/data-migration/overview).
* **Görünümler ve Boru Hatları:** Verilerinizi tablo görünümleri, kanban panoları ve satış boru hatlarıyla düzenleyin. [Keşfet](/l/tr/user-guide/views-pipelines/overview).
* **İş Akışları:** İş süreçlerinizi otomatikleştirin ve harici araçlarla entegre edin. [Otomasyonlar oluşturun](/l/tr/user-guide/workflows/overview).
* **Yapay Zekâ:** CRM'inizi yapay zekâ destekli özellikler ve ajanlarla geliştirin. [Yapay zekâyı keşfedin](/l/tr/user-guide/ai/overview).
* **Panolar:** Özel raporlar ve görselleştirmelerle performansı izleyin. [Panoları görüntüleyin](/l/tr/user-guide/dashboards/overview).
* **İzinler ve Erişim:** Rol tabanlı izinlerle verilerinizi kimlerin görüntüleyebileceğini, düzenleyebileceğini ve yönetebileceğini kontrol edin. [Erişimi yapılandırın](/l/tr/user-guide/permissions-access/overview).
* **Notlar ve Görevler:** Daha iyi iş birliği için kayıtlarınıza bağlı notlar ve görevler oluşturun.
* **API & Webhooks:** Diğer uygulamalara bağlanın ve özel entegrasyonlar oluşturun. [Start integrating](/l/tr/developers/extend/capabilities/apis).
## Şimdi katılın
@@ -1,46 +1,46 @@
---
title: Takvim Görünümü
description: Display records with date fields on a calendar.
description: Tarih alanlarına sahip kayıtları bir takvimde görüntüleyin.
---
## About Calendar View
## Takvim Görünümü Hakkında
Calendar view displays your records on a calendar based on a date field. Each record appears as an event on the corresponding date.
Takvim görünümü, kayıtlarınızı bir tarih alanına göre bir takvimde görüntüler. Her kayıt, ilgili tarihte bir etkinlik olarak görünür.
<img src="/images/user-guide/views/calendar-view-zoom.png" style={{width:'100%'}} />
## Creating a Calendar View
## Takvim Görünümü Oluşturma
1. Navigate to an object with date fields
2. Click the view dropdown → **+ Add view**
3. Name your view and click **Create**
4. Open the **Options** on the right
5. Select **Calendar** as the layout
6. Choose the **date field** to use for positioning records
7. Click **Update view**
1. Tarih alanları olan bir nesneye gidin
2. Görünüm açılır menüsüne tıklayın → **+ Görünüm ekle**
3. Görünümünüze bir ad verin ve **Oluştur**'a tıklayın
4. Sağ taraftaki **Seçenekler**'i açın
5. Düzen olarak **Takvim**'i seçin
6. Kayıtları konumlandırmak için kullanılacak **tarih alanını** seçin
7. **Görünümü güncelle**'ye tıklayın
## Configuring the Calendar
## Takvimi Yapılandırma
### Choose the Date Field
### Tarih Alanını Seçin
Under **Options**, select which date field determines where records appear on the calendar.
**Seçenekler** altında, kayıtların takvimde nerede görüneceğini belirleyen tarih alanını seçin.
### Display Fields
### Görüntülenecek Alanlar
Configure which fields show on each calendar event:
Her takvim etkinliğinde hangi alanların gösterileceğini yapılandırın:
1. Click **Options → Fields**
2. Toggle fields on/off
3. Drag to reorder
1. **Seçenekler → Alanlar**'a tıklayın
2. Alanları etkinleştir/devre dışı bırakın
3. Yeniden sıralamak için sürükleyin
## Use Cases
## Kullanım Senaryoları
* **Meetings and calls**: View upcoming appointments
* **Deadlines**: Track due dates and close dates
* **Events**: Plan and visualize scheduled activities
* **Follow-ups**: See when tasks are due
* **Toplantılar ve aramalar**: Yaklaşan randevuları görüntüleyin
* **Son tarihler**: Son tarihleri ve kapanış tarihlerini takip edin
* **Etkinlikler**: Faaliyetleri planlayın ve zamanlamayı görselleştirin
* **Takipler**: Görevlerin son tarihlerini görün
## Related
## İlgili
* [Views Overview](/l/tr/user-guide/views-pipelines/overview) — creating and managing views
* [Filters and Sorting](/l/tr/user-guide/views-pipelines/capabilities/filters-and-sorting) — filtering calendar data
* [Görünümlere Genel Bakış](/l/tr/user-guide/views-pipelines/overview) — görünümler oluşturma ve yönetme
* [Filtreler ve Sıralama](/l/tr/user-guide/views-pipelines/capabilities/filters-and-sorting) — takvim verilerini filtreleme
@@ -1,51 +1,51 @@
---
title: Create a Table View with Grouping
description: Organize your records into collapsible groups by field value.
title: Gruplama ile Tablo Görünümü oluşturun
description: Kayıtlarınızı alan değerine göre daraltılabilir gruplar halinde düzenleyin.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
Group your table view by a Select field to organize records into collapsible sections.
Kayıtları daraltılabilir bölümler halinde düzenlemek için tablo görünümünüzü bir Select alanına göre gruplayın.
<img src="/images/user-guide/table-views/table-group-by.png" style={{width:'100%'}} />
## Steps
## Adımlar
1. Navigate to the object (People, Companies, etc.)
2. Click the view dropdown → **+ Add view**
3. Name your view (e.g., "Companies by Type")
4. Click **Create**
5. Click **Options → Group**
6. Choose a Select field to group by
1. Nesneye gidin (Kişiler, Şirketler vb.)
2. Görünüm açılır menüsüne tıklayın → **+ Görünüm ekle**
3. Görünümünüze ad verin (örn. "Türe Göre Şirketler")
4. **Oluştur**'a tıklayın
5. **Seçenekler → Grupla**'ya tıklayın
6. Gruplamak için bir Select alanı seçin
7. **Kaydet**'e tıklayın
## Configure Group Order
## Grup Sırasını Yapılandırın
Under **Options → Group → Sort**, choose how groups are ordered:
**Seçenekler → Grupla → Sırala** altında, grupların nasıl sıralanacağını seçin:
| Seçenek | Açıklama |
| ------------------------ | --------------------------------------------- |
| **Alphabetical** | A to Z |
| **Reverse alphabetical** | Z to A |
| **Manual order** | Drag groups to reorder under "Visible groups" |
| Seçenek | Açıklama |
| ------------------- | -------------------------------------------------------------------- |
| **Alfabetik** | A'dan Z'ye |
| **Ters alfabetik** | Z'den A'ya |
| **El ile sıralama** | "Görünür gruplar" altında grupları yeniden sıralamak için sürükleyin |
Click the **eye icon** next to a group to hide it from the view.
Bir grubu görünümden gizlemek için yanındaki **göz simgesine** tıklayın.
<Note>
**For best performance, limit to 10-15 visible groups.** If you need more, consider using a Dashboard instead.
**En iyi performans için görünür grupları 10-15 ile sınırlandırın.** Daha fazlasına ihtiyacınız varsa, bunun yerine bir Dashboard kullanmayı düşünün.
</Note>
## Example: Companies by Industry
## Örnek: Sektöre Göre Şirketler
1. Go to **Companies**
2. Create a new view named "By Industry"
3. Click **Options → Group**
4. Select the **Industry** field
1. **Şirketler**'e gidin
2. "Sektöre Göre" adlı yeni bir görünüm oluşturun
3. **Seçenekler → Grupla**'ya tıklayın
4. **Sektör** alanını seçin
5. Kaydet
Now your companies are organized by industry, making it easy to focus on one segment at a time.
Artık şirketleriniz sektöre göre düzenlendi; böylece tek bir segmente odaklanmanız kolaylaşır.
## Related
## İlgili
* [Table Views](/l/tr/user-guide/views-pipelines/capabilities/table-views) — all table view features
* [Filters and Sorting](/l/tr/user-guide/views-pipelines/capabilities/filters-and-sorting) — combine grouping with filters
* [Tablo Görünümleri](/l/tr/user-guide/views-pipelines/capabilities/table-views) — tüm tablo görünümü özellikleri
* [Filtreler ve Sıralama](/l/tr/user-guide/views-pipelines/capabilities/filters-and-sorting) — gruplamayı filtrelerle birleştirin
@@ -1,44 +1,44 @@
---
title: Set Up a Webhook Trigger
description: Receive data from external services to trigger workflows.
title: Bir Webhook Tetikleyicisi Ayarlayın
description: İş akışlarını tetiklemek için harici hizmetlerden veri alın.
image: /images/user-guide/workflows/workflow.png
---
Webhook triggers allow external services to start your workflows by sending data to a unique URL. Use them to connect forms, third-party apps, and custom integrations.
Webhook tetikleyicileri, harici hizmetlerin benzersiz bir URL'ye veri göndererek iş akışlarınızı başlatmasına olanak tanır. Formları, üçüncü taraf uygulamaları ve özel entegrasyonları bağlamak için bunları kullanın.
## When to Use Webhooks
## Webhook'lar Ne Zaman Kullanılır
| Use Case | Örnek |
| ----------------------- | --------------------------------------- |
| **Web forms** | Contact form submissions create leads |
| **Third-party apps** | Stripe payment → create customer record |
| **Custom integrations** | Your app → Twenty automation |
| **No-code tools** | Zapier, Make, n8n connections |
| Kullanım alanı | Örnek |
| ----------------------------- | -------------------------------------------------------- |
| **Web formları** | İletişim formu gönderimleri potansiyel müşteri oluşturur |
| **Üçüncü taraf uygulamalar** | Stripe ödemesi → müşteri kaydı oluşturur |
| **Özel entegrasyonlar** | Uygulamanız → Twenty otomasyonu |
| **Kod gerektirmeyen araçlar** | Zapier, Make, n8n bağlantıları |
## Step-by-Step Setup
## Adım adım kurulum
### Step 1: Create the Workflow
### Adım 1: İş akışını oluşturun
1. Go to **Settings → Workflows**
2. Click **+ New Workflow**
3. Name it (e.g., "Website Form Submission")
1. **Ayarlar → İş Akışları** bölümüne gidin
2. **+ Yeni İş Akışı**'na tıklayın
3. Adlandırın (ör. "Website Form Submission")
### Step 2: Configure the Webhook Trigger
### Adım 2: Webhook tetikleyicisini yapılandırın
1. Click on the trigger block
2. Select **Webhook**
3. You'll receive a unique webhook URL like:
1. Tetikleyici bloğuna tıklayın
2. **Webhook**'u seçin
3. Şuna benzer benzersiz bir webhook URL'si alacaksınız:
```
https://api.twenty.com/webhooks/workflow/abc123...
```
4. Copy this URL—you'll need it for your external service
4. Bu URL'yi kopyalayın—harici hizmetiniz için buna ihtiyacınız olacak
### Step 3: Define Expected Data Structure
### Adım 3: Beklenen veri yapısını tanımlayın
For **POST** requests, define the expected body structure:
**POST** istekleri için beklenen gövde yapısını tanımlayın:
1. Click **Define expected body**
2. Enter a sample JSON that matches what your service will send:
1. **Beklenen gövdeyi tanımla**'ya tıklayın
2. Hizmetinizin göndereceğiyle eşleşen örnek bir JSON girin:
```json
{
@@ -50,30 +50,30 @@ For **POST** requests, define the expected body structure:
}
```
3. Click **Save**—this creates variables you can use in subsequent steps
3. **Kaydet**'e tıklayın—bu, sonraki adımlarda kullanabileceğiniz değişkenler oluşturur
### Step 4: Add Actions
### Adım 4: Eylemler ekleyin
Now add actions that use the webhook data:
Şimdi webhook verisini kullanan eylemler ekleyin:
**Example: Create a Person record**
**Örnek: Bir Kişi kaydı oluşturun**
1. Add **Create Record** action
2. Select **People** object
3. Map fields:
1. **Kayıt Oluştur** eylemini ekleyin
2. **Kişiler** nesnesini seçin
3. Alanları eşleyin:
| Alan | Değer |
| ------- | ---------------------------------------------------- |
| İsim | `{{trigger.body.firstName}}` |
| Soyadı | `{{trigger.body.lastName}}` |
| E-posta | `{{trigger.body.email}}` |
| Şirket | Search or create based on `{{trigger.body.company}}` |
| Alan | Değer |
| ------- | ------------------------------------------------------- |
| İsim | `{{trigger.body.firstName}}` |
| Soyadı | `{{trigger.body.lastName}}` |
| E-posta | `{{trigger.body.email}}` |
| Şirket | `{{trigger.body.company}}` temelinde ara veya oluşturun |
### Step 5: Test the Webhook
### Adım 5: Webhook'u test edin
Before activating, test your webhook:
Etkinleştirmeden önce, webhook'unuzu test edin:
**Using cURL**:
**cURL kullanarak**:
```bash
curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
@@ -81,22 +81,22 @@ curl -X POST https://api.twenty.com/webhooks/workflow/abc123... \
-d '{"firstName":"Test","lastName":"User","email":"test@example.com"}'
```
**Using Postman or similar**:
**Postman veya benzerini kullanarak**:
1. Create a POST request to your webhook URL
2. Set Content-Type header to `application/json`
3. Add your test JSON body
4. Send and check workflow runs
1. Webhook URL'nize bir POST isteği oluşturun
2. Content-Type üst bilgisini `application/json` olarak ayarlayın
3. Test JSON gövdenizi ekleyin
4. Gönderin ve iş akışı çalıştırmalarını kontrol edin
### Step 6: Activate
### Adım 6: Etkinleştir
Once tested, click **Activate** to make the workflow live.
Test edildikten sonra, iş akışını yayına almak için **Etkinleştir**'e tıklayın.
## Handling Different Data Structures
## Farklı veri yapılarıyla çalışma
### Nested Data
### İç içe veri
If your webhook sends nested data:
Webhook'unuz iç içe veri gönderiyorsa:
```json
{
@@ -108,11 +108,11 @@ If your webhook sends nested data:
}
```
Reference with: `{{trigger.body.contact.email}}`
Şu şekilde referans verin: `{{trigger.body.contact.email}}`
### Arrays
### Diziler
If data includes arrays:
Veri diziler içeriyorsa:
```json
{
@@ -123,11 +123,11 @@ If data includes arrays:
}
```
How you handle arrays depends on your use case:
Dizileri nasıl ele alacağınız kullanım durumunuza bağlıdır:
**Unknown number of items → Use Iterator**
**Bilinmeyen öğe sayısı → Iterator kullanın**
If you need to process each item in the array (e.g., create a record for each), add a **Code** action to parse the array, then use **Iterator**:
Dizideki her öğeyi işlemeniz gerekiyorsa (ör. her biri için bir kayıt oluşturmak), diziyi ayrıştırmak için bir **Kod** eylemi ekleyin, ardından **Iterator** kullanın:
```javascript
export const main = async (params: { items: any }) => {
@@ -138,11 +138,11 @@ export const main = async (params: { items: any }) => {
};
```
Then use Iterator to loop through: `{{code.items}}`
Ardından döngü için Iterator kullanın: `{{code.items}}`
**Known/specific fields → Extract to named fields**
**Bilinen/belirli alanlar → Adlandırılmış alanlara ayıklayın**
If the array contains specific fields you want to access individually (e.g., form answers where position 0 is always "first name", position 1 is always "last name"), add a **Code** action to extract them:
Dizi, ayrı ayrı erişmek istediğiniz belirli alanlar içeriyorsa (ör. konum 0 her zaman "first name", konum 1 her zaman "last name" ise), bunları ayıklamak için bir **Kod** eylemi ekleyin:
```javascript
export const main = async (params: { items: any }) => {
@@ -159,13 +159,13 @@ export const main = async (params: { items: any }) => {
};
```
Now you can select `product.name` and `product.qty` individually in subsequent steps.
Artık sonraki adımlarda `product.name` ve `product.qty` öğelerini ayrı ayrı seçebilirsiniz.
<Tip>
For more details on handling arrays, see [Handle Arrays in Code Actions](/l/tr/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
Dizileri ele alma hakkında daha fazla ayrıntı için bkz. [Kod Eylemlerinde Dizileri Ele Alma](/l/tr/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions).
</Tip>
## Related
## İlgili
* [Workflow Triggers](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
* [Workflow Actions](/l/tr/user-guide/workflows/capabilities/workflow-actions)
* [İş Akışı Tetikleyicileri](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
* [İş Akışı Eylemleri](/l/tr/user-guide/workflows/capabilities/workflow-actions)
@@ -1,48 +1,48 @@
---
title: Workflows FAQ
description: Frequently asked questions about workflows in Twenty.
title: İş Akışları SSS
description: Twenty'deki iş akışları hakkında sıkça sorulan sorular.
---
<AccordionGroup>
<Accordion title="Why can't I activate a workflow?">
This is likely a permissions issue. You need access to workflows to create and activate them.
<Accordion title="Bir iş akışını neden etkinleştiremiyorum?">
Bu muhtemelen bir yetki sorunudur. İş akışlarını oluşturmak ve etkinleştirmek için iş akışlarına erişiminiz olmalıdır.
**Solution**: Contact your workspace administrator to grant you workflow access under **Settings → Roles**.
**Çözüm**: **Ayarlar → Roller** altında size iş akışı erişimi vermesi için çalışma alanı yöneticinizle iletişime geçin.
If you don't see the Workflows section at all in your sidebar, this confirms it's a permissions issue.
Kenar çubuğunuzda İş Akışları bölümünü hiç görmüyorsanız, bunun bir yetki sorunu olduğunu doğrular.
</Accordion>
<Accordion title="Why don't I see my manual workflow button in the top navbar?">
Manual workflows only appear in the navbar if properly configured:
<Accordion title="Üst gezinme çubuğunda manuel iş akışım düğmesini neden görmüyorum?">
Manuel iş akışları, doğru şekilde yapılandırılmışsa üst gezinme çubuğunda görünür:
1. The workflow must be **activated** (not in draft mode)
2. The navbar placement must be set to **Pinned**
3. For Single/Bulk triggers, you must be on the correct object page
1. İş akışı **etkinleştirilmiş** olmalıdır (taslak modunda olmamalı)
2. Üst gezinme çubuğu konumu **Pinned** olarak ayarlanmış olmalıdır
3. Single/Bulk tetikleyiciler için, doğru nesne sayfasında olmanız gerekir
**To check**: Open the workflow → click the trigger → verify "Navbar placement" is set to "Pinned".
**Kontrol etmek için**: iş akışını açın → tetikleyiciye tıklayın → "Navbar placement" alanının "Pinned" olarak ayarlandığını doğrulayın.
You can always access manual workflows via **Cmd + K** (or **Ctrl + K**) regardless of navbar settings.
Üst gezinme çubuğu ayarlarından bağımsız olarak manuel iş akışlarına her zaman **Cmd + K** (veya **Ctrl + K**) ile erişebilirsiniz.
</Accordion>
<Accordion title="What's the difference between Single, Global, and Bulk manual triggers?">
| Tür | Records Required | İş Akışı Çalıştırmaları |
<Accordion title="Single, Global ve Bulk manuel tetikleyiciler arasındaki fark nedir?">
| Tür | Gerekli Kayıtlar | İş Akışı Çalıştırmaları |
| --- | ---------------- | ----------------------- |
\| **Global** | None | Once, no record input |
\| **Single** | One or more selected | Once per selected record |
\| **Bulk** | One or more selected | Once, with all records as array |
\| **Global** | Yok | Bir kez, kayıt girişi olmadan |
\| **Single** | Bir veya daha fazlası seçili | Seçilen her kayıt için bir kez |
\| **Bulk** | Bir veya daha fazlası seçili | Bir kez, tüm kayıtlar dizi olarak |
* **Global**: Use when the workflow doesn't need any record context (e.g., generate a report)
* **Single**: Use when you want to process each selected record independently (e.g., send individual emails)
* **Bulk**: Use when you need to process records together or optimize credit usage (requires Iterator action)
* **Global**: İş akışının herhangi bir kayıt bağlamına ihtiyaç duymadığı durumlarda kullanın (ör. bir rapor oluşturma)
* **Single**: Seçilen her kaydı bağımsız olarak işlemek istediğinizde kullanın (ör. bireysel e-postalar gönderme)
* **Bulk**: Kayıtları birlikte işlemeniz veya kredi kullanımını optimize etmeniz gerektiğinde kullanın (Iterator eylemi gerektirir)
See [Workflow Triggers](/l/tr/user-guide/workflows/capabilities/workflow-triggers) for details.
Ayrıntılar için [İş Akışı Tetikleyicileri](/l/tr/user-guide/workflows/capabilities/workflow-triggers) bölümüne bakın.
</Accordion>
<Accordion title="I don't see an If/Else node. Ne yapmalıyım?">
An explicit If/Else node is not yet available but is on our roadmap.
<Accordion title="Bir If/Else düğümü görmüyorum. Ne yapmalıyım?">
Açık bir If/Else düğümü henüz mevcut değil, ancak yol haritamızda yer alıyor.
**Current workaround**: Create multiple branches from your step, each starting with a **Filter** action:
**Geçici çözüm**: Adımınızdan birden fazla dal oluşturun; her biri bir **Filter** eylemiyle başlasın:
```
Step 1
@@ -52,203 +52,203 @@ description: Frequently asked questions about workflows in Twenty.
└── Branch B: Filter (condition = false) → Actions...
```
Only the branch where the filter condition passes will execute its subsequent actions.
Yalnızca filtre koşulu geçen dal, sonraki eylemlerini çalıştırır.
See [How to Use Branches](/l/tr/user-guide/workflows/capabilities/workflow-branches) for a step-by-step guide.
Adım adım bir kılavuz için [Dalları Nasıl Kullanılır](/l/tr/user-guide/workflows/capabilities/workflow-branches) bölümüne bakın.
</Accordion>
<Accordion title="Are workflow branches running in parallel?">
**Yes**, branches run in parallel by default.
<Accordion title="İş akışı dalları paralel mi çalışıyor?">
**Evet**, dallar varsayılan olarak paralel çalışır.
If you want only one branch to execute:
Yalnızca bir dalın çalışmasını istiyorsanız:
* Add a **Filter** action at the start of each branch
* Set opposite conditions (e.g., Branch A: status = "Open", Branch B: status ≠ "Open")
* Her dalın başlangıcına bir **Filter** eylemi ekleyin
* Zıt koşullar ayarlayın (ör. Dal A: status = "Open", Dal B: status ≠ "Open")
Branches that fail their filter condition stop executing, while others continue.
Filtre koşulunu sağlamayan dallar çalışmayı durdurur, diğerleri devam eder.
</Accordion>
<Accordion title="Can I merge branches back together?">
**Yes**. After your parallel branches complete, you can add a step that both branches connect to.
<Accordion title="Dalları yeniden birleştirebilir miyim?">
**Evet**. Paralel dallarınız tamamlandıktan sonra, her iki dalın da bağlanacağı bir adım ekleyebilirsiniz.
In the workflow editor:
İş Akışı Düzenleyicisinde:
1. Complete your branched actions
2. Add a new step after the branches
3. Drag connections from the end of each branch to this new step
1. Dallanmış eylemlerinizi tamamlayın
2. Dallardan sonra yeni bir adım ekleyin
3. Her dalın sonundan bu yeni adıma bağlantıları sürükleyin
The merged step will execute after all connected branches complete.
Birleştirilen adım, bağlı tüm dallar tamamlandıktan sonra çalışacaktır.
</Accordion>
<Accordion title="What's the limit on Search Records results?">
**Search Records returns a maximum of 200 records.**
<Accordion title="Search Records sonuçlarının sınırı nedir?">
**Search Records en fazla 200 kayıt döndürür.**
If you need to process more:
Daha fazlasını işlemeniz gerekiyorsa:
* Add more specific filters to reduce results
* Use scheduled workflows to process in batches
* Consider using the API for bulk operations
* Sonuçları azaltmak için daha spesifik filtreler ekleyin
* Toplu işlem yapmak için zamanlanmış iş akışlarını kullanın
* Toplu işlemler için API kullanmayı düşünün
For most workflows, 200 records is sufficient. If you regularly hit this limit, consider restructuring your automation.
Çoğu iş akışı için 200 kayıt yeterlidir. Bu sınıra düzenli olarak ulaşıyorsanız otomasyonunuzu yeniden yapılandırmayı düşünün.
</Accordion>
<Accordion title="Can I CC people on workflow emails?">
**Not yet.** CC and BCC fields for the Send Email action are on our roadmap.
<Accordion title="İş akışı e-postalarında kişileri CC'ye ekleyebilir miyim?">
**Henüz değil.** Send Email eylemi için CC ve BCC alanları yol haritamızda.
**Current workaround**: Add multiple Send Email actions to send to additional recipients, or use an HTTP Request to send via an external email service that supports CC.
**Geçici çözüm**: Ek alıcılara göndermek için birden fazla Send Email eylemi ekleyin veya CC'yi destekleyen harici bir e-posta hizmeti üzerinden göndermek için bir HTTP Request kullanın.
</Accordion>
<Accordion title="How do I use outputs from previous steps?">
Every action produces output data that can be used in subsequent steps.
<Accordion title="Önceki adımların çıktılarını nasıl kullanırım?">
Her eylem, sonraki adımlarda kullanılabilecek çıktı verileri üretir.
**To reference previous step data**:
**Önceki adım verilerine başvurmak için**:
* Use the variable picker when configuring a field
* Or type `{{stepName.fieldName}}` directly
* Bir alanı yapılandırırken değişken seçiciyi kullanın
* Ya da doğrudan `{{stepName.fieldName}}` yazın
**Örnekler**:
* Trigger data: `{{trigger.object.email}}`
* Search results: `{{searchRecords[0].name}}`
* Code output: `{{code.calculatedValue}}`
* Tetikleyici verisi: `{{trigger.object.email}}`
* Arama sonuçları: `{{searchRecords[0].name}}`
* Kod çıktısı: `{{code.calculatedValue}}`
Hover over any field in the action configuration to see available variables from previous steps.
Eylem yapılandırmasında herhangi bir alanın üzerine gelerek önceki adımlardan kullanılabilir değişkenleri görebilirsiniz.
</Accordion>
<Accordion title="Why does my Iterator fail?">
**Iterator requires an array input.** Common issues:
<Accordion title="Iterator neden başarısız oluyor?">
**Iterator bir dizi girdisi gerektirir.** Yaygın sorunlar:
1. **Input is not an array**: Ensure you're passing results from Search Records or another action that returns an array
2. **Array is empty**: Add a filter before Iterator to check `{{searchRecords.length}} > 0`
3. **Wrong variable selected**: Make sure you select the array itself, not a single record
1. **Girdi bir dizi değil**: Search Records'tan veya bir dizi döndüren başka bir eylemden gelen sonuçları ilettiğinizden emin olun
2. **Dizi boş**: Iterator'dan önce `{{searchRecords.length}} > 0` kontrolü için bir filtre ekleyin
3. **Yanlış değişken seçildi**: Tek bir kayıt yerine dizinin kendisini seçtiğinizden emin olun
**Correct setup**:
**Doğru kurulum**:
1. Search Records (returns array)
1. Search Records (dizi döndürür)
2. Filter: length > 0
3. Iterator: select `{{searchRecords}}`
4. Actions inside iterator use `{{iterator.currentItem.fieldName}}`
3. Iterator: `{{searchRecords}}` öğesini seçin
4. Iterator içindeki eylemler `{{iterator.currentItem.fieldName}}` kullanır
</Accordion>
<Accordion title="What's the maximum execution time for Code actions?">
Code actions (serverless functions) have a **default timeout of 5 minutes** (300 seconds).
<Accordion title="Code eylemleri için en uzun yürütme süresi nedir?">
Code eylemlerinin (sunucusuz fonksiyonlar) **varsayılan zaman aşımı 5 dakikadır** (300 saniye).
The maximum configurable timeout is **15 minutes** (900 seconds).
Yapılandırılabilir en yüksek zaman aşımı **15 dakikadır** (900 saniye).
If your code exceeds this limit, the action will fail with a timeout error.
Kodunuz bu sınırı aşarsa, eylem zaman aşımı hatasıyla başarısız olur.
**Tips to avoid timeouts**:
**Zaman aşımından kaçınma ipuçları**:
* Break large operations into smaller chunks using Iterator
* Avoid heavy computations; use external services via HTTP Request for intensive processing
* Optimize your code to reduce execution time
* If you need longer processing, consider using scheduled workflows that process data in batches
* Büyük işlemleri Iterator kullanarak daha küçük parçalara bölün
* Ağır hesaplamalardan kaçının; yoğun işlemler için HTTP Request üzerinden harici hizmetler kullanın
* Yürütme süresini azaltmak için kodunuzu optimize edin
* Daha uzun işlemeye ihtiyacınız varsa, verileri toplu olarak işleyen zamanlanmış iş akışlarını kullanmayı düşünün
</Accordion>
<Accordion title="How do I read workflow runs?">
Workflow runs show the execution history and help you debug issues.
<Accordion title="İş akışı çalıştırmalarını nasıl incelerim?">
İş akışı çalıştırmaları yürütme geçmişini gösterir ve sorunları ayıklamanıza yardımcı olur.
**Access runs**:
**Çalıştırmalara erişim**:
* In workflow editor → **Runs** panel on the right
* Or go to **Workflow Runs** in the sidebar
* İş akışı düzenleyicisinde → sağdaki **Runs** paneli
* Ya da kenar çubuğunda **İş Akışı Çalıştırmaları**'na gidin
**Understanding a run**:
**Bir çalıştırmayı anlamak**:
* **Status**: Running, Completed, Failed, Waiting
* **Steps**: See which steps executed and their output
* **Errors**: Click failed steps to see error messages
* **Data**: View input/output data at each step
* **Durum**: Running, Completed, Failed, Waiting
* **Adımlar**: Hangi adımların çalıştığını ve çıktısını görün
* **Hatalar**: Hata ile sonuçlanan adımlara tıklayarak hata mesajlarını görün
* **Veri**: Her adımda giriş/çıkış verilerini görüntüleyin
See [Workflow Runs](/l/tr/user-guide/workflows/capabilities/workflow-runs) for details.
Ayrıntılar için [İş Akışı Çalıştırmaları](/l/tr/user-guide/workflows/capabilities/workflow-runs) bölümüne bakın.
</Accordion>
<Accordion title="Why don't I see my workflow runs?">
Workflow runs might be failing immediately due to rate limits.
<Accordion title="İş akışı çalıştırmalarımı neden görmüyorum?">
İş akışı çalıştırmaları hız sınırları nedeniyle anında başarısız oluyor olabilir.
**Hard limit: 5,000 runs per hour per workspace.**
**Katı sınır: çalışma alanı başına saatte 5.000 çalıştırma.**
If you exceed this limit, workflows are immediately marked as failed and won't appear in your runs list as expected.
Bu sınırı aşarsanız, iş akışları derhal başarısız olarak işaretlenir ve beklendiği gibi çalıştırma listenizde görünmez.
**Common scenarios that hit this limit**:
**Bu sınıra ulaşan yaygın senaryolar**:
* Selecting more than 5,000 records with a Single manual trigger
* Multiple workflows running simultaneously across your workspace
* High-frequency automated triggers (e.g., Record Updated on a busy object)
* Single manuel tetikleyici ile 5.000'den fazla kayıt seçmek
* Çalışma alanınız genelinde eşzamanlı olarak birden fazla iş akışının çalışması
* Yüksek frekanslı otomatik tetikleyiciler (ör. yoğun bir nesnede Record Updated)
**Çözümler**:
* Use **Bulk** triggers instead of Single to process many records in one run
* Space out large batch operations
* Use filters to reduce trigger frequency
* Schedule heavy workflows during off-peak hours
* Tek bir çalıştırmada birçok kaydı işlemek için Single yerine **Bulk** tetikleyicileri kullanın
* Büyük toplu işlemleri zamana yayın
* Tetikleyici frekansını azaltmak için filtreler kullanın
* Ağır iş akışlarını yoğun olmayan saatlerde zamanlayın
</Accordion>
<Accordion title="What are the workflow rate limits?">
Twenty has two rate limits to ensure system stability:
<Accordion title="İş akışlarına ilişkin hız sınırları nelerdir?">
Twenty, sistem kararlılığını sağlamak için iki hız sınırına sahiptir:
| Limit | Değer | Behavior |
| Sınır | Değer | Davranış |
| ----- | ----- | -------- |
\| **Soft limit** | 100 runs/minute | Runs queue in "Not Started" status, processed gradually |
\| **Hard limit** | 5,000 runs/hour | Runs immediately fail |
\| **Yumuşak sınır** | dakikada 100 çalıştırma | Çalıştırmalar "Not Started" durumunda kuyruğa alınır, kademeli olarak işlenir |
\| **Katı sınır** | saatte 5.000 çalıştırma | Çalıştırmalar anında başarısız olur |
**Soft limit (100/min)**: Your workflows won't fail—they just wait in the queue and are processed over time. You can trigger more than 100 records; execution will be slower.
**Yumuşak sınır (100/dk)**: İş akışlarınız başarısız olmaz—sadece kuyruğa alınır ve zaman içinde işlenir. 100'den fazla kaydı tetikleyebilirsiniz; yürütme daha yavaş olacaktır.
**Hard limit (5,000/hr)**: This applies to your entire workspace. If all your workflows combined exceed 5,000 runs in an hour, additional runs will fail immediately.
**Katı sınır (5.000/saat)**: Bu, tüm çalışma alanınız için geçerlidir. Tüm iş akışlarınız toplamda bir saat içinde 5.000 çalıştırmayı aşarsa, ilave çalıştırmalar anında başarısız olur.
**Tips to stay within limits**:
**Sınırlar içinde kalmak için ipuçları**:
* Use Bulk triggers with Iterator instead of Single triggers for large batches
* Combine related automations into fewer workflows
* Use scheduled workflows to spread load over time
* Büyük toplu işlemler için Single tetikleyiciler yerine Iterator ile birlikte Bulk tetikleyicileri kullanın
* İlgili otomasyonları daha az sayıda iş akışında birleştirin
* Yükü zamana yaymak için zamanlanmış iş akışlarını kullanın
</Accordion>
<Accordion title="Can I retry a failed workflow run?">
**No, there is no automatic retry functionality at the moment.**
<Accordion title="Başarısız olmuş bir iş akışı çalıştırmasını yeniden deneyebilir miyim?">
**Hayır, şu anda otomatik yeniden deneme işlevi yok.**
If a workflow run fails, you'll need to:
Bir iş akışı çalıştırması başarısız olursa şunları yapmanız gerekir:
1. Review the error in **Settings → Workflows → [Your Workflow] → Runs**
2. Fix the issue (data, configuration, or external service)
3. Manually trigger the workflow again on the affected record(s)
1. **Ayarlar → İş Akışları → [Your Workflow] → Runs** içinde hatayı inceleyin
2. Sorunu düzeltin (veri, yapılandırma veya harici hizmet)
3. Etkilenen kayıt(lar) üzerinde iş akışını manuel olarak yeniden tetikleyin
**Tips to reduce failures**:
**Hataları azaltmak için ipuçları**:
* Add **Filter** nodes to validate data before actions
* Use **Search Records** to check if related records exist
* Test thoroughly with a few records before bulk operations
* Eylemlerden önce veriyi doğrulamak için **Filter** düğümleri ekleyin
* İlgili kayıtların var olup olmadığını kontrol etmek için **Search Records** kullanın
* Toplu işlemlerden önce birkaç kayıtla kapsamlı şekilde test edin
Automatic retry functionality is on our roadmap for a future release.
Otomatik yeniden deneme işlevi gelecekteki bir sürüm için yol haritamızda.
</Accordion>
<Accordion title="Should I deactivate workflows before CSV imports?">
**Yes, if your workflows are triggered by record creation or updates.**
<Accordion title="CSV içe aktarmalarından önce iş akışlarını devre dışı bırakmalı mıyım?">
**Evet, iş akışlarınız kayıt oluşturma veya güncellemelerle tetikleniyorsa.**
When you import data via CSV, each record created or updated can trigger workflows. A large import (thousands of records) could:
CSV ile veri içe aktardığınızda, oluşturulan veya güncellenen her kayıt iş akışlarını tetikleyebilir. Büyük bir içe aktarma (binlerce kayıt) şunlara yol açabilir:
* Hit the 5,000 runs/hour limit
* Consume significant workflow credits
* Send unexpected emails or notifications
* Create duplicate tasks or records
* Saatte 5.000 çalıştırma sınırına ulaşmak
* Önemli miktarda iş akışı kredisi tüketmek
* Beklenmedik e-postalar veya bildirimler göndermek
* Yinelenen görevler veya kayıtlar oluşturmak
**Before a mass import**:
**Toplu bir içe aktarmadan önce**:
1. Go to **Settings → Workflows**
2. Identify workflows triggered by the object you're importing
3. **Deactivate** them temporarily
4. Run your CSV import
5. **Reactivate** the workflows when done
1. **Ayarlar → İş Akışları** bölümüne gidin
2. İçe aktardığınız nesne tarafından tetiklenen iş akışlarını belirleyin
3. Bunları geçici olarak **devre dışı bırakın**
4. CSV içe aktarmanızı çalıştırın
5. İşiniz bittiğinde iş akışlarını **yeniden etkinleştirin**
**Alternative**: If you need the workflows to run on imported data, import in smaller batches to stay within rate limits.
**Alternatif**: İş akışlarının içe aktarılan veriler üzerinde çalışması gerekiyorsa, hız sınırları içinde kalmak için daha küçük partiler halinde içe aktarın.
</Accordion>
<Accordion title="How do I clean up my workflow layout?">
If your workflow canvas looks messy with nodes scattered around, you can automatically organize it:
<Accordion title="İş akışı yerleşimimi nasıl temizlerim?">
İş akışı tuvaliniz etrafa dağılmış düğümlerle dağınık görünüyorsa, onu otomatik olarak düzenleyebilirsiniz:
1. Right-click anywhere on the workflow canvas
2. Click **Tidy up workflow**
1. İş akışı tuvalinde herhangi bir yere sağ tıklayın
2. **Tidy up workflow** öğesine tıklayın
This will automatically rearrange all nodes into a clean, organized layout.
Bu, tüm düğümleri otomatik olarak temiz ve düzenli bir yerleşime yeniden düzenleyecektir.
</Accordion>
</AccordionGroup>