How to receive events with webhooks
Instead of asking every few minutes whether a meeting is done, let Sally tell you. A webhook sends a POST request to your URL as soon as a summary is ready. That is the difference between an integration that feels instant and one that feels like a nightly job.
Read the Quickstart and Get meeting summaries first.
Quick navigation
1. Register a webhook
POST /v1.0/directories/{directoryId}/webhooks
{ "url": "https://example.com/hooks/sally", "event": "summary.ready", "name": "CRM sync" }
Reference: POST/v1.0/directories/{directoryId}/webhooks
2. The events
summary.readyfires after every summary. This is the default and usually the one you want.manualnever fires on its own. A person starts it from a meeting or a recording, which is useful when someone should decide what gets sent.
Webhooks created before the current model may still report the older events recording.summarized or meeting.summarized. They stay readable but can no longer be set.
3. Personal or company-wide
By default a webhook is personal and fires only for your own recordings. With "directoryWide": true it fires for the recordings of all users of the company account. Only admins and owners can create company-wide webhooks.
4. On your side
- Answer quickly with 2xx and do the actual work afterwards, so slow processing does not block the delivery.
- Make your handler idempotent, keyed on the summary id, so a repeated delivery does no harm.
- The payload contains the summary with its section items, in the same shape as in Get meeting summaries. One parser serves both paths.
While you rebuild your endpoint, deactivate the webhook instead of deleting it and activate it again afterwards.
-
POST
/v1.0/directories/{directoryId}/webhooks/{webhookId}/deactivate -
POST
/v1.0/directories/{directoryId}/webhooks/{webhookId}/activate
For setting up webhooks in the Sally app without code, see the webhook integration guide.