تمكين المزامنة ثنائية الاتجاه لـ Zendesk

الملخص

في هذه الوثائق، سنغطي ما يلي:

  • تمكين إعدادات مزامنة Zendesk في Discourse
  • تكوين خطاف ويب (Webhook) خاص بـ Zendesk
  • إعداد مُشغّل (Trigger) خاص بـ Zendesk

تمكين إعدادات مزامنة Zendesk

للبدء، ستحتاج إلى تمكين الإضافة (Plugin) الخاصة بـ Zendesk، وتمكين إعداد المزامنة، وتوفير رمز مميز (Token) آمن.

  1. الانتقال إلى إعدادات الإضافة: انتقل إلى موقع Discourse الخاص بك وانتقل إلى صفحة إعدادات إضافة Zendesk على المسار /admin/plugins/discourse-zendesk-plugin. بدلاً من ذلك، يمكنك العثور على الإعدادات بالبحث في /admin/site_settings.
  2. تمكين الإضافة: ابحث عن إعداد zendesk enabled وقم بتمكينه إذا لم يكن ممكّنًا بالفعل.
  3. تمكين إعداد المزامنة: ابحث عن إعداد sync comments from zendesk وقم بتمكينه.
  4. توفير رمز الويب هوك المميز: في حقل zendesk incoming webhook token، قم بإنشاء وإضافة سلسلة عشوائية آمنة. سيتم استخدام هذا الرمز لاحقًا لتكوين خطاف ويب Zendesk.
  5. تكوين الفئات للتوليد التلقائي: تعمل المزامنة ثنائية الاتجاه فقط للمواضيع الموجودة في الفئات التي تم تكوينها للتوليد التلقائي لتذاكر Zendesk. إما أن تقوم بتمكين zendesk autogenerate all categories، أو أضف فئات محددة إلى إعداد zendesk autogenerate categories. بدون هذا، سيتجاهل خطاف الويب التعليقات الواردة بصمت.

إعداد خطاف ويب (Webhook) خاص بـ Zendesk

اتبع هذه الخطوات لتكوين خطاف ويب في Zendesk:

  1. الوصول إلى صفحة خطوط الويب: انتقل إلى قسم خطوط الويب (Webhooks) في Zendesk ضمن التطبيقات والتكاملات (Apps and integrations) ← خطوط الويب (Webhooks).
    • مثال على الرابط: https://<instance_name>.zendesk.com/admin/apps-integrations/webhooks/webhooks
  2. إنشاء خطاف ويب:
    • انقر فوق زر الإجراءات (Actions) في الزاوية اليمنى العليا.
    • حدد إنشاء خطاف ويب (Create Webhook).
    • املأ تفاصيل خطاف الويب:
      • طريقة الطلب (Request method): PUT
      • عنوان URL للنقطة النهائية (Endpoint URL): https://<discourse.example.com>/zendesk-plugin/sync
      • تنسيق الطلب (Request format): JSON


  1. اختبار خطاف الويب:
    • انقر فوق الزر اختبار خطاف الويب (Test Webhook).
    • حدد “اختبار مخصص” (Custom Test) من القائمة المنسدلة.
    • استبدل JSON بما يلي، مع إدراج الرمز المميز الخاص بك:
     {
         "ticket_id": "{{ticket.id}}",
         "topic_id": "{{ticket.external_id}}",
         "email": "{{current_user.email}}",
         "token": "INSERT TOKEN HERE"
     }
  • اضغط على إرسال الاختبار (Send Test). توقع الحصول على 400 Bad Request كإشارة إيجابية مع عرض صفحة HTML تشير إلى النجاح.

إعداد مُشغّل (Trigger) خاص بـ Zendesk

قم بتكوين مُشغّل في Zendesk لأتمتة الإجراءات:

  1. الوصول إلى صفحة المشغلات: انتقل إلى قسم المشغلات (Triggers) في Zendesk ضمن المسؤول (Admin) ← الكائنات والقواعد (Objects and Rules) ← قواعد العمل (Business Rules) ← المشغلات (Triggers).
    • مثال على الرابط: https://<instance_name>.zendesk.com/admin/objects-rules/rules/triggers
  2. إنشاء مُشغّل:
    • انقر فوق إضافة مُشغّل (Add trigger).
    • قم بتسميته “مزامنة Discourse” (Discourse Sync) واضبط الفئة على “إشعارات” (Notifications).
    • قم بتكوين الشروط والإجراءات كما هو موضح أدناه.



  • استخدم نفس نص JSON كما في خطوة اختبار خطاف الويب، مع استبدال “INSERT TOKEN HERE” برمزك المميز مرة أخرى.
  1. حفظ المُشغّل: بمجرد التكوين، تأكد من حفظ المُشغّل.
10 إعجابات

Hey @techAPJ this is really awesome! Is there a way to set up a triggered sync as opposed to a live sync? i.e. an agent would add a tag in ZD or hit a button or something and only then would the ticket sync to the community?
We are trying to figure out the best way to share common FAQ tickets we get to ZD in the community with the Q&A so that users can find the answers there instead of writing in a ticket.
Thanks!

3 إعجابات

The only triggered sync we have currently is from Discourse → Zendesk.

Triggering a manual sync from Zendesk → Discourse is tricky since we do not have complete control on Zendesk. That said, I’ll investigate if there is a way to trigger webhook from Zendesk by adding a tag, etc.

3 إعجابات

@techAPJ did you ever look into ZD to Discourse sync? We are looking at ways to push FAQs from tickets on Zendesk to Discourse!

مرحباً! لقد قمت بإعداد كل شيء ولكنه يعمل فقط من Discourse إلى Zendesk. لا أعرف ما الذي أفتقده حتى يمكن نشر ردودي في Zendesk في Discourse

مرحباً، أنا مع مارلا هنا ^^^. لقد نجحنا في تشغيل المكون الإضافي! :tada:

لكننا نتساءل: هل هناك أي طريقة لمواصلة المزامنة ثنائية الاتجاه عندما/إذا تم نقل الموضوع إلى رسالة خاصة؟ في بعض الأحيان، يطلب أعضاؤنا إعادة تعيين كلمات المرور ونود مواصلة المحادثة داخل المجتمع.

لقد جربت العملية المذكورة أعلاه، وهي تعمل بشكل جيد! :partying_face: ومع ذلك، هناك مشكلة عندما يحتوي تعليق في Zendesk على مرفق - تصل الرسالة، ولكن المرفق مفقود. لست متأكدًا مما إذا كانت هناك معلمة إضافية يجب تمريرها في الـ webhook للتعامل مع المرفقات. هل يمكن لأحد أن يوضح ما إذا كانت هناك أي معلمات محددة مطلوبة لهذا الغرض؟

شكرا لك!

لقد قمت للتو بإعداد إضافة Zendesk وهي تعمل بشكل رائع. أود تمكين المزامنة ثنائية الاتجاه للتعليقات، لكنني لا أرغب في إنشاء تذكرة Zendesk تلقائيًا… في أي وقت مضى، في الواقع.

يبدو أن مزامنة التعليقات من ZD->Discourse تتطلب تمكين الإنشاء التلقائي. هل هذا هو الحال، أم أن هناك حلًا بديلاً؟

لقد قمت بتمكين إضافة Zendesk ويعمل إرسال التذاكر إلى Zendesk. ولكن الـ Webhook في التوثيق أعلاه (https:///zendesk-plugin/sync) يُرجع 404 عند اختباره من صفحة إعداد Webhook في Zendesk. بالتالي، لا يمكنني تحديث منشورات المنتدى من Zendesk. ما الذي أفعله بشكل خاطئ؟

مشكلة أخرى: إذا أغلقت التذكرة على Zendesk وقام شخص ما بالرد على منشور Discourse، فلن تتم إعادة فتح التذكرة المغلقة وسأفقد المنشور الجديد. أي تلميحات؟

مرحباً أوليفر،

أنا متأكد من أنك أدركت ذلك بالفعل، ولكن عنوان URL للمزامنة يحتاج إلى تضمين نطاقك. لذا بدلاً من مجرد https:///zendesk-plugin/sync قد يكون شيئًا مثل هذا: https://forum.yoursite.com/zendesk-plugin/sync.

حتى بعد تعيين التذكرة على “تم الحل”، يجب أن تظل ترى أي رد من Discourse على تذكرة ZD. سيتعين عليك فقط البحث عن التذكرة. :slight_smile:

على سبيل المثال، في موقع الاختبار الخاص بي قمت بإنشاء منشور ومنه تذكرة في ZD. قمت بتعيين التذكرة على “تم الحل” ثم نشرت ردًا على الموضوع على Discourse. تلقيت تعليقًا على تذكرة ZD: