برنامج الإحالة

أ برنامج إحالة هو نظام يكافئ العملاء أو شركاء الشركة من خلال تقديم حوافز أو مكافآت مقابل جلب مشاركين جدد.

من الناحية التقنية، يتضمن برنامج الإحالة عدة مكونات رئيسية:

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

  2. أ قاعدة بيانات المشاركين، ويتم تنفيذها عبر دمج وظائف MaviBot وGoogle Sheets، حيث يتم تسجيل معلومات كل من المستخدم المدعو والمستخدم الداعي.

  3. أ نظام تتبع الإحالات الذي يراقب الإجراءات المتعلقة بجلب مشاركين جدد عبر روابط الإحالة. ويخزن النظام بيانات جميع الإحالات، مما يتيح لك التحقق مما إذا كانت إحالة معينة موجودة بالفعل في النظام كمستخدم مدعو سابقًا.

نظام الإحالة في واتساب

ستتضمن وظائف الروبوت الذي يتم إنشاؤه كتلًا تتكون من المكونات التالية:

  1. إنشاء رابط إحالة (تابع)؛ رابط

  2. التحقق مما إذا كان المستخدم الجديد موجودًا بالفعل في قاعدة البيانات؛ رابط

  3. إشعار المستخدم الداعي بإحالة جديدة؛ رابط

  4. تسجيل المستخدمين في قاعدة البيانات؛ رابط

  5. طلب قائمة الإحالات. رابط

إنشاء رابط الإحالة

لننشئ كتلة تحتوي على رابط مضمّن سيرسله الروبوت إلى المستخدم عند الأمر “link”. وللقيام بذلك، أنشئ كتلة جديدة في التدفق باستخدام إحدى الطريقتين التاليتين:

  1. انقر نقرًا مزدوجًا على مساحة فارغة في لوحة البناء:

كيفية إنشاء كتلة بالنقر بالماوس
  1. باستخدام زر "حفظ" في أسفل الشاشة واختيار نوع الكتلة:

كيفية إنشاء كتلة بنوع محدد

بعد ذلك، في شرط الكتلة، أدخل الكلمة “Link” واضبط نوع المطابقة على “تجاهل الأخطاء المطبعية وعدم الدقة” (وهذا مفيد في حال وجود أخطاء مطبعية من المستخدم أو أخطاء أخرى في الرسالة):

شكل 1

لتحديد من أحال المستخدم، ينشئ الروبوت رابطًا باستخدام القالب التالي: https://wa.me/(رقم الهاتف المرتبط بالروبوت)text=You%20were%20recommended%20by%20#{phone}%20😌Hello

شكل 2 كيفية إدراج رابط في كتلة من التدفق

لنلقِ نظرة أقرب على رابط القالب: https://wa.me/(رقم رقم الهاتف المرتبط بالروبوت)?text=You%20were%20recommended%20by%20#{phone}%20😌Hello، حيث:

  1. استبدل الأقواس "(رقم هاتفك المرتبط بالروبوت)" برقم الهاتف المقابل؛

  2. يتم استبدال #{phone} تلقائيًا برقم هاتف المستخدم الذي طلب رابط الشريك الخاص به.

نرسل الرابط الذي تم إنشاؤه ليس كنص داخل الكتلة، بل كمرفق — رابط قابل للنقر مع إشعار (انظر الشكل 2 والشكل 3):

  • اختر إدراج مرفق

  • حدّد النوع — Link، والصقه في حقل 'عنوان URL للمرفق':

الصورة 3. المرفق -> النوع -> الرابط

في هذه الحالة، سيظهر الرابط بصريًا مختصرًا:

شكل 4. العرض في واتساب

لنختبر وظيفة الرابط باستخدام ميزة "Test Bot" .

شكل 5. كيفية اختبار روبوت

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

اختبار وظيفة الرابط

بهذه الطريقة، تكون قد أنشأت بنجاح رابط دعوة يمكن للمستخدمين المحتملين استخدامه للوصول إلى الدردشة الآلية. بالإضافة إلى ذلك، عند النقر على هذا الرابط، يُعاد توجيه المستخدم إلى نافذة الدردشة مع رسالة مُعبأة مسبقًا. (انظر الشكل 6)

شكل 6. رسالة مُعبأة في واتساب

التحقق من المستخدم

استخدام الدوال والتعابير النمطية داخل كتلة

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

ولهذا، تُستخدم الدالة splitter() .

splitter(str, s, n) - تقسّم سلسلة نصية إلى أجزاء. وتُرجع الدالة مصفوفة من العناصر.

المعلمات:

! str - السلسلة الأصلية

! s - فاصل السلسلة النصية

n - الحد الأقصى لعدد العناصر

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

  • رقم هاتف عام: ^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$

  • Поменять русский номер! رقم هاتف روسي فقط: ^((\+7|7|8)+([0-9]){10})$

شكل 9. التعبير النمطي لرقم الهاتف

للحصول على معلومات حول العمل بالتعابير النمطية، يُرجى الرجوع إلى المقال بعنوان "Regular Expressions." رابط

