# منشئ سير العمل


# منشئ سير العمل

**منشئ سير العمل** محرّر مرئي قائم على العُقد لـ **تدفّقات المكالمات المكتوبة**. حيث يترك الوكيل المفتوح للنموذج تقرير ما يقوله بعد ذلك، يمنح سير العمل الوكيل مسارًا حتميًا — سلسلة من الخطوات التي تتحدّث وتسأل وتتفرّع وتستدعي الأدوات وتوجّه المحادثة. استخدمه عندما تحتاج المكالمة إلى اتّباع نص محدّد: تأهيل عميل محتمل، أو حجز موعد، أو فرز مشكلة دعم، أو جمع استطلاع. تفتحه من علامة تبويب **Tools** في منشئ الوكلاء على **/agent/setup**، باستخدام زر **Open Workflow Builder**.

ينتمي سير العمل إلى وكيل واحد. وقت المكالمة يراقب **مشرف** المحادثة، ويقرّر أي **نيّة** يعبّر عنها المتصل، ويُشغّل **خطوات** تلك النيّة بالترتيب. الوظائف التي يمكن للوكيل استخدامها داخل الخطوات هي بالضبط تلك التي ربطتها على [علامة تبويب Tools](./tools-mcp) — لا يستطيع سير العمل الوصول إلى أداة لم تمنحها.

## كيف يُبنى سير العمل

![أداة Workflow Builder](/img/screenshots/portal/workflow-builder.png)
*أداة إنشاء Workflow: صمّم تدفقات مكالمات حتمية على لوحة عُقَد بأسلوب n8n، مع موجّه مشرف اختياري.*

يحتوي سير العمل على ثلاثة مستويات متداخلة:

- **Graph** — سير عمل واحد لكل وكيل. يحمل **موجّه مشرف** اختياريًا (تعليمات مخصّصة لمشرف الذكاء الاصطناعي الذي يوجّه النيّات). إلى أن تنشئ الرسم البياني، يعرض المنشئ شاشة **Create Workflow Graph** لمرة واحدة مع حقل موجّه المشرف.
- **Intents** — فروع المحادثة. لكل نيّة **اسم عرض**، و**اسم داخلي**، و**وصف** (يُعرَض على نموذج المشرف ليتمكّن من مطابقة النيّة)، وقائمة **عبارات تفعيل**، ومفتاح **نيّة افتراضية**، و**استجابة احتياطية** اختيارية تُستخدَم إذا فشلت كل خطواتها. يختار المشرف النيّة التي يلائم وصفها وعبارات تفعيلها على أفضل نحو ما قاله المتصل.
- **Steps** — الإجراءات المرتّبة داخل النيّة. تُشغَّل الخطوات من الأعلى إلى الأسفل افتراضيًا، ولكل خطوة نوع يقرّر ما تفعله.

على اللوحة يظهر هذا كعُقدة **Start** خضراء تتدفّق إلى عُقدة **Intent** واحدة لكل فرع، مع عُقد **Step** الخاصة بتلك النيّة مكدَّسة تحتها. تساعدك خريطة مصغّرة وعناصر تحكم في التكبير وخلفية منقّطة على التنقّل في التدفّقات الأكبر.

:::info[النيّات هي كيف يوجّه المشرف]

يطابق المشرف عبارة المتصل مع **وصف** و**عبارات تفعيل** كل نيّة، لذا اكتب الأوصاف بالطريقة التي تشرح بها لزميل ("يريد المستخدم حجز موعد أو جدولته") وأضِف بضع عبارات تفعيل طبيعية. عيّن نيّة واحدة بوصفها **الافتراضية** لالتقاط المحادثات التي لا تطابق أي شيء آخر بوضوح.

:::

## أنواع الخطوات

أضِف خطوة بـ **Add Step** (بعد اختيار نيّة أو إحدى خطواتها)، وهو ما يفتح مُنتقي العُقد. يجمّع المُنتقي أنواع الخطوات في **Conversation** و**Logic** و**Integrations** و**Call Control**. هناك ثلاثة عشر نوعًا:

