Skip to main content

Introduction

Every Bolna Voice AI conversation carries two key fields throughout its lifecycle:
FieldPurpose
statusReal-time status of the conversation
error_messageExplanatory message for errors or failed calls

Anatomy of a Call

The following diagram shows how a call progresses from initiation to completion:
completed is the final status of every conversation, indicating all post-call processing (recordings, data extraction) is finished.

Call Status Reference

These statuses appear in chronological order during a normal call flow:
StatusDescription
queuedCall received by Bolna and queued for processing
rescheduledCall triggered outside allowed hours and automatically rescheduled (requires call guardrails configuration)
initiatedCall initiated from Bolna’s servers
ringingCall is ringing at the destination
in-progressCall answered and conversation is active
call-disconnectedCall has been disconnected
completedAll post-call processing finished (recordings, data extraction; may take ~2-3 minutes after disconnect)
The payloads for all status events follow the same structure as the Get Execution API response.

Example Payload

{
  "id": 7432382142914,
  "agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "batch_id": "d12abbbe-d16d-4c51-b18c-c7d5c3807962",
  "conversation_time": 123,
  "total_cost": 123,
  "status": "completed",
  "error_message": null,
  "answered_by_voice_mail": true,
  "transcript": "<string>",
  "created_at": "2024-01-23T01:14:37Z",
  "updated_at": "2024-01-29T18:31:22Z",
  "usage_breakdown": {
    "synthesizer_characters": 123,
    "synthesizer_model": "polly",
    "transcriber_duration": 123,
    "transcriber_model": "deepgram",
    "llm_tokens": 123,
    "llm_model": {
      "gpt-3.5-turbo-16k": {
        "output": 28,
        "input": 1826
      },
      "gpt-3.5-standard-8k": {
        "output": 20,
        "input": 1234
      }
    }
  },
  "telephony_data": {
    "duration": 42,
    "to_number": "+10123456789",
    "from_number": "+1987654007",
    "recording_url": "https://bolna-call-recordings.s3.us-east-1.amazonaws.com/...",
    "hosted_telephony": true,
    "provider_call_id": "CA42fb13614bfcfeccd94cf33befe14s2f",
    "call_type": "outbound",
    "provider": "twilio",
    "ring_duration": 17,
    "post_dial_delay": 1,
    "to_number_carrier": "Reliance Jio Infocomm Ltd (RJIL)"
  },
  "transfer_call_data": {
    "provider_call_id": "CA42fb13614bfcfeccd94cf33befe14s2f",
    "status": "completed",
    "duration": 42,
    "cost": 123,
    "to_number": "+10123456789",
    "from_number": "+1987654007",
    "recording_url": "https://bolna-call-recordings.s3.us-east-1.amazonaws.com/...",
    "hangup_by": "Caller",
    "hangup_reason": "Normal Hangup"
  },
  "batch_run_details": {
    "status": "completed",
    "created_at": "2024-01-23T01:14:37Z",
    "updated_at": "2024-01-29T18:31:22Z",
    "retried": 0
  },
  "extracted_data": {
    "user_interested": true,
    "callback_user": false,
    "address": "42 world lane",
    "salary_expected": "42 bitcoins"
  },
  "context_details": {},
  "extraction_webhook_status": true
}

Hangup Status Codes

Understand who ended the call and why

Call Latency Metrics

Analyze performance across the voice pipeline

Get Execution API

Retrieve full execution details programmatically