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.