Object
CallAttempt
This represent a single call attempt. A call attempt is a single call made to the phone number.
Fields
idstringrequiredThe ID of the call attempt.
phone_numberstringrequiredThe phone number that was called. Formatted in E.164 format. Example: +1234567890
statusenum (string)requiredThe status of the call attempt.
One of
queuedringingongoingcompletederrordial_errorenum (string)requirednullableThe SIP error that occurred.
One of
number_non_attributedtoo_many_callsbusytemporarily_unavailableno_answerrejectedblockedno_international_permissionprecondition_failednon_classified_errorresultenum (string)requirednullableOne of
IVRvoicemailhumanunknownscreening-filterrecording_urlstringrequirednullableThe URL of the audio recording of the call.
started_atanyrequiredThe time the call started.
answered_atanyrequiredThe time the call was answered.
ended_atanyrequiredThe time the call ended.
transcriptarray of objectnullableThe live transcript of the call, built in real time.
Show 6 fieldsHide 6 fields
roleenum (string)requiredOne of
userassistanthuman_agenttoolcontentstringrequiredtool_namestringtool_argumentsone ofShow 2 variantsHide 2 variants
One ofOption 1map of any
One ofstringstring
tool_outputstringtool_is_errorboolean
post_call_transcriptarray of objectnullableHigher-quality transcript generated after the call via Soniox async STT. Null until generated or when no recording is available.
Show 6 fieldsHide 6 fields
roleenum (string)requiredOne of
userassistanthuman_agenttoolcontentstringrequiredtool_namestringtool_argumentsone ofShow 2 variantsHide 2 variants
One ofOption 1map of any
One ofstringstring
tool_outputstringtool_is_errorboolean
structured_outputmap of anynullableThe data extracted from the call, using the structured output config from the parent call object.
assistants_usedarray of stringnullableAssistant node ids entered during this attempt, in traversal order.
assistant_namesmap of stringNames 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)nullableWho ended the call: 'agent' (AI agent), 'user' (caller/callee hung up), or 'system' (e.g. max duration limit).
One of
agentusersystemend_reasonenum (string)nullableReason for ending the call when ended_by is 'agent'. E.g. 'tool_end_call', 'voicemail', 'transfer', 'ivr_no_navigate'.
One of
client_initiatedconnection_timeouthuman_takeoverivr_no_navigatemax_durationparticipant_removedsip_trunk_failuretool_end_calltransferuser_inactiveuser_rejecteduser_unavailablevoicemailspeed_dial_abandonedspeed_dial_operator_missedspeed_dial_timeoutspeed_dial_hanguptransferred_tostringnullableThe 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_humanbooleanrequiredWhether a human conducted (part of) this attempt — a jump-in / speed-dial takeover, or a transfer to a rep.
handled_by_aibooleanrequiredWhether 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_userobjectrequirednullableThe 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 fieldsHide 4 fields
idstringrequiredThe database user id of the assignee.
emailstringrequiredfirst_namestringrequirednullablelast_namestringrequirednullable
sms_logarray of objectnullableAutomatic SMS sent after the call (voicemail and after-call), ordered oldest first. The in-call
send_smsis excluded — it already appears in the transcript as a tool call.Show 9 fieldsHide 9 fields
idstringrequiredtypeenum (string)requiredOne of
in_callvoicemailafter_callto_phone_numberstringrequiredmessage_bodystringrequiredproviderenum (string)requiredOne of
twiliovonageprovider_message_idstringrequirednullableprovider_statusstringrequirednullableDelivery 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_codestringrequirednullableThe provider's numeric reason for a terminal failure (e.g. Twilio 30034). Null unless the message failed.
created_atanyrequiredWhen the SMS was sent.
actionsarray of objectnullableTools 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 fieldsHide 7 fields
idstringrequiredphaseenum (string)requiredOne of
in_callpost_calltool_namestringrequiredargumentsmap of anyrequiredstatusenum (string)requiredOne of
succeededfailederrorstringrequirednullablecreated_atanyrequiredWhen the tool ran.
email_logarray of objectnullableNotification emails sent in connection with the call, ordered oldest first (from/to addresses, subject, sent time).
Show 7 fieldsHide 7 fields
idstringrequiredfrom_addressstringrequiredto_emailsarray of stringrequiredsubjectstringrequiredresend_message_idstringrequirednullablecalendar_invite_atanyrequirednullableStart of the callback or meeting the attached calendar invitation (
invite.ics) was for. Null when the email carried no invitation.created_atanyrequiredWhen the email was sent.
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.