Webhooks
[object Object]
A webhook is an address of yours that hears about things as they happen: a new message from a form, someone joining your email list, a booking, a paid order. Use it to put them in a spreadsheet, a chat channel, a CRM or a tool like Zapier or Make, without anyone typing them in again.
Webhooks come with the Business plan. Owners make them in Dashboard › Webhooks, up to 5 for each business.
Make one
- Open Webhooks in your dashboard and press Add a webhook.
- Paste the address (it must start with
https://and be reachable from the internet), and tick what it should hear about. - Copy the signing secret it shows. It's shown once, and we only keep it sealed, so save it where your receiving tool can read it.
- Press Send a test. Your address gets a
webhook.testevent, and the page says what it answered.
What a request looks like
Every request is a POST with a JSON body that describes one event:
{
"id": "6f1c2c54-2b8e-4a3c-9a39-5d0e0c5b2a11",
"type": "lead.created",
"created": "2026-11-02T14:05:00.000Z",
"business": { "id": "ckx1...", "name": "Clay Co" },
"data": { "...": "the event's own fields" }
}
| Header | What it holds |
|---|---|
Webhook-Signature | t=<unix seconds>,v1=<signature>. See Check the signature. |
Webhook-Id | The same as id in the body. It stays the same on every try, so you can ignore one you've already handled. |
Webhook-Event | The same as type in the body. |
Answer with any 2xx status as soon as you've received it, and do the real work afterward. Anything else, a redirect included, counts as a failure. We don't follow redirects.
If your address is down
We try again at growing gaps (1 minute, 5 minutes, 30 minutes, 2 hours, then 6 hours), and give up on an event after 6 tries. After 20 failures in a row, across events, we stop sending to that address and email the business's owners. Nothing is sent while it's stopped, and events from that time aren't sent later. Turn it back on in Webhooks once it's working.
A request can arrive more than once, for example when your address answered after we stopped waiting (5 seconds). Use Webhook-Id to ignore a repeat.
What we keep
We keep what we sent for 30 days, so you can see Recent deliveries, and then delete it. Each one holds people's names and contact details, so it's sent only where an owner chose to send it.
Limits
| Webhooks for one business | 5 |
| We wait for an answer | 5 seconds |
| Tries for one event | 6 |
| Failures in a row before it's stopped | 20 |
| How long what we sent is kept | 30 days |
Read Events for what each one carries.