After each instant outbound call attempt completes (connected or not), the system sends a POST request to the webhook URL you provided in webhook_config when creating the call. Use this to track call outcomes, sync agent-extracted data to your systems, and trigger downstream workflows.

Payload schema

attempt_id
string
required
Unique identifier for this call attempt. Matches the attempt_id returned in the Create Instant Outbound Call response.
status
string
required
Outcome of the call attempt. One of:
channel_info
object
required
Information about the telephony channel used for the call.
duration
number | null
Call duration in seconds. null if the call did not connect.
interaction_id
string | null
Unique interaction ID for retrieving transcripts and recordings via the Analytics API. null if the call did not connect.
failure_reason
string | null
Human-readable reason for failure. Typically prefixed with the provider name (e.g. "exotel: Phone number is registered under TRAI NDNC"). null on successful or unanswered calls.
final_agent_variables
object | null
Agent variables at the end of the conversation, containing any data extracted or updated during the call. null if the call did not connect.
webhook_config
object | null
The webhook configuration that was passed when creating the call, echoed back for correlation.
interaction_transcript
array | null
Transcript of the conversation as a list of turns. null if the call did not connect.

Examples

Connected call

No answer

Provider failure

The webhook_config object is echoed back in every payload. If you passed custom metadata when creating the call, it will appear here — useful for correlating webhooks with your internal records.