Webhooks
Umbraco webhooks enable seamless integration and real-time updates by notifying external services about content changes and events within the Umbraco CMS
Webhooks provide real-time, event-driven communication within Umbraco. They enable external services to react to content changes instantly by sending HTTP requests when specific events occur. This allows you to integrate with third-party services, automate workflows, and synchronize data effortlessly.
Getting Started
To manage webhooks, navigate to Settings > Webhooks in the Umbraco backoffice.

To create a webhook, click Create. This opens the webhook creation screen where you can configure the necessary details.

Configuring a Webhook
URL
The Url
is the endpoint where the webhook will send an HTTP request when the selected event is triggered. Ensure this endpoint is publicly accessible and capable of handling incoming requests.
Events
Webhooks are triggered by specific events in Umbraco. By default, the following events are available:
Content Published
Fires when content is published.
Content Unpublished
Fires when content is unpublished.
Content Deleted
Fires when content is deleted.
Media Deleted
Fires when a media item is deleted.
Media Saved
Fires when a media item is saved.
Content Type Filtering
For Content or Media events, you can specify whether the webhook should trigger for all content types or only specific ones. This is useful when you only need webhooks for certain document types, such as blog posts or products.
Custom Headers
You can define custom HTTP headers that will be included in the webhook request. Common use cases include:
Specifying request format:
Accept: application/json
Adding authentication tokens:
Authorization: Bearer <your-token>
Including security headers
Default Behavior of Umbraco Webhooks
Umbraco webhooks come with predefined settings and behaviors.
JSON Payload
Each webhook event sends a JSON payload. For example, the Content Published
event includes full content details:
The Content Deleted
event sends only the content ID:
Default Headers
Webhook requests include the following headers by default:
user-agent: Umbraco-Cms/{version}
Identifies the Umbraco version sending the webhook.
umb-webhook-retrycount: {number}
Indicates the retry count for a webhook request.
umb-webhook-event: {event}
Specifies the event that triggered the request. Example: umb-webhook-event: Umbraco.ContentPublished
.
Extending Webhooks
Adding Custom Events
You can extend the list of webhook events using IUmbracoBuilder
and IComposer
. Here’s an example of how to add custom webhook events:
To enable all available events, use:
Replacing Webhook Events
You can modify existing webhook events, such as changing the payload format, by creating a custom implementation:
To replace the default Umbraco webhook with your custom implementation:
Webhook Settings
Webhook settings are configured in appsettings.*.json
under Umbraco::CMS
:
Enabled
Enables or disables webhooks.
MaximumRetries
Sets the maximum number of retry attempts.
Period
Defines the retry interval.
EnableLoggingCleanup
Enables automatic cleanup of logs.
KeepLogsForDays
Determines how long webhook logs are retained.
Testing Webhooks
Use Beeceptor or RequestBin to test your event trigger integrations before deploying them to production.
Last updated
Was this helpful?