i18n - docs translations (#16793)
Created by Github action --------- Co-authored-by: github-actions <github-actions@twenty.com>
This commit is contained in:
committed by
GitHub
parent
766822d04b
commit
2eb8cf9e81
@@ -1,49 +1,49 @@
|
||||
---
|
||||
title: رصيد سير العمل
|
||||
description: Understanding workflow credits, consumption, and how to purchase more.
|
||||
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 |
|
||||
| **طلبات الذكاء الاصطناعي** (قريبًا) | Variable based on usage |
|
||||
| نوع الإجراء | استخدام الاعتمادات |
|
||||
| ----------------------------------------------------- | ---------------------- |
|
||||
| **العمليات الأساسية** (البحث، التحديث، إنشاء السجلات) | ضئيل |
|
||||
| **عمليات معقدة** (عُقَد برمجية، استدعاءات API خارجية) | مزيد من الأرصدة |
|
||||
| **طلبات الذكاء الاصطناعي** (قريبًا) | متغيِّرة حسب الاستخدام |
|
||||
|
||||
يتم خصم الأرصدة فورًا عند تنفيذ سير العمل.
|
||||
|
||||
## 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. اختر الكمية التي تحتاج إليها
|
||||
|
||||
+17
-17
@@ -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) لمشاركة حالة الاستخدام الخاصة بك والمساعدة في تحديد أولوية هذه الميزة.
|
||||
|
||||
+123
-123
@@ -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/ar/developers/extend/capabilities/apis).</Note>
|
||||
<Note>بالنسبة لعمليات التصدير الأكبر (أكثر من 20,000 سجل)، استخدم عوامل التصفية للتصدير على دفعات أو استخدم [واجهة برمجة التطبيقات (API)](/l/ar/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.
|
||||
تحتاج إلى صلاحية **"تصدير 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
|
||||
* **الأشخاص** — لجهات الاتصال
|
||||
* **الشركات** — للمؤسسات
|
||||
* **الفرص** — للصفقات
|
||||
* **كائنات مخصصة** — أي كائن قمت بإنشائه
|
||||
|
||||
## 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. أضف شروط التصفية (مثال: "تاريخ الإنشاء > 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 |
|
||||
| متضمن | غير متضمن |
|
||||
| --------------------------------------- | ---------------------------- |
|
||||
| جميع الأعمدة المرئية | الأعمدة المخفية |
|
||||
| السجلات المطابقة لعوامل التصفية الحالية | السجلات المُستبعدة بالتصفية |
|
||||
| قيم الحقول المخصصة | الحقول غير الموجودة في العرض |
|
||||
| معرّفات السجلات | مرفقات الملفات |
|
||||
| معرّفات العلاقات | الصور |
|
||||
|
||||
### حقول العلاقات
|
||||
|
||||
Relation IDs are only exported on the **"many" side** of a relationship:
|
||||
يتم تصدير معرّفات العلاقات فقط على جانب "المتعدد" من العلاقة:
|
||||
|
||||
* **People export** includes a `companyId` column (People → Company relation)
|
||||
* **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
|
||||
* **تصدير الأشخاص** يتضمن عمود `companyId` (علاقة الأشخاص → الشركة)
|
||||
* **تصدير الشركات** لا يتضمن `peopleIds` (الشركات هي جانب "الواحد")
|
||||
|
||||
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.
|
||||
هذا يعني أنه يمكنك استخدام تصدير الأشخاص لإعادة الاستيراد والحفاظ على رابط الشركة، لكن ستحتاج إلى إعادة استيراد الأشخاص بعد الشركات لإعادة إنشاء العلاقات.
|
||||
|
||||
## 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/ar/user-guide/data-migration/how-tos/update-existing-records-via-import)
|
||||
1. صدّر السجلات التي تريد تحديثها
|
||||
2. ضمّن المعرّف الفريد (`email`، `domain`، أو `id`)
|
||||
3. حرّر الملف المُصدَّر
|
||||
4. أعد الاستيراد لتحديث السجلات
|
||||
راجع: [كيفية تحديث السجلات الموجودة](/l/ar/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. **صدّر كل كائن على حدة** — الأشخاص، الشركات، الفرص، إلخ.
|
||||
2. **ضمّن حقول المعرّف** — فهي تساعد في الحفاظ على العلاقات
|
||||
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. أضف عامل تصفية (مثال: نطاقات "تاريخ الإنشاء")
|
||||
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...)
|
||||
* حسب النطاق الزمني (يناير، فبراير، مارس...)
|
||||
* حسب المالك (عضو الفريق أ، عضو الفريق ب...)
|
||||
* حسب الحالة (نشط، غير نشط...)
|
||||
|
||||
### 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 للاستعلام عن السجلات
|
||||
3. عالج النتائج في تطبيقك
|
||||
|
||||
See: [API Documentation](/l/ar/developers/extend/capabilities/apis)
|
||||
راجع: [وثائق واجهة برمجة التطبيقات (API)](/l/ar/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. سمّه "تصدير - [الغرض]"
|
||||
|
||||
### 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="هل يتم تضمين معرّفات العلاقات؟">
|
||||
نعم، ولكن فقط على جانب "المتعدد" من العلاقات. على سبيل المثال، يتضمن تصدير الأشخاص `companyId`، بينما لا يتضمن تصدير الشركات معرّفات الأشخاص.
|
||||
</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/ar/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
|
||||
* [How to Import Data via API](/l/ar/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
|
||||
* [API Documentation](/l/ar/developers/extend/capabilities/apis) — build custom export workflows
|
||||
* [كيفية تحديث السجلات الموجودة](/l/ar/user-guide/data-migration/how-tos/update-existing-records-via-import) — حرّر وأعد استيراد ملف التصدير الخاص بك
|
||||
* [كيفية استيراد البيانات عبر واجهة برمجة التطبيقات (API)](/l/ar/user-guide/data-migration/how-tos/import-data-via-api) — لمجموعات البيانات الكبيرة
|
||||
* [وثائق واجهة برمجة التطبيقات (API)](/l/ar/developers/extend/capabilities/apis) — أنشئ عمليات سير عمل تصدير مخصصة
|
||||
|
||||
+70
-70
@@ -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.
|
||||
يرشدك هذا الدليل خلال عملية استيراد جهات الاتصال (الأشخاص) إلى 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**
|
||||
جميع الحقول المخصصة موجودة في **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` | يجب أن يكون فريدًا |
|
||||
| **الاسم الأول** | مُوصى به | نص | |
|
||||
| **الاسم الأخير** | مُوصى به | نص | |
|
||||
| **الشركة** | اختياري | النطاق أو المعرّف | يرتبط بشركة موجودة |
|
||||
| **هاتف** | اختياري | أعمدة متعددة | انظر أدناه |
|
||||
| **المسمى الوظيفي** | اختياري | نص | |
|
||||
| **الحقول المخصصة** | اختياري | يختلف | يجب أن تكون موجودة في Data Model |
|
||||
|
||||
### 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,59 +93,59 @@ 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: من عرض People**
|
||||
|
||||
1. Navigate to **People** in the left sidebar
|
||||
2. Click the **⋮** icon on the top right
|
||||
3. Select **Import records**
|
||||
1. انتقل إلى **People** في الشريط الجانبي الأيسر
|
||||
2. انقر على أيقونة **⋮** في أعلى اليمين
|
||||
3. اختر **Import records**
|
||||
|
||||
**Option 2: Using Command Menu**
|
||||
**الخيار 2: باستخدام قائمة الأوامر**
|
||||
|
||||
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
|
||||
2. Type "import"
|
||||
3. Select **Import records**
|
||||
4. Choose **People**
|
||||
1. اضغط `Cmd + K` (Mac) أو `Ctrl + K` (Windows)
|
||||
2. اكتب "import"
|
||||
3. اختر **Import records**
|
||||
4. اختر **People**
|
||||
|
||||
## Step 3: Upload Your File
|
||||
## الخطوة 3: حمّل ملفك
|
||||
|
||||
1. Click **Select file**
|
||||
2. Choose your CSV, XLSX, or XLS file
|
||||
3. Wait for Twenty to analyze your file
|
||||
1. انقر فوق **Select file**
|
||||
2. اختر ملف CSV أو XLSX أو XLS الخاص بك
|
||||
3. انتظر حتى يقوم Twenty بتحليل ملفك
|
||||
|
||||
## Step 4: Map Your Columns
|
||||
## الخطوة 4: طابق أعمدتك
|
||||
|
||||
Twenty automatically tries to match your columns to fields. Review and adjust:
|
||||
يحاول Twenty تلقائيًا مطابقة أعمدتك مع الحقول. راجع وعدّل:
|
||||
|
||||
1. **Check automatic mappings** — verify they're correct
|
||||
2. **Fix incorrect mappings** — click the dropdown to select the right field
|
||||
3. **Skip columns** — select **Do not map** for columns you don't want to import
|
||||
1. **تحقق من المطابقات التلقائية** — تأكد من أنها صحيحة
|
||||
2. **أصلح المطابقات غير الصحيحة** — انقر على القائمة المنسدلة لاختيار الحقل الصحيح
|
||||
3. **تخطَّ الأعمدة** — اختر **Do not map** للأعمدة التي لا تريد استيرادها
|
||||
|
||||
### Important Mapping Rules
|
||||
### قواعد مطابقة مهمة
|
||||
|
||||
| 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 |
|
||||
| نوع العمود | التعيين إلى | الملاحظات |
|
||||
| --------------------------- | ------------------------------ | ------------------------------------- |
|
||||
| مرجع الشركة | حقل علاقة **Company** | استخدم النطاق أو المعرّف، وليس كليهما |
|
||||
| البريد الإلكتروني | **البريد الإلكتروني** | عنوان البريد الإلكتروني الأساسي |
|
||||
| عناوين بريد إلكتروني إضافية | **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. طابقه مع حقل علاقة **Company**
|
||||
3. سيقوم Twenty بربط كل شخص بالشركة المطابقة
|
||||
|
||||
<Warning>
|
||||
**Map only ONE unique identifier for relations.**
|
||||
**طابق معرّفًا فريدًا واحدًا فقط للعلاقات.**
|
||||
|
||||
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
|
||||
</Warning>
|
||||
|
||||
+5
-5
@@ -31,11 +31,11 @@ description: Twenty هو نظام إدارة علاقات العملاء (CRM)
|
||||
* **ترحيل البيانات:** استورد بياناتك وصدّرها عبر 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).
|
||||
* **Notes & Tasks:** Create notes and tasks linked to your records for better collaboration.
|
||||
* **API & Webhooks:** Connect to other apps and build custom integrations. [ابدأ التكامل](/l/ar/developers/extend/capabilities/apis).
|
||||
* **الذكاء الاصطناعي:** عزِّز نظام إدارة علاقات العملاء لديك بميزات ووكلاء مدعومين بالذكاء الاصطناعي. [استكشف الذكاء الاصطناعي](/l/ar/user-guide/ai/overview).
|
||||
* **لوحات التحكم:** تتبع الأداء باستخدام تقارير مخصصة وتصوّرات مرئية. [عرض لوحات التحكم](/l/ar/user-guide/dashboards/overview).
|
||||
* **الأذونات والوصول:** تحكّم في مَن يمكنه عرض بياناتك وتحريرها وإدارتها باستخدام أذونات مستندة إلى الأدوار. [تكوين الوصول](/l/ar/user-guide/permissions-access/overview).
|
||||
* **الملاحظات والمهام:** أنشئ ملاحظات ومهام مرتبطة بسجلاتك لتحسين التعاون.
|
||||
* **واجهة برمجة التطبيقات والويب هوكس:** الاتصال بالتطبيقات الأخرى وإنشاء عمليات تكامل مخصصة. [ابدأ التكامل](/l/ar/developers/extend/capabilities/apis).
|
||||
|
||||
## انضم الآن
|
||||
|
||||
|
||||
+19
-19
@@ -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
|
||||
* استقبال البيانات من واجهات برمجة التطبيقات الخارجية عبر 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>
|
||||
|
||||
+56
-56
@@ -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. **التصفية**: المرحلة = Closed Won
|
||||
3. **Search Record**: الحصول على تفاصيل الشركة
|
||||
4. **Code** (اختياري): تنسيق الحمولة
|
||||
5. **HTTP Request**: الإرسال إلى نظام الفوترة
|
||||
|
||||
## 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. اختر المُحفّز **Record is Updated**
|
||||
3. اختر **Opportunity** بوصفه الكائن
|
||||
|
||||
## Step 2: Filter for Closed Won
|
||||
## الخطوة 2: التصفية من أجل Closed Won
|
||||
|
||||
Add a **Filter** action to only continue when the deal is won:
|
||||
أضف إجراء **Filter** للمتابعة فقط عند ربح الصفقة:
|
||||
|
||||
| Setting | القيمة |
|
||||
| ------------- | --------------------------------- |
|
||||
| **Field** | المرحلة |
|
||||
| **Condition** | Equals |
|
||||
| **Value** | `CLOSED_WON` (or your stage name) |
|
||||
| الإعداد | القيمة |
|
||||
| ---------- | ---------------------------------- |
|
||||
| **الحقل** | المرحلة |
|
||||
| **الشرط** | يساوي |
|
||||
| **القيمة** | `CLOSED_WON` (أو اسم المرحلة لديك) |
|
||||
|
||||
<Tip>
|
||||
The trigger fires on any Opportunity update. The Filter ensures the workflow only continues when the stage changes to Closed Won.
|
||||
يتم تشغيل المُحفّز عند أي تحديث للفرصة. تضمن التصفية أن يستمر سير العمل فقط عندما تتغير المرحلة إلى Closed Won.
|
||||
</Tip>
|
||||
|
||||
## Step 3: Get Company Details
|
||||
## الخطوة 3: الحصول على تفاصيل الشركة
|
||||
|
||||
The Opportunity record may not include all Company fields you need for the invoice. Add a **Search Record** action:
|
||||
قد لا يتضمن سجل الفرصة جميع حقول الشركة التي تحتاجها للفاتورة. أضف إجراء **Search Record**:
|
||||
|
||||
| Setting | القيمة |
|
||||
| ------------ | ---------------------------------------- |
|
||||
| **Object** | الشركة |
|
||||
| **Match by** | ID equals `{{trigger.object.companyId}}` |
|
||||
| الإعداد | القيمة |
|
||||
| ---------------- | -------------------------------------------- |
|
||||
| **الكائن** | الشركة |
|
||||
| **المطابقة حسب** | المعرّف يساوي `{{trigger.object.companyId}}` |
|
||||
|
||||
This retrieves the full Company record with billing address, tax ID, etc.
|
||||
يؤدي ذلك إلى استرجاع سجل الشركة الكامل متضمناً عنوان الفوترة، ومعرّف الضريبة، وما إلى ذلك.
|
||||
|
||||
## Step 4: Format the Payload (Optional)
|
||||
## الخطوة 4: تنسيق الحمولة (اختياري)
|
||||
|
||||
If your invoicing system expects a specific format, add a **Code** action:
|
||||
إذا كان نظام الفوترة لديك يتطلب تنسيقاً محدداً، فأضف إجراء **Code**:
|
||||
|
||||
```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 Request**:
|
||||
|
||||
| Setting | القيمة |
|
||||
| ----------- | ----------------------------------------- |
|
||||
| **Method** | POST |
|
||||
| **URL** | Your invoicing API endpoint |
|
||||
| **Headers** | `Authorization: Bearer YOUR_API_KEY` |
|
||||
| **Body** | `{{code.invoice}}` or map fields directly |
|
||||
| الإعداد | القيمة |
|
||||
| ------------- | ------------------------------------------------ |
|
||||
| **الطريقة** | POST |
|
||||
| **عنوان URL** | نقطة نهاية واجهة برمجة تطبيقات الفوترة الخاصة بك |
|
||||
| **الرؤوس** | `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 | Action | Purpose |
|
||||
| ---- | ----------------------- | ------------------------------------ |
|
||||
| 1 | Trigger: Record Updated | Fires when any Opportunity changes |
|
||||
| ٢ | تصفية | 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 | المحفّز: تحديث السجل | يتم تشغيله عند حدوث أي تغيير في أي فرصة |
|
||||
| ٢ | تصفية | المتابعة فقط إذا كانت المرحلة = Closed Won |
|
||||
| 3 | البحث عن سجل | الحصول على تفاصيل الشركة الكاملة لأغراض الفوترة |
|
||||
| 4 | كود | تنسيق البيانات لواجهة برمجة تطبيقات الفوترة |
|
||||
| 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
|
||||
* **تخزين المعرّفات الخارجية**: احفظ معرّف الفاتورة الذي تُرجعه واجهة برمجة التطبيقات إلى الفرصة باستخدام إجراء **Update Record**
|
||||
* **التعامل مع الأخطاء**: أضف فرعاً لإرسال إشعار إذا فشل طلب HTTP
|
||||
* **اختبر أولاً**: استخدم وضع sandbox/test في نظام الفوترة قبل الإطلاق
|
||||
|
||||
## Related
|
||||
## ذات صلة
|
||||
|
||||
* [Workflow Triggers](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
|
||||
* [Workflow Actions](/l/ar/user-guide/workflows/capabilities/workflow-actions)
|
||||
* [Closed Won Automations](/l/ar/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
|
||||
* [مشغلات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-triggers)
|
||||
* [إجراءات سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-actions)
|
||||
* [أتمتة Closed Won](/l/ar/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
|
||||
|
||||
+5
-5
@@ -31,11 +31,11 @@ Open-source je základ našeho přístupu, zajišťuje, že Twenty se vyvíjí s
|
||||
* **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).
|
||||
* **Notes & Tasks:** Create notes and tasks linked to your records for better collaboration.
|
||||
* **API & Webhooks:** Connect to other apps and build custom integrations. [Začněte integraci](/l/cs/developers/extend/capabilities/apis).
|
||||
* **AI:** Vylepšete své CRM funkcemi a agenty poháněnými AI. [Prozkoumejte AI](/l/cs/user-guide/ai/overview).
|
||||
* **Přehledy:** Sledujte výkon pomocí vlastních sestav a vizualizací. [Zobrazit přehledy](/l/cs/user-guide/dashboards/overview).
|
||||
* **Oprávnění a přístup:** Ovládejte, kdo může zobrazit, upravovat a spravovat vaše data pomocí oprávnění založených na rolích. [Nastavte přístup](/l/cs/user-guide/permissions-access/overview).
|
||||
* **Poznámky a úkoly:** Vytvářejte poznámky a úkoly propojené s vašimi záznamy pro lepší spolupráci.
|
||||
* **API & Webhooks:** Připojte se k dalším aplikacím a vytvářejte vlastní integrace. [Začněte integraci](/l/cs/developers/extend/capabilities/apis).
|
||||
|
||||
## Připojte se nyní
|
||||
|
||||
|
||||
@@ -1,49 +1,49 @@
|
||||
---
|
||||
title: Workflow Credits
|
||||
description: Understanding workflow credits, consumption, and how to purchase more.
|
||||
title: Credite pentru fluxuri de lucru
|
||||
description: Înțelegerea creditelor pentru fluxurile de lucru, a consumului și a modului de a cumpăra mai multe.
|
||||
---
|
||||
|
||||
## Prezentare generală
|
||||
|
||||
Credits power your workflow automations in Twenty. Every workflow action consumes credits based on its complexity.
|
||||
Creditele alimentează automatizările fluxurilor de lucru în Twenty. Fiecare acțiune de flux de lucru consumă credite în funcție de complexitatea sa.
|
||||
|
||||
## Credit Allocation
|
||||
## Alocarea creditelor
|
||||
|
||||
Credits are based on your billing cycle, not your plan:
|
||||
Creditele se bazează pe ciclul de facturare, nu pe planul dvs.:
|
||||
|
||||
| Billing Cycle | Credits |
|
||||
| ------------- | --------------- |
|
||||
| Lunar | 5 million/month |
|
||||
| Anual | 50 million/year |
|
||||
| Ciclu de facturare | Credite |
|
||||
| ------------------ | ----------------- |
|
||||
| Lunar | 5 milioane/lună |
|
||||
| Anual | 50 de milioane/an |
|
||||
|
||||
<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.
|
||||
Cele 5 milioane de credite lunare sunt concepute pentru a vă permite să rulați automatizări fără să vă faceți griji pentru costuri. Pentru majoritatea fluxurilor de lucru care folosesc acțiuni standard, acest lucru este mai mult decât suficient. Veți avea nevoie de credite suplimentare doar atunci când rulați noduri de cod avansate sau funcționalități bazate pe AI.
|
||||
</Note>
|
||||
|
||||
## Credit Consumption
|
||||
## Consumul de credite
|
||||
|
||||
Different actions consume different amounts of credits:
|
||||
Acțiunile diferite consumă cantități diferite de credite:
|
||||
|
||||
| Action Type | Utilizare credit |
|
||||
| ------------------------------------------------------- | ----------------------- |
|
||||
| **Basic operations** (search, update, create records) | Minimal |
|
||||
| **Complex operations** (code nodes, external API calls) | More credits |
|
||||
| **Indicațiile AI** (în curând) | Variable based on usage |
|
||||
| Tip de acțiune | Utilizare credit |
|
||||
| --------------------------------------------------------------------- | --------------------------------- |
|
||||
| **Operațiuni de bază** (căutare, actualizare, creare de înregistrări) | Minim |
|
||||
| **Operațiuni complexe** (noduri de cod, apeluri API externe) | Mai multe credite |
|
||||
| **Indicațiile AI** (în curând) | Variabil, în funcție de utilizare |
|
||||
|
||||
Credits are deducted in real-time when workflows execute.
|
||||
Creditele sunt retrase în timp real pe măsură ce fluxurile de lucru se execută.
|
||||
|
||||
## Monitoring Usage
|
||||
## Monitorizarea utilizării
|
||||
|
||||
Track your credit consumption:
|
||||
Urmăriți consumul de credite:
|
||||
|
||||
1. Accesați **Setări → Facturare**
|
||||
2. View your current usage and remaining credits
|
||||
3. Monitor trends to plan for additional credits if needed
|
||||
2. Vizualizați utilizarea curentă și creditele rămase
|
||||
3. Monitorizați tendințele pentru a planifica credite suplimentare, dacă este necesar
|
||||
|
||||
## Achiziționarea de credite suplimentare
|
||||
|
||||
Need more credits?
|
||||
Aveți nevoie de mai multe credite?
|
||||
|
||||
1. Accesați **Setări → Facturare**
|
||||
2. Click on the option to purchase additional credit packs
|
||||
3. Select the amount you need
|
||||
2. Faceți clic pe opțiunea de a achiziționa pachete de credite suplimentare
|
||||
3. Selectați cantitatea de care aveți nevoie
|
||||
|
||||
+17
-17
@@ -1,28 +1,28 @@
|
||||
---
|
||||
title: Can I Book Meetings from Twenty?
|
||||
description: Information about booking meetings directly from Twenty.
|
||||
title: Pot să programez întâlniri din Twenty?
|
||||
description: Informații despre programarea întâlnirilor direct din Twenty.
|
||||
---
|
||||
|
||||
## Current Status
|
||||
## Starea actuală
|
||||
|
||||
**No, Twenty does not currently support booking meetings directly from the platform.**
|
||||
**Nu, în prezent Twenty nu permite programarea întâlnirilor direct din platformă.**
|
||||
|
||||
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.).
|
||||
Integrarea Twenty pentru calendar este concepută pentru a **sincroniza și afișa** evenimentele existente din calendarul dumneavoastră, nu pentru a crea altele noi. Programarea tuturor întâlnirilor trebuie făcută prin aplicația dumneavoastră nativă de calendar (Google Calendar, Microsoft Outlook, etc.).
|
||||
|
||||
## What You Can Do
|
||||
## Ce puteți face
|
||||
|
||||
* **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
|
||||
* **Vizualizați istoricul întâlnirilor** pe înregistrările Persoane, Companii și Oportunități
|
||||
* **Vizualizați întâlnirile viitoare** cu contactele din CRM-ul dumneavoastră
|
||||
* **Urmăriți contextul întâlnirilor** alături de comunicările prin e-mail
|
||||
* **Creați automat contacte** din participanții la întâlniri
|
||||
|
||||
## How to Schedule Meetings
|
||||
## Cum să programați întâlniri
|
||||
|
||||
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. Folosiți aplicația dumneavoastră nativă de calendar (Google Calendar, Outlook, etc.)
|
||||
2. Creați întâlnirea așa cum procedați în mod normal
|
||||
3. Întâlnirea se va sincroniza automat cu Twenty în decurs de 5 minute
|
||||
4. Vizualizați întâlnirea în înregistrările CRM relevante
|
||||
|
||||
## Future Plans
|
||||
## Planuri viitoare
|
||||
|
||||
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.
|
||||
Crearea întâlnirilor 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 dumneavoastră de utilizare și a ajuta la prioritizarea acestei funcționalități.
|
||||
|
||||
+123
-123
@@ -1,209 +1,209 @@
|
||||
---
|
||||
title: Export Your Data
|
||||
description: Complete step-by-step guide to exporting data from Twenty.
|
||||
title: Exportați-vă datele
|
||||
description: Ghid complet, pas cu pas, pentru exportul datelor din Twenty.
|
||||
---
|
||||
|
||||
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
|
||||
|
||||
## Prezentare generală
|
||||
|
||||
Export your workspace data to CSV for backups, reporting, or migration.
|
||||
Exportați datele spațiului de lucru în CSV pentru copii de siguranță, raportare sau migrare.
|
||||
|
||||
**Cazuri de utilizare:**
|
||||
|
||||
* **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
|
||||
* **Copii de siguranță regulate** — păstrați copii ale datelor dvs.
|
||||
* **Raportare externă** — analizați datele în Excel, Google Sheets sau instrumente BI
|
||||
* **Migrare** — mutați datele într-un alt sistem
|
||||
* **Actualizări în masă** — exportați, editați și reimportați pentru a actualiza înregistrările
|
||||
|
||||
## What You Need to Know
|
||||
## Ce trebuie să știți
|
||||
|
||||
### Export Limits
|
||||
### Limite de export
|
||||
|
||||
* **Maximum 20,000 records** per export
|
||||
* Only **visible columns** are exported
|
||||
* Only **filtered records** are exported (based on your current view)
|
||||
* **Maxim 20.000 de înregistrări** pentru fiecare export
|
||||
* Sunt exportate doar **coloanele vizibile**
|
||||
* Sunt exportate doar **înregistrările filtrate** (pe baza vizualizării curente)
|
||||
|
||||
<Note>For larger exports (20,000+ records), use filters to export in batches or use the [API](/l/ro/developers/extend/capabilities/apis).</Note>
|
||||
<Note>Pentru exporturi mai mari (20.000+ înregistrări), utilizați filtre pentru a exporta în loturi sau folosiți [API](/l/ro/developers/extend/capabilities/apis).</Note>
|
||||
|
||||
### Permisiuni
|
||||
|
||||
You need the **"Export CSV"** permission to export data. Contact your workspace admin if you don't have this option.
|
||||
Aveți nevoie de permisiunea **"Export CSV"** pentru a exporta date. Contactați administratorul spațiului de lucru dacă nu aveți această opțiune.
|
||||
|
||||
## Step 1: Navigate to the Object
|
||||
## Pasul 1: Navigați la obiect
|
||||
|
||||
Go to the object you want to export:
|
||||
Accesați obiectul pe care doriți să-l exportați:
|
||||
|
||||
* **People** — for contacts
|
||||
* **Companies** — for organizations
|
||||
* **Opportunities** — for deals
|
||||
* **Custom objects** — any object you've created
|
||||
* **Persoane** — pentru contacte
|
||||
* **Companii** — pentru organizații
|
||||
* **Oportunități** — pentru tranzacții
|
||||
* **Obiecte personalizate** — orice obiect pe care l-ați creat
|
||||
|
||||
## Step 2: Configure Your View
|
||||
## Pasul 2: Configurați vizualizarea
|
||||
|
||||
**Important:** The export includes only what's visible in your current view.
|
||||
**Important:** Exportul include doar ceea ce este vizibil în vizualizarea curentă.
|
||||
|
||||
### Add/Remove Columns
|
||||
### Adăugați/Eliminați coloane
|
||||
|
||||
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. Faceți clic pe **Opțiuni → Câmpuri** (sau pe **+** la capătul coloanelor)
|
||||
2. Bifați câmpurile pe care doriți să le exportați
|
||||
3. Debifați câmpurile de care nu aveți nevoie
|
||||
|
||||
### Filter Records (Optional)
|
||||
### Filtrați înregistrările (opțional)
|
||||
|
||||
If you only need a subset of data:
|
||||
Dacă aveți nevoie doar de un subset de date:
|
||||
|
||||
1. Click **Filter**
|
||||
2. Add filter conditions (e.g., "Created date > January 1, 2024")
|
||||
3. Only matching records will be exported
|
||||
1. Faceți clic pe **Filtru**
|
||||
2. Adăugați condiții de filtrare (de ex., "Created date > 1 ianuarie 2024")
|
||||
3. Vor fi exportate doar înregistrările care se potrivesc
|
||||
|
||||
### Sort Records (Optional)
|
||||
### Sortați înregistrările (opțional)
|
||||
|
||||
1. Click a column header to sort
|
||||
2. The export will follow your sort order
|
||||
1. Faceți clic pe antetul unei coloane pentru a sorta
|
||||
2. Exportul va respecta ordinea de sortare
|
||||
|
||||
<Note>**Create a dedicated export view.** Save a view specifically configured for exports so you don't need to reconfigure each time.</Note>
|
||||
<Note>**Creați o vizualizare dedicată pentru export.** Salvați o vizualizare configurată specific pentru exporturi, astfel încât să nu fie nevoie să reconfigurați de fiecare dată.</Note>
|
||||
|
||||
## Step 3: Export the Data
|
||||
## Pasul 3: Exportați datele
|
||||
|
||||
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. Faceți clic pe pictograma **⋮** din dreapta sus a tabelului
|
||||
2. Selectați **Exportați vizualizarea**
|
||||
3. Alegeți unde să salvați fișierul CSV
|
||||
4. Așteptați finalizarea descărcării
|
||||
|
||||
## What Gets Exported
|
||||
## Ce se exportă
|
||||
|
||||
| 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 |
|
||||
| Incluse | Neincluse |
|
||||
| ------------------------------------------------ | ----------------------------------- |
|
||||
| Toate coloanele vizibile | Coloane ascunse |
|
||||
| Înregistrări care se potrivesc filtrelor curente | Înregistrări excluse de filtre |
|
||||
| Valori ale câmpurilor personalizate | Câmpuri care nu sunt în vizualizare |
|
||||
| ID-uri ale înregistrărilor | Atașamente de fișiere |
|
||||
| ID-uri de relație | Imagini |
|
||||
|
||||
### Câmpuri de relație
|
||||
|
||||
Relation IDs are only exported on the **"many" side** of a relationship:
|
||||
ID-urile relațiilor sunt exportate doar pe **partea "many"** a unei relații:
|
||||
|
||||
* **People export** includes a `companyId` column (People → Company relation)
|
||||
* **Companies export** does NOT include `peopleIds` (Companies is the "one" side)
|
||||
* **Exportul de Persoane** include o coloană `companyId` (relația Persoane → Companie)
|
||||
* **Exportul de Companii** NU include `peopleIds` (Companii este partea "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.
|
||||
Asta înseamnă că puteți folosi exportul de Persoane pentru a reimporta și menține legătura cu Compania, dar va trebui să reimportați Persoanele după Companii pentru a recrea relațiile.
|
||||
|
||||
## Exporting for Specific Purposes
|
||||
## Export pentru scopuri specifice
|
||||
|
||||
### For Backups
|
||||
### Pentru copii de siguranță
|
||||
|
||||
1. Create a view with **all fields** visible
|
||||
2. Remove all filters to include all records
|
||||
3. Export each object type separately
|
||||
4. Store exports in a secure location
|
||||
5. Set a recurring reminder (weekly/monthly)
|
||||
1. Creați o vizualizare cu **toate câmpurile** vizibile
|
||||
2. Eliminați toate filtrele pentru a include toate înregistrările
|
||||
3. Exportați fiecare tip de obiect separat
|
||||
4. Stocați exporturile într-o locație sigură
|
||||
5. Setați un memento recurent (săptămânal/lunar)
|
||||
|
||||
### For External Reporting
|
||||
### Pentru raportare externă
|
||||
|
||||
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. Includeți doar câmpurile necesare pentru analiză
|
||||
2. Aplicați filtre pentru a vă concentra pe datele relevante
|
||||
3. Luați în considerare sortarea după câmpul pe care îl veți analiza
|
||||
|
||||
### For Bulk Updates
|
||||
### Pentru actualizări în masă
|
||||
|
||||
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/ro/user-guide/data-migration/how-tos/update-existing-records-via-import)
|
||||
1. Exportați înregistrările pe care doriți să le actualizați
|
||||
2. Includeți identificatorul unic (`email`, `domain` sau `id`)
|
||||
3. Editați fișierul exportat
|
||||
4. Reimportați pentru a actualiza înregistrările
|
||||
Consultați: [Cum să actualizați înregistrările existente](/l/ro/user-guide/data-migration/how-tos/update-existing-records-via-import)
|
||||
|
||||
### For Migration
|
||||
### Pentru migrare
|
||||
|
||||
If you're exporting to migrate to another system:
|
||||
Dacă exportați pentru a migra către un alt sistem:
|
||||
|
||||
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. **Exportați fiecare obiect separat** — Persoane, Companii, Oportunități etc.
|
||||
2. **Includeți câmpurile de ID** — acestea ajută la menținerea relațiilor
|
||||
3. **Documentați mapările câmpurilor** — notați cum câmpurile Twenty corespund sistemului țintă
|
||||
|
||||
## Handling Large Datasets (20,000+ Records)
|
||||
## Gestionarea seturilor de date mari (20.000+ înregistrări)
|
||||
|
||||
The export limit is 20,000 records. For larger datasets:
|
||||
Limita de export este de 20.000 de înregistrări. Pentru seturi de date mai mari:
|
||||
|
||||
### Option 1: Export in Batches
|
||||
### Opțiunea 1: Export în loturi
|
||||
|
||||
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. Adăugați un filtru (de ex., intervale "Created date")
|
||||
2. Exportați primul lot
|
||||
3. Modificați filtrul
|
||||
4. Exportați următorul lot
|
||||
5. Combinați fișierele în foaia de calcul
|
||||
|
||||
**Example filters for batching:**
|
||||
**Exemple de filtre pentru lotizare:**
|
||||
|
||||
* By date range (January, February, March...)
|
||||
* By owner (Team member A, Team member B...)
|
||||
* By status (Active, Inactive...)
|
||||
* După interval de date (ianuarie, februarie, martie...)
|
||||
* După proprietar (Membru al echipei A, Membru al echipei B...)
|
||||
* După statut (Activ, Inactiv...)
|
||||
|
||||
### Option 2: Use the API
|
||||
### Opțiunea 2: Utilizați API-ul
|
||||
|
||||
The API has no record limit:
|
||||
API-ul nu are limită de înregistrări:
|
||||
|
||||
1. Get your API key from **Settings → Developers**
|
||||
2. Use the GraphQL API to query records
|
||||
3. Process results in your application
|
||||
1. Obțineți cheia API din **Setări → Dezvoltatori**
|
||||
2. Utilizați API-ul GraphQL pentru a interoga înregistrări
|
||||
3. Procesați rezultatele în aplicația dvs.
|
||||
|
||||
See: [API Documentation](/l/ro/developers/extend/capabilities/apis)
|
||||
Consultați: [Documentație API](/l/ro/developers/extend/capabilities/apis)
|
||||
|
||||
## Tips and Best Practices
|
||||
## Sfaturi și bune practici
|
||||
|
||||
### Create Export Views
|
||||
### Creați vizualizări pentru export
|
||||
|
||||
Save views configured specifically for exports:
|
||||
Salvați vizualizări configurate special pentru export:
|
||||
|
||||
1. Configure columns and filters
|
||||
2. Click **View options** → **Save as new view**
|
||||
3. Name it "Export - [Purpose]"
|
||||
1. Configurați coloanele și filtrele
|
||||
2. Faceți clic pe **Opțiuni pentru vizualizare** → **Salvați ca vizualizare nouă**
|
||||
3. Denumiți-o "Export - [Scop]"
|
||||
|
||||
### Secure Your Exports
|
||||
### Securizați-vă exporturile
|
||||
|
||||
Exported files may contain sensitive data:
|
||||
Fișierele exportate pot conține date sensibile:
|
||||
|
||||
* Store in secure locations
|
||||
* Delete old exports when no longer needed
|
||||
* Be careful sharing export files
|
||||
* Stocați în locații sigure
|
||||
* Ștergeți exporturile vechi când nu mai sunt necesare
|
||||
* Aveți grijă când partajați fișierele de export
|
||||
|
||||
### Check Before Exporting
|
||||
### Verificați înainte de export
|
||||
|
||||
<Check>Correct columns are visible</Check>
|
||||
<Check>Filters are set correctly (or removed for full export)</Check>
|
||||
<Check>You have Export permission</Check>
|
||||
<Check>Coloanele corecte sunt vizibile</Check>
|
||||
<Check>Filtrele sunt setate corect (sau eliminate pentru export complet)</Check>
|
||||
<Check>Aveți permisiunea de export</Check>
|
||||
|
||||
## FAQ
|
||||
## Întrebări frecvente
|
||||
|
||||
<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="De ce lipsesc unele coloane din exportul meu?">
|
||||
Sunt exportate doar coloanele vizibile. Adăugați coloanele de care aveți nevoie prin **Opțiuni → Câmpuri** înainte de export.
|
||||
</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="De ce nu conține exportul meu toate înregistrările?">
|
||||
Verificați filtrele. Exportul include doar înregistrările care se potrivesc filtrelor vizualizării curente. Eliminați filtrele pentru a exporta toate înregistrările.
|
||||
</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="Pot exporta mai mult de 20.000 de înregistrări?">
|
||||
Nu într-un singur export. Folosiți filtre pentru a exporta în loturi sau utilizați API-ul pentru seturi de date mai mari.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="What format is the export file?">
|
||||
CSV (Comma Separated Values). Opens in Excel, Google Sheets, or any spreadsheet application.
|
||||
<Accordion title="În ce format este fișierul de export?">
|
||||
CSV (valori separate prin virgulă). Se deschide în Excel, Google Sheets sau orice aplicație de foi de calcul.
|
||||
</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="Sunt incluse ID-urile de relație?">
|
||||
Da, dar numai pe partea "many" a relațiilor. De exemplu, un export de Persoane include `companyId`, dar un export de Companii nu include ID-urile persoanelor.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I automate exports?">
|
||||
Not directly through the UI. Use the API to build automated export workflows.
|
||||
<Accordion title="Pot automatiza exporturile?">
|
||||
Nu direct prin interfața de utilizator. Utilizați API-ul pentru a construi fluxuri de lucru de export automatizate.
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
## Pașii următori
|
||||
|
||||
* [How to Update Existing Records](/l/ro/user-guide/data-migration/how-tos/update-existing-records-via-import) — edit and re-import your export
|
||||
* [How to Import Data via API](/l/ro/user-guide/data-migration/how-tos/import-data-via-api) — for large datasets
|
||||
* [API Documentation](/l/ro/developers/extend/capabilities/apis) — build custom export workflows
|
||||
* [Cum să actualizați înregistrările existente](/l/ro/user-guide/data-migration/how-tos/update-existing-records-via-import) — editați și reimportați exportul
|
||||
* [Cum să importați date prin API](/l/ro/user-guide/data-migration/how-tos/import-data-via-api) — pentru seturi de date mari
|
||||
* [Documentație API](/l/ro/developers/extend/capabilities/apis) — creați fluxuri de lucru de export personalizate
|
||||
|
||||
+68
-68
@@ -1,90 +1,90 @@
|
||||
---
|
||||
title: Import Contacts via CSV
|
||||
description: Complete step-by-step guide to importing people/contacts into Twenty.
|
||||
title: Importați contacte via CSV
|
||||
description: Ghid complet, pas cu pas, pentru importul persoanelor/contactelor în Twenty.
|
||||
---
|
||||
|
||||
## Prezentare generală
|
||||
|
||||
This guide walks you through importing your contacts (People) into Twenty. **Import Companies first** if you want to link People to Companies.
|
||||
Acest ghid vă arată cum să importați contactele (Persoane) în Twenty. **Importați Companiile mai întâi** dacă doriți să legați Persoanele de Companii.
|
||||
|
||||
## Înainte de a începe
|
||||
|
||||
### Prerequisites Checklist
|
||||
### Listă de verificare a condițiilor prealabile
|
||||
|
||||
<Check>
|
||||
Your file is CSV, XLSX, or XLS format
|
||||
Fișierul este în format CSV, XLSX sau XLS
|
||||
</Check>
|
||||
|
||||
<Check>
|
||||
File has fewer than 10,000 records
|
||||
Fișierul are mai puțin de 10.000 de înregistrări
|
||||
</Check>
|
||||
|
||||
<Check>
|
||||
No duplicate email addresses in your file
|
||||
Nicio adresă de e-mail duplicată în fișier
|
||||
</Check>
|
||||
|
||||
<Check>
|
||||
**Companies imported first** (if linking People to Companies)
|
||||
**Companiile importate mai întâi** (dacă legați Persoane de Companii)
|
||||
</Check>
|
||||
|
||||
<Check>
|
||||
All custom fields exist in **Settings → Data Model**
|
||||
Toate câmpurile personalizate există în **Setări → Model de date**
|
||||
</Check>
|
||||
|
||||
<Warning>
|
||||
**Import Companies Before People**
|
||||
**Importați Companiile înaintea Persoanelor**
|
||||
|
||||
If you want to link People to Companies, import Companies first. The Company must exist before you can reference it.
|
||||
Dacă doriți să legați Persoane de Companii, importați mai întâi Companiile. Compania trebuie să existe înainte de a o putea referi.
|
||||
</Warning>
|
||||
|
||||
## Step 1: Prepare Your Contact Data
|
||||
## Pasul 1: Pregătiți datele de contact
|
||||
|
||||
### Required and Recommended Fields
|
||||
### Câmpuri obligatorii și recomandate
|
||||
|
||||
| Câmp | Required? | Format | Notițe |
|
||||
| ----------------- | ----------- | ----------------- | ------------------------- |
|
||||
| **Email** | Recommended | `name@domain.com` | Must be unique |
|
||||
| **First Name** | Recommended | Text | |
|
||||
| **Last Name** | Recommended | Text | |
|
||||
| **Company** | Optional | Domain or ID | Links to existing Company |
|
||||
| **Phone** | Optional | Multiple columns | See below |
|
||||
| **Job Title** | Optional | Text | |
|
||||
| **Custom fields** | Optional | Varies | Must exist in Data Model |
|
||||
| Câmp | Obligatoriu? | Format | Notițe |
|
||||
| ------------------------- | ------------ | ----------------- | ------------------------------------ |
|
||||
| **Email** | Recomandat | `name@domain.com` | Trebuie să fie unică |
|
||||
| **Prenume** | Recomandat | Text | |
|
||||
| **Nume de familie** | Recomandat | Text | |
|
||||
| **Companie** | Opțional | Domeniu sau ID | Leagă de Compania existentă |
|
||||
| **Telefon** | Opțional | Mai multe coloane | Consultați mai jos |
|
||||
| **Funcție** | Opțional | Text | |
|
||||
| **Câmpuri personalizate** | Opțional | Variază | Trebuie să existe în Modelul de date |
|
||||
|
||||
### Email Format
|
||||
### Format e-mail
|
||||
|
||||
* 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:
|
||||
* Trebuie să fie în format de e-mail valid: `name@domain.com`
|
||||
* **Trebuie să fie unică** — fără duplicate în fișierul dvs. sau în Twenty
|
||||
* Pentru e-mailuri suplimentare, folosiți coloana **Emails / Additional Emails**:
|
||||
|
||||
```
|
||||
["jane@twenty.com","jane.doe@twenty.com"]
|
||||
```
|
||||
|
||||
### Phone Format
|
||||
### Format telefon
|
||||
|
||||
Phone is a **nested field** requiring multiple columns:
|
||||
Telefonul este un **câmp îmbricat** care necesită mai multe coloane:
|
||||
|
||||
| Column | Exemplu |
|
||||
| Coloană | Exemplu |
|
||||
| --------------------------------------- | ------------ |
|
||||
| **Phones / Primary Phone Number** | `4159095555` |
|
||||
| **Phones / Primary Phone Country Code** | `US` |
|
||||
| **Phones / Primary Phone Calling Code** | `+1` |
|
||||
|
||||
### Linking to Companies
|
||||
### Conectarea la Companii
|
||||
|
||||
Add a column with the Company's unique identifier:
|
||||
Adăugați o coloană cu identificatorul unic al Companiei:
|
||||
|
||||
| Column Name | Format | Exemplu |
|
||||
| Nume coloană | Format | Exemplu |
|
||||
| --------------- | ---------- | -------------------------------------- |
|
||||
| `companyDomain` | URL format | `https://acme.com` |
|
||||
| `companyDomain` | Format 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.
|
||||
**Folosiți formatul URL de domeniu** (`https://acme.com`), nu eticheta. Acest lucru corespunde modului în care Companiile sunt stocate în Twenty.
|
||||
</Note>
|
||||
|
||||
### Sample CSV Structure
|
||||
### Exemplu de structură CSV
|
||||
|
||||
```csv
|
||||
firstName,lastName,email,jobTitle,companyDomain,Phones / Primary Phone Number,Phones / Primary Phone Country Code
|
||||
@@ -93,59 +93,59 @@ 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.
|
||||
**Sfat profesional:** Faceți clic pe **Download sample file** în timpul importului sau exportați câteva Persoane existente pentru a vedea denumirile exacte ale coloanelor pe care le așteaptă Twenty.
|
||||
</Note>
|
||||
|
||||
## Step 2: Access the Import Feature
|
||||
## Pasul 2: Accesați funcția de import
|
||||
|
||||
**Option 1: From the People View**
|
||||
**Opțiunea 1: Din vizualizarea Persoane**
|
||||
|
||||
1. Navigate to **People** in the left sidebar
|
||||
2. Click the **⋮** icon on the top right
|
||||
3. Select **Import records**
|
||||
1. Navigați la **Persoane** în bara laterală stângă
|
||||
2. Faceți clic pe pictograma **⋮** din dreapta sus
|
||||
3. Selectați **Importă înregistrări**
|
||||
|
||||
**Option 2: Using Command Menu**
|
||||
**Opțiunea 2: Folosind meniul de comenzi**
|
||||
|
||||
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
|
||||
2. Type "import"
|
||||
3. Select **Import records**
|
||||
4. Choose **People**
|
||||
1. Apăsați `Cmd + K` (Mac) sau `Ctrl + K` (Windows)
|
||||
2. Tastați "import"
|
||||
3. Selectați **Importă înregistrări**
|
||||
4. Alegeți **Persoane**
|
||||
|
||||
## Step 3: Upload Your File
|
||||
## Pasul 3: Încărcați fișierul
|
||||
|
||||
1. Click **Select file**
|
||||
2. Choose your CSV, XLSX, or XLS file
|
||||
3. Wait for Twenty to analyze your file
|
||||
1. Faceți clic pe **Select file**
|
||||
2. Alegeți fișierul CSV, XLSX sau XLS
|
||||
3. Așteptați ca Twenty să analizeze fișierul
|
||||
|
||||
## Step 4: Map Your Columns
|
||||
## Pasul 4: Mapați coloanele
|
||||
|
||||
Twenty automatically tries to match your columns to fields. Review and adjust:
|
||||
Twenty încearcă automat să potrivească coloanele cu câmpurile. Revizuiți și ajustați:
|
||||
|
||||
1. **Check automatic mappings** — verify they're correct
|
||||
2. **Fix incorrect mappings** — click the dropdown to select the right field
|
||||
3. **Skip columns** — select **Do not map** for columns you don't want to import
|
||||
1. **Verificați mapările automate** — confirmați că sunt corecte
|
||||
2. **Corectați mapările incorecte** — faceți clic pe lista derulantă pentru a selecta câmpul corect
|
||||
3. **Omiteți coloanele** — selectați **Do not map** pentru coloanele pe care nu doriți să le importați
|
||||
|
||||
### Important Mapping Rules
|
||||
### Reguli importante de mapare
|
||||
|
||||
| Column Type | Map To | Notițe |
|
||||
| ----------------- | ------------------------------ | ---------------------------------- |
|
||||
| Company reference | **Company** relation field | Use domain OR id, not both |
|
||||
| Email | **Email** | Primary email address |
|
||||
| Additional emails | **Emails / Additional Emails** | Array format |
|
||||
| Telefon | Separate columns | Number, Country Code, Calling Code |
|
||||
| Tip coloană | Mapați la | Notițe |
|
||||
| ---------------------- | ------------------------------ | -------------------------------------- |
|
||||
| Referință companie | Câmpul de relație **Company** | Folosiți domeniul SAU id-ul, nu ambele |
|
||||
| Email | **Email** | Adresă de e-mail principală |
|
||||
| E-mailuri suplimentare | **Emails / Additional Emails** | Format de array |
|
||||
| Telefon | Coloane separate | Număr, Codul țării, Prefix de apelare |
|
||||
|
||||
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
|
||||
|
||||
### Mapping the Company Relation
|
||||
### Maparea relației de Companie
|
||||
|
||||
When mapping the company column:
|
||||
Când mapați coloana companiei:
|
||||
|
||||
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. Găsiți coloana de referință a companiei (de ex., `companyDomain`)
|
||||
2. Mapați-o la câmpul de relație **Company**
|
||||
3. Twenty va lega fiecare Persoană de Compania corespunzătoare
|
||||
|
||||
<Warning>
|
||||
**Map only ONE unique identifier for relations.**
|
||||
**Mapați un singur identificator unic pentru relații.**
|
||||
|
||||
Don't map both `companyId` AND `companyDomain`. Choose one—preferably domain since it's human-readable.
|
||||
</Warning>
|
||||
|
||||
+5
-5
@@ -31,11 +31,11 @@ Open-source este fundamentul abordării noastre, asigurându-ne că Twenty evolu
|
||||
* **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).
|
||||
* **Notes & Tasks:** Create notes and tasks linked to your records for better collaboration.
|
||||
* **API & Webhooks:** Connect to other apps and build custom integrations. [Începeți integrarea](/l/ro/developers/extend/capabilities/apis).
|
||||
* **IA:** Îmbunătățiți CRM-ul cu funcționalități bazate pe IA și agenți IA. [Explorați IA](/l/ro/user-guide/ai/overview).
|
||||
* **Tablouri de bord:** Urmăriți performanța cu rapoarte și vizualizări personalizate. [Vizualizați tablourile de bord](/l/ro/user-guide/dashboards/overview).
|
||||
* **Permisiuni și acces:** Controlați cine poate vizualiza, edita și gestiona datele dvs. cu permisiuni bazate pe roluri. [Configurați accesul](/l/ro/user-guide/permissions-access/overview).
|
||||
* **Note și sarcini:** Creați note și sarcini legate de înregistrările dvs. pentru o colaborare mai bună.
|
||||
* **API și Webhooks:** Conectați-vă la alte aplicații și creați integrări personalizate. [Începeți integrarea](/l/ro/developers/extend/capabilities/apis).
|
||||
|
||||
## Alătură-te acum
|
||||
|
||||
|
||||
+19
-19
@@ -1,24 +1,24 @@
|
||||
---
|
||||
title: Handle Arrays in Code Actions
|
||||
description: Learn how to properly handle array inputs in workflow Code actions.
|
||||
title: Gestionarea tablourilor în acțiunile de cod
|
||||
description: Aflați cum să gestionați corect intrările de tip tablou în acțiunile de cod din fluxurile de lucru.
|
||||
---
|
||||
|
||||
When working with arrays in Code actions, you may encounter two common challenges:
|
||||
Când lucrați cu tablouri în acțiunile de cod, este posibil să întâmpinați două provocări frecvente:
|
||||
|
||||
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. **Tablouri transmise ca șiruri** — datele din sisteme externe sau din pașii anteriori sosesc ca un șir în loc de un tablou propriu-zis
|
||||
2. **Nu puteți selecta elemente individuale** — puteți selecta doar întregul tablou, nu câmpuri specifice din interiorul lui
|
||||
|
||||
Both can be solved with a Code node.
|
||||
Ambele pot fi rezolvate cu un nod de cod.
|
||||
|
||||
## Parsing Arrays from Strings
|
||||
## Analizarea tablourilor din șiruri
|
||||
|
||||
Arrays are often passed between workflow steps as strings or JSON rather than native arrays. This happens when:
|
||||
Tablourile sunt adesea transmise între pașii unui flux de lucru ca șiruri sau JSON, mai degrabă decât ca tablouri native. Acest lucru se întâmplă când:
|
||||
|
||||
* Receiving data from external APIs via HTTP Request
|
||||
* Processing webhook payloads
|
||||
* Passing data between workflow steps
|
||||
* Primirea de date de la API-uri externe prin HTTP Request
|
||||
* Procesarea payload-urilor de webhook
|
||||
* Transmiterea datelor între pașii fluxului de lucru
|
||||
|
||||
**Solution**: Add this pattern at the start of your Code action:
|
||||
**Soluție**: Adăugați acest tipar la începutul acțiunii dvs. de cod:
|
||||
|
||||
```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.
|
||||
Linia esențială `typeof users === \"string\" ? JSON.parse(users) : users` verifică dacă intrarea este un șir, o parsează dacă este necesar sau o folosește direct dacă este deja un tablou.
|
||||
|
||||
## Extracting Individual Fields from Arrays
|
||||
## Extragerea câmpurilor individuale din tablouri
|
||||
|
||||
A webhook might return an array like `answers: [...]`, but in subsequent workflow steps you can only select the **entire array** — not individual items within it.
|
||||
Un webhook poate returna un tablou de forma `answers: [...]`, dar în pașii următori ai fluxului de lucru puteți selecta doar **întregul tablou** — nu și elemente individuale din interiorul lui.
|
||||
|
||||
**Solution**: Add a Code node to extract specific fields and return them as a structured object:
|
||||
**Soluție**: Adăugați un nod de cod pentru a extrage câmpuri specifice și a le returna ca obiect structurat:
|
||||
|
||||
```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.
|
||||
Nodul de cod returnează un obiect structurat în locul unui tablou. În pașii următori, acum puteți selecta câmpuri individuale precum `answer.firstname` și `answer.name` din selectorul de variabile.
|
||||
|
||||
<Note>
|
||||
We're actively working on making array handling easier in future updates.
|
||||
Lucrăm activ pentru a simplifica gestionarea tablourilor în actualizările viitoare.
|
||||
</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.
|
||||
Faceți clic pe pictograma pătrată din dreapta sus a editorului de cod pentru a-l afișa pe tot ecranul — util, deoarece lățimea implicită a editorului este limitată.
|
||||
</Tip>
|
||||
|
||||
+56
-56
@@ -1,52 +1,52 @@
|
||||
---
|
||||
title: Generate a Quote or Invoice from Twenty
|
||||
description: Automatically create invoices in external tools when deals close.
|
||||
title: Generați o ofertă sau o factură din Twenty
|
||||
description: Creați automat facturi în instrumente externe atunci când se închid oportunitățile.
|
||||
---
|
||||
|
||||
Automatically send deal data to your invoicing system (Stripe, QuickBooks, Xero, etc.) when an opportunity is won.
|
||||
Trimiteți automat datele oportunității către sistemul dvs. de facturare (Stripe, QuickBooks, Xero etc.) atunci când o oportunitate este câștigată.
|
||||
|
||||
## Workflow Structure
|
||||
## Structura fluxului de lucru
|
||||
|
||||
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. **Declanșator**: Înregistrarea este actualizată (Oportunitate)
|
||||
2. **Filtru**: Etapă = Closed Won
|
||||
3. **Căutare înregistrare**: Obțineți detaliile Companiei
|
||||
4. **Cod** (opțional): Formatați payload-ul
|
||||
5. **Cerere HTTP**: Trimiteți către sistemul de facturare
|
||||
|
||||
## Step 1: Set Up the Trigger
|
||||
## Pasul 1: Configurați declanșatorul
|
||||
|
||||
1. Create a new workflow
|
||||
2. Select **Record is Updated** trigger
|
||||
3. Choose **Opportunity** as the object
|
||||
1. Creați un nou flux de lucru
|
||||
2. Selectați declanșatorul **Record is Updated**
|
||||
3. Alegeți **Opportunity** ca obiect
|
||||
|
||||
## Step 2: Filter for Closed Won
|
||||
## Pasul 2: Filtrați pentru Closed Won
|
||||
|
||||
Add a **Filter** action to only continue when the deal is won:
|
||||
Adăugați o acțiune **Filter** pentru a continua doar când oportunitatea este câștigată:
|
||||
|
||||
| Setting | Valoare |
|
||||
| ------------- | --------------------------------- |
|
||||
| **Field** | Etapa |
|
||||
| **Condition** | Equals |
|
||||
| **Value** | `CLOSED_WON` (or your stage name) |
|
||||
| Setare | Valoare |
|
||||
| ------------ | ------------------------------------- |
|
||||
| **Câmp** | Etapa |
|
||||
| **Condiție** | Egal |
|
||||
| **Valoare** | `CLOSED_WON` (sau numele etapei dvs.) |
|
||||
|
||||
<Tip>
|
||||
The trigger fires on any Opportunity update. The Filter ensures the workflow only continues when the stage changes to Closed Won.
|
||||
Declanșatorul se activează la orice actualizare a unei Oportunități. Filtrul asigură că fluxul de lucru continuă doar când etapa se schimbă la Closed Won.
|
||||
</Tip>
|
||||
|
||||
## Step 3: Get Company Details
|
||||
## Pasul 3: Obțineți detalii despre Companie
|
||||
|
||||
The Opportunity record may not include all Company fields you need for the invoice. Add a **Search Record** action:
|
||||
Înregistrarea Oportunității s-ar putea să nu includă toate câmpurile Companiei de care aveți nevoie pentru factură. Adăugați o acțiune **Search Record**:
|
||||
|
||||
| Setting | Valoare |
|
||||
| ------------ | ---------------------------------------- |
|
||||
| **Object** | Companie |
|
||||
| **Match by** | ID equals `{{trigger.object.companyId}}` |
|
||||
| Setare | Valoare |
|
||||
| ------------------ | ----------------------------------------- |
|
||||
| **Obiect** | Companie |
|
||||
| **Potrivire după** | ID egal cu `{{trigger.object.companyId}}` |
|
||||
|
||||
This retrieves the full Company record with billing address, tax ID, etc.
|
||||
Aceasta preia înregistrarea completă a Companiei cu adresa de facturare, ID fiscal etc.
|
||||
|
||||
## Step 4: Format the Payload (Optional)
|
||||
## Pasul 4: Formatați payload-ul (opțional)
|
||||
|
||||
If your invoicing system expects a specific format, add a **Code** action:
|
||||
Dacă sistemul dvs. de facturare așteaptă un format specific, adăugați o acțiune **Code**:
|
||||
|
||||
```javascript
|
||||
export const main = async (params: {
|
||||
@@ -84,18 +84,18 @@ export const main = async (params: {
|
||||
};
|
||||
```
|
||||
|
||||
## Step 5: Send to Invoicing System
|
||||
## Pasul 5: Trimiteți către sistemul de facturare
|
||||
|
||||
Add an **HTTP Request** action:
|
||||
Adăugați o acțiune **HTTP Request**:
|
||||
|
||||
| Setting | Valoare |
|
||||
| ----------- | ----------------------------------------- |
|
||||
| **Method** | POST |
|
||||
| **URL** | Your invoicing API endpoint |
|
||||
| **Headers** | `Authorization: Bearer YOUR_API_KEY` |
|
||||
| **Body** | `{{code.invoice}}` or map fields directly |
|
||||
| Setare | Valoare |
|
||||
| ------------ | ------------------------------------------------------ |
|
||||
| **Metodă** | POST |
|
||||
| **URL** | Punctul final al API-ului sistemului dvs. de facturare |
|
||||
| **Anteturi** | `Authorization: Bearer YOUR_API_KEY` |
|
||||
| **Corp** | `{{code.invoice}}` sau mapați câmpurile direct |
|
||||
|
||||
### Example: Stripe Invoice
|
||||
### Exemplu: Factură Stripe
|
||||
|
||||
```
|
||||
POST https://api.stripe.com/v1/invoices
|
||||
@@ -109,7 +109,7 @@ Body:
|
||||
days_until_due: 30
|
||||
```
|
||||
|
||||
### Example: QuickBooks Invoice
|
||||
### Exemplu: Factură QuickBooks
|
||||
|
||||
```
|
||||
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice
|
||||
@@ -120,24 +120,24 @@ Headers:
|
||||
Body: {{code.invoice}}
|
||||
```
|
||||
|
||||
## Complete Workflow Summary
|
||||
## Rezumat complet al fluxului de lucru
|
||||
|
||||
| Step | Acțiune | Purpose |
|
||||
| ---- | ----------------------- | ------------------------------------ |
|
||||
| 1 | Trigger: Record Updated | Fires when any Opportunity changes |
|
||||
| 2 | Filter | Only proceed if Stage = Closed Won |
|
||||
| 3 | Search Record | Get full Company details for billing |
|
||||
| 4 | Cod | Format data for invoicing API |
|
||||
| 5 | Solicitare HTTP | Create invoice in external system |
|
||||
| Pas | Acțiune | Scop |
|
||||
| --- | ------------------------------------------- | ---------------------------------------------------------- |
|
||||
| 1 | Declanșator: Înregistrarea este actualizată | Se activează la orice modificare a unei Oportunități |
|
||||
| 2 | Filtru | Continuați doar dacă Etapa = Closed Won |
|
||||
| 3 | Căutare înregistrare | Obțineți detaliile complete ale Companiei pentru facturare |
|
||||
| 4 | Cod | Formatați datele pentru API-ul de facturare |
|
||||
| 5 | Solicitare HTTP | Creați factura în sistemul extern |
|
||||
|
||||
## Tips
|
||||
## Sfaturi
|
||||
|
||||
* **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
|
||||
* **Stocați ID-urile externe**: Salvați ID-ul facturii returnat de API înapoi în Oportunitate folosind o acțiune **Update Record**
|
||||
* **Gestionarea erorilor**: Adăugați o ramură pentru a trimite o notificare dacă cererea HTTP eșuează
|
||||
* **Testați mai întâi**: Utilizați modul sandbox/test al sistemului dvs. de facturare înainte de lansare
|
||||
|
||||
## Related
|
||||
## Conexe
|
||||
|
||||
* [Workflow Triggers](/l/ro/user-guide/workflows/capabilities/workflow-triggers)
|
||||
* [Workflow Actions](/l/ro/user-guide/workflows/capabilities/workflow-actions)
|
||||
* [Closed Won Automations](/l/ro/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
|
||||
* [Declanșatoare ale fluxurilor de lucru](/l/ro/user-guide/workflows/capabilities/workflow-triggers)
|
||||
* [Acțiuni ale fluxurilor de lucru](/l/ro/user-guide/workflows/capabilities/workflow-actions)
|
||||
* [Automatizări pentru Closed Won](/l/ro/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: İş Akışı Kredileri
|
||||
description: İş akışı kredilerini, tüketimi ve daha fazla kredi satın almayı anlama.
|
||||
description: İş akışı kredilerini, tüketimi ve daha fazla krediyi nasıl satın alacağınızı anlamak.
|
||||
---
|
||||
|
||||
## Genel Bakış
|
||||
|
||||
+17
-17
@@ -1,28 +1,28 @@
|
||||
---
|
||||
title: Can I Book Meetings from Twenty?
|
||||
description: Information about booking meetings directly from Twenty.
|
||||
title: Twenty'den Toplantı Planlayabilir miyim?
|
||||
description: Toplantıları doğrudan Twenty üzerinden planlamaya ilişkin bilgiler.
|
||||
---
|
||||
|
||||
## Current Status
|
||||
## Mevcut Durum
|
||||
|
||||
**No, Twenty does not currently support booking meetings directly from the platform.**
|
||||
**Hayır, Twenty platform üzerinden doğrudan toplantı planlamayı şu anda desteklemiyor.**
|
||||
|
||||
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'nin takvim entegrasyonu, mevcut takvim etkinliklerinizi **eşitlemek ve görüntülemek** üzere tasarlanmıştır, yeni etkinlikler oluşturmak için değil. Tüm toplantı planlamaları yerel takvim uygulamanız (Google Calendar, Microsoft Outlook vb.) üzerinden yapılmalıdır.
|
||||
|
||||
## What You Can Do
|
||||
## Yapabilecekleriniz
|
||||
|
||||
* **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
|
||||
* **Toplantı geçmişini görüntüleyin** — Kişiler, Şirketler ve Fırsatlar kayıtlarında
|
||||
* **Yaklaşan toplantıları görün** — CRM'inizdeki kişilerle
|
||||
* **Toplantı bağlamını takip edin** — e-posta iletişimiyle birlikte
|
||||
* **Otomatik olarak kişi oluşturun** — toplantı katılımcılarından
|
||||
|
||||
## How to Schedule Meetings
|
||||
## Toplantılar Nasıl Planlanır
|
||||
|
||||
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. Yerel takvim uygulamanızı kullanın (Google Calendar, Outlook vb.)
|
||||
2. Toplantıyı her zamanki gibi oluşturun
|
||||
3. Toplantı 5 dakika içinde otomatik olarak Twenty'ye eşitlenir
|
||||
4. Toplantıyı ilgili CRM kayıtlarında görüntüleyin
|
||||
|
||||
## Future Plans
|
||||
## Gelecek Planları
|
||||
|
||||
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 içinde toplantı 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.
|
||||
|
||||
+67
-67
@@ -1,90 +1,90 @@
|
||||
---
|
||||
title: Import Contacts via CSV
|
||||
description: Complete step-by-step guide to importing people/contacts into Twenty.
|
||||
title: CSV ile Kişileri İçe Aktarın
|
||||
description: Twenty'ye kişileri içe aktarmaya yönelik eksiksiz, adım adım kılavuz.
|
||||
---
|
||||
|
||||
## Genel Bakış
|
||||
|
||||
This guide walks you through importing your contacts (People) into Twenty. **Import Companies first** if you want to link People to Companies.
|
||||
Bu kılavuz, kişilerinizi (Kişiler) Twenty'ye içe aktarma sürecinde size yol gösterir. **Önce Şirketleri içe aktarın**, Kişileri Şirketlere bağlamak istiyorsanız.
|
||||
|
||||
## Başlamadan Önce
|
||||
|
||||
### Prerequisites Checklist
|
||||
### Ön Koşul Kontrol Listesi
|
||||
|
||||
<Check>
|
||||
Your file is CSV, XLSX, or XLS format
|
||||
Dosyanız CSV, XLSX veya XLS biçiminde
|
||||
</Check>
|
||||
|
||||
<Check>
|
||||
File has fewer than 10,000 records
|
||||
Dosyada 10.000'den az kayıt var
|
||||
</Check>
|
||||
|
||||
<Check>
|
||||
No duplicate email addresses in your file
|
||||
Dosyanızda yinelenen e-posta adresi yok
|
||||
</Check>
|
||||
|
||||
<Check>
|
||||
**Companies imported first** (if linking People to Companies)
|
||||
**Şirketler önce içe aktarılmış** (Kişileri Şirketlere bağlayacaksanız)
|
||||
</Check>
|
||||
|
||||
<Check>
|
||||
All custom fields exist in **Settings → Data Model**
|
||||
Tüm özel alanlar **Ayarlar → Veri Modeli**'nde mevcut
|
||||
</Check>
|
||||
|
||||
<Warning>
|
||||
**Import Companies Before People**
|
||||
**Kişilerden Önce Şirketleri İçe Aktarın**
|
||||
|
||||
If you want to link People to Companies, import Companies first. The Company must exist before you can reference it.
|
||||
Kişileri Şirketlere bağlamak istiyorsanız, önce Şirketleri içe aktarın. Şirkete referans verebilmeden önce şirketin mevcut olması gerekir.
|
||||
</Warning>
|
||||
|
||||
## Step 1: Prepare Your Contact Data
|
||||
## Adım 1: Kişi Verinizi Hazırlayın
|
||||
|
||||
### Required and Recommended Fields
|
||||
### Zorunlu ve Önerilen Alanlar
|
||||
|
||||
| Alan | Required? | Biçim | Notlar |
|
||||
| ----------------- | ----------- | ----------------- | ------------------------- |
|
||||
| **E-posta** | Recommended | `name@domain.com` | Must be unique |
|
||||
| **First Name** | Recommended | Metin | |
|
||||
| **Last Name** | Recommended | Metin | |
|
||||
| **Company** | Optional | Domain or ID | Links to existing Company |
|
||||
| **Phone** | Optional | Multiple columns | See below |
|
||||
| **Job Title** | Optional | Metin | |
|
||||
| **Custom fields** | Optional | Varies | Must exist in Data Model |
|
||||
| Alan | Zorunlu mu? | Biçim | Notlar |
|
||||
| ---------------- | ------------ | ----------------- | ----------------------------- |
|
||||
| **E-posta** | Önerilen | `name@domain.com` | Benzersiz olmalı |
|
||||
| **Ad** | Önerilen | Metin | |
|
||||
| **Soyadı** | Önerilen | Metin | |
|
||||
| **Şirket** | İsteğe bağlı | Alan adı veya ID | Mevcut bir Şirkete bağlanır |
|
||||
| **Telefon** | İsteğe bağlı | Birden çok sütun | Aşağıya bakın |
|
||||
| **İş Unvanı** | İsteğe bağlı | Metin | |
|
||||
| **Özel Alanlar** | İsteğe bağlı | Değişir | Veri Modeli'nde mevcut olmalı |
|
||||
|
||||
### Email Format
|
||||
### E-posta Biçimi
|
||||
|
||||
* 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:
|
||||
* Geçerli e-posta biçiminde olmalıdır: `name@domain.com`
|
||||
* **Benzersiz olmalı** — dosyanızda veya Twenty'de yinelenen olmamalı
|
||||
* Ek e-postalar için **Emails / Additional Emails** sütununu kullanın:
|
||||
|
||||
```
|
||||
["jane@twenty.com","jane.doe@twenty.com"]
|
||||
```
|
||||
|
||||
### Phone Format
|
||||
### Telefon Biçimi
|
||||
|
||||
Phone is a **nested field** requiring multiple columns:
|
||||
Telefon, birden çok sütun gerektiren **iç içe bir alan**dır:
|
||||
|
||||
| Column | Örnek |
|
||||
| Sütun | Örnek |
|
||||
| --------------------------------------- | ------------ |
|
||||
| **Phones / Primary Phone Number** | `4159095555` |
|
||||
| **Phones / Primary Phone Country Code** | `US` |
|
||||
| **Phones / Primary Phone Calling Code** | `+1` |
|
||||
|
||||
### Linking to Companies
|
||||
### Şirketlerle Bağlantı Kurma
|
||||
|
||||
Add a column with the Company's unique identifier:
|
||||
Şirketin benzersiz tanımlayıcısını içeren bir sütun ekleyin:
|
||||
|
||||
| Column Name | Biçim | Örnek |
|
||||
| Sütun Adı | Biçim | Örnek |
|
||||
| --------------- | ---------- | -------------------------------------- |
|
||||
| `companyDomain` | URL format | `https://acme.com` |
|
||||
| `companyDomain` | URL biçimi | `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.
|
||||
**Alan Adı URL biçimini kullanın** (`https://acme.com`), etiketi değil. Bu, Şirketlerin Twenty'de nasıl saklandığıyla uyumludur.
|
||||
</Note>
|
||||
|
||||
### Sample CSV Structure
|
||||
### Örnek CSV Yapısı
|
||||
|
||||
```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.
|
||||
**İpucu:** İçe aktarma sırasında **Örnek dosyayı indir**'i tıklayın ya da Twenty'nin beklediği tam sütun adlarını görmek için mevcut birkaç Kişiyi dışa aktarın.
|
||||
</Note>
|
||||
|
||||
## Step 2: Access the Import Feature
|
||||
## Adım 2: İçe Aktarma Özelliğine Erişin
|
||||
|
||||
**Option 1: From the People View**
|
||||
**Seçenek 1: Kişiler görünümünden**
|
||||
|
||||
1. Navigate to **People** in the left sidebar
|
||||
2. Click the **⋮** icon on the top right
|
||||
3. Select **Import records**
|
||||
1. Sol kenar çubuğunda **Kişiler**'e gidin
|
||||
2. Sağ üstteki **⋮** simgesine tıklayın
|
||||
3. **Kayıtları İçe Aktar**'ı seçin
|
||||
|
||||
**Option 2: Using Command Menu**
|
||||
**Seçenek 2: Komut Menüsünü kullanma**
|
||||
|
||||
1. Press `Cmd + K` (Mac) or `Ctrl + K` (Windows)
|
||||
2. Type "import"
|
||||
3. Select **Import records**
|
||||
4. Choose **People**
|
||||
1. Mac'te `Cmd + K`, Windows'ta `Ctrl + K` tuşlarına basın
|
||||
2. "import" yazın
|
||||
3. **Kayıtları İçe Aktar**'ı seçin
|
||||
4. **Kişiler**'i seçin
|
||||
|
||||
## Step 3: Upload Your File
|
||||
## Adım 3: Dosyanızı Yükleyin
|
||||
|
||||
1. Click **Select file**
|
||||
2. Choose your CSV, XLSX, or XLS file
|
||||
3. Wait for Twenty to analyze your file
|
||||
1. **Dosya seç**'e tıklayın
|
||||
2. CSV, XLSX veya XLS dosyanızı seçin
|
||||
3. Twenty'nin dosyanızı analiz etmesini bekleyin
|
||||
|
||||
## Step 4: Map Your Columns
|
||||
## Adım 4: Sütunlarınızı Eşleyin
|
||||
|
||||
Twenty automatically tries to match your columns to fields. Review and adjust:
|
||||
Twenty, sütunlarınızı alanlarla eşleştirmeyi otomatik olarak dener. Gözden geçirin ve ayarlayın:
|
||||
|
||||
1. **Check automatic mappings** — verify they're correct
|
||||
2. **Fix incorrect mappings** — click the dropdown to select the right field
|
||||
3. **Skip columns** — select **Do not map** for columns you don't want to import
|
||||
1. **Otomatik eşlemeleri kontrol edin** — doğru olduklarını doğrulayın
|
||||
2. **Yanlış eşlemeleri düzeltin** — doğru alanı seçmek için açılır menüye tıklayın
|
||||
3. **Sütunları atlayın** — içe aktarmak istemediğiniz sütunlar için **Do not map** seçeneğini seçin
|
||||
|
||||
### Important Mapping Rules
|
||||
### Önemli Eşleme Kuralları
|
||||
|
||||
| Column Type | Map To | Notlar |
|
||||
| ----------------- | ------------------------------ | ---------------------------------- |
|
||||
| Company reference | **Company** relation field | Use domain OR id, not both |
|
||||
| E-posta | **E-posta** | Primary email address |
|
||||
| Additional emails | **Emails / Additional Emails** | Array format |
|
||||
| Telefon | Separate columns | Number, Country Code, Calling Code |
|
||||
| Sütun Türü | Eşlenecek Alan | Notlar |
|
||||
| ---------------- | ------------------------------ | ----------------------------------------------------- |
|
||||
| Şirket referansı | **Company** ilişki alanı | Alan adını YA DA id'yi kullanın, ikisini birden değil |
|
||||
| E-posta | **E-posta** | Birincil e-posta adresi |
|
||||
| Ek e-postalar | **Emails / Additional Emails** | Dizi biçimi |
|
||||
| Telefon | Ayrı sütunlar | Numara, Ülke Kodu, Arama Kodu |
|
||||
|
||||
<img src="/images/user-guide/import-export-data/match-columns.png" style={{width:'100%'}} />
|
||||
|
||||
### Mapping the Company Relation
|
||||
### Şirket İlişkisinin Eşlenmesi
|
||||
|
||||
When mapping the company column:
|
||||
Şirket sütununu eşlerken:
|
||||
|
||||
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. Şirket referans sütununuzu bulun (ör. `companyDomain`)
|
||||
2. Bunu **Company** ilişki alanına eşleyin
|
||||
3. Twenty, her Kişiyi eşleşen Şirkete bağlar
|
||||
|
||||
<Warning>
|
||||
**Map only ONE unique identifier for relations.**
|
||||
|
||||
+19
-19
@@ -1,24 +1,24 @@
|
||||
---
|
||||
title: Handle Arrays in Code Actions
|
||||
description: Learn how to properly handle array inputs in workflow Code actions.
|
||||
title: Code Eylemlerinde Dizileri İşleme
|
||||
description: İş akışındaki Code eylemlerinde dizi girdilerini doğru şekilde nasıl ele alacağınızı öğrenin.
|
||||
---
|
||||
|
||||
When working with arrays in Code actions, you may encounter two common challenges:
|
||||
Code eylemlerinde dizilerle çalışırken iki yaygın sorunla karşılaşabilirsiniz:
|
||||
|
||||
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. **String olarak iletilen diziler** — harici sistemlerden veya önceki adımlardan gelen veriler gerçek bir dizi yerine string olarak gelir
|
||||
2. **Tekil öğeleri seçememe** — içindeki belirli alanları değil, yalnızca tüm diziyi seçebilirsiniz
|
||||
|
||||
Both can be solved with a Code node.
|
||||
Her ikisi de bir Code düğümüyle çözülebilir.
|
||||
|
||||
## Parsing Arrays from Strings
|
||||
## Stringlerden Dizileri Ayrıştırma
|
||||
|
||||
Arrays are often passed between workflow steps as strings or JSON rather than native arrays. This happens when:
|
||||
Diziler, iş akışı adımları arasında sıklıkla yerel diziler yerine string veya JSON olarak iletilir. Şu durumlarda gerçekleşir:
|
||||
|
||||
* Receiving data from external APIs via HTTP Request
|
||||
* Processing webhook payloads
|
||||
* Passing data between workflow steps
|
||||
* HTTP Request aracılığıyla harici API'lerden veri alma
|
||||
* Webhook yüklerini işleme
|
||||
* İş akışı adımları arasında veri aktarma
|
||||
|
||||
**Solution**: Add this pattern at the start of your Code action:
|
||||
**Çözüm**: Bu kalıbı Code eyleminizin başına ekleyin:
|
||||
|
||||
```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.
|
||||
Önemli satır `typeof users === "string" ? JSON.parse(users) : users` girdinin bir string olup olmadığını kontrol eder, gerekirse ayrıştırır veya zaten bir dizi ise doğrudan kullanır.
|
||||
|
||||
## Extracting Individual Fields from Arrays
|
||||
## Dizilerden Tekil Alanlar Çıkarma
|
||||
|
||||
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.
|
||||
Bir webhook `answers: [...]` gibi bir dizi döndürebilir, ancak sonraki iş akışı adımlarında içindeki tek tek öğeleri değil — yalnızca tüm diziyi seçebilirsiniz.
|
||||
|
||||
**Solution**: Add a Code node to extract specific fields and return them as a structured object:
|
||||
**Çözüm**: Belirli alanları çıkarmak ve bunları yapılandırılmış bir nesne olarak döndürmek için bir Code düğümü ekleyin:
|
||||
|
||||
```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 düğümü bir dizi yerine yapılandırılmış bir nesne döndürür. Sonraki adımlarda, değişken seçiciden `answer.firstname` ve `answer.name` gibi tekil alanları artık seçebilirsiniz.
|
||||
|
||||
<Note>
|
||||
We're actively working on making array handling easier in future updates.
|
||||
Gelecek güncellemelerde diziyle çalışmayı kolaylaştırmak için aktif olarak çalışıyoruz.
|
||||
</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.
|
||||
Kod düzenleyicisinin sağ üst kısmındaki kare simgeye tıklayarak tam ekranda görüntüleyin — varsayılan düzenleyici genişliği sınırlı olduğundan faydalıdır.
|
||||
</Tip>
|
||||
|
||||
+56
-56
@@ -1,52 +1,52 @@
|
||||
---
|
||||
title: Generate a Quote or Invoice from Twenty
|
||||
description: Automatically create invoices in external tools when deals close.
|
||||
title: Twenty'den Teklif veya Fatura Oluşturun
|
||||
description: Fırsatlar kapandığında harici araçlarda otomatik olarak faturalar oluşturun.
|
||||
---
|
||||
|
||||
Automatically send deal data to your invoicing system (Stripe, QuickBooks, Xero, etc.) when an opportunity is won.
|
||||
Fırsat verilerini faturalama sisteminize (Stripe, QuickBooks, Xero, vb.) otomatik olarak gönderin bir fırsat kazanıldığında.
|
||||
|
||||
## Workflow Structure
|
||||
## İş Akışı Yapısı
|
||||
|
||||
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. **Tetikleme**: Kayıt Güncellendi (Fırsat)
|
||||
2. **Filtre**: Aşama = Closed Won
|
||||
3. **Kayıt Ara**: Şirket ayrıntılarını alın
|
||||
4. **Kod** (isteğe bağlı): Yükü biçimlendirin
|
||||
5. **HTTP İsteği**: Faturalama sistemine gönderin
|
||||
|
||||
## Step 1: Set Up the Trigger
|
||||
## Adım 1: Tetiklemeyi Ayarlayın
|
||||
|
||||
1. Create a new workflow
|
||||
2. Select **Record is Updated** trigger
|
||||
3. Choose **Opportunity** as the object
|
||||
1. Yeni bir iş akışı oluşturun
|
||||
2. **Kayıt Güncellendi** tetikleyicisini seçin
|
||||
3. Nesne olarak **Fırsat**'ı seçin
|
||||
|
||||
## Step 2: Filter for Closed Won
|
||||
## Adım 2: Closed Won için filtreleyin
|
||||
|
||||
Add a **Filter** action to only continue when the deal is won:
|
||||
Yalnızca fırsat kazanıldığında devam etmek için bir **Filtre** eylemi ekleyin:
|
||||
|
||||
| Setting | Değer |
|
||||
| ------------- | --------------------------------- |
|
||||
| **Field** | Aşama |
|
||||
| **Condition** | Equals |
|
||||
| **Value** | `CLOSED_WON` (or your stage name) |
|
||||
| Ayar | Değer |
|
||||
| --------- | -------------------------------- |
|
||||
| **Alan** | Aşama |
|
||||
| **Koşul** | Eşittir |
|
||||
| **Değer** | `CLOSED_WON` (veya aşama adınız) |
|
||||
|
||||
<Tip>
|
||||
The trigger fires on any Opportunity update. The Filter ensures the workflow only continues when the stage changes to Closed Won.
|
||||
Tetikleyici, herhangi bir Fırsat güncellemesinde tetiklenir. Filtre, aşama Closed Won olduğunda iş akışının devam etmesini sağlar.
|
||||
</Tip>
|
||||
|
||||
## Step 3: Get Company Details
|
||||
## Adım 3: Şirket Ayrıntılarını Alın
|
||||
|
||||
The Opportunity record may not include all Company fields you need for the invoice. Add a **Search Record** action:
|
||||
Fırsat kaydı, fatura için ihtiyaç duyduğunuz tüm Şirket alanlarını içermeyebilir. Bir **Kayıt Ara** eylemi ekleyin:
|
||||
|
||||
| Setting | Değer |
|
||||
| ------------ | ---------------------------------------- |
|
||||
| **Object** | Şirket |
|
||||
| **Match by** | ID equals `{{trigger.object.companyId}}` |
|
||||
| Ayar | Değer |
|
||||
| ---------------------- | --------------------------------------------------- |
|
||||
| **Nesne** | Şirket |
|
||||
| **Şuna göre eşleştir** | ID, `{{trigger.object.companyId}}` değerine eşittir |
|
||||
|
||||
This retrieves the full Company record with billing address, tax ID, etc.
|
||||
Bu, fatura adresi, vergi kimliği vb. ile birlikte tam Şirket kaydını getirir.
|
||||
|
||||
## Step 4: Format the Payload (Optional)
|
||||
## Adım 4: Yükü Biçimlendirin (İsteğe Bağlı)
|
||||
|
||||
If your invoicing system expects a specific format, add a **Code** action:
|
||||
Faturalama sisteminiz belirli bir biçim bekliyorsa bir **Kod** eylemi ekleyin:
|
||||
|
||||
```javascript
|
||||
export const main = async (params: {
|
||||
@@ -84,18 +84,18 @@ export const main = async (params: {
|
||||
};
|
||||
```
|
||||
|
||||
## Step 5: Send to Invoicing System
|
||||
## Adım 5: Faturalama Sistemine Gönderin
|
||||
|
||||
Add an **HTTP Request** action:
|
||||
Bir **HTTP İsteği** eylemi ekleyin:
|
||||
|
||||
| Setting | Değer |
|
||||
| ----------- | ----------------------------------------- |
|
||||
| **Method** | POST |
|
||||
| **URL** | Your invoicing API endpoint |
|
||||
| **Headers** | `Authorization: Bearer YOUR_API_KEY` |
|
||||
| **Body** | `{{code.invoice}}` or map fields directly |
|
||||
| Ayar | Değer |
|
||||
| ------------- | ------------------------------------------------- |
|
||||
| **Yöntem** | POST |
|
||||
| **URL** | Faturalama API uç noktanız |
|
||||
| **Başlıklar** | `Authorization: Bearer YOUR_API_KEY` |
|
||||
| **Gövde** | `{{code.invoice}}` veya alanları doğrudan eşleyin |
|
||||
|
||||
### Example: Stripe Invoice
|
||||
### Örnek: Stripe Faturası
|
||||
|
||||
```
|
||||
POST https://api.stripe.com/v1/invoices
|
||||
@@ -109,7 +109,7 @@ Body:
|
||||
days_until_due: 30
|
||||
```
|
||||
|
||||
### Example: QuickBooks Invoice
|
||||
### Örnek: QuickBooks Faturası
|
||||
|
||||
```
|
||||
POST https://quickbooks.api.intuit.com/v3/company/{realmId}/invoice
|
||||
@@ -120,24 +120,24 @@ Headers:
|
||||
Body: {{code.invoice}}
|
||||
```
|
||||
|
||||
## Complete Workflow Summary
|
||||
## Tam İş Akışı Özeti
|
||||
|
||||
| Step | Eylem | Purpose |
|
||||
| ---- | ----------------------- | ------------------------------------ |
|
||||
| 1 | Trigger: Record Updated | Fires when any Opportunity changes |
|
||||
| 2 | Filtre | Only proceed if Stage = Closed Won |
|
||||
| 3 | Search Record | Get full Company details for billing |
|
||||
| 4 | Kod | Format data for invoicing API |
|
||||
| 5 | HTTP İsteği | Create invoice in external system |
|
||||
| Adım | Eylem | Amaç |
|
||||
| ---- | ---------------------------- | --------------------------------------------- |
|
||||
| 1 | Tetikleme: Kayıt Güncellendi | Herhangi bir Fırsat değiştiğinde tetiklenir |
|
||||
| 2 | Filtre | Yalnızca Aşama = Closed Won ise devam edin |
|
||||
| 3 | Kayıt Ara | Faturalama için tam Şirket ayrıntılarını alın |
|
||||
| 4 | Kod | Faturalama API'si için verileri biçimlendirin |
|
||||
| 5 | HTTP İsteği | Harici sistemde fatura oluşturun |
|
||||
|
||||
## Tips
|
||||
## İpuçları
|
||||
|
||||
* **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
|
||||
* **Harici kimlikleri saklayın**: API tarafından döndürülen fatura kimliğini bir **Kayıt Güncelle** eylemi kullanarak Fırsat'a geri kaydedin
|
||||
* **Hata işleme**: HTTP isteği başarısız olursa bir bildirim göndermek için bir dal ekleyin
|
||||
* **Önce test edin**: Canlıya almadan önce faturalama sisteminizin sandbox/test modunu kullanın
|
||||
|
||||
## Related
|
||||
## İlgili
|
||||
|
||||
* [Workflow Triggers](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
|
||||
* [Workflow Actions](/l/tr/user-guide/workflows/capabilities/workflow-actions)
|
||||
* [Closed Won Automations](/l/tr/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
|
||||
* [İş Akışı Tetikleyicileri](/l/tr/user-guide/workflows/capabilities/workflow-triggers)
|
||||
* [İş Akışı Eylemleri](/l/tr/user-guide/workflows/capabilities/workflow-actions)
|
||||
* [Kazanıldı Otomasyonları](/l/tr/user-guide/workflows/how-tos/crm-automations/closed-won-automations)
|
||||
|
||||
Reference in New Issue
Block a user