Create a webhook
1
Open developer settings
In the dashboard, go to Settings → Developers → Incoming Webhooks.
2
Create the webhook
Click Create webhook, give it a name, and pick the event type. The type
can’t be changed afterwards — create a second webhook if you need both.
3
Copy the URL
Copy the endpoint from the Webhook Endpoint column and store it as a
secret in whatever service will call it.
Sending a request
Send aPOST with a JSON body and Content-Type: application/json. No
authentication headers are needed.
The body uses the same field names as the equivalent REST API endpoint, so
anything you can build with the API you can send here.
- Release
- Subscriber
The response is the created release, in the same shape the REST API returns.
Releases arrive as drafts
A release created through an incoming webhook is always saved with statusDRAFT, even if is_public is true. Nothing appears on your public page,
and no subscriber emails or Slack/Discord announcements go out, until someone
publishes it from the dashboard or via the API.
That’s deliberate: it lets a deploy pipeline stage release notes automatically
while a human still decides when customers see them. See
Publishing.
Change types
Each entry inchanges must use the title of a change type configured in your
workspace (Settings → Releases), matched case-insensitively. The badge colour
comes from that configuration, so it isn’t accepted in the payload.
An unrecognised title returns 400 with the list of titles your workspace
accepts, so you can correct the call without a second lookup. If you’d rather not
deal with change types, leave changes out and write everything into body.
Responses
A successful call returns200 with the created object.
Errors have a consistent shape:
Example: publish from GitHub Actions
Draft a release in Onset whenever you tag a version:Managing webhooks programmatically
Incoming webhooks can also be created, listed, updated and deleted through the REST API under/incoming-webhooks, or
with the Node SDK:
Milestone webhooks
Milestone incoming webhooks can no longer be created, and calls to existing ones return410 Gone. The roadmap is being deprecated and will be disabled on
October 5. Existing milestone webhooks stay visible in settings so you can
find and delete them.
Incoming webhooks are for sending data into Onset. To receive notifications
from Onset when something changes, see Webhooks.

