Webhooks deliver platform Events to HTTP endpoints you control. Rather than polling the API for state changes, you configure a webhook to receive a POST request whenever a specified event occurs on the platform.Webhooks are essential for integrating Scrums.com into your operational tooling: triggering finance workflows on invoice.finalized, alerting teams on service_line.paused, routing incidents to on-call systems on incident.opened, or reacting to agent completions in real time.
A webhook can be scoped to an organization or a specific workspace. Organization-scoped webhooks receive events from all workspaces. Workspace-scoped webhooks receive only events from that workspace.
Webhooks can subscribe to specific event types or to * (all events). Subscribe narrowly — receiving every platform event for a large organization is noisy and expensive to process.Common event types:
The platform delivers webhook events with exponential backoff on failure. An event is considered delivered when your endpoint returns 2xx. If delivery fails after 5 attempts, the event is marked failed and a webhook.delivery_failed event is emitted.
All webhook payloads include an X-Scrums-Signature header containing an HMAC-SHA256 signature of the request body using your webhook secret. Verify this signature before processing any payload.
The secret is write-only. It is not returned in any subsequent read response.
The platform sends a webhook.verification request to the URL on creation. Your endpoint must return 200 within 5 seconds, otherwise the webhook is created with status: "unverified".
Use narrow event_types subscriptions. Subscribing to * for a large organization will generate enormous volume. Subscribe only to the event types your receiver actually processes.
Verify the signature before processing. Reject any request without a valid X-Scrums-Signature. Do not skip this step in production.
Return 200 immediately and process asynchronously. Your endpoint should acknowledge delivery within 3 seconds. If processing takes longer, enqueue the payload and acknowledge immediately. Slow responses cause timeouts and unnecessary retries.
Monitor GET /v1/webhooks/{id}/deliveries regularly. Failed deliveries mean your system missed events. Build alerting on persistent delivery failures.