> ## Documentation Index
> Fetch the complete documentation index at: https://docs.twenty.com/llms.txt
> Use this file to discover all available pages before exploring further.

# إجراءات سير العمل

> تعرّف على الإجراءات المتاحة في عمليات سير العمل في Twenty.

export const VimeoEmbed = ({videoId, title = 'Video'}) => <div style={{
  padding: '69.01% 0 0 0',
  position: 'relative',
  margin: '32px 0px',
  borderRadius: '16px',
  overflow: 'hidden',
  border: '2px solid black'
}}>
    <iframe src={`https://player.vimeo.com/video/${videoId}?autoplay=1&loop=1&autopause=0&background=1&app_id=58479`} frameBorder="0" allow="autoplay; fullscreen; picture-in-picture; clipboard-write" style={{
  position: 'absolute',
  top: 0,
  left: 0,
  width: '100%',
  height: '100%',
  transform: 'scale(1.1)'
}} title={title} />
  </div>;

## حول الإجراءات

تحدد الإجراءات ما يحدث بعد تنفيذ الزناد. يمكنك تسلسل عدة إجراءات معًا لبناء عمليات أتمتة معقدة.

<Tip>
  * استخدم منتقي المتغيرات (انقر أيقونة `(x+)`) لاستعراض البيانات المتاحة من الخطوات السابقة
  * مرّر المؤشر فوق أي حقل إدخال لمعرفة الخطوة التي يأتي منها المتغير — وهو أمر مفيد عندما يوجد الحقل نفسه (مثلًا، ID) في عدة خطوات سابقة
  * امنح كل إجراء اسمًا وصفيًا لتسهيل الصيانة
</Tip>

## إجراءات السجل

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/workflow_actions.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=76371d6cc755528643859025c3fad709" style={{width:'100%'}} width="1596" height="2268" data-path="images/user-guide/workflows/workflow_actions.png" />

### إنشاء سجل جديد

يضيف سجل جديد إلى كائن محدد.

**الإعداد**:

* اختر الكائن المستهدف
* املأ الحقول الضرورية والاختيارية
* استخدم البيانات من الخطوات السابقة أو أدخِل القيم يدويًا لملء الحقول

**المخرجات**: بيانات السجل المنشأ حديثاً متاحة للاستخدام في الخطوات التالية.

### تحديث السجل

يقوم بتعديل سجل موجود في كائن محدد.

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/update_record.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=779714633fc4472e6fd67a3de73f1323" style={{width:'100%'}} width="1584" height="1120" data-path="images/user-guide/workflows/update_record.png" />

**الإعداد**:

* اختر الكائن المستهدف
* اختر السجل المحدد لتحديثه.
  * يمكنك إما اختيار سجل ثابت، باستخدام القائمة المنسدلة التي تعرض جميع السجلات المتاحة.
  * أو يمكنك اختيار السجل ديناميكيًا بتحديد سجل تم العثور عليه في خطوة سابقة، باستخدام `(x+)`. لا يمكنك البحث عن السجل بناءً على معايير مختلفة في هذه المرحلة. إذا لم تكن قد حدّدت السجل بعد، فأضِف خطوة `Search Record` قبل خطوة `Update Record`.
* اختر الحقول لتعديل القيم وأدخل القيم الجديدة

**المخرجات**: بيانات السجل المحدثة متاحة للاستخدام في الخطوات التالية.

### حذف السجل

يزيل سجلاً من كائن محدد.

**التكوين**:

* اختر الكائن المستهدف
* اختر السجل المحدد لحذفه

**المخرجات**: تظل بيانات السجل المحذوف متاحة للاستخدام في الخطوات التالية.

### البحث في السجلات

يجد السجلات داخل كائن معين باستخدام شروط التصفية.

**التكوين**:

* اختر الكائن للبحث
* حدد معايير التصفية لتضييق النتائج
* قم بتكوين الفرز والقيود

**المخرجات**: تعيد السجلات المطابقة التي يمكن استخدامها في الخطوات اللاحقة.

<Note>
  **الحد**: تعيد Search Records بحد أقصى **200 سجل**. إذا كنت بحاجة إلى معالجة المزيد، فأضِف عوامل تصفية محددة لتقليل النتائج أو استخدم عمليات سير عمل مجدولة للمعالجة على دفعات.
</Note>

**أفضل الممارسات**: استخدم [الفروع](/l/ar/user-guide/workflows/capabilities/workflow-branches) بعد Search Records للتعامل مع سيناريوهات "تم العثور" مقابل "لم يتم العثور".

### إدراج أو تحديث سجل

ينشئ سجلًا جديدًا أو يحدّث سجلًا موجودًا استنادًا إلى معايير المطابقة. يكون هذا مفيدًا عندما لا تكون متأكدًا مما إذا كان السجل موجودًا بالفعل.

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/upsert_double_identifier.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=f9e702ec5b631af03515d9e8af633216" style={{width:'100%'}} width="2908" height="2288" data-path="images/user-guide/workflows/upsert_double_identifier.png" />

**التكوين**:

* اختر الكائن المستهدف
* لاحظ الحقول التي يمكن استخدامها للمطابقة: email لـ People، وdomain لـ Companies، وID لأي كائن، أو أي حقل مُعلَّم كـ Unique. ستحتاج إلى تعبئة واحد على الأقل من هذه الحقول أدناه.
* املأ قيم الحقول. لا تنسَ تعبئة معرّف فريد واحد على الأقل.

<Note>
  **تعمل المطابقة عادةً بشكل أفضل عند إضافة معرّف فريد واحد فقط.** على سبيل المثال، ستطابق لقطة الشاشة أدناه الشركات استنادًا إلى domain الخاص بها. لا تكون قيمة ID مطلوبة بالضرورة.
</Note>

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/upsert_simple_identifier.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=8bd8daf7e4a064c529337d77f0d17b19" style={{width:'100%'}} width="2924" height="2308" data-path="images/user-guide/workflows/upsert_simple_identifier.png" />

* استخدم البيانات من الخطوات السابقة لملء الحقول

**كيف يعمل**:

1. يبحث عن سجل يطابق معاييرك
2. إذا تم العثور عليه → يحدّث السجل الموجود
3. إذا لم يُعثر عليه → ينشئ سجلًا جديدًا

**المخرجات**: بيانات السجل التي تم إنشاؤها أو تحديثها متاحة للاستخدام في الخطوات التالية.

## إجراءات التدفق

### مكرر

**يتكرر عبر مصفوفة من السجلات** المُعادة من خطوة سابقة، مما يتيح لك تنفيذ إجراءات على كل سجل بشكل فردي.

**التكوين**:

* اختر مصفوفة السجلات من خطوة سابقة (مثل نتائج البحث عن السجلات، أو من مشغل يدوي مع إتاحة التنفيذ بالجملة، أو من عقدة كود). عندما تُرجِع خطوة Code أو دالة منطقية مصفوفة من المستوى الأعلى، حدِّد خيار **Whole list** للتكرار عبر الإخراج بالكامل.
* حدد الإجراءات لتنفيذها على كل سجل في الحلقة.

<Note>
  - يمكنك إضافة عدة إجراءات داخل المُكرِّر.
  - عند استخدام تفرعات داخل المُكرِّر، تأكد من أن تتصل الخطوة الأخيرة من كل تفرع بالمُكرِّر لإغلاق الحلقة.
</Note>

* الوصول إلى حقول `Current Item`: لاستخدام حقول السجل الجاري معالجته، انقر على خطوة **المُكرِّر**، ثم اختر **العنصر الحالي**. ستُعرَض قائمة الحقول المتاحة من ذلك السجل ويمكن اختيارها لاستخدامها في الإجراءات اللاحقة. يمكنك أيضًا تحديد **Use the whole item** لتمرير العنصر الحالي بالكامل إلى خطوة لاحقة.

<VimeoEmbed videoId="1146577247" title="عرض توضيحي بالفيديو" />

### تصفية

يقوم بتصفية السجلات بناءً على الشروط المحددة، مما يسمح فقط للسجلات التي تلبي المعايير بالمرور.

**التكوين**:

* اختر السجل لتصفيته
* حدد شروط ومعايير التصفية
* قم بتكوين السجلات التي يجب أن تمر إلى الخطوات اللاحقة

<Note>
  1. **المخرجات**: عُقد التصفية لا تُرجِع بيانات — فهي تعمل كبوابات. إذا تم استيفاء الشروط، يتابع سير العمل. وإلا سيتوقف سير العمل عند ذلك الفرع.
  2. يمكن استخدام العامل `IS` مع الحقول الرقمية. يعمل كأنه `EQUAL`.
