العمل مع العملاء

الأسطورة:

was_in_state() | days_from_last_message() | free_client() | assign_to_user() | distribute_client()| get_operator() | get_operator_name() | delete_pended_messages() | set_note() | add_unread() | clear_unread() | unsubscribe()|block_client() | unblock_client() | set_client_name() | get_bind_clients() | get_current_pipline_id()

was_in_state(message_id)
تتحقق مما إذا كان العميل موجودًا في الحالة المحددة (الكتلة). يمكنك الحصول على رقم الكتلة من المحرر.

days_from_last_message()
تحدد عدد الأيام منذ آخر رسالة للعميل. تم إنشاؤها للتحقق مما إذا كانت تقع ضمن نافذة الـ 24 ساعة.

مثال:
d = days_from_last_message()

إذا مر أكثر من 30 يومًا على آخر رسالة للعميل، سترجع الدالة القيمة 9999.


free***_***client()
تلغي تعيين المشغل المسؤول.
مثال: free_client()

assign_to_user(email, only_active)
تعين حوارًا لمشغل، حيث:

  1. email - معلمة نصية (اختيارية). إذا تم توفير البريد الإلكتروني فقط، سيتم تعيين الحوار للمشغل المحدد بغض النظر عن حالته الحالية.
  2. only_active - True أو False (معلمة اختيارية). إذا تم تعيينها على True، سيتم تعيين الحوار للمشغل المحدد فقط إذا كان في وردية العمل حاليًا.

أمثلة:

assign_to_user() - يعين حوارًا لمشغل عشوائي موجود حاليًا في وردية العمل

assign_to_user('البريد الإلكتروني للمشغل') - يعين حوارًا للمشغل بغض النظر عن حالته

assign_to_user('البريد الإلكتروني للمشغل', True) - يعين حوارًا للمشغل المحدد فقط إذا كان في وردية العمل حاليًا

distribute_client()
تعين حوارًا للمشغل وفقًا لإعدادات التوزيع التلقائي.
مثال: distribute_client()

get_operator()
تسترجع البريد الإلكتروني للمشغل المسؤول

مثال: get_operator()

يمكن استخدامها لتعيين المهام لمشغل مسؤول أو للتحقق من وجوده. إذا لم يكن هناك مشغل مسؤول، سترجع None.

get_operator_name()
تسترجع اسم المشغل المسؤول

مثال: get_operator_name()

يمكن استخدامها لعرض المعلومات للعميل. إذا لم يكن هناك مشغل مسؤول، سترجع None. إذا لم يتم تعيين اسم للمشغل، سترجع بريده الإلكتروني.

delete_pended_messages()
تحذف جميع الرسائل المجدولة للعميل الحالي. افتراضيًا، تحذف أيضًا الرسائل التي تم إنشاؤها بواسطة أسهم "عدم الإلغاء". للاحتفاظ بالرسائل من أسهم "عدم الإلغاء"، مرر المعلمة False: delete_pended_messages(False).

set_note(comment)
تضيف تعليقًا إلى حوار.

مثال: set_note('إعادة')

add_unread(count)
تحدد حوارًا مع عميل كغير مقروء

يمكن حذف معلمة count أو تعيينها على 1؛ في هذه الحالة، سيظهر في الحوار مع العميل مؤشر رسالة غير مقروءة +1.

إذا تم تمرير أي رقم آخر، فسيتم عرضه في قسم "العملاء" كعدد الرسائل غير المقروءة من العميل.

clear_unread()
تحدد حوارًا كمقروء

unsubscribe()
وظيفة لإلغاء الاشتراك من رسائل البوت. مثال مقدم في هذه المقالة.
بالنسبة للعميل الملغي اشتراكه، سيظهر رمز — رسالة حمراء مع علامة X.

مهم!

يتم تنفيذ الآلة الحاسبة أولاً، وبعدها فقط يتم إرسال الرسالة.

لذلك، إذا كنت بحاجة إلى إرسال رسالة نهائية مثل "تم إلغاء اشتراكك من البوت" أو "تم حظرك"، يجب عليك استخدام عملية من خطوتين:

  1. أولاً، أرسل كتلة تحتوي على الرسالة النهائية.
  2. ثم، أرسل كتلة فارغة تحتوي على وظيفة إلغاء الاشتراك/الحظر.

إذا حاولت القيام بالأمرين في كتلة واحدة، لن يتم إرسال الرسالة.

إذا وضعت وظيفة unsubscribe() في نفس كتلة الآلة الحاسبة مع رسالتك، فلن يتم إرسال الرسالة، وسيعرض النظام خطأ.

block_client()
تمنع العميل من إرسال الرسائل إلى البوت. سيتم أيضًا إلغاء الرسائل المجدولة مسبقًا من البوت. ومع ذلك، سيظل من الممكن مراسلة العميل مباشرة من الحوار في قسم "العملاء"

سيكون للعميل المحظور علامة — أيقونة قفل حمراء.

unblock_client()
تلغي حظر العميل. سيتمكن العميل من التفاعل مع البوت مرة أخرى والمتابعة عبر سلاسل الرسائل.

set_client_name(name)
تغير اسم العميل. مرر اسم العميل كسلسلة نصية بين علامتي اقتباس مزدوجتين. يمكنك أيضًا استخدام متغير يحتوي على اسم العميل، على سبيل المثال: set_client_name("John Smith")

get_bind_clients()
دالة بدون معلمات ترجع مصفوفة من معرفات العملاء المرتبطة بالعميل الحالي.

get_current_pipline_id()
دالة بدون معلمات ترجع معرف مسار التحويل (الفانل) الذي يوجد فيه العميل حاليًا.

إذا كانت صفقة العميل في مرحلة "غير معالجة"، فإنها ترجع None.

العمل مع المهام

الدوال التي تعمل مع المهام ترجع حالة العملية كـ True أو معرف المهمة عند النجاح. في حالة الفشل، ترجع False أو None.

يستخدم MaviBot تنسيق التاريخ "dd.mm.yyyy" وتنسيق الوقت "HH:MM".

create_task() | update_task() | done_task() | delete_task()

create_task(email, name, date_srok, description, time_srok) – تنشئ مهمة

المعلمات:\ ! email - البريد الإلكتروني للشخص المسؤول\ ! name - اسم المهمة\ ! date_srok - تاريخ الاستحقاق، تاريخ\ ! description - وصف المهمة
time_srok - وقت الاستحقاق، وقت

update_task(task_id,email, name, date_srok, description, time_srok) - تحديث مهمة

المعلمات:\ ! task_id- معرف المهمة\ ! email - البريد الإلكتروني للشخص المسؤول\ ! name - اسم المهمة\ ! date_srok - تاريخ الاستحقاق، تاريخ\ ! description - وصف المهمة
time_srok - وقت الاستحقاق، وقت

done_task(task_id)- تحدد مهمة كمكتملة

المعلمات:\ ! task_id- معرف المهمة

delete_task(task_id) – تحذف مهمة

المعلمات:\ ! task_id- معرف المهمة

تعيين مستخدم مسؤول

assign_order_to_user(email, order_id) — تعيين مستخدم مسؤول لصفقة

  • email — البريد الإلكتروني للموظف الذي سيتم تعيينه كمسؤول. مطلوب.
  • order_id — معرف الصفقة لتعيين الموظف إليها. إذا لم يتم تحديده، يتم استخدام الصفقة الحالية. اختياري.

الحصول على البريد الإلكتروني للمستخدم المسؤول

get_order_operator(order_id) — الحصول على البريد الإلكتروني للمستخدم المسؤول عن صفقة

  • order_id — معرف الصفقة لاسترداد المستخدم المسؤول عنها. إذا لم يتم تحديده، يتم استخدام الصفقة الحالية. اختياري.

لنقم بإنشاء مهمة للمشغل:

تحديث تاريخ الاستحقاق والوصف.

تحديد المهمة كمكتملة.

حذف المهمة

task_id=create_task('[email protected]', 'Test', '22.01.2023', 'test task', '08:00') status=delete_task(task_id)

العمل مع الصفقات

get_order_id() | create_order() | set_order_name() | set_order_budget() | get_active_orders_ids() | get_success_orders_ids() | get_fail_orders_ids() | get_order_var() | get_order_vars() | set_order_var() | set_order_vars() | move_order_to_next_state() | set_order_status_success() | set_order_status_fail(order_id)| get_state_id() | change_state() | get_order_id_by_var_value() | latest_order_datetime() | count_client_orders(), get_count_orders() | delete_order(order_id) |

استرداد معرف الصفقة الحالي

get_order_id() - ترجع حالة الصفقة.

إنشاء صفقة جديدة

