Activer la synchronisation bidirectionnelle de Zendesk

Summary

In this documentation, we will cover:

  • Enabling Zendesk synchronization settings in Discourse
  • Configuring a Zendesk webhook
  • Setting up a Zendesk trigger

Enabling Zendesk synchronization settings

To begin, you will need to enable a specific setting in Discourse and provide a secure token.

  1. Navigate to Admin Settings: Go to your Discourse site and navigate to the Admin settings page at /admin/site_settings.
  2. Enable Sync Setting: Find and enable the sync comments from zendesk setting.
  3. Provide Webhook Token: In the zendesk incoming webhook token, generate and add a random secure string. This token will be used later for configuring Zendesk’s webhook.

Setting up a Zendesk webhook

Follow these steps to configure a webhook in Zendesk:

  1. Access Webhooks Page: Navigate to the Webhooks section in Zendesk under Apps and integrationsWebhooks.
    • Example URL: https://<instance_name>.zendesk.com/admin/apps-integrations/webhooks/webhooks
  2. Create a Webhook:
    • Click the Actions button in the upper right corner.
    • Select Create Webhook.
    • Fill in the webhook details, ensuring you replace <discourse.example.com> with your Discourse site’s URL.


  1. Test the Webhook:
    • Click the Test Webhook button.
    • Select ‘Custom Test’ from the dropdown.
    • Replace the JSON with the following, inserting your token:
     {
         "ticket_id": "{{ticket.id}}",
         "topic_id": "{{ticket.external_id}}",
         "email": "{{current_user.email}}",
         "token": "INSERT TOKEN HERE"
     }
  • Hit Send Test. Expect a 400 Bad Request as a positive signal with the HTML page displayed indicating success.

Setting up a Zendesk trigger

Configure a trigger in Zendesk to automate actions:

  1. Access Triggers Page: Go to the Triggers section in Zendesk under AdminObjects and RulesBusiness RulesTriggers.
    • Example URL: https://<instance_name>.zendesk.com/admin/objects-rules/rules/triggers
  2. Create a Trigger:
    • Click Add trigger.
    • Name it “Discourse Sync” and set the category to “Notifications”.
    • Configure the conditions and actions as depicted below.



  • Use the same JSON body as in the test webhook step, again replacing “INSERT TOKEN HERE” with your token.
  1. Save the Trigger: Once configured, make sure to save the trigger.

Last edited by @jessii 2024-10-29T18:59:23Z

Check documentPerform check on document:
10 « J'aime »

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 « J'aime »

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 « J'aime »

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

Bonjour ! J’ai tout configuré mais cela ne fonctionne que de Discourse vers Zendesk. Je ne sais pas ce qui me manque pour que mes réponses dans Zendesk puissent être publiées dans Discourse.

Salut, je suis avec Marla ici ^^^. Nous avons réussi à faire fonctionner le plugin ! :tada:

Mais nous nous demandons : y a-t-il un moyen de continuer la synchronisation bidirectionnelle lorsque/si le sujet est déplacé vers un message privé ? Parfois, nos membres demandent des réinitialisations de mot de passe et nous aimerions continuer la conversation au sein de la communauté.

J’ai essayé le processus ci-dessus et cela fonctionne bien ! :partying_face: Cependant, il y a un problème lorsqu’un commentaire dans Zendesk contient une pièce jointe : le message arrive, mais la pièce jointe est manquante. Je ne suis pas sûr s’il faut passer un paramètre supplémentaire dans le webhook pour gérer les pièces jointes. Quelqu’un pourrait-il clarifier s’il existe des paramètres spécifiques requis pour cela ?

Merci !

J’ai configuré le plugin Zendesk et il fonctionne très bien. J’aimerais activer la synchronisation bidirectionnelle des commentaires, mais je ne veux jamais générer automatiquement de ticket Zendesk.

Il semble que la synchronisation des commentaires de Zendesk vers Discourse nécessite l’activation de la génération automatique. Est-ce le cas, ou existe-t-il une solution de contournement ?

J’ai activé le plugin Zendesk et l’envoi de tickets à Zendesk fonctionne. Mais le Webhook dans la documentation ci-dessus (https:///zendesk-plugin/sync) renvoie un 404 lorsque je le teste depuis la page de configuration du Webhook de Zendesk. Par conséquent, je ne peux pas mettre à jour les publications du forum depuis Zendesk. Qu’est-ce que je fais de mal ?

Autre problème : Si je ferme le ticket sur Zendesk et que quelqu’un répond au message Discourse, le ticket fermé n’est pas rouvert et je manque le nouveau message. Des indices ?

Salut Oliver,

Je suis sûr que vous l’avez déjà remarqué, mais l’URL de synchronisation doit inclure votre domaine. Donc, au lieu de simplement https:///zendesk-plugin/sync, cela pourrait ressembler à ceci : https://forum.yoursite.com/zendesk-plugin/sync.

Même après avoir défini le ticket sur « Résolu », vous devriez toujours voir toute réponse Discourse sur le ticket ZD. Il vous suffira de rechercher le ticket. :slight_smile:

Par exemple, sur mon site de test, j’ai créé un message et à partir de celui-ci un ticket dans ZD. J’ai marqué le ticket comme « Résolu », puis j’ai posté une réponse au sujet sur Discourse. J’ai reçu un commentaire sur le ticket ZD :