TelefonAIv1
Getting started

Webhooks

Let us call you instead of polling every minute.

Instead of polling, let us call you. Add a receiver under Settings → API or with POST /v1/webhooks, and pick the events you want. Try it with POST /v1/webhooks/:id/test before waiting for a real call.

Delivery

Deliveries are queued and retried with a growing pause. The same event is never sent twice — not even when the telephony provider reports a call as ended more than once.

If a delivery was given up while your server was down, find it in GET /v1/webhooks/:id/deliveries and send it again with POST /v1/webhooks/:id/redeliver — with the same id, so your own deduplication recognises it.

The envelope

Every delivery has the same outer shape. id is the delivery id and stays the same on a retry and a redelivery — use it to reject duplicates. created is seconds since 1970, set when the event happened, not when it was sent. The content is in data and depends on the event.

JSON
{
  "id": "7d2c4f1a-…",
  "event": "booking.created",
  "created": 1758096131,
  "data": { }
}

The events

Every event a receiver can subscribe to. New fields may be added; existing ones are not renamed.

CallsBookingsContactsOther
call.completedbooking.createdcontact.createdtask.created
call.missedbooking.rescheduledcontact.updatedsms.received
booking.cancelledcontact.deletedsms.failed
booking.completedcontact.recall_duesms.opted_out
booking.no_show
booking.reminder_due

The full description of each event — and what data holds — is under the webhook endpoints in the reference.