ما تحتاجه أولًا
1
مفتاح API نطاقه الإرسال
الإعدادات ← مفاتيح API، بنطاق
conversations:send. ولا شيء غير ذلك — فهذا المفتاح سيعيش
في إعدادات Zoho حيث يستطيع أي مسؤول Zoho قراءته. راجع المصادقة.2
معرّف قناتك
من
GET /v1/connect/channels. ستلصقه
في webhook الخاص بـ Zoho كقيمة حرفية.3
قالب معتمد
من
GET /v1/templates. دوّن
اسمه name بدقة، ولغته language، وكم عنصرًا نائبًا {{n}} في نصه.اضبط webhook في Zoho
في Zoho Desk: Setup → Automation → Webhooks → Create Webhook.
ثم أضف معاملات الجسم:
هذه حقول مسطّحة، لا كائن
template المتداخل الظاهر في مواضع أخرى من هذا التوثيق. فباني
webhook في Zoho لا يستطيع إخراج غير أزواج مفتاح/قيمة مسطّحة، لذا تقبل
/v1/conversations/send الحقول templateName وtemplateLanguage وtemplateParams في المستوى
الأعلى كصيغة مكافئة. راجع نقطة نهاية الإرسال
للصيغتين.كما يقبل templateParams نص مصفوفة JSON — ["Ahmed","4821"]. استخدم هذه الصيغة حين قد تحتوي
القيمة على فاصلة، مثل موضوع تذكرة أو عنوان.أطلقه عند الإغلاق
Setup → Automation → Workflows → Create Rule- الوحدة —
Tickets - التنفيذ عند —
Edit، مقصورًا على حقلStatus - المعيار —
Status is Closed(أضفResolvedأيضًا إن كان فريقك يستخدم الاثنين) - الإجراء — الـ webhook الذي أنشأته للتو
رقم الهاتف هو الجزء الصعب
يجب أن يكونto بصيغة E.164 بدون + — 201001234567. أما Zoho فيخزّن ما كتبه الموظف، وهو
عمليًا يعني كل هذه الصيغ للشخص نفسه:
أضف حقل «رقم واتساب» مع تحقق (موصى به)
أضف حقل «رقم واتساب» مع تحقق (موصى به)
أضف حقلًا مخصصًا في تخطيط التذكرة أو جهة الاتصال —
WhatsApp Number — مع قاعدة تحقق تشترط
صيغة E.164، واجعله إلزاميًا قبل إغلاق التذكرة. ثم استخدم ${Ticket.WhatsApp Number} في to.وهذا الخيار الوحيد الذي يعالج المشكلة من مصدرها بدل التخمين، ويلغي فئة كاملة من تذاكر «لماذا لم
تصل الرسالة إلى العميل».طبّع الرقم في دالة Deluge مخصصة
طبّع الرقم في دالة Deluge مخصصة
استبدل الـ webhook البسيط بدالة مخصصة على قاعدة سير العمل نفسها، ونظّف الرقم قبل الإرسال:وتثبيت
20 يفترض أن كل عميل في بلد واحد. فإن لم يكن ذلك صحيحًا، فهذا الأسلوب سيفسد الاستثناءات.ارجع إلى عدة حقول بالتتابع
ارجع إلى عدة حقول بالتتابع
أرسل
${Contact.Mobile} وارجع إلى ${Contact.Phone} أو ${Ticket.Phone} عند خلوه. وهذا
يساعد فقط مع الأرقام المفقودة لا سيئة الصياغة — فمشكلة الصياغة تبقى.أمران تراقبهما في الإنتاج
الإرسال المكرر. يمكن إغلاق التذكرة وإعادة فتحها وإغلاقها مجددًا — وكل إغلاق يُطلق القاعدة. كما يعيد Zoho المحاولة عند استجابة غير 2xx. فإذا كانت الرسالة المكررة تهم، أضف حقل خانة اختيار مخصصًا مثلConfirmation Sent، وضمّن Confirmation Sent is false في معايير القاعدة، واضبطه كإجراء ثانٍ
في سير العمل.
الإخفاقات الصامتة. يسجّل Zoho إخفاقات webhook في سجله الخاص الذي لا يقرأه أحد. وواجهتنا تعيد
202 بمجرد دخول الرسالة الطابور، فـ202 لا تعني التسليم — افحص status على الرسالة إن كان تأكيد
التسليم يهم. راجع الخطوة 4 من البداية السريعة.
اختباره
أغلق تذكرة حقيقية لجهة اتصال رقمها رقمك أنت. فإن لم يصل شيء، تحقق بهذا الترتيب:- سجل webhook في Zoho — هل عملت القاعدة أصلًا؟ إن لم تعمل، فالمعايير أو القسم خاطئ.
- رمز الاستجابة —
401تعني أن المفتاح أو الترويسات خاطئة، و403تعني أن المفتاح يفتقر إلىconversations:send، و400تعني أن الحمولة غير صالحة وحقلmessageيوضح كيف. - حقل
statusفي الرسالة —202متبوعة بـfailedتعني أننا قبلناها ورفضتها المنصة. وerror_reasonسيوضح السبب؛ والأسباب المعتادة رقم سيئ الصياغة أو قالب لا يطابق عدد معاملاته.

