Guides · Zendesk
Get a Mac notification for new Zendesk tickets and comments
Zendesk can post a webhook the moment a ticket is created, a customer adds a comment or a ticket changes status. Point one at EventBar and each ticket pops up in your menu bar, with today's count of new tickets a glance away, even when the agent workspace is closed.
Needs: the free EventBar app on your Mac, an EventBar account, and a Zendesk account where you are an admin (or have a role that can manage webhooks). About five minutes. Zendesk preset, signature verified.
Steps
- Create the webhook URL. In the EventBar dashboard, open the Webhooks tab, pick the group this belongs to (one group per site or app is the usual shape), choose the provider Zendesk, name it, and press Create. Copy the URL; it stays visible and can be rotated any time.
- Paste it into Zendesk. In Zendesk Admin Center: Apps and integrations, then Webhooks, then Webhooks, then Create webhook. Choose Zendesk events and pick ticket events such as
Ticket created,Comment createdandStatus changed, then paste the URL into Endpoint URL, leave authentication off and press Create. Open the new webhook, press Reveal secret under Signing secret and paste it into the hook card in EventBar. Prefer a trigger? Choose Trigger or automation instead, with method POST and format JSON, then in Objects and rules, then Business rules, then Triggers, give a trigger the conditions you care about and the action Notify webhook with a body such as{"type": "ticket.solved", "ticket": "{{ticket.id}}", "title": "{{ticket.title}}", "requester": "{{ticket.requester.name}}"}. - Trigger one. Most services offer a test delivery; otherwise do the real thing once. It shows up in the dashboard's Events tab within a second and in the menu bar, as an undefined type named after the event. That first one is your proof the wiring works.
- Make it read well. Press Define on the new type and give it a title and a body template. Fields come from the payload, nested ones with dots. The table below is a starting point.
This preset is on Plus and Pro. Free can use a Generic JSON hook and a type field of type, without the signature check, but the zen:event-type: prefix stays: zen:event-type:ticket.created arrives as zen_event-type_ticket.created. Trigger webhooks, whose body you write, match the preset.
What you'll see
| Type | Title | Body template |
|---|---|---|
ticket.created | New ticket | #{detail.id} {detail.subject} · {detail.priority} |
ticket.comment_added | New comment | {event.comment.author.name} on #{detail.id}: {detail.subject} |
ticket.status_changed | Status changed | #{detail.id} {detail.subject}: {event.previous} to {event.current} |
ticket.solved | Ticket solved (trigger) | #{ticket} {title} · {requester} |
Every type has its own switch in the menu bar, so a noisy one can be quiet on this Mac and still counted. Counts cover the last hour, 24 hours, 7 days, 30 days and all time.
Worth knowing
- For Zendesk events the type is the event's
typewithout thezen:event-type:prefix, sozen:event-type:ticket.createdarrives asticket.createdand every event you subscribe to gets its own switch and count. A trigger webhook sends the JSON you write, so thetypeyou put in its body names the event; without one it arrives aswebhook. - The signature is
X-Zendesk-Webhook-Signature, a base64 HMAC-SHA256 of theX-Zendesk-Webhook-Signature-Timestampvalue followed by the raw body, keyed with the webhook's signing secret. If you reset the secret in Zendesk, paste the new one into EventBar straight away. - Duplicates are dropped by the event
idfor Zendesk events, and by theX-Zendesk-Webhook-Invocation-Idheader for trigger webhooks, so Zendesk's retries after a timeout never count twice. A trigger that fires again later (a ticket reopened and solved twice) is a new invocation and counts again. - A ticket created with a first comment sends
ticket.createdandticket.comment_addedtogether; leave the comment type unticked or mute it from the menu bar if you only want one notification per ticket. Comment events also fire for your agents' replies;{event.comment.author.is_staff}tells them apart. - Test webhook on a webhook that does not exist yet is signed with Zendesk's fixed test secret, so EventBar refuses it. Create the webhook and paste its secret first; a real test ticket is the surest first delivery.
The full contract, including how each preset reads a payload and what the answers mean, is in the API docs. Something about Zendesk's payload changed? Tell us and we'll fix the guide.