الانتقال إلى المحتوى الرئيسي
أداة معاودة الاتصال عبر الويب هي زرّ جاهز تلصقه في أيّ موقع. ينقر الزائر عليه، ويُدخل رقمه، ويؤكّد رمزًا لمرّة واحدة، فيتّصل به Wave — دون أن يمسّ أيّ مفتاح API المتصفّح أبدًا. تعمل الأداة فوق Web Callback: فهي تُجري الاتصال نفسه بنقرة واحدة، لكنّها تنقل المُشغِّل إلى متصفّح الزائر بدلًا من الـ backend الخاصّ بك.

التضمين

انسخ الشيفرة من لوحة التحكّم (Web Callback ← شيفرة التضمين) — معرّف مشروعك مُعبّأ لك — والصقها قبل وسم </body> الختامي مباشرةً:

كيف تعمل

1

يطلب الزائر معاودة الاتصال

ينقر الزرّ ويُدخل رقم جوّاله السعوديّ.
2

يؤكّد رمزًا لمرّة واحدة

يُرسل Wave رمزًا عبر SMS، فيُدخله الزائر. هذا يُثبت ملكيّته للرقم، فلا يمكن استخدام الأداة للاتصال بشخص غريب أبدًا.
3

يتّصل به Wave

عند رمز صحيح، يُجري Wave معاودة الاتصال. تظهر المكالمة في Call Logs وتُطلق webhooks كأيّ مكالمة أخرى.
لا مفتاح API في المتصفّح. تتحدّث الأداة فقط إلى نقاط النهاية العامّة /v1/public/widget/* المحدّدة بمعرّف مشروعك العامّ project_id. تبقى مفاتيح الـ API السرّيّة على خوادمك.

الأصول المسموح بها

تُرفض الأداة في كلّ مكان حتّى تُدرج المواقع التي تُضمّنها. أضِف أصل كلّ موقع في لوحة التحكّم ضمن Web Callback ← الأصول المسموح بها (مثل https://www.your-site.com). يُرفض أيّ طلب من أصل آخر بالرمز 403 WIDGET_ORIGIN_NOT_ALLOWED.
الأصل هو المخطّط + المضيف + المنفذ الاختياريّ، دون مسار — مثل https://shop.example.com، لا https://shop.example.com/contact. لا يُقبل إلّا HTTPS (باستثناء http://localhost للتطوير المحلّيّ).

reCAPTCHA (مُوصى به للإنتاج)

بما أنّ الأداة قد تصرف مالًا (كلّ معاودة اتصال مكالمة حقيقيّة)، نوصي بإضافة Google reCAPTCHA v3. أنشئ زوج مفاتيح v3، ثمّ أضِف مفتاح الموقع إلى الشيفرة:
يتحقّق Wave من الرمز على الخادم عند أوّل طلب رمز. وباجتماعه مع الرمز لمرّة واحدة وقائمة الأصول المسموح بها، يُبعد ذلك إساءة الاستخدام الآليّة.

مشاريع الاختبار ومشاريع الإنتاج

تتبع الأداة فئة المشروع المحدّد في data-project-id.
  • مشروع اختبار — يتّصل Wave بالزائر من رقم Wave المشترك. تُحتسب المكالمة من دقائق وضع الاختبار للمشروع ولا تُفوتَر.
  • مشروع إنتاج — يتّصل Wave بالزائر من رقم المشروع الخاصّ. تُفوتَر المكالمة مثل أيّ مكالمة إنتاج وتخضع لحدود الإنتاج: الحدّ الأقصى لمدة المكالمة، وحدّ المكالمات المتزامنة للمؤسّسة، وحدود معدّل المكالمات. ولا تُحتسب من دقائق وضع الاختبار. تظهر المكالمة في سجلّ المكالمات ضمن الإنتاج.
عندما يردّ الزائر على مكالمة الأداة في الإنتاج، يوصل Wave المكالمة بالطريقة نفسها المتّبعة في رد الاتصال في الإنتاج. نفّذ ما يلي قبل الانتقال إلى الإنتاج:
  • اربط قائمة رد صوتي تفاعلي برقمك. القائمة المربوطة تأتي أوّلًا دائمًا.
  • أو عيّن رقم توصيل: في لوحة التحكّم، افتح الإعدادات ← رقم التوصيل (للمالك أو المشرف فقط). يتّصل Wave بهذا الرقم السعوديّ (جوال أو هاتف ثابت) ويوصل الزائر به، ويرى من يردّ رقم مشروعك. إذا لم يردّ أحد، يسمع الزائر رسالة قصيرة ثم تنتهي المكالمة.
لمكالمات الأداة عدّاد معدّل خاصّ بها. يُطبَّق حدّا المكالمات في الدقيقة وفي الساعة على مكالمات الأداة وعلى مكالمات الواجهة البرمجيّة كلٌّ على حدة، بالقيم نفسها. يمكن للمؤسّسة أن تبدأ حتّى الحدّ عبر الواجهة البرمجيّة والعدد نفسه مرّة أخرى عبر الأداة في كلّ فترة.
لا يمكن لمشروع إنتاج ليس له رقم خاصّ (أو ليس له مفتاح API إنتاج نشط) أن يُجري مكالمات عبر الأداة: تعرض الأداة رسالة محايدة ويُعيد Wave 409 WIDGET_NOT_AVAILABLE. لا تُجرى أيّ مكالمة ويبقى رمز الزائر صالحًا، فيمكنه المحاولة مرّة أخرى عند إعداد المشروع. الرمز صالح فقط في أداة المشروع الذي أرسله.

التخصيص

  • اللغة والاتجاه — data-lang="ar" يبدّل الأداة إلى العربيّة ويقلبها من اليمين إلى اليسار.
  • اللون — data-accent يُنسّق الزرّ واللوحة.
  • النصّ — data-button-text يتجاوز نصّ الزرّ.
الأداة سكربت واحد قائم بذاته دون أيّ اعتماديّات خارجيّة وبأنماط مُسبَقة، فلا يتعارض مع CSS موقعك.