Botzo دليل المطوّرين
أقسام الدليل: قواعد واتساب

قواعد واتساب

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

نافذة الـ 24 ساعة

أهم قاعدة: عندما يرسل لك العميل رسالة، تُفتح «نافذة خدمة العملاء» لمدة 24 ساعة من آخر رسالة أرسلها هو.

الوضع ماذا تستطيع أن ترسل
داخل النافذة (العميل راسلك خلال 24 ساعة) أي شيء: نص حر، أزرار، صور، ملفات، قوالب
خارج النافذة (أو عميل لم يراسلك أبداً) قوالب معتمدة فقط (/api/send/template)

لو حاولت إرسال نص حر خارج النافذة يرجع:

{
  "statusCode": 422,
  "code": "outside_24h_window",
  "message": "(#131047) Re-engagement message",
  "meta_error": {
    "code": 131047,
    "details": "Message failed to send because more than 24 hours have passed since the customer last replied to this number."
  }
}

الحل: أرسل قالباً معتمداً بدلاً من النص. عندما يرد العميل على القالب تُفتح النافذة من جديد.

كل رسالة جديدة من العميل تجدد النافذة 24 ساعة أخرى. ردود موظفيك أو رسائلك أنت لا تجددها.

القوالب (Templates)

القالب رسالة جاهزة توافق عليها Meta مسبقاً، فيها أماكن لمتغيرات مثل {{1}} و {{2}}:

مرحبا {{1}}، طلبك رقم {{2}} في الطريق 🚚
  • تُنشأ القوالب من لوحة التحكم: قوالب الرسائل، وتأخذ موافقة Meta عادة من دقائق لساعات.
  • لكل قالب فئة: UTILITY (إشعارات الطلبات والمواعيد)، MARKETING (عروض وتسويق)، AUTHENTICATION (أكواد التحقق). الفئة تؤثر على السعر وعلى قبول Meta للقالب.
  • لا يمكن إرسال إلا قالب حالته APPROVED.
  • القوالب التسويقية قد توقفها Meta مؤقتاً (template_paused) إذا حظرها أو بلّغ عنها عملاء كثيرون.

اعرض قوالبك وأسماءها ولغاتها: GET /api/templates، وطريقة الإرسال في إرسال رسائل واتساب.

موافقة العميل (Opt-in)

قبل أن ترسل للعميل أي قالب يجب أن يكون وافق على استلام رسائل منك على واتساب، مثلاً بخانة اختيار عند الطلب أو التسجيل. Meta تراقب نسبة الحظر والبلاغات، والإرسال لمن لم يوافق قد يخفض تقييم رقمك أو يوقفه.

صيغة الأرقام

  • استخدم الصيغة الدولية مع رمز الدولة: +966501234567 (السعودية)، +201001234567 (مصر).
  • لا تضع أصفاراً في البداية ولا مسافات ولا شرطات.
  • الرقم يجب أن يكون عليه حساب واتساب، وإلا يرجع recipient_unavailable.

اسم العرض وحالة الرقم

قبل أن يرسل رقمك رسائل يجب أن توافق Meta على اسم العرض (Display Name). لو لم يُعتمد بعد يرجع display_name_not_approved (كود Meta 131037). الحل من WhatsApp Manager ← Phone numbers في حساب Meta، وليس من الكود.

كود بوتزو السبب الحل
display_name_not_approved اسم العرض لم يُعتمد بعد انتظر موافقة Meta أو عدّل الاسم ليطابق اسم النشاط
meta_payment_issue لا توجد وسيلة دفع صالحة في حساب Meta أضف وسيلة دفع في Meta Business ← الفوترة
whatsapp_account_restricted الحساب مقيّد بسبب مخالفة راجع رسائل Meta في Business Support
whatsapp_token_expired انتهت صلاحية ربط الواتساب أعد ربط الواتساب من إعدادات بوتزو

سرعة الإرسال

Meta تحدد عدد الرسائل في الثانية وعدد العملاء الجدد في اليوم حسب تقييم رقمك. بوتزو ينظم الإرسال تلقائياً، لكن عند الضغط الشديد قد يرجع meta_rate_limited أو recipient_rate_limited (رسائل كثيرة لنفس العميل في وقت قصير). انتظر قليلاً ثم أعد المحاولة، والتفاصيل في الحدود والسرعة.

التكلفة

Meta تحاسب على المحادثات حسب فئة القالب ودولة العميل، والفاتورة تأتي من Meta على حساب الواتساب للأعمال المربوط. الردود داخل نافذة الـ 24 ساعة على رسائل العميل مجانية عادة. راجع صفحة أسعار Meta للأرقام الحالية.