Skip to main content
عندما يغلق موظف تذكرة في Zoho Desk، أرسل للعميل تأكيدًا على واتساب. فـ Zoho يدفع إلينا — وأنت لا تستطلع. ويعمل هذا دون كتابة أي شيفرة، بشرط أن يكون رقم جهة الاتصال مخزنًا بصيغة نستطيع استخدامها. اقرأ قسم رقم الهاتف قبل أن تبدأ؛ فهناك تفشل هذه التكاملات فعلًا.

ما تحتاجه أولًا

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.وهذا الخيار الوحيد الذي يعالج المشكلة من مصدرها بدل التخمين، ويلغي فئة كاملة من تذاكر «لماذا لم تصل الرسالة إلى العميل».
استبدل الـ webhook البسيط بدالة مخصصة على قاعدة سير العمل نفسها، ونظّف الرقم قبل الإرسال:
وتثبيت 20 يفترض أن كل عميل في بلد واحد. فإن لم يكن ذلك صحيحًا، فهذا الأسلوب سيفسد الاستثناءات.
أرسل ${Contact.Mobile} وارجع إلى ${Contact.Phone} أو ${Ticket.Phone} عند خلوه. وهذا يساعد فقط مع الأرقام المفقودة لا سيئة الصياغة — فمشكلة الصياغة تبقى.

أمران تراقبهما في الإنتاج

الإرسال المكرر. يمكن إغلاق التذكرة وإعادة فتحها وإغلاقها مجددًا — وكل إغلاق يُطلق القاعدة. كما يعيد Zoho المحاولة عند استجابة غير 2xx. فإذا كانت الرسالة المكررة تهم، أضف حقل خانة اختيار مخصصًا مثل Confirmation Sent، وضمّن Confirmation Sent is false في معايير القاعدة، واضبطه كإجراء ثانٍ في سير العمل. الإخفاقات الصامتة. يسجّل Zoho إخفاقات webhook في سجله الخاص الذي لا يقرأه أحد. وواجهتنا تعيد 202 بمجرد دخول الرسالة الطابور، فـ202 لا تعني التسليم — افحص status على الرسالة إن كان تأكيد التسليم يهم. راجع الخطوة 4 من البداية السريعة.

اختباره

أغلق تذكرة حقيقية لجهة اتصال رقمها رقمك أنت. فإن لم يصل شيء، تحقق بهذا الترتيب:
  1. سجل webhook في Zoho — هل عملت القاعدة أصلًا؟ إن لم تعمل، فالمعايير أو القسم خاطئ.
  2. رمز الاستجابة401 تعني أن المفتاح أو الترويسات خاطئة، و403 تعني أن المفتاح يفتقر إلى conversations:send، و400 تعني أن الحمولة غير صالحة وحقل message يوضح كيف.
  3. حقل status في الرسالة202 متبوعة بـfailed تعني أننا قبلناها ورفضتها المنصة. وerror_reason سيوضح السبب؛ والأسباب المعتادة رقم سيئ الصياغة أو قالب لا يطابق عدد معاملاته.