DevHelm supports two webhook systems:Documentation Index
Fetch the complete documentation index at: https://docs.devhelm.io/llms.txt
Use this file to discover all available pages before exploring further.
- Alert channel webhooks — incident notifications routed through notification policies (this page)
- Platform event webhooks — subscribe to specific event types for broader automation (see API Reference)
Alert channel webhooks
Send incident notifications to any HTTP endpoint. Plan requirement: Starter or aboveSetup
Configuration
| Field | Description | Required |
|---|---|---|
url | Webhook endpoint URL (HTTP or HTTPS) | Yes |
signingSecret | HMAC signing secret for payload verification | No |
customHeaders | Additional HTTP headers to include | No |
Custom headers cannot use the
X-DevHelm-* prefix or override Content-Type.Verifying signatures
When a signing secret is configured, DevHelm includes a signature header:- Extract the
t(timestamp) andv1(signature) values - Compute
HMAC-SHA256(signingSecret, t + ":" + requestBody) - Compare the computed signature with
v1 - Optionally reject requests where
tis too old (replay protection)
:) between the timestamp and the raw request body — no
quoting, no escaping. Use the raw bytes of the HTTP request body (do not re-serialise the
parsed JSON, since key ordering or whitespace would change the hash).
Platform event webhooks
For broader event coverage beyond incident notifications, use the platform webhook system at/api/v1/webhooks.
Available event types
Monitoring events:monitor.created,monitor.updated,monitor.deletedincident.created,incident.resolved,incident.reopened
service.status_changed,service.component_changedservice.incident_created,service.incident_updated,service.incident_resolved
Envelope format
Every platform event webhook delivery POSTs the following envelope as the request body:id— unique event ID. Use this for idempotent processing: the sameidis sent on every retry, so receivers can deduplicate by storing IDs they’ve already processed.type— event type identifier (matches theX-DevHelm-Eventheader).apiVersion— pinned envelope/payload version. Increments only when the schema changes incompatibly. Receivers should branch on this value if they need to support multiple versions during a migration.createdAt— UTC timestamp (ISO 8601 withZsuffix) of when DevHelm originated the event.data— the event-specific payload. Shape depends ontype.
Outgoing headers
| Header | Description |
|---|---|
X-DevHelm-Event | Event type (e.g., incident.created) |
X-DevHelm-Delivery | Unique delivery ID |
X-DevHelm-Signature | t=<timestamp>;v1=<hmac-sha256> |
Managing webhook endpoints
Troubleshooting
Webhook deliveries failing
Webhook deliveries failing
- Check that your endpoint returns a 2xx status code within the timeout
- Review delivery history:
GET /api/v1/webhooks/<id>/deliveries - Verify your endpoint accepts POST requests with
Content-Type: application/json
Signature verification failing
Signature verification failing
- Make sure you’re using the correct signing secret
- Use the raw request body for HMAC computation (before any JSON parsing)
- The signature format is
t=<unix-timestamp>;v1=<hex-hmac>— parse both values