webhooks:read. Creating and
changing needs webhooks:manage.
Register an endpoint
The answer is 201 and holds the signing
secret once. Store it now.
granted_scopes come from the key that made the endpoint. An endpoint hears an event only when its scopes allow the
event. A console session grants all scopes.
Manage endpoints
Event names
An endpoint can hear the events that ImpelLabs sends for a workspace, with two names changed for you:conversation.created (a conversation starts) and conversation.completed (a conversation closes). Use these names in
enabled_events.
The events with an object in the shape of the Partner API are:
Other events of the workspace carry their plain data in
data.object. The workspace event types page
describes them. See WhatsApp events for examples.
The request
ImpelLabs sends aPOST with a JSON body.
tenant is the workspace id and tenant_ref is your external_ref. Version 2026-01-01 has no tenant_ref and no
partner. The id is the same for the same event, so use it to drop a repeat.
Headers:
Check the signature
Sign the text{webhook-id}.{webhook-timestamp}.{body} with HMAC-SHA256. The key is the base64 decoding of the secret
without the whsec_ prefix. Compare the base64 result with the v1, value of webhook-signature.
Answers and retries
Answer with a status from 200 to 299 within 10 seconds. Any other answer fails the delivery. ImpelLabs repeats a delivery when your address answers 5xx, 408 or 429, or does not answer. The waits are 1 minute, 5 minutes, 30 minutes and 2 hours. A 4xx answer, other than 408 and 429, is not repeated. After 15 failed deliveries in a row, the endpoint switches itself off withstatus disabled. Change it back with PATCH and status active after you fix the address.