Create a webhook endpoint
Register a destination. An endpoint created here is identical to one created in Connectors → Webhooks, including flipping the connector card to connected.
Credential: API token · Role: owner or admin (manage_team)
Warning
eventsis required. Omitting it is a400naming the field — not a subscription to everything. Pass["*"]if you genuinely want every event, including ones added later.handoff.*payloads carry real customer message text, so subscribing a new URL to them because a field was left blank is not a convenience.
channels is optional and defaults to every channel, precisely because a channel filter can only ever narrow an event selection. The four billing.* events have no channel, so a channel filter never hides them.
Warning
The signing secret is returned by this response only (and by rotate-secret). It is never on a list, a GET or a PATCH, and there is no way to recover it later — store it now.
Authorizations
An API token (pv_ut_…) as Authorization: Bearer pv_ut_…. X-Peeve-Key is accepted too. Never a query parameter — URLs end up in proxy logs and Referer headers.
The token carries its owner's live workspace role, re-read on every call.
Body
HTTPS only. Private, loopback, link-local and .internal destinations are refused.
2048Required. [] is refused; ["*"] means everything.
1session.started, session.resolved, handoff.created, handoff.message.created, handoff.status.changed, lead.created, lead.status.changed, meeting.booked, meeting.status.changed, billing.payment_failed, billing.subscription.changed, billing.credits_low, billing.credits_expiring, * 80Optional. Omit or null for every channel.
human, agent, whatsapp, messenger, instagram, email false creates it paused.