After each call attempt completes, the system sends a POST request to your webhook URL with the attempt result. Configure the webhook URL in the campaign’s app_config.webhook_config.

Payload schema

app_id
string
required
ID of the agent or workflow app
app_version
integer
required
Version of the app
attempt_id
string
required
Unique identifier for this call attempt
campaign_id
string
required
Campaign this attempt belongs to
cohort_id
string
required
Cohort this attempt belongs to
connectivity_status
string
required
Whether the call connected. One of: connected, busy, no_answer, failed
completion_status
string
required
Outcome of the call. One of: completed, partial, failed
next_action_status
string | null
Next action for the retry engine (retry, reschedule), or null if terminal
failure_reason
string | null
Reason for failure, if applicable
user_identifier
string | null
Unique identifier for the user (from cohort transformation config)
user_phone_number
string
required
Phone number of the user in E.164 format
agent_phone_number
string
required
Phone number used by the agent for the call
duration
number | null
Call duration in seconds, or null if the call did not connect
interaction_id
string | null
Unique interaction ID for retrieving transcripts and recordings, or null if the call did not connect
retry_attempt
integer
required
Which attempt this is (1 = first attempt, 2 = first retry, etc.)
executed_at
string
required
Timestamp when the call was executed (ISO 8601)
initial_agent_variables
object | null
Agent variables passed to the call from the cohort
final_agent_variables
object | null
Agent variables at the end of the conversation, or null if the call did not connect
metadata
object | null
Custom metadata from the webhook configuration

Examples

Connected attempt

{
  "app_id": "my-agent-app",
  "app_version": 1,
  "attempt_id": "019d392a-4f5a-7db3-904a-6ecebb9aac96",
  "campaign_id": "welcome-campaign-2026",
  "cohort_id": "cohort-batch-01",
  "connectivity_status": "connected",
  "completion_status": "completed",
  "next_action_status": null,
  "failure_reason": null,
  "user_identifier": "user-1001",
  "user_phone_number": "+919876543210",
  "agent_phone_number": "+91804XXXXXXX",
  "duration": 45.2,
  "interaction_id": "20260329/a1b2c3d4-10:30:00-e5f6a7b8",
  "final_agent_variables": {
    "payment_confirmed": "yes",
    "amount": "1500"
  },
  "retry_attempt": 1,
  "executed_at": "2026-03-29T10:30:45.123456Z",
  "initial_agent_variables": {
    "customer_name": "Rahul Kumar",
    "outstanding_amount": "1500",
    "due_date": "2026-04-01"
  },
  "metadata": null
}

Not connected attempt

{
  "app_id": "my-agent-app",
  "app_version": 1,
  "attempt_id": "019d392a-11c6-72bd-8eb7-c37e84bbd1f3",
  "campaign_id": "welcome-campaign-2026",
  "cohort_id": "cohort-batch-01",
  "connectivity_status": "failed",
  "completion_status": "failed",
  "next_action_status": "retry",
  "failure_reason": "number_unreachable",
  "user_identifier": "user-1002",
  "user_phone_number": "+919876543211",
  "agent_phone_number": "+91804XXXXXXX",
  "duration": null,
  "interaction_id": null,
  "final_agent_variables": null,
  "retry_attempt": 1,
  "executed_at": "2026-03-29T10:40:26.426940Z",
  "initial_agent_variables": {
    "customer_name": "Priya Sharma",
    "outstanding_amount": "2500",
    "due_date": "2026-04-01"
  },
  "metadata": null
}