Webhooks are created and managed in Zendesk Admin Center from the Webhooks page.
You must be an admin or an agent in a custom role with permission to manage webhooks.
Editing and managing webhooks
In most cases, admins can edit, clone, deactivate, and delete webhooks. However, webhooks that are created by app requirements can be edited but can't be cloned or deleted. Webhooks created by app requirements can be updated by the apps developer and override changes made by account admins. After a webhook is created, you can't change its connection method.
To edit a webhook
- In Admin Center, click
Apps and integrations in the sidebar, then select Actions and webhooks > Webhooks.
- Find the webhook in the list, click the options menu icon (
) on the webhook's row, and then click Edit.
- Modify the webhook as needed.
All fields can be edited. However, when using authentication, the key, token, or password can't be viewed after the webhook is created or updated. To remove a custom header, click the delete icon (
).
- (Optional) Test the changes you made to the webhook.
- Click Save.
To clone a webhook
- In Admin Center, click
Apps and integrations in the sidebar, then select Actions and webhooks > Webhooks.
- Find the webhook in the list, click the options menu icon (
) on the webhook's row, and then click Clone.
- Edit the webhook's Name and modify the webhook as needed.
- Click Update.
To deactivate a webhook
- In Admin Center, click
Apps and integrations in the sidebar, then select Actions and webhooks > Webhooks.
- Find the webhook in the list, click the options menu icon (
) on the webhook's row, and then click Deactivate.
- In the confirmation dialog, click Deactivate.
To delete a webhook
- In Admin Center, click
Apps and integrations in the sidebar, then select Actions and webhooks > Webhooks.
- Find the webhook in the list, click the options menu icon (
) on the webhook's row, and then click Delete.
- Click Delete.
Viewing a webhook's activity
Each webhook has an activity log. In addition to a detailed record of invocations, you can also see the number of requests in the last seven days.
A webhook invocation is automatically retried up to three times if the endpoint returns certain HTTP response codes. For more information and examples of retry scenarios, see Webhook retry logic in our developer documentation.
Zendesk makes a best effort to deliver actions to webhooks a single time. However, we can't guarantee it. It is possible for a webhook to be invoked by the same action multiple times or, under certain circumstances such as the webhook circuit breaker being triggered, actions might not be delivered at all. To detect duplicate invocations, you could use webhook signatures. If this is problematic for your workflow, ensure actions resulting from your webhooks are idempotent.
- In Admin Center, click
Apps and integrations in the sidebar, then select Actions and webhooks > Webhooks.
- Find the webhook in the list, click the options menu icon (
) on the webhook's row, and then click View details.
- Click the Activity tab.
- Click Filter to filter the activity log by start date, start time, end date, end time, or status, and then click Apply filters.
Debugging a webhook
If a webhook isn't working correctly, failed invocations will be visible in the webhook's activity log. You can filter the activity log by a status of Failed or by a specific type of error. From the Activity tab, you can also click on an Invocation ID to view the request and response for a specific invocation of the webhook.
In most cases, the response comes from the third-party service that receives the webhook's request, not Zendesk itself. You typically need to work with this service to fix errors.
You can use the numeric code in the response status to diagnose issues. These response status codes are standard across HTTP requests. For a list of the standard HTTP response status codes and their meaning, see HTTP response status codes in the MDN web docs.
Webhook requests have a 10-second timeout. A "Failed: 504 Gateway Timeout" response status indicates a service didn't respond to a webhook's request within this timeout period. The timeout period is not adjustable.
30 comments
Christos
Is it possible to manage/create webhooks via API?
0
Jacquelyn Brewer
Hi Chris. Yes, that's possible. Here's a link to the webhook API reference docs and the webhook developer tutorials.
0
David Berumen
it is possible to access bookmark resources in these webhooks?
0
Dave Dyson
Hi David, bookmarks can be created, deleted, or listed via the API: API - Bookmarks
0
Joao Vieira
The documentation available online states:
Can you please explain how to pass URL parameters to any URL? As far as I can see, only the body of the webhook can be customized.
0
Chris Sos
Hi @...,
You can put query parameters in the URL when you're defining the webhook. These query parameters can also contain Zendesk Trigger Placeholders to dynamically fill information.
Hope this helps,
Chris
0
Nicholas Simmons
Hi,
Is it possible to receive alerts when Failed response statuses are returned to a webhook? Possible options- forward the failed payload to a different webhook, retrieve the last X number of failures for a webhook via some api GET request, or via any other automated process?
Thanks in advance!
0
Dainne Kiara Lucena-Laxamana
Hi Nicholas Simmons!
Just like targets, webhooks have no notifications for individual failures; since there's no deactivation, there are no additional notifications. To see something like this, you would look at the API to check on recent requests and check for failures alike. As always, feel free to add any other questions, comments, or concerns in the meantime; we're always happy to help. Please feel free to also create a feedback post at Feedback - Admin Center. That way other end-users who are looking for this functionality can also weigh in on the conversation & share their use case.
0
Elizabeth Toy
wanted to check/confirm something... if a webhook was created by user A, and then down the line user A is no longer an agent in Zendesk, does that webhook they created still remain?
0
Chris Sos
Hi Elizabeth Toy,
That's correct. The webhooks will remain active regardless of the creating admin's status.
Chris
1
Carlos Cardona
Hi,
How do I pass a "HEADER" parameter to my endpoint using the webhook?
The API that I am posting (PUT) requires that I pass some parameters via the HEADER and not in the JSON Body.
0
Phoebe Morin
Hi Carlos,
Currently, custom header for Webhook is not supported. As we do not know the remote endpoint and we have no way of knowing what it requires, what syntax is need, format and we simply have no visibility.
What we can suggest is that you replicate toward https://hookbin.com/ to see if the payload, headers of the call and information are well received in a public and not in restricted endpoint.
0
S Shatheesh
Hi,
Is there a way to send new ticket comment through webhook.
Currently I have to get the ticket id and then call get api to get the comments, if comment can be sent straight away I can avoid this 2 step process
1
Justin H
Hello S Shatheesh !
I have submitted a ticket on your behalf for our support team to further investigate. You should be receiving an email shortly for this.
1
Marco
Hi,
I use a trigger to invoke a WebHook.
How do I access the request response values from (another) trigger? What I need is to extract something from the response payload (json format) and use it in a subsequent trigger.
0
Dane
You can find it on the actual JSON body of the trigger.
0
Marco
Hi Dane,
My understanding is that the actual JSON body of the trigger (the one in the screenshot) is NOT a response payload, but the request payload.
For example, I define a webhook (GET method) that is invoked by a trigger. An HTTP 200 response is returned, including its payload: how do i access it via trigger/automation?
0
Dane
Thank you for the clarification.
Zendesk does not have a way to show the actual response payload on a ticket, trigger or automation.
However, you can extract the actual JSON response by going directly to the webhook you have created and in Actions select Test webhook. This method will require you to designate the values of the endpoint that you have used.
0
Maria mariais
Hi! I Deleted a webhook by mistake. Is there any way I can restore it?
0
Dane
We don't have a feature that will allow you to restore deleted webhooks.
0
Gulzar Shikalgar
Hi Support,
Is there any timeline when feature 'Viewing a webhook's activity (beta)', will be out of beta and go to stable/feature release?
0
Roee Aizman
I am not getting an organization custom filed filled by the webhoo.
Only the standard fields are filled.
The json includes:
"organization": {
"custom_fields": [
{
"key": 107953418xxxxxx,
"value": "Hello"
}
]
}
}
0
Rosie
Apologies as you're not getting the organization custom field in Webhook.
I would like to get more of your use case to help you here. I'll go ahead and create a separate ticket on your behalf so I can get more account-specific details to troubleshoot this issue. You may expect an email shortly with the ticket information.
Thank you.
0
Daniel Rafeedie
After creating a webhook it seems that it must be connected to a trigger to fire. When creating the trigger it seems that you have to manually write the JSON to define which variables should pass with the trigger. Is it possible to skip this step with JSON to just pass all available fields?
1
Jacquelyn Brewer
Daniel Rafeedie The Request format that you specify when creating the webhook determines the structure of the request body you define in the trigger. If you select JSON, you'll indeed need to manually write the JSON request in the trigger action. However, if you select Form-encoded content, you'll be asked to provide URL parameters and values in the trigger actions. I hope this helps!
1
Daniel Rafeedie
Thanks Jacquelyn Brewer!
With the Form-encoded content, is it possible to pull custom fields from the organization attached to the ticket. For example, if the organization has a custom fields labeled "Organization_Service_Level" is there parameter like "Ticket.Organization.Organization_Service_Level" that we can enter to pull that custom field from the organization?
1
Greg Katechis
Hi Daniel! Yes, that is definitely possible to do, however if the main reason to use the form-encoded method is to avoid writing things manually, you'll find that this is going to be the same situation. Additionally, the issue with using URL params is that it is much more difficult to scale, as JSON is much easier to read than URL params. If you have other needs for form-encoded, then ignore that last bit, just wanted to make sure you weren't making more work down the road!
0
Cloudhuset
I am really missing a way to see the URL on the webhook activity/invocations. For example I have webhooks that are updating tickets via the Zendesk API, so my webhook url is defined as https://mysubdomain.zendesk.com/api/v2/tickets/{{ticket.id}}. But when I look at a failed webhook invocation, there is no way that I can see which ticket it was trying to update, because I can't see the url. And on a huge Zendesk account with thousands of tickets created every day, that is a huge pain.
2
David
@Cloudhuset A/S
The issue you're facing with Zendesk's webhook activity/invocations tracking, especially regarding the inability to see the full URL invoked by a webhook, including dynamic elements like {{ticket.id}}, is indeed challenging.
Given the current limitations, you may want to look in to:
External Logging Service: Use an intermediate service or a serverless function (AWS Lambda, Azure Functions, Google Cloud Functions) that your webhook calls first. This service would log the full URL (including the {{ticket.id}} replacement) and then make the API call to Zendesk on your behalf. This approach allows you to implement detailed logging according to your needs.
Embedded Identifiers in Payload: Include additional identifiers or logging information within the webhook payload itself. While this doesn't solve the visibility of the URL directly, it can help correlate the invocation with specific actions or tickets.
0
Rajesh Patil
Hi Team,
Need help to send json payload but it seems my backend api doesn't accept the some special characters due to security reason.
"description": "----------------------------------------------\n\nTest, 28 Nov 2024, 11:39\n\nTrial test",
Anyhelp will appricated for webhook payload.
0