Skip to main content
Webhooks deliver real-time event notifications to external systems via HTTP POST callbacks. Each subscription specifies a target URL, a set of event types to receive, and a shared secret for signature verification.

Event Types

Subscribe to specific categories or use the "*" wildcard for all events:
CategoryEvents
Executionrun.started, run.completed, run.failed
Governanceapproval.created, approval.resolved
Lifecycleagent.deployed, agent.undeployed

Delivery

Events are delivered with exponential backoff retry (3 attempts). Each delivery is tracked with status (success or failed), HTTP response code, and timing. Failed deliveries after 3 attempts are marked as permanently failed.

Subscription Lifecycle

StateDescription
activeReceiving events and creating deliveries for matching event types
pausedTemporarily stopped — no new deliveries. Can be paused manually or auto-paused after 10 consecutive failures.
resumedReactivated from paused state, failure counter reset
revokedPermanently disabled. In-flight deliveries are skipped.

Security

Every delivery includes an X-Forge-Signature header containing an HMAC-SHA256 signature computed with the subscription’s secret. Consumers should verify this signature before processing the payload. The X-Forge-Delivery header provides a unique ID for deduplication.

Subscription Fields

FieldDescription
urlEndpoint URL that receives webhook payloads
eventsEvent types to subscribe to (array or "*")
secretHMAC-SHA256 signing secret
labelHuman-readable identifier (optional)
statusactive, paused, or revoked
createdAtSubscription creation timestamp

In Burgundy: Manage webhooks from Settings. →