Webhook Configuration
To enable conversation ended webhooks:- Use the Enable Conversation Ended Webhook API endpoint
- Provide your webhook URL where notifications will be sent
- Optionally configure post-call variables on your assistant to extract structured data from conversations
Request Format
The webhook is sent as a POST request to your configured URL with the following JSON payload:Payload Structure
Numeric identifier of the conversation (the same id shown in the dashboard conversation URL). Use
conversation_id (UUID) when calling the API.Variables that were passed to the assistant at the start of the conversation (e.g., from pre-chat form fields or automation flows)
Media files (images, videos, documents) shared during the conversation. Each entry includes a direct URL you can pass to external services (for example, image or video analysis). This is an empty array when no media was shared — media is typically present on WhatsApp conversations.
Retry Behavior
If your webhook endpoint returns a non-2xx status code or the request fails, the system will retry:
After 3 failed attempts, the webhook delivery is marked as failed and no further retries are attempted.
Important Notes
- The
conversation_idandassistant_idare UUIDs, not integer IDs - The
senderfield is only populated for WhatsApp conversations — it will benullfor web widget conversations - The
customer_phoneis only available for WhatsApp conversations - The
customer_namecomes from pre-chat form data or conversation context - Timestamps use the user’s configured timezone (ISO 8601 format)
- The
extracted_variablesare populated from your assistant’s post-call schema evaluation - The
input_variablescontain data from pre-chat forms (web widget) or automation flows - The
attachmentsarray lists media (images, videos, documents) shared during the conversation, each with a downloadableurl— useful for forwarding to external analysis tools. It is an empty array when no media was shared (most common on web widget conversations)

