Snoze Developers

Webhooks

Get pushed workspace events instead of polling for changes.

Webhooks deliver workspace events to your endpoint as they happen, so integrations react in seconds instead of polling the API. Snoze has both directions: outbound endpoints that push workspace events to you (this page), and inbound webhook URLs that let external systems trigger your automations — see the inbound-webhooks reference.

Events

An outbound endpoint subscribes to event types from the workspace ledger — dotted names scoped by domain. Subscribe to specific types, or to none to receive everything. A sample of the vocabulary:

EventFires when
surface.created / surface.updated / surface.deletedA page, note, dashboard, canvas, or form changes.
database.created / database.updated / database.field.*A database or its schema changes.
database.record.created / database.record.updated / database.record.deletedRecords change.
database.record.commentedSomeone comments on a record.
automation.triggeredAn automation run starts.
connection.created / data_source.updatedIntegrations and syncs change.

Each delivery posts the ledger event as JSON — ids and a compact payload, not full objects. Fetch the resource if you need its current state; that keeps deliveries small and means a delayed delivery can never hand you stale data.

Verifying deliveries

Every request carries these headers:

x-snoze-event: database.record.created
x-snoze-event-id: 5c1090af-…
x-snoze-delivery-id: 8f31c2d0-…
x-snoze-timestamp: 1752507727
x-snoze-signature: sha256=5257a869e7ecebeda32affa62cdca3fa51cad7e77a0e56ff536d0ce8e108d8bd

The signature is HMAC-SHA256 over {timestamp}.{body} with your endpoint's secret. Recompute it and compare in constant time; reject anything older than a few minutes to blunt replays. Secrets can be rotated from workspace settings without dropping deliveries.

Delivery contract

  • Respond 2xx quickly — under 10 seconds. Do real work async; a slow handler is indistinguishable from a dead one.
  • Non-2xx responses and timeouts are retried with exponential backoff; exhausted deliveries land in a dead-letter list you can replay from workspace settings (or the outbound-webhooks reference).
  • Deliveries are at-least-once and can arrive out of order — dedup on x-snoze-event-id and order by the event's timestamp.

On this page