Browse the API reference

Object

CallAttempt

View as Markdown

This represent a single call attempt. A call attempt is a single call made to the phone number.

Fields

  • idstringrequired

    The ID of the call attempt.

  • phone_numberstringrequired

    The phone number that was called. Formatted in E.164 format. Example: +1234567890

  • statusenum (string)required

    The status of the call attempt.

    One ofqueuedringingongoingcompletederror

  • dial_errorenum (string)requirednullable

    The SIP error that occurred.

    One ofnumber_non_attributedtoo_many_callsbusytemporarily_unavailableno_answerrejectedblockedno_international_permissionprecondition_failednon_classified_error

  • resultenum (string)requirednullable

    One ofIVRvoicemailhumanunknownscreening-filter

  • recording_urlstringrequirednullable

    The URL of the audio recording of the call.

  • started_atanyrequired

    The time the call started.

  • answered_atanyrequired

    The time the call was answered.

  • ended_atanyrequired

    The time the call ended.

  • transcriptarray of objectnullable

    The live transcript of the call, built in real time.

    Show 6 fields
    • roleenum (string)required

      One ofuserassistanthuman_agenttool

    • contentstringrequired
    • tool_namestring
    • tool_argumentsone of
      Show 2 variants
      1. One ofOption 1map of any

      2. One ofstringstring

    • tool_outputstring
    • tool_is_errorboolean
  • post_call_transcriptarray of objectnullable

    Higher-quality transcript generated after the call via Soniox async STT. Null until generated or when no recording is available.

    Show 6 fields
    • roleenum (string)required

      One ofuserassistanthuman_agenttool

    • contentstringrequired
    • tool_namestring
    • tool_argumentsone of
      Show 2 variants
      1. One ofOption 1map of any

      2. One ofstringstring

    • tool_outputstring
    • tool_is_errorboolean
  • structured_outputmap of anynullable

    The data extracted from the call, using the structured output config from the parent call object.

  • assistants_usedarray of stringnullable

    Assistant node ids entered during this attempt, in traversal order.

  • assistant_namesmap of string

    Names of the assistants in assistants_used, keyed by id. Only set when the attempt went through several assistants (a multi-step call).

  • ended_byenum (string)nullable

    Who ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'system' (e.g. max duration limit).

    One ofagentusersystem

  • end_reasonenum (string)nullable

    Reason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voicemail', 'transfer', 'ivr_no_navigate'.

    One ofclient_initiatedconnection_timeouthuman_takeoverivr_no_navigatemax_durationparticipant_removedsip_trunk_failuretool_end_calltransferuser_inactiveuser_rejecteduser_unavailablevoicemailspeed_dial_abandonedspeed_dial_operator_missedspeed_dial_timeoutspeed_dial_hangup

  • transferred_tostringnullable

    The number the call was transferred to, in E.164 format (e.g. +33123456789). Recorded by the agent from the destination it actually dialled, so it is the destination itself and not a name read off the transcript. Null when the call was not transferred, and on transfers placed before this was tracked.

  • handled_by_humanbooleanrequired

    Whether a human conducted (part of) this attempt — a jump-in / speed-dial takeover, or a transfer to a rep.

  • handled_by_aibooleanrequired

    Whether the AI agent conducted the conversation on this attempt. False for a silent speed-dial probe (whose agent only detects a human) and for attempts that were never answered.

  • handled_by_userobjectrequirednullable

    The human operator (sales rep) who took over this attempt — jump-in takeover or speed-dial operator connection. Null for AI-only attempts and for takeovers recorded before this was tracked (fall back to a generic 'human' label).

    Show 4 fields
    • idstringrequired

      The database user id of the assignee.

    • emailstringrequired
    • first_namestringrequirednullable
    • last_namestringrequirednullable
  • sms_logarray of objectnullable

    Automatic SMS sent after the call (voicemail and after-call), ordered oldest first. The in-call send_sms is excluded — it already appears in the transcript as a tool call.

    Show 9 fields
    • idstringrequired
    • typeenum (string)required

      One ofin_callvoicemailafter_call

    • to_phone_numberstringrequired
    • message_bodystringrequired
    • providerenum (string)required

      One oftwiliovonage

    • provider_message_idstringrequirednullable
    • provider_statusstringrequirednullable

      Delivery status in the provider's own vocabulary (Twilio queued/sent/delivered/failed/undelivered), so only interpretable alongside provider. Null when the provider hasn't reported one — always the case for Vonage, whose receipts we don't yet parse.

    • provider_error_codestringrequirednullable

      The provider's numeric reason for a terminal failure (e.g. Twilio 30034). Null unless the message failed.

    • created_atanyrequired

      When the SMS was sent.

  • actionsarray of objectnullable

    Tools the agent ran for this attempt, in call and after it, ordered oldest first. This is the decision trail — the delivery trail lives in sms_log / email_log.

    Show 7 fields
    • idstringrequired
    • phaseenum (string)required

      One ofin_callpost_call

    • tool_namestringrequired
    • argumentsmap of anyrequired
    • statusenum (string)required

      One ofsucceededfailed

    • errorstringrequirednullable
    • created_atanyrequired

      When the tool ran.

  • email_logarray of objectnullable

    Notification emails sent in connection with the call, ordered oldest first (from/to addresses, subject, sent time).

    Show 7 fields
    • idstringrequired
    • from_addressstringrequired
    • to_emailsarray of stringrequired
    • subjectstringrequired
    • resend_message_idstringrequirednullable
    • calendar_invite_atanyrequirednullable

      Start of the callback or meeting the attached calendar invitation (invite.ics) was for. Null when the email carried no invitation.

    • created_atanyrequired

      When the email was sent.

  • speech_eventsarray of CallSpeechEventnullable

    Per-turn speech segments (VAD-derived) with timing and pipeline latencies, ordered by started_speaking_at_ms. Empty for calls recorded before this was tracked or for realtime sessions that don't emit them.