Call Lifecycle
Every call progresses through a specific lifecycle. At each stage, an event is fired.Lifecycle Events
These events track the normal progression of a successful call.| Event | Description |
|---|---|
call.initiate | The call has been queued and is being dialed. |
call.in-progress | The recipient picked up; the AI conversation has started. |
call.ended | The phone connection has dropped. |
call.completed | Call data (recording, transcript, duration) has been processed. |
call.timeout | The call exceeded the maximum allowed duration. |
end-of-call | AI analysis is complete — summary, success evaluation, and structured data are available. |
call.lifecycle-ended | All processing is finished. This is the final event for this call. |
Failure & Retry Events
If a call cannot be established, one of these events will fire. The system may automatically retry based on your campaign settings.| Event | Description |
|---|---|
call.failed | The call could not be connected (general failure). |
call.busy | The recipient’s line was busy. |
call.no-answer | The recipient did not pick up. |
call.validation-failed | Pre-call validation failed (e.g., invalid number). |
call.skip | The call was skipped (e.g., DND number). |
Other Events
| Event | Description |
|---|---|
call.rescheduled | A callback has been scheduled for a later time (lifecycle continues to the next attempt). |
call.aborted | The call was manually cancelled via the abort API. |
After all retry attempts are exhausted,
call.lifecycle-ended is sent to signal that no further attempts will be made for this specific call task.Webhook Payload Structure
Every webhook event shares a common envelope structure.Key Fields
metadata: The custom JSON object you passed when initiating the call. This is passed back in every event, allowing you to link calls to your internal records (e.g.,userId,orderId).event.type: The specific event name (e.g.,call.in-progress,end-of-call).event.data: The payload specific to the event.
Special Payloads
Some events contain additional data inevent.data.
end-of-call
Contains the AI analysis, summary, and credit usage.
call.lifecycle-ended
Contains a report of all attempts.
Actions
Actions are special events triggered by the AI during the conversation when a specific task needs to be performed on your end, such as creating an order or sending a message.create_order
Fires when the AI determines the customer wants to place an order and has provided all necessary details.
send_whatsapp
Fires when the AI cannot complete a task (like creating an order) due to missing info, and triggers a fallback message via WhatsApp.
| Reason | Meaning |
|---|---|
missing_address | Customer’s shipping address is incomplete. |
missing_first_name | Customer’s name could not be determined. |
invalid_cart_data | Cart data is malformed or missing. |