بعد أن يتحقق الروبوت من أن تسلسل الأرقام هو بالفعل رقم هاتف، احفظه من الرسالة كمتغير (على سبيل المثال، #{reff}).

التحقق من رقم هاتف المستخدم كإحالة في قاعدة البيانات

الآن من الضروري التحقق مما إذا كان رقم هاتف المستخدم الذي اتبع الرابط هو بالفعل إحالة (تمت دعوته سابقًا بواسطة شخص ما وتم تسجيله في قاعدة البيانات لدينا). وللقيام بذلك، أنشئ كتلة في التدفق مع وظيفة البحث في عمود.

استخدم وظيفة البحث في العمود بالنقر على "API Request" في الكتلة، حيث تحتاج إلى ضبط قيم المعلمات التالية:

شكل 9

! عنوان URL للدالة: https://store.salebot.pro/function/findcell رابط

! JSON معلمات الطلب:

{ "id": "your_table_id", "find": "text_to_search", "col": column_number_to_search_in, "return": column_number_to_return, "creds_path": "path_to_your_auth_credentials_file" }

معلمات الاستجابة:

"status": "1" — تم العثور على القيمة

"status": "0" — لم يتم العثور على القيمة

"data" — القيمة التي تم العثور عليها

"cell_number" — موقع الخلية التي تم العثور عليها

يجب تعيين معلمة return إلى 0. { "id": "your_table_id", "find": "text_to_search", "col": 2, "return": 0 } Response: {"status":"1","data":{"0":"\u0441\u043e\u043b\u043d\u0446\u0435","1":"\u0440\u0430\u0441\u0441\u0432\u0435\u0442","2":"\u043a\u0440\u044b\u0448\u0430","3":"","4":"\u043d\u0435\u0431\u043e"},"cell_number":{"row":4,"col":1, "col_letter":"A"}} Response breakdown:

data — الاستجابة

data|0 — الخلية 1

data|1 — الخلية 2

data|2 — الخلية 3

data|3 — الخلية 4

cell_number|row — الصف

cell_number|col — العمود

لمعرفة المزيد عن الدوال المتاحة للعمل مع الجداول، راجع المقال بعنوان "Google Sheets." رابط

كتلة الإشعار

لإشعار المستخدم الذي شارك رابط الإحالة بأن عميلًا جديدًا اتبع الرابط بنجاح، سننشئ كتلة مخصصة. لإرسال إشعار بإنشاء إحالة جديدة، استخدم معلمات الطلب التالية (النوع: POST - JSON):

تُجرى الطلبات باستخدام POST الطريقة إلى عنوان URL: https://chatter.salebot.pro/api/{api_key}/{action} حيث:

  • api_key هو مفتاح الوصول إلى API الخاص بمشروعك، ويمكن الحصول عليه من إعدادات المشروع (انظر الشكل 11).

شكل 11.

يمكنك استرجاع مفتاح الوصول باستخدام المتغير #{api_key}، الذي يخزن رمز الوصول المُنشأ حاليًا. لا تنسَ إنشاء الرمز قبل استخدامه.

! عنوان URL للطلب: https://chatter.salebot.pro/api/#{api_key}/whatsapp_message رابط

شكل 12. إشعار في واتساب

Пيمكنك العثور على مزيد من التفاصيل حول وظائف طلبات API هنا. رابط

إضافة المستخدمين المدعوّين والداعين إلى قاعدة البيانات

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

! عنوان URL للدالة https://store.salebot.pro/function/gsheets رابط

! JSON معلمات الطلب:

{ "id": "your_table_id", "mapping": { "a": "#{variable}", "b": "#{another_variable}", "d": "plain text" } }

إذا كنت تريد كتابة الصفوف ليس في الورقة الأولى، فأضف المعلمة list_name إلى الطلب:

{ "id": "your_table_id", "mapping": { "a": "plain text", "b": "#{variable}" }, "list_name": "SheetName" }

المعلمات:

  • id — معرّف الجدول*

  • a, b, c, d — أسماء الأعمدة

  • list_name — اسم الورقة الخاصة بك (مثلًا، "Sheet2")

*تأكد من استبدالها بمعرّف الجدول الفعلي الخاص بك.

مثال على الاستجابة: {"number_row":8}

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

عرض قائمة الإحالات

لنضف أمرًا إضافيًا إلى الروبوت يتيح للمستخدمين عرض قائمة إحالاتهم.

للعثور على جميع القيم المحددة في عمود، استخدم findcell الدالة مع المعلمة "find_all". سيؤدي ذلك إلى تحديد جميع حالات "find_all" القيمة في العمود المحدد وإرجاع قائمة بالقيم الفريدة من "return" العمود كسلسلة نصية.

! عنوان URL للدالة: https://store.salebot.pro/function/findcell رابط

! معلمات طلب JSON:

{ "id": "table_id", "find_all": "search_value", "list_name": "sheet_name", "col": "column_number_to_search_in", "return": "column_number_to_return_values_from", "find": "!" }

في القيم المحفوظة، حدّد:

list → قائمة

quantity → الكمية

للمستخدم، اعرض الرسالة: "لقد أحلت #{spisok}، وإجمالي إحالاتك: #{quantity}"

في برامج المراسلة الأخرى، يكون تنفيذ مثل هذا النظام للإحالة أسهل، لأن بيانات الداعي تُمرَّر كمعلمة مخفية أثناء الانتقال عبر الرابط، لذا لا يحتاج المستخدم الجديد إلى إرسال رسالة مثل “لقد تمت دعوتي بهذا الرقم.”

آخر تحديث