# الصفقات في نظام CRM

تُعرض الصفقات في CRM كبطاقات تحتوي على معلومات عن العميل، واسم الصفقة، والوصف، والمبلغ.

<div data-with-frame="true"><figure><img src="/files/42647928f3a6a47af0a216156093393dd005753b" alt="" width="563"><figcaption></figcaption></figure></div>

يمكنك إضافة حقول أخرى إذا لزم الأمر (انظر الشكل 8-12).

## زر "إنشاء صفقة"

<div data-with-frame="true"><figure><img src="/files/2c0e4ee2f38e17784ccb3fe9632f9214342f0223" alt="" width="563"><figcaption></figcaption></figure></div>

الـ **إنشاء صفقة** تتيح لك النافذة إعداد صفقة جديدة وحفظها بسرعة.

<div data-with-frame="true"><figure><img src="/files/f9f208e13216990c8affa8a5f6b4292eb9ceebd1" alt="" width="563"><figcaption></figcaption></figure></div>

املأ النموذج لإنشاء عميل. إذا كان العميل موجودًا، فسيطلب منك MaviBot تحديده من قاعدة البيانات.

<div data-with-frame="true"><figure><img src="/files/591f05cada99cf20fbb9b1e6f0a2253962bf2044" alt="" width="563"><figcaption></figcaption></figure></div>

1. إذا لم يتم العثور على العميل، فقم بربط روبوت WhatsApp أو البريد الإلكتروني بالمشروع.
2. أرسل رسالة إلى العميل عبر القناة المتصلة — سيتم إنشاء ملفه الشخصي تلقائيًا.
3. حدّد مرحلة القمع التي يجب وضع الصفقة فيها.

<div data-with-frame="true"><figure><img src="/files/611b5f22ab4c063c0d35b6f6d78baafc7e6abf0b" alt="" width="563"><figcaption></figcaption></figure></div>

يمكن أيضًا إضافة متغيرات الصفقة في النموذج المنبثق:

<div data-with-frame="true"><figure><img src="/files/024053c295029474df4b0d217bb7558d175ab24b" alt="" width="563"><figcaption></figcaption></figure></div>

بعد ذلك، انقر على **"إنشاء"** لإضافة الصفقة إلى النظام.

## زر "الإضافة السريعة"

يمكن أن يساعد هذا الزر أيضًا في إضافة عميل جديد يدويًا إلى CRM.

<div data-with-frame="true"><figure><img src="/files/ad353ef1d6e7598c94d268dcba134dba4958a0d1" alt="" width="308"><figcaption></figcaption></figure></div>

انقر على الزر لفتح نافذة يمكنك فيها إدخال تفاصيل العميل.

<div data-with-frame="true"><figure><img src="/files/3d84f8c51d9b162274394713d987aae4ead93a37" alt="" width="308"><figcaption></figcaption></figure></div>

الشكل 26 نافذة إنشاء صفقة سريعة (ملاحظة: جميع البيانات خيالية؛ وأي تشابه هو محض صدفة.)

وبذلك، سيتم إنشاء الصفقة في **"مهتم"** المرحلة.

{% hint style="success" %}
تم!&#x20;

الآن أصبحت تعرف كيفية إنشاء الصفقات.
{% endhint %}

## كيفية إنشاء صفقة من روبوت الدردشة

مثال لتدفق روبوت الدردشة لإنشاء صفقة عبر دالة

نظرة عامة على العملية:

1. أنشئ كتلة Start

<div data-with-frame="true"><figure><img src="/files/44986364c2ddd026d3a9ffa1daa9a39fff117057" alt=""><figcaption></figcaption></figure></div>

2. أنشئ كتلتين للأزرار.

<div data-with-frame="true"><figure><img src="/files/44a4526e89b34520b5e0866bcc4209f4125b2f27" alt=""><figcaption></figcaption></figure></div>

3. انتقل إلى إعدادات الاتصال، وفعّل خيار "يدخل المستخدم البيانات"، وحدد اسم الخدمة التي سيدخلها المستخدم.

<div data-with-frame="true"><figure><img src="/files/dc4554f26aab1378fa8d8e01f5eeecd3efc98e3a" alt=""><figcaption></figcaption></figure></div>

4. ثم أضف السؤال "ما اسمك؟" في كتلة بيضاء. أنشئ كتلة جديدة أسفلها وفعّل **"User enters data"** في إعدادات السهم الخاصة بها.

<div data-with-frame="true"><figure><img src="/files/7876f3f3ff0a24197f15d3c35240682e99d447e6" alt=""><figcaption></figcaption></figure></div>

الإعداد "يدخل المستخدم البيانات" مع المتغير `name` مفعّل في كل اتصال يؤدي إلى كتلة "أدخل رقم هاتفك".

5. الآن، أنشئ كتلتين — "Chat" و "Fallback" — من كتلة "أدخل رقم هاتفك".

<div data-with-frame="true"><figure><img src="/files/b1e619d9c73619eb9e661a0ed4d0f94099d1bf6e" alt=""><figcaption></figcaption></figure></div>

1. حدد **"RegEx math"** النوع في إعدادات الاتصال.
2. فعّل الإعداد "يدخل المستخدم البيانات".
3. أدخل اسم المتغير: `phone`.

<div data-with-frame="true"><figure><img src="/files/a8edf76fa92690b4bfead7c9be9014f3b044364f" alt=""><figcaption></figcaption></figure></div>

الآن، في كتلة Fallback، اكتب الرسالة: **"هذا غير صحيح! حاول مرة أخرى."**

سيعمل هذا الإعداد على النحو التالي: إذا أدخل عميلك رقم هاتف غير صحيح، فسيستلم الرسالة من كتلة Fallback. وستستمر رسالة Fallback في الإرسال حتى يُدخل العميل رقم هاتف صحيحًا.

6. ثم، اسأل العميل عن ميزانيته وأنشئ على الفور كتلة جديدة أسفله.

<div data-with-frame="true"><figure><img src="/files/9fbd58ca428b0ba1d8d4178a91a7a3ea3880a128" alt=""><figcaption></figcaption></figure></div>

7. فعّل **"User enters data"** الإعداد في الاتصال وأدخل اسم المتغير: `budget`.

<div data-with-frame="true"><figure><img src="/files/06b2053246c020656a1237062c33d5683077150a" alt=""><figcaption></figcaption></figure></div>

فعّل **"User enters data"** خانة الاختيار في الاتصال وحدد متغير الهاتف client\_name.

8. يمكنك إما تغيير نوع الكتلة الأخيرة إلى "Leads" أو استخدام `create_order` .

   هذا هو الخيار مع الكتلة الحمراء "Leads".

<div data-with-frame="true"><figure><img src="/files/1aa01a42f0b1369f35fca50b9bc020590815777a" alt=""><figcaption></figcaption></figure></div>

مثال.

<div data-with-frame="true"><figure><img src="/files/5611c58e79151d6ac9ac67167b95a307b3646c82" alt=""><figcaption></figcaption></figure></div>

تُستخدم الدالة create\_order(name, budget, description, client\_name, phone, email, state\_id) لإنشاء صفقة من روبوت الدردشة في CRM.

<details>

<summary>المعلمات</summary>

ستكون الصفقة النشطة الحالية في القمع، إلى جانب المتغيرات، متاحة فقط في وظائف إدارة الصفقات وCRM.

<table><thead><tr><th width="303.3046875">المعلمات</th><th>المعنى</th></tr></thead><tbody><tr><td><strong>name</strong></td><td><p>اسم الصفقة.</p><p>معامل اختياري، وإذا لم يتم تمريره، فسيُطبَّق على الصفقة النشطة الحالية للعميل</p></td></tr><tr><td><strong>budget</strong></td><td>قيمة الصفقة (رقم). معامل اختياري، وإذا لم يتم تمريره، فسيُطبَّق على الصفقة النشطة الحالية للعميل. إذا مرّرت قيمة غير رقمية في <strong>budget</strong> المعامل، فستُرجع الدالة الرد: <strong>'budget must be a number'</strong></td></tr><tr><td><strong>description</strong> </td><td>وصف الصفقة. معامل اختياري؛</td></tr><tr><td><strong>client_name</strong></td><td>(معامل اختياري) سلسلة نصية، اسم عميل جديد</td></tr><tr><td><strong>phone</strong></td><td>(معامل اختياري) سلسلة نصية، رقم هاتف لعميل جديد</td></tr><tr><td><strong>البريد الإلكتروني</strong></td><td>(معامل اختياري) سلسلة نصية، بريد إلكتروني لعميل جديد</td></tr><tr><td><strong>state_id</strong> </td><td>يتيح لك الرقم تحديد الحالة التي ستكون عليها الصفقة بعد الإنشاء (معامل اختياري)</td></tr></tbody></table>

{% hint style="info" %}
لإنشاء عميل، يجب تحديد متغير الهاتف أو البريد الإلكتروني. إذا تم تحديد الهاتف ولا يوجد عميل بهذا الهاتف في المشروع، فسيتم إنشاء عميل جديد.

إذا تم تحديد متغير البريد الإلكتروني دون متغير الهاتف، ولا يوجد عميل في المشروع بهذا العنوان، فسيتم إنشاء عميل جديد.
{% endhint %}

</details>

في التدفق، جمعنا البيانات التالية على مراحل:

* Name - اسم الصفقة (في المثال، I need a website و I need a landing);
* Budget — تكلفة الصفقة، والتي تم الإعلان عنها في الكتل بعد أن اختار العميل نوع الموقع الإلكتروني؛
* Phone — رقم هاتف العميل
* Client\_name — اسم العميل

إذا كنت بحاجة إلى إنشاء صفقة في حالة معاملة محددة، فمرّر المعامل state\_id.

{% hint style="info" %}
مهم!&#x20;

إذا لم تمرّر أي معاملات، فمرّر none بدلًا من المعامل (كما في الشكل 36، حيث تم تحديد none بدلًا من معامل البريد الإلكتروني).
{% endhint %}

أين تجد معرّف الحالة (المعامل state\_id)

<div data-with-frame="true"><figure><img src="/files/f4204bf15fa5fdd957b1c5b499a302ac84820da1" alt="" width="316"><figcaption></figcaption></figure></div>

معرّف المرحلة:

<div data-with-frame="true"><figure><img src="/files/40926e0ff0bc42a55121ca5c8e02fcaca71565e5" alt="" width="375"><figcaption></figcaption></figure></div>

## إعدادات أخرى

شريط البحث هو بحث عن صفقة باسم العميل.

<div data-with-frame="true"><figure><img src="/files/d0b8fa3eecab0c7ef8490307281963b817293a35" alt="" width="375"><figcaption></figcaption></figure></div>

Filter: يتيح لك تصفية الصفقات بمعايير مختلفة. يمكنك أيضًا حفظ الفلتر الذي أنشأته إذا كنت تستخدمه كثيرًا.

<div data-with-frame="true"><figure><img src="/files/d5da4d7a6e7cccbaa966cc34216a54516d13f742" alt=""><figcaption></figcaption></figure></div>

## كيفية تشغيل روبوت عند انتقال صفقة إلى مرحلة جديدة في القمع

لتشغيل روبوت عند تغيير مرحلة الصفقة في قمع CRM:

1. انتقل إلى إعدادات المشروع.
2. افتح **"Callbacks"** .

<div data-with-frame="true"><figure><img src="/files/7d8ff9f40616e52f7bf91d6b9b738a0753451a36" alt=""><figcaption></figcaption></figure></div>

انقر على **"إعدادات رد النداء لتبديل مرحلة CRM"**:

<div data-with-frame="true"><figure><img src="/files/208ec263a0e658e24661f601068e3358f71848e0" alt=""><figcaption></figcaption></figure></div>

بعد ذلك، سترى نافذة منبثقة تحتوي على جميع القمعات في المشروع. يمكنك اختيار القمع بالكامل أو مرحلة محددة.

<div data-with-frame="true"><figure><img src="/files/8f6075ae958bd41ca511791053235ce835022698" alt="" width="563"><figcaption></figcaption></figure></div>

ثم احفظ الإعدادات.&#x20;

الآن، عندما تتغير حالة الصفقة — سواء تلقائيًا أو يدويًا — يتم إنشاء إشعار من أي مكان في الموقع، ويمكن استخدامه لتشغيل رد من الروبوت.

{% hint style="info" %}
يبدو الإشعار كالتالي: **crm\_state\_changed Funnel name:Stage name**
{% endhint %}

سيظهر المتغير callback\_query\_id أيضًا في بطاقة العميل، ويخزن معرّف الصفقة التي تم إرسال الإشعار لها.

<div data-with-frame="true"><figure><img src="/files/740271a9f139f9ade166a06f3ac6578dd0b6899d" alt="" width="563"><figcaption></figcaption></figure></div>

لتشغيل روبوتك استجابةً لهذا الحدث، أدخل نص رد النداء في حقل المشغل لاتصال أو كتلة قائمة على المشغّل (مثل كتلة Start أو Trigger).

<div data-with-frame="true"><figure><img src="/files/8e93e9715c22fb70f39c9b391584bdd1aa2f4d66" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="info" %}
إذا كنت تريد إبقاء العميل في تدفق روبوت الدردشة الرئيسي، فاستخدم كتلة "Chat". لا يمكن الانتقال إلى هذه الكتلة، لذلك بعد التفاعل مع رد النداء، يبقى العميل في القمع الرئيسي بينما يستمر في تلقي الرسالة.

إذا كنت بحاجة إلى مواصلة القمع بعد تغيير الحالة، فاستخدم كتلة "Start". سيتم إعادة توجيه العميل إلى كتلة "Start" استجابةً لرد النداء، مما يتيح مواصلة القمع من هناك.
{% endhint %}

### كيفية نقل صفقة

لنقل صفقة إلى أي مرحلة في القمع، ما عليك سوى النقر عليها وسحبها بزر الفأرة الأيسر إلى المرحلة المطلوبة.

<div data-with-frame="true"><figure><img src="/files/f3dcc259cee0defb188645c721646ce5a60b6d8b" alt="" width="563"><figcaption></figcaption></figure></div>

عندما يتم نقل صفقة إلى **"Failed"** أو **"Archived,"** تظهر نافذة منبثقة تطلب منك تحديد السبب. ينشئ هذا الإجراء متغير صفقة مطابقًا: `failed_reason` أو `archived_reason`.

يُحفظ السبب المُقدَّم في المتغير المقابل. إذا تمت استعادة الصفقة لاحقًا، فسيُضاف المتغير `restored_from_failed` أو `restored_from_archived` بالقيمة `"true"`.

## كيفية منع نقل صفقة إلى المرحلة المحددة

إذا كنت بحاجة إلى تقييد المراحل التي يمكن نقل الصفقات إليها يدويًا، فقم بتكوين التقييد في إعدادات الحالة.

افتح القمع وانتقل إلى إعدادات المرحلة.

<div data-with-frame="true"><figure><img src="/files/f4204bf15fa5fdd957b1c5b499a302ac84820da1" alt="" width="316"><figcaption></figcaption></figure></div>

استخدم إعدادات المرحلة لتقييد حركة الصفقة إلى مراحل محددة. حدّد المراحل المطلوبة في قائمة الاختيار (يسمح بتحديد عدة خيارات) واحفظ التغييرات.

<div data-with-frame="true"><figure><img src="/files/6d4d062823de53372bb0a856ed9941677eb9845a" alt="" width="563"><figcaption></figcaption></figure></div>