- **Message** — يتحدّث البوت بسطر إلى المتصل.
- **Question** — يسأل البوت شيئًا ويخزّن الإجابة في **متغيّر**. تختار **نوع تحقّق** (Any أو Number أو Email أو Date أو Yes / No أو Phone) و**رسالة إعادة سؤال** تُستخدَم عندما تفشل الإجابة في التحقّق.
- **Condition** — يفرّع التدفّق. تختار **حقلًا** (متغيّر جلسة)، و**عامِلًا** (يساوي، لا يساوي، يحتوي، لا يحتوي، أكبر من، أصغر من، يطابق التعبير النمطي، فارغ، ليس فارغًا) و**قيمة**، ثم توجّه **If True** و**If False** إلى خطوات محدّدة.
- **Tool Call** — يستدعي وظيفة **مدمجة** أو **مخصّصة** مرتبطة بالوكيل. تختار نوع الأداة، والوظيفة، و**تعيين إدخال** اختياري (JSON) يربط مدخلات الخطوة بمتغيّرات الجلسة.
- **Appointment** — يُشغّل تدفّقًا فرعيًا لحجز المواعيد مقابل وظيفة حجز، مع تعيين إدخاله الخاص.
- **Webhook** — يُجري طلب HTTP إلى عنوان URL خارجي. تضبط **الطريقة** (GET أو POST أو PUT أو PATCH أو DELETE)، و**عنوان URL**، و**رؤوسًا** اختيارية (JSON)، و**قالب جسم**، ومتغيّرًا لـ **حفظ الاستجابة** فيه.
- **Transfer** — يسلّم المكالمة إلى **رقم هاتف أو قائمة انتظار** آخر، مع رسالة اختيارية تُعلَن قبل التحويل. انظر [الاتصال والاتصالات الهاتفية](./calling-telephony) لكيفية تصرّف تحويلات المكالمات من البداية إلى النهاية.
- **End Call** — ينهي المكالمة، مع التحدّث بـ **رسالة وداع** أولًا اختياريًا.
- **Delay** — ينتظر صامتًا عددًا محدّدًا من الثواني (1–60) قبل المتابعة.
- **Set Variable** — يخزّن قيمة (نصًا ثابتًا أو إشارة إلى متغيّر آخر) في متغيّر جلسة.
- **Send Notification** — يرسل رسالة **SMS** أو **email** أو **WhatsApp** باستخدام قالب مُسمّى وتعيين متغيّرات (JSON).
- **Static Response** — يتحدّث بكتلة نصّ ثابتة. هذه عُقدة قديمة؛ فضّل **Message** للتدفّقات الجديدة.
- **Play Audio** — يشغّل ملفًا صوتيًا (عنوان WAV أو MP3 عام) للمتصل.

تُهيَّأ كل خطوة في **اللوحة اليمنى** التي تُفتَح عند اختيار عُقدة. تعرض اللوحة فقط الحقول ذات الصلة بنوع تلك الخطوة، إضافةً إلى اسم الخطوة ومُنتقي نوع.

:::tip[المتغيّرات تربط خطواتك معًا]

تخزّن خطوة **Question** أو **Set Variable** نتيجتها تحت اسم تختاره. أشِر إليها لاحقًا — في Message، أو حقل Condition، أو جسم Webhook، أو تعيين إشعار — بصيغة الأقواس المعقوفة مثل `{variable_name}`. هكذا يتذكّر التدفّق ما قاله المتصل ويحمله معه عبر الخطوات.

:::

## التفرّع والتوجيه

لا يجب أن تُشغَّل الخطوات في خطّ مستقيم:

- تكشف خطوة **Condition** عن مخرجَي **True** و**False**. صِل كلًّا منهما بخطوة هدف (أو اتركه على **Continue in order**) للتفرّع بناءً على قيمة متغيّر.
- لكل نوع خطوة آخر توجيه **On Success** و**On Failure**. افتراضيًا تتابع الخطوة إلى التالية بالترتيب؛ اضبط هذه للانتقال إلى مكان آخر — على سبيل المثال، وجّه Tool Call فاشلًا إلى رسالة تعافٍ.

يمكنك ضبط التوجيه بطريقتين: اختر خطوة الهدف في لوحة الضبط، أو **اسحب اتصالًا** على اللوحة من مَقبَض مخرَج الخطوة (مَقبَض **OK** / **TRUE** الأخضر أو مَقبَض **FAIL** / **FALSE** الأحمر) إلى خطوة أخرى. تُحفَظ الاتصالات المرسومة على اللوحة في سير العمل فورًا.

## البناء والحفظ

يثبّت المنشئ التغييرات أثناء إجرائها بدلًا من حفظ واحد كبير:

- يُنشئ **Add Intent** فرعًا جديدًا؛ انقره لملء اسمه ووصفه وعبارات تفعيله، ثم **Save Changes** في اللوحة.
- يُدرِج **Add Step** خطوة من النوع الذي تختاره؛ هيّئها في اللوحة و**Save Changes**.
- تعيد رموز السهم لأعلى / لأسفل على عُقدة **ترتيب** النيّات والخطوات؛ حذف عُقدة (عبر رمز السلّة أو مفتاح Delete) يطلب تأكيدًا أولًا.
- يخزّن زر **Save** في شريط الأدوات **موجّه المشرف**؛ تُشير نقطة كهرمانية إلى تعديلات موجّه غير محفوظة.

## ابدأ من قالب

بدلًا من البناء من الصفر، يقدّم زر **Templates** تدفّقات جاهزة يمكنك تحميلها ثم تحريرها: **Lead Qualification** و**Appointment Booking** و**Customer Support** و**NPS Survey** و**Payment Reminder** و**Customer Onboarding**. يُسقِط كل منها نيّة كاملة مع خطواتها، بما في ذلك الأسئلة والشروط ورسائل الوداع. يؤدّي تطبيق قالب إلى **الإضافة** إلى سير عملك الحالي بدلًا من استبداله، حتى تتمكّن من دمج عدّة قوالب أو تقليم ما لا تحتاجه.

## استيراد الوظائف من مواصفة OpenAPI

يحوّل زر **Import API** واجهة برمجة تطبيقات موجودة إلى وظائف وكيل يمكنك استدعاؤها من خطوات **Tool Call**. قدّم مواصفة **OpenAPI / Swagger** — عبر URL أو بلصقها (OpenAPI 2.0 أو 3.x، JSON أو YAML) — ويحلّل المستورِد العمليات. اختر العمليات التي تريدها، وأكّد عنوان URL الأساسي، وسيولّد لها **وظائف مخصّصة**. تظهر تلك الوظائف بعد ذلك في قائمة الوظائف لخطوات Tool Call وعلى علامة تبويب Tools.

:::info[كتالوج الوظائف يُدار في مكان آخر]

لا يمكن لخطوة Tool Call استخدام إلا الوظائف المتاحة بالفعل للوكيل — الوظائف المدمجة وأي وظائف مخصّصة مرتبطة على [علامة تبويب Tools](./tools-mcp)، بما في ذلك تلك التي يولّدها مستورِد OpenAPI. إذا لم تكن الوظيفة التي تريدها مدرجة، أضِفها على علامة تبويب Tools أولًا.

:::

## الخطوات التالية

- [اربط الوظائف وصِل خوادم MCP (علامة تبويب Tools)](./tools-mcp)
- [هيّئ تحويلات المكالمات والاتصالات الهاتفية](./calling-telephony)
- [أنشئ أول وكيل لك](./create-agent)
- [العودة إلى نظرة عامة على الوكلاء](./overview)