</Note>

### التأخير

يُوقف تنفيذ سير العمل لمدة محددة أو حتى تاريخ/وقت معين.

**أنواع التأخير**:

| النوع            | الوصف                                                 |
| ---------------- | ----------------------------------------------------- |
| **المدة**        | الانتظار لمدة زمنية محددة (أيام، ساعات، دقائق، ثوانٍ) |
| **تاريخ مُجدول** | الانتظار حتى تاريخ ووقت محددين                        |

**إعدادات المدة**:

* تعيين الأيام والساعات والدقائق و/أو الثواني
* دمج وحدات متعددة (مثل يومين و4 ساعات)

**إعدادات التاريخ المُجدول**:

* اختر تاريخًا ووقتًا
* يمكن الإشارة إلى حقل تاريخ من خطوة سابقة (مثل المتابعة بعد 3 أيام من اجتماع)

**حالات الاستخدام**:

* انتظر 24 ساعة قبل إرسال بريد متابعة إلكتروني
* إيقاف مؤقت حتى تاريخ إغلاق الفرصة
* جدولة الإجراءات ضمن ساعات العمل

<Note>
  لا يمكن أن يكون التاريخ المُجدول في الماضي. إذا استُخدم حقل تاريخ من خطوة سابقة وكان التاريخ قد مضى بالفعل، فسيفشل سير العمل.
</Note>

**الحدود والرصيد**:

* **لا يوجد حد أقصى للمدة** — يمكنك تعيين تأخيرات بالدقائق أو الأيام أو الأسابيع أو أكثر
* **يُستهلَك رصيد واحد** عند تنفيذ عقدة التأخير، بغض النظر عن المدة
* **لا يُستهلك أي رصيد** أثناء الانتظار — تأخير 5 دقائق يكلف مثل تأخير 5 أيام

## إجراءات الاتصال

### إرسال البريد الإلكتروني

يرسل بريدًا إلكترونيًا من سير العمل الخاص بك. هذا رائع لرسائل البريد الجماعية المعتمدة على قوالب. ستبدو رسائل البريد الإلكتروني مثل تلك التي ترسلها من صندوق بريدك.
غير مناسب للرسائل الإخبارية (التي تتطلب تنسيقًا أغنى) أو سلاسل الرسائل الإلكترونية المؤتمتة.

**المتطلبات الأساسية**: أضف حساب بريد إلكتروني في الإعدادات → الحسابات

**التكوين**:

* اختر حساب البريد الإلكتروني المُرسل

<Note>
  يمكنك إرسال رسائل البريد الإلكتروني فقط من صناديق بريد متزامنة مع حساب Twenty الخاص بك. إرسال الرسائل من صناديق بريد أعضاء الفريق الآخرين (مثل بريد مالك الحساب) ضمن الخطة المستقبلية.
</Note>

في جميع الخطوات التالية، يمكنك الرجوع إلى متغيرات من الخطوات السابقة لأغراض التخصيص.

* ادخل عنوان البريد الإلكتروني المستلم.

<Note>
  حاليًا يمكن اختيار مستلم واحد فقط.
</Note>

* اضبط سطر الموضوع.
* قم بإنشاء نص الرسالة. يمكنك تنسيق الروابط، وإنشاء قوائم مرقمة، وقوائم نقطية، وإضافة مرفقات.

<Note>
  إضافة توقيعات HTML غير ممكنة في الوقت الحالي.
</Note>

### نموذج

يعرض نموذجاً أثناء تنفيذ سير العمل لجمع مدخلات المستخدم. يمكن بعد ذلك استخدام الردود في الخطوات اللاحقة لإنشاء سجلات أو إرسال رسائل بريد إلكتروني أو تنفيذ أي إجراء آخر بناءً على المُدخل.

<Warning>
  **تم تصميم النماذج للمشغلات اليدوية فقط**. بالنسبة لمهام سير العمل مع محركات أخرى (سجل تم إنشاؤه، تم تحديثه، إلخ)، يمكن الوصول إلى النماذج فقط من خلال واجهة تشغيل سير العمل، وهو ليس التجربة المتوقعة. سيتم إصدار مركز الإشعارات في عام 2026 لدعم النماذج في مهام سير العمل المؤتمتة بشكل صحيح.
</Warning>

**التكوين**:

* قم بتهيئة الحقول التي سيُطلب من المستخدمين تعبئتها. لكل حقل، اختر
  * نوعًا من بين: نص، رقم، تاريخ، سجل مُعطى، حقل اختيار. حقول الاختيار من جميع الكائنات متاحة.
  * تسمية
  * قيمة افتراضية ضمن `Placeholder` (اختياري)
* حرّر عنوان النموذج

**المخرجات**: استجابات النموذج متاحة للاستخدام في الخطوات اللاحقة.

**مثال**: يتوفر سير العمل "Quick Lead" افتراضيًا في جميع مساحات العمل، وهو متاح في أي مكان ضمن قائمة الأوامر `Cmd + K`.

**كيفية تعبئة النموذج**:

* شغّل سير العمل اليدوي من قائمة الأوامر `Cmd K`
* املأ النموذج المعروض في اللوحة الجانبية ثم انقر `Submit`.

<Note>
  لا يمكن جعل الحقول إلزامية.
</Note>

<VimeoEmbed videoId="1147277989" title="عرض توضيحي بالفيديو" />

## إجراءات التكامل

### كود

يشغل جافا سكريبت مخصص ضمن سير العمل الخاص بك.

في الخلفية، يستند كل إجراء Code إلى **دالة منطقية** خاصة به — وهي دالة TypeScript على جانب الخادم تعمل على منصة Twenty. عندما تضيف إجراء Code، يقوم Twenty بإنشاء دالة منطقية مخصَّصة لتلك الخطوة ويُظهِر محرِّرها مضمَّنًا، بحيث يكون الكود الذي تكتبه جزءًا من سير العمل.

**التكوين**:

* الوصول إلى المتغيرات من الخطوات السابقة. يمكنك تعديل أسماء المتغيرات ديناميكيًا.

<VimeoEmbed videoId="1147281795" title="عرض توضيحي بالفيديو" />

* اكتب شيفرة جافا سكريبت في المحرر
* إرجاع المتغيرات للاستخدام في الخطوات اللاحقة
* اختبر الكود مباشرة في الخطوة

<Note>
  إذا كنت بحاجة إلى استخدام مفاتيح API خارجية في كودك، فيجب إدخالها مباشرةً في جسم الدالة. لا يمكنك تكوين مفاتيح API في مكان آخر والإشارة إليها في الدالة المنطقية.
</Note>

<Tip>
  **هل تعمل مع المصفوفات؟** قد تأتي المصفوفات من أنظمة خارجية أو من خطوات سابقة على هيئة سلاسل نصية. راجع [كيفية التعامل مع المصفوفات في إجراءات Code](/l/ar/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions) للحل.
</Tip>

<Tip>
  انقر على أيقونة المربع في أعلى يمين محرر الكود لعرضه بملء الشاشة — فهذا مفيد لأن عرض المحرر الافتراضي محدود.
</Tip>

#### إعادة استخدام دالة منطقية عبر سير عمل متعددة

إجراء Code المضمَّن ممتاز للمنطق لمرة واحدة، لكن الكود الذي يحتويه يخص تلك الخطوة الواحدة فقط. عندما تريد مشاركة المنطق نفسه عبر عدة سير عمل — أو الاحتفاظ به كمصدر مُدار بالإصدارات ضمن تطبيق — عرِّف **دالة منطقية قابلة لإعادة الاستخدام** بدلًا من نسخ ولصق الكود في كل إجراء Code.

يتم تعريف دالة منطقية مرة واحدة في تطبيق (باستخدام `defineLogicFunction` في حزمة SDK) وتُتاح في مُنشئ سير العمل عن طريق إضافة `workflowActionTriggerSettings`. بمجرد تثبيت تطبيقك، تظهر تلك الدالة كإجراء مستقل في مُنشئ سير العمل، جنبًا إلى جنب مع الإجراءات المضمَّنة. يؤدي اختيارها إلى عرض حقول الإدخال التي صرَّحتَ عنها (مع منتقي المتغيّرات، تمامًا مثل الإجراءات الأخرى) وتشغيل الكود المشترك — دون الحاجة إلى JavaScript مضمَّن.

|                     | إجراء Code                                    | دالة منطقية قابلة لإعادة الاستخدام                                      |
| ------------------- | --------------------------------------------- | ----------------------------------------------------------------------- |
| **مكان وجود الكود** | محرِّر مضمَّن، مرتبط بخطوة واحدة في سير العمل | يُعرَّف في تطبيق، مع إدارة الإصدارات في نظام التحكم في الشيفرة المصدرية |
| **إعادة الاستخدام** | يتم نسخه ولصقه لكل خطوة                       | يُضاف كإجراء في أي سير عمل                                              |
| **المدخلات**        | متغيّرات موصولة في المحرِّر                   | حقول تُعرَض من مخطط الإدخال الذي صرَّحتَ عنه                            |
| **الأفضل لـ**       | منطق سريع خاص بسير عمل معيّن                  | منطق مشترك يُستخدَم عبر عدة سير عمل                                     |

كلاهما يعمل على بيئة تشغيل الدالة المنطقية نفسها، لذا يمكن ترقية إجراء Code الذي جرَّبته مضمَّنًا لاحقًا إلى دالة منطقية قابلة لإعادة الاستخدام مع تغييرات طفيفة.

<Tip>
  للاطّلاع على مرجع موجَّه للمطوّرين حول تعريف الدوال المنطقية وإتاحتها في مُنشئ سير العمل، راجع صفحة [Logic Functions](/l/ar/developers/extend/apps/logic/logic-functions) — وخصوصًا قسم **Exposing a function as an AI tool or workflow action** و `workflowActionTriggerSettings`.
</Tip>

### طلب HTTP

يرسل طلبًا إلى واجهة برمجية خارجية كجزء من سير العمل الخاص بك.

<img src="https://mintcdn.com/twenty/ZVHVYG6uDKpO6cME/images/user-guide/workflows/http_action.png?fit=max&auto=format&n=ZVHVYG6uDKpO6cME&q=85&s=5dbab86e7023e617fe37b8fc6e3da7a3" style={{width:'100%'}} width="1568" height="1968" data-path="images/user-guide/workflows/http_action.png" />

**التكوين**:

* ادخل عنوان رابط واجهة برمجية. يمكن استخدام معاملات من خطوات سابقة.
* اختر طريقة HTTP (GET, POST, PUT, PATCH, DELETE)
* أضف الرؤوس والقيم المطلوبة
* قدّم مثالًا للمخرجات لمعاينة البنية

## إجراءات الذكاء الاصطناعي

### وكيل ذكاء اصطناعي - قريبًا

يشغّل وكيل ذكاء اصطناعي داخل سير العمل لديك لتنفيذ مهام ذكية.

**التكوين**:

* **الوكيل**: اختر وكيلاً للذكاء الاصطناعي موجودًا أو استخدم الوكيل الافتراضي
* **المطالبة**: اكتب التعليمات لوكيل الذكاء الاصطناعي
* ارجع إلى متغيرات من خطوات سابقة داخل المطالبة

**ما الذي يمكن لوكلاء الذكاء الاصطناعي فعله**:

* تحليل البيانات وتلخيصها
* تصنيف السجلات أو توزيعها ضمن فئات
* إنشاء محتوى نصي
* اتخاذ قرارات بناءً على البيانات
* التفاعل مع بيانات نظام إدارة علاقات العملاء لديك باستخدام الأدوات

**المخرجات**: رد وكيل الذكاء الاصطناعي متاح للاستخدام في الخطوات التالية. إذا كان للوكيل مخطط مخرجات مُهيكل، فسيتبع الرد ذلك التنسيق.

<Note>
  تستهلك إجراءات وكيل الذكاء الاصطناعي أرصدة سير العمل بناءً على نموذج الذكاء الاصطناعي المستخدم. راجع [أرصدة سير العمل](/l/ar/user-guide/workflows/capabilities/workflow-credits) للحصول على التفاصيل.
</Note>

<Note>
  يحترم وكلاء الذكاء الاصطناعي الأذونات المستندة إلى الأدوار. يمكنك تعيين أدوار محددة للوكلاء ضمن **الإعدادات → الأعضاء → الأدوار** للتحكم في البيانات التي يمكنهم الوصول إليها. راجع [الأذونات](/l/ar/user-guide/permissions-access/capabilities/permissions) للحصول على التفاصيل.
</Note>