بعد الحفظ، ستُبرز المراحل المقيّدة بصريًا في MaviBot CRM. ستظهر أغمق، وسيتم تعطيل نقل الصفقات إليها. وإذا طُبِّقت قيود حركة المرحلة، فستُخفى هذه المراحل أيضًا في واجهة دردشة العميل.

## الاستجابة لحذف الصفقة في CRM

عند حذف صفقة في CRM، يستقبل الروبوت رد نداء باسم **`crm_lead_removed`** لإخطار العميل.

<div data-with-frame="true"><figure><img src="/files/a5523e1f08ffdb2a7989d6dfaf395cb169a9a4ac" alt="" width="465"><figcaption></figcaption></figure></div>

## كيفية تبديل الصفقات

عند تنفيذ إجراءات على الصفقات مباشرة داخل صفحة CRM، يتم تشغيل ردود النداء التالية:

* `change_responsible_order` — تغيّر المدير المعيّن للصفقة.
* `crm_state_changed` — تم نقل الصفقة إلى مرحلة أخرى في القمع.
* `crm_system_state_changed` — تم نقل الصفقة إلى **Lost**, **Won**، أو **Archived**.
* `crm_lead_removed` — تم حذف الصفقة.

بالإضافة إلى ذلك، ستتضمن متغيرات العميل `callback_order_id`، والذي يحتوي على معرّف الصفقة المحددة المتأثرة بإجراء CRM.

عند معالجة أحد هذه الردود، تصبح الصفقة المقابلة نشطة مؤقتًا داخل كتلة المعالجة، مما يتيح لك الوصول إلى متغيراتها مباشرةً.

وبمجرد انتقال التدفق إلى الكتلة التالية، تستأنف MaviBot منطقها القياسي — وسيؤدي أي وصول لاحق إلى متغيرات الصفقة إلى إرجاع القيم من أحدث صفقة نشطة للعميل.

### كيفية تبديل صفقة إلى مرحلة نشطة في الروبوت

الـ `switch_order(order_id)` تتيح لك الدالة جعل صفقة محددة نشطة من أجل الوصول إلى متغيراتها.

* `order_id` — معامل اختياري لمعرّف الصفقة المحددة. إذا لم يُذكر، تصبح أحدث صفقة للعميل نشطة.
* لتنشيط صفقة معينة، مرّر معرّفها إلى `switch_order(order_id)` .
* إذا استدعيت هذه الدالة داخل كتلة آلة حاسبة ووفّرت معرّف الصفقة المستهدف، فستتمكن من الوصول إلى متغيرات تلك الصفقة في جميع الكتل اللاحقة.

<div data-with-frame="true"><figure><img src="/files/f2007a0873e9b278ac29aa5df63c7d3a8dbb5f6c" alt="" width="563"><figcaption></figcaption></figure></div>

إذا كان `switch_order` إذا استُدعيت الدالة مع معرّف صفقة محذوفة أو غير موجودة، فلن يحدث أي تبديل. في هذه الحالة، ستعيد الدالة معرّف الصفقة النشط حاليًا للعميل (أو `None` إذا لم يكن لدى العميل أي صفقة نشطة).

لذلك يمكنك التحقق مما إذا كان التبديل ناجحًا من خلال مقارنة `order_id` الممرر إلى الدالة بالقيمة التي تُرجعها:

`switch_result = switch_order(order_id)`

`result = if(switch_result == order_id, value_if_true, value_if_false)`

<div data-with-frame="true"><figure><img src="/files/fb3e56d459efe3778e51237eefc10f580fb0024f" alt="" width="563"><figcaption></figcaption></figure></div>

إذا لم يتم تمرير أي وسيط إلى `switch_order()` فستقوم الدالة بتنشيط أحدث صفقة للعميل. يتيح لك ذلك إعادة الصفقة النشطة أو إعادة تعيينها — على سبيل المثال، بعد تنفيذ عمليات مع صفقة أخرى، أو عندما لا تحتاج إلى إبقاء صفقة مفعّلة مؤقتًا بواسطة رد نداء CRM.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ar/crm/setting/deals.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