create_order(name, budget, description, client_name, phone, email, state_id)
ستكون الصفقة النشطة حاليًا في مسار التحويل، بالإضافة إلى متغيراتها، متاحة فقط في الدوال المتعلقة بالصفقات وفي نظام CRM.

معلمات الدالة: \ ! name - (اختياري)، اسم الصفقة. إذا لم يتم توفيره، تنطبق الدالة على الصفقة النشطة الحالية للعميل.

! budget - (اختياري) قيمة الصفقة. إذا لم يتم توفيره، تنطبق على الصفقة النشطة الحالية.
إذا لم يكن budget رقمًا، سترجع الدالة: يجب أن تكون الميزانية رقمًا

description - (اختياري)، وصف الصفقة.

معلمات إضافية لإنشاء العميل:

client_name - (اختياري) سلسلة نصية، اسم عميل جديد

phone - (اختياري) سلسلة نصية، رقم هاتف عميل جديد.

email - (اختياري) سلسلة نصية، عنوان بريد إلكتروني لعميل جديد.

لإنشاء عميل، يجب توفير الهاتف أو البريد الإلكتروني على الأقل. إذا تم توفير الهاتف ولم يكن هناك عميل بهذا الهاتف في المشروع، سيتم إنشاء عميل جديد.

إذا تم توفير البريد الإلكتروني بدون هاتف ولم يكن هناك عميل بهذا البريد الإلكتروني، سيتم إنشاء عميل جديد.

معلمة إضافية:

state_id - رقم، يسمح بتعيين الحالة الأولية للصفقة عند الإنشاء

تعيين أو تحديث اسم الصفقة

set_order_name(name, order_id)

name - ❗مطلوب، سلسلة نصية؛ اسم الصفقة

order_id - (اختياري) معرف الصفقة. إذا لم يتم توفيره، ينطبق التغيير على الصفقة النشطة الحالية للعميل.

تعيين أو تحديث ميزانية الصفقة

set_order_budget(budget, order_id)

budget -❗مطلوب، رقم؛ قيمة الصفقة

order_id - (اختياري) معرف الصفقة. إذا لم يتم توفيره، تنطبق على الصفقة النشطة الحالية للعميل.

لاستخدام order_id بشكل صحيح:

  1. يمكنك تحديده يدويًا — احصل على معرف الصفقة ومرره كمعلمة للدالة إذا كنت تريد استهداف صفقة معينة.

  1. استرده باستخدام الدالة get_order_id()، لأن المتغير المدمج order_id يرجع القيمة بتنسيق {client_id}-{order_id}، مما قد يسبب سلوكًا غير صحيح.

استرداد قوائم الصفقات
((باستثناء الصفقات المؤرشفة أو الناجحة أو الفاشلة))

get_active_orders_ids()

الحصول على قائمة معرفات الصفقات الناجحة

get_success_orders_ids()

الحصول على قائمة معرفات الصفقات الفاشلة

get_fail_orders_ids()

استرداد قيمة متغير صفقة

get_order_var(order_id, variable)

المعلمات:

! order_id - معرف الصفقة

! variable - اسم المتغير الذي تريد استرداد قيمته

استرداد بيانات الصفقة

get_order_vars(order_id, names)

المعلمات:

! order_id - معرف الصفقة

names - مصفوفة من أسماء المتغيرات لاستردادها. إذا تم حذفها، ترجع الدالة جميع متغيرات الصفقة المحددة

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

إضافة متغير صفقة

set_order_var(order_id, variable, value)

المعلمات:

! order_id - معرف الصفقة

! variable - اسم المتغير المراد إضافته أو تحديثه في صفقة

إذا كنت تريد تغيير معلمات الصفقة "name" أو "description"، استخدم أسماء المتغيرات "name" أو "description" على التوالي.

! value - قيمة المتغير

إضافة متغيرات صفقة متعددة

set_order_vars(order_id, variables_dict)

المعلمات:

! order_id - معرف الصفقة.

! variables_dict - قاموس المتغيرات

الانتقال إلى الحالة التالية في مسار التحويل

move_order_to_next_state(order_id)

المعلمات:
order_id - معرف الصفقة. إذا لم يتم تحديده، سيتم نقل الصفقة النشطة الحالية.
يتم تحديد ترتيب حالات الصفقة وفقًا للتسلسل المحدد في MavibotCRM.

استرداد مرحلة مسار التحويل في MavibotCRM

get_state_id(client_id, order_id)
يمكنك أيضًا نسخ معرف حالة مسار التحويل مباشرة من "إعدادات الحالة".

المعلمات:

order_id - معرف صفقة العميل

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

لاستخدام order_id بشكل صحيح:

  1. يمكنك تحديده يدويًا عن طريق الحصول على معرف الصفقة وتمريره كمعلمة للدالة عندما تريد استهداف صفقة معينة.
  2. استرده باستخدام الدالة get_order_id()، لأن المتغير المدمج order_id يرجع قيمة بتنسيق {client_id}-{order_id}، مما قد يسبب سلوكًا غير صحيح.

نقل عميل متوقع عبر مسار تحويل MavibotCRM حسب معرف الحالة

change_state(state_id, order_id)

المعلمات:\ ! state_id - معرف حالة مسار التحويل
order_id ( اختياري) - معرف الصفقة المراد نقلها عبر مسار التحويل. إذا تم حذفه، سيتم نقل الصفقة النشطة الحالية.

الحصول على معرف الصفقة حسب اسم المتغير وقيمته

get_order_id_by_var_value(var_name, var_value, client_id)

المعلمات:\ ! var_name - اسم المتغير\ ! var_value - قيمة المتغير؛
client_id - (اختياري) معرف صفقة العميل؛ القيمة الافتراضية هي معرف العميل في البوت

الحصول على تاريخ ووقت أحدث صفقة

latest_order_datetime(client_id, dt_fmt)

المعلمات:
client_id - (اختياري) معرف صفقة العميل؛ القيمة الافتراضية هي معرف العميل في البوت؛
df_fmt - (اختياري) تنسيق التاريخ والوقت المرتجع؛ التنسيق الافتراضي هو "%d.%m.%y %H:%M"

الحصول على عدد صفقات العميل

count_client_orders(client_id, state_id, get_all, active)

المعلمات:
client_id - (اختياري) معرف صفقة العميل؛ القيمة الافتراضية هي معرف العميل في البوت؛
state_id - (اختياري) معرف حالة الصفقة في مسار التحويل؛
get_all - (اختياري) علامة تصفية للمعلمة active؛ القيمة الافتراضية هي 1 (التصفية حسب active معطلة)؛
active - تُستخدم فقط عندما يكون get_all هو 0؛ تقوم بتصفية الصفقات النشطة؛ القيمة الافتراضية هي 1 (ترجع فقط الصفقات النشطة)؛

الحصول على عدد الصفقات في حالة صفقة محددة

get_count_orders(id) - ترجع عدد الصفقات الموجودة حاليًا في حالة مسار تحويل محددة حسب معرف الحالة.

تأخذ الدالة معلمة واحدة:

! id - معرف حالة الصفقة.

مثال على استخدام الدالة:

يمكن العثور على معرف المرحلة في الإعدادات.

بعد ذلك، تحتاج إلى إدخال الدالة في الآلة الحاسبة على النحو التالي:

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

حذف صفقة

delete_order(order_id) — تحذف صفقة في MaviBotCRM.

order_id - (اختياري) معرف الصفقة المراد حذفها. إذا تم حذفه، سيتم حذف أحدث صفقة.

جميع الدوال سهلة الاستخدام.
على سبيل المثال، لنقم بإنشاء صفقة جديدة وإرسال رقمها إلى العميل:

يمكنك الحصول على معرف الصفقة النشطة الحالية للعميل باستخدام الدالة get_order_id()، أو استرداد القائمة الكاملة لصفقات العميل باستخدام get_active_orders_ids().

تعيين علامة صفقة ناجحة

set_order_status_success()

الوصف

set_order_status_success(order_id)

المعلمات:

order_id - معرف الصفقة. إذا لم يتم تحديد المعلمة، سيتم تعيين العلامة للصفقة النشطة الحالية.

تعيين علامة صفقة فاشلة

set_order_status_fail()

الوصف

set_order_status_fail(order_id)

المعلمات:

order_id - معرف الصفقة. إذا لم يتم تحديد المعلمة، سيتم تعيين العلامة للصفقة النشطة الحالية.

تعيين علامة صفقة مؤرشفة

set_order_status_archive()

الوصف

set_order_status_archive(order_id)

المعلمات:

order_id - معرف الصفقة. إذا لم يتم تحديد المعلمة، سيتم تعيين العلامة للصفقة النشطة الحالية.

أمثلة

/*أرشفة الصفقة النشطة الحالية*/

res_arh = set_order_status_archive()