zulip/zerver/webhooks/zendesk/doc.md

2.3 KiB

{!create-stream.md!}

Next, on your {{ settings_html|safe }}, create a bot.

Construct a webhook URL like the following:

{{ api_url }}/v1/external/zendesk?ticket_title={% raw %}{{ ticket.title }}&ticket_id={{ ticket.id }}{% endraw %}

{!append-stream-name.md!}

Next, in Zendesk, open your Admin view via gear in the bottom-left corner. In the Admin view, click on Extensions, then click add target.

From there, click URL target. Fill in the form like this:

  • Title: Zulip
  • URL: the URL we created above
  • Method: POST
  • Attribute Name: message
  • Username: your bot's user name, e.g. zendesk-bot@yourdomain.com
  • Password: your bot's API key

Now, select Test Target and click Submit. A test message should appear in the zendesk stream. If the message was received, save the target by selecting Create target and clicking Submit.

From here, add a new trigger. You'll do this for every action you want to create a Zulip notification for. Triggers are added by selecting Triggers in the left menu and then clicking add trigger in the top right.

Let's say you want a notification each time a ticket is updated. Put in a descriptive title like "Announce ticket update". Under Meet all of the following conditions select Ticket: is... and then select Updated. In the Perform these actions section, select Notification: Notify target, then select Zulip.

Next we need need to enter the message body into Message. You can use Zulip markdown and the Zendesk placeholders when creating your message.

You can copy this example template:

{% raw %}

Ticket [#{{ ticket.id }}: {{ ticket.title }}]({{ ticket.link }}), was updated by {{ current_user.name }}

* Status: {{ ticket.status }}
* Priority: {{ ticket.priority }}
* Type: {{ ticket.ticket_type }}
* Assignee: {{ ticket.assignee.name }}
* Tags: {{ ticket.tags }}
* Description:
``` quote
{{ ticket.description }}
```

{% endraw %}

Finally, click Submit.

{!congrats.md!}