First, create the stream you'd like to use for Zendesk notifications, and subscribe all interested parties to this stream. We recommend the stream name zendesk. Keep in mind you still need to create the stream first even if you are using this recommendation.

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:

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. 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 folllowing 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.

Congratulations! You're Done!
When a ticket is updated you will see a notification like the following, to the stream zendesk, with a topic that matches the ticket's subject name: