Skip to content

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

  1. Open Webhooks in your dashboard and press Add a webhook.
  2. Paste the address (it must start with https:// and be reachable from the internet), and tick what it should hear about.
  3. 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.
  4. Press Send a test. Your address gets a webhook.test event, 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" }
}
HeaderWhat it holds
Webhook-Signaturet=<unix seconds>,v1=<signature>. See Check the signature.
Webhook-IdThe same as id in the body. It stays the same on every try, so you can ignore one you've already handled.
Webhook-EventThe 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 business5
We wait for an answer5 seconds
Tries for one event6
Failures in a row before it's stopped20
How long what we sent is kept30 days

Read Events for what each one carries.