You can create a webhook by combining a trigger or automation with an HTTP target in Zendesk Support. In web development, a webhook sends an HTTP request to a specified url in response to an event -- in this case, when a trigger or automation fires in Zendesk Support. Web developers typically use webhooks to invoke behavior in another system.
Topics covered in this article:
About webhooks
You can create webhooks with HTTP targets to build integrations with the services or with your back-end system. Examples:
- Alert your team in Slack when an urgent ticket is created
- Pass ticket details to your docs team in Asana after a ticket is resolved
- Notify your own backend service regarding an important ticket event
An HTTP target lets you pass information to third-party services and REST APIs that accept JSON, XML, or form-encoded content in HTTP requests. HTTP targets are used by automations and triggers in Zendesk Support when a ticket meets certain conditions. To learn more about targets, see Notifying external targets.
HTTP targets differ from URL targets. URL targets only support sending information in URL parameters, such as www.example.com?order=345
. HTTP targets support sending information in the request body of POST or PUT requests, a requirement for many third-party services and open APIs. The following is a JSON example:
You can use any of the available content placeholders to insert ticket data in the content.
For more information, see the Zendesk Support placeholder reference.
HTTP targets will not retry requests based on any response code returned by the target endpoint. The only scenario in which a HTTP target notification will retry is if a timeout error is received within 10 seconds of a request being made. This can happen up to a maximum of 21 times before the target is deactivated. See Avoiding timeout errors.
Creating a webhook
- In Zendesk Support, click the Admin icon (
) in the left sidebar, then select Settings > Extensions.
- Click the Targets tab and click Add Target.
- Select HTTP Target.
- Configure the target to integrate with the third-party service.
- Save the target.
- Use the target in a trigger or automation. See Using targets in automations and triggers.
Debugging a webhook
If the webhook isn't working correctly, you can use the Target Failures tab in the API dashboard to check for problems with the request.
- In Zendesk Support, click the Admin icon (
) in the left sidebar, then select Channels > API.
- Select the Target Failures tab.
For more information, see Using the API dashboard.
Examples
The following articles give examples of building integrations using webhooks.
- Integrating with Slack, by Steven Yan
- Integrating the HTTP Target with Trello, by Steven Yan
67 Comments
Hi Nivi -
There is not as triggers don't have a relationship with Guide actions; triggers only work from ticket properties in Support.
Hello! Will this webhooks work with https or they are http only?
Hi Konstantin,
Https targets should work as well when creating a webhook. If you run into any issues let us know!
Hi,
Can I, an end-user, create a webhook to notify me when a new article is created in a certain section of the Help Centre please? Thanks.
Hello Lamps,
Setting up what you described is a possibility, and I've gone ahead and linked an article that goes in depth on how to begin tackling this request. Let us know if you need any further assistance.
Creating Webhooks with the HTTP Target
Thanks Devan, but I'm not sure I understand what you mean. The link you gave is exactly this article which I commented on. It introduces the webhook setup from the admin's point of view, but what I would like to do is to set up a webhook as an end or anonymous user, to notify me as soon as an article is created in a certain section of the knowledge base.
Hello Lamps,
Sorry about linking you back to this article that was a mislink on our end. So regarding what you are describing you actually should be able to follow the sections of your KB that you want to keep track of and it should alert you when a new article is created.

Thanks again Devan, I have followed the section, but the notifications do not seem to be instant - they tend to arrive a few minutes after the creation of the article. Is this normal?
In my Slack channel, I can create a Zendesk ticket using the Slack shortcut ( /zendesk create_ticket) and it works as expected. Once I have created a ticket, I can see the ticket id, description, assignee, description in my channel.

Once the ticket moves through the ticketing cycle (status changes to pending, solved, etc.) I am no longer able to see the status of my ticket in the channel. Is there a way for me to create a ticket in a Slack channel and see when that ticket's status has been changed?
Hello Paige,
So there are a few variables that might be causing this disconnect in Slack which could require a bit more troubleshooting than is efficient via the forums. I've gone ahead and created a ticket on your behalf so one of our talented Advocates can work through this with you.
Hi team,
Have setup triggers for urgent escalations (e.g. order cancellation etc.) with the idea it sends to the team Slack channel (instead of sitting in unassigned tickets for awhile).
Does anyone have any JSON examples of what they use? Template?
Hey Conza,
There's a great tutorial on setting this up here
Once you setup the HTTP target to Slack, you could use something like this as the payload for the target in Zendesk. You could use this as an action for an automation for something like watching of critical tickets that remain unassigned for X time.
Hope that helps!
We are using Zendesk to post release notes for our application and would like to get notified in our application when new articles are published.
I've read about the webhooks supported by Zendesk and they seem to relate to the ticketing system. Does this functionality extend to the article system as well?
Hi Ashwin,
HTTP targets only apply to the ticketing side, not to the article management side. I'd suggest creating a post in the Product Feedback section for Guide. I'd definitely vote for this kind of feature.
Hi Dan,
It looks like similar requests have been made before and the product management team has not prioritized the work for a year+. So, I doubt another request is going to bump up the priority and I don't want to wait for months (or years) for this feature to be implemented.
I've identified an alternative to this that I'll implement myself.
~Ashwin
I can not see the HTTP Trigger section on my account.
I am admin for incent.zendesk.com
Do I need a specific subscription or something??
Hello Jins Kaduthodil,
You are correct that due to your account being "Essentials" you don't have access to this feature. You would need to upgrade the subscription on your account to resolve this on your end. I hope this clarifies this issue, and please let us know if we can help in any way.
Best regards.
Is there a way to use a Bearer token instead of Basic Auth on the HTTP Target?
Hi Guillem -- only Basic authorization is supported for HTTP targets. Having more flexibility around request headers has come up before, however.
If you would like to add to that conversation, see this feature request post here: https://support.zendesk.com/hc/en-us/community/posts/115009370628-Passing-API-Header-in-HTTP-Target
where am I wrong ?
We're investigating this. Right now, it seems like any domain that begins with "x" is causing an error in the underlying jQuery call that this UI uses. We'll get back to you Nguyen Duc Quy when we find out more.
HI Nguyen Duc Quy! The reason that this error is being returned is because we can't resolve the host that you're passing in here. Our backend validation requires that the URL that you're using is reachable and since hooks.xvolve.com/ does not resolve, that is why you're seeing this error.
Asana's integration is using Zapier (which is ok if that's what I have to do) but I was trying to find a way to use HTTPS targets to do this. Has anyone successfully done that? The article specifically mentions Asana but links to the asana homepage for me
Hey Schuyler,
Any chance you could provide some additional information on what you're trying to set up on your end? What are you trying to accomplish with webhooks?
Let me know!
I'd like to whitelist the specific IP ranges where these HTTP requests are coming from - do I need to whitelist every single IP on this page?
Or can you tell me which servers are responsible for the webhooks? So far all the requests I've seen in my testing are from 52.21.112.236
Hey Bryan,
It's recommend that you whitelist the list provided on the page you linked. I did some digging on my end to see if I could track down specific ranges for webhooks but was unable to find this information for you.
Let me know if you have any other questions!
I'm having an issue where some of my webhooks don't execute - the error under "Target Failures" reads "execution expired" and there are no additional details when I click into it.
I don't see any access attempts in my server logs at all.
Hello Bryan Delerson,
I understand that you wanted to know what the Failure Type execution expired means so I've checked this for you and found that most likely you have run into a condition called ticket collision or race condition. Essentially this means when your target was trying to update, the ticket was being updated at the same time by the system.
This is why we do not recommend this practice as noted here:
Can I use a trigger and a target to update tickets?
In most cases, it's probably going to work, but you may end up in this situation especially during a busy cycle. If this is absolutely needed to update the ticket this way, then a potentially better way would be to call out to a custom web service with the ticket information, check the ticket status, and then update the ticket externally. Additionally, this would provide potentially a higher level of security and flexibility in updating your tickets.
I hope you find this helpful. :)
Thanks Erika, but I don't think that's what is happening here - because what you described is exactly what I'm doing. I'm not updating a ticket with a trigger, I'm notifying a target (my external web server) with ticket information. When the error occurs, I never receive the ticket information and there is no indication that an access attempt was made.
Sorry if this forum is the wrong platform for this, let me know if I need to open a support ticket :)
Hi Bryan,
Thanks for the additional information! You are right, I'd recommend raising a ticket with our Support folks to take a closer look into this on your behalf. :)
Please sign in to leave a comment.