Merge supports third-party webhooks for Zendesk! This means Zendesk linked accounts are able to receive Merge-normalized Tickets, whenever a Zendesk ticket is created or updated, in real-time!
As with any webhooks, this requires set up on the user’s end. We’ll take you through the steps below!
Steps for your end user to set up webhook in Zendesk
Navigate to your Zendesk account here.
Navigate to your Zendesk Admin Center, by clicking on the gear icon, then clicking on the Go to Admin Center link.
Navigate to Webhooks under Apps and Integrations. This is where you’ll be setting up your webhook!
To create a new webhook, click Create webhook under Actions on the top right of the page.
There are 2 parts to setting up a webhook. First, we set up the webhook itself.
Give it a name. Any name!
Add the Merge webhook receiver URL in Endpoint URL
Select POST as the Request method
Feel free to Test webhook. You may see a “400 Bad Request” error with “Event not supported”. Don’t worry about that! This is simply because we need to construct the response body of the webhook.
When finished, click Create.
The 2nd part is setting up the trigger. Once you’ve clicked Create, you should see something like the page below. Click on Admin Center link to direct you to the trigger page, where you will set the Ticket trigger for the webhook!
Click on Add trigger button, and Add Trigger.
Create your trigger!
Enter a trigger name. Any name works!
Select Notifications as the Category.
This trigger will be for both created & updated Tickets. Under Meet ANY of the following conditions, select Ticket - is - Updated and Ticket - is - Created.
Under Actions, select Notify active webhook as the action, and your webhook as the webhook.
We now define the JSON body to be returned. (This is how Merge can detect what webhook event this is, as well as the Zendesk ticket information). Copy & paste the below into JSON body
{ "event": "ticket", "ticket": { "id": "{{ticket.id}}", "title": "{{ticket.title}}", "description": "{{ticket.description}}", "due_at": "{{ticket.due_date}}", "status": "{{ticket.status}}", "tags": "{{ticket.tags}}", "ticket_type": "{{ticket.ticket_type}}", "assignee_id": "{{ticket.assignee.id}}", "organization_id": "{{ticket.organization.id}}", "requester_id": "{{ticket.requester.id}}", "requester": "{{ticket.requester.details}}", "priority": "{{ticket.priority}}", "via": "{{ticket.via}}", "url": "{{ticket.url}}" } }
Click Create to create the trigger!
Finally, go back to your original screen when you were setting up the webhook, and click Complete Setup. You’ve now created both the trigger & the webhook itself!
Next, set up Zendesk webhook security with Merge
To ensure security, Merge requires a signature key to validate against. You can find your webhook’s signature key by clicking on the webhook, and clicking Reveal secret under Secret key.
Copy & paste this secret key to set up Merge webhook, either through the Merge dashboard or through Merge’s webhook receiver endpoint.
Finally, sit back & enjoy!
With your user’s Zendesk webhook now connected & secured with Merge, you’ll not just get real-time ticket updates, but also get them in Merge’s normalized format!
Note: Merge's Zendesk integration supports quick Ticket Syncs, with the highest frequency at 1 minute syncs. You can get relatively quick updates without setting up receiving webhooks, but this will be how to obtain real-time updates!