

A webhook is a shared **notification delivery channel**: Sazabi POSTs notification payloads to an HTTPS endpoint you run, the same way it delivers to Slack or email. Webhooks carry the same events you can route to any shared destination: **Issue triggered**, **Issue resolved**, **Issue ignored**, **Issue rejected**, and **Automation run failed**. Other [notification types](/reference/notification-types) reach personal channels only. Setting one up takes a few minutes. You need owner or admin access.

Manage webhook endpoints under [**Settings > Webhooks**](https://app.sazabi.com/settings/webhooks).

## Create a webhook endpoint [#create-a-webhook-endpoint]

1. Go to [**Settings > Webhooks**](https://app.sazabi.com/settings/webhooks) and add an endpoint with your HTTPS URL. The URL must be HTTPS and publicly reachable.
2. Optionally add a static authentication header — a header name and value that Sazabi sends on every delivery in addition to the signed payload. You should see the endpoint appear as **active** once saved.

You can also create and manage endpoints with the public API or the `sazabi webhooks` CLI commands. See [API reference](/reference/api) and [CLI reference](/reference/cli) for the full operation and flag lists.

## Choose which notifications are delivered [#choose-which-notifications-are-delivered]

Adding an endpoint does not by itself send anything. Choose which notifications go to it in the project's notification settings — the same delivery rules that route to Slack and other channels. See [Route notifications](/guides/detect/notifications) for how delivery rules work. Webhook-routable notification types are listed in [Notification types](/reference/notification-types).

## Secure the endpoint [#secure-the-endpoint]

Sazabi signs every delivery with the endpoint's signing secret and sends the HMAC-SHA256 value in `X-Sazabi-Signature`. Verify the signature against the raw request body before parsing JSON. Store the signing secret and any static authentication-header value securely. See [Webhook payload](/reference/api/webhooks/payload) for the envelope and signature inputs.

## Retries and auto-disable [#retries-and-auto-disable]

Sazabi records the outcome of each delivery. If an endpoint fails repeatedly, Sazabi tracks the consecutive failures and can automatically disable the endpoint, with the reason shown in the dashboard. Re-enable it after fixing the endpoint; enabling an endpoint that is already active succeeds.

## Verify [#verify]

1. On the endpoint in [**Settings > Webhooks**](https://app.sazabi.com/settings/webhooks), use **Send test**.
2. Sazabi POSTs a test payload to your URL. Your endpoint should receive it and return a 2xx status.
3. The dashboard shows the delivery as successful. If it fails, confirm the URL is reachable over HTTPS and that your endpoint returns a 2xx.

Sending a test requires permission to change organization settings, in the dashboard and the public API alike. You can test a disabled endpoint to troubleshoot it without re-enabling it.

## Further reading [#further-reading]

<Cards>
  <Card title="Route notifications" href="/guides/detect/notifications" description="Route events to your webhook." />

  <Card title="Notification types" href="/reference/notification-types" description="What can be delivered to a webhook." />
</Cards>
