Skip to content
Calls · Object

The CallAttempt object

One dial of a call's phone number, with what answered, the transcript, the recording and the extracted data. A call makes one or more attempts.

Fields

  • idstring

    The ID of the call attempt.

    Example "c41f9a2e-7d3b-4e85-a6f0-1b2c3d4e5f60"

  • phone_numberstring

    The phone number that was called, in E.164 format.

    Example "+33612345678"

  • statusenum (5 values)

    Where the attempt stands.

    "queued"

    Created: the phone is not ringing yet.

    "ringing"

    Dialed: the phone is ringing.

    "ongoing"

    Answered: the conversation is in progress.

    "completed"

    Final. The line connected and the attempt ended: see result, ended_by and end_reason.

    "error"

    Final. The attempt could not connect: see dial_error.

  • dial_errorenum (10 values)nullable

    Why the call could not be connected, from the carrier's SIP response (e.g. busy, no_answer, number_non_attributed for a number that does not exist). Null when the call connected or no SIP error was reported.

    "number_non_attributed"

    The number does not exist or is not assigned (SIP 404). The call ends as errored, without retry.

    "too_many_calls"

    The carrier refused the call: too many calls (SIP 429).

    "busy"

    The line was busy (SIP 486).

    "temporarily_unavailable"

    The phone could not be reached, e.g. switched off or out of coverage (SIP 480).

    "no_answer"

    Nobody answered before the ringing timed out.

    "rejected"

    The call was declined, by the person or by an anti-spam filter of their carrier (SIP 603).

    "blocked"

    The carrier blocked the call ('Network Blocked').

    "no_international_permission"

    The destination cannot be called from the caller number (SIP 403). The call ends as errored.

    "precondition_failed"

    The carrier refused the call setup (SIP 412).

    "non_classified_error"

    Another error, not classified.

  • resultenum (5 values)nullable

    What answered the call. Null until the call was analysed, and when nobody answered.

    "IVR"

    An automated phone menu answered (e.g. 'press 1 for sales').

    "voicemail"

    A voicemail or an answering machine answered.

    "human"

    A person answered.

    "unknown"

    Silence, or audio that could not be classified.

    "screening-filter"

    A call screening assistant (Apple or Google) answered for the person and asked who is calling and why.

  • recording_urlstringnullable

    URL of the audio recording of the attempt (a WAV file). Null until the recording is ready, and when there is none.

    Example "https://recordings.example.com/7c9e6679-7425-40de-944b-e07fc1f90ae7.wav"

  • started_atstring (date-time)nullable

    When the attempt was dialed. Null until it is.

    Example "2026-11-09T08:30:02Z"

  • answered_atstring (date-time)nullable

    When the call was picked up. Null when it was not.

    Example "2026-11-09T08:30:09Z"

  • ended_atstring (date-time)nullable

    When the attempt ended. Null until it does.

    Example "2026-11-09T08:31:47Z"

  • transcriptarray of objectoptionalnullable

    The live transcript of the call, built as the conversation goes. Null or empty when nobody talked.

  • post_call_transcriptarray of objectoptionalnullable

    A more accurate transcript, made from the recording after the call. Null until it is ready, and when there is no recording.

  • structured_outputobject<string, any JSON value>optionalnullable

    The data extracted from this attempt's conversation, one entry per field of the assistant's structured_output_config. Null until extracted, and when the assistant extracts nothing.

    Keys: Name of a field of the assistant's structured_output_config.

  • assistants_usedarray of stringoptionalnullable

    IDs of the assistants the attempt went through, in order: several for a multi-step flow.

  • assistant_namesobject<string, string>optional

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

    Keys: ID of an assistant of assistants_used.

  • ended_by"agent" | "user" | "system"optionalnullable

    Who ended the call. Null when the call was never picked up.

    "agent"

    The AI agent hung up (see end_reason).

    "user"

    The other party hung up, or the line dropped on their side.

    "system"

    Revox ended the call, e.g. at a time limit.

  • end_reasonenum (17 values)optionalnullable

    Why the call ended, along with ended_by. Null when not reported.

    "client_initiated"

    The other party hung up.

    "connection_timeout"

    The phone connection timed out.

    "human_takeover"

    A person from your team had taken over the call, and the call ended.

    "ivr_no_navigate"

    A phone menu answered and the agent hung up: it was not set to navigate menus (ivr_navigation_enabled).

    "max_duration"

    The call reached the assistant's max_call_duration_secs: the agent said max_duration_end_message, if set, and hung up.

    "participant_removed"

    The phone line was removed from the call by the server.

    "sip_trunk_failure"

    The phone carrier's line failed during the call.

    "tool_end_call"

    The agent decided the conversation was over and hung up.

    "transfer"

    The call was transferred to one of transfer_destinations.

    "user_inactive"

    The agent hung up because the other party stopped responding.

    "user_rejected"

    The other party declined the call.

    "user_unavailable"

    The other party could not be reached.

    "voicemail"

    A voicemail answered: the agent hung up, after leaving voicemail_message when one is set.

    "speed_dial_abandoned"

    Speed dial session: another contact answered first, so this answered call was hung up.

    "speed_dial_operator_missed"

    Speed dial session: a person answered, but the operator did not join in time.

    "speed_dial_timeout"

    Speed dial session: the call hit its time limit before an operator was connected.

    "speed_dial_hangup"

    Speed dial session: the person hung up before being put through to the operator.

  • transferred_tostringoptionalnullable

    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.

    Example null

  • handled_by_humanboolean

    Whether a person from your team took part in this attempt: they joined the call live from the dashboard, or the call was transferred to them.

  • handled_by_aiboolean

    Whether the AI agent conducted the conversation on this attempt. False for attempts that were never answered, and for speed dial calls, where the agent only listens for a person before handing over.

  • handled_by_userobjectnullable

    The person from your team who took over this attempt live from the dashboard. Null when nobody did, and for takeovers recorded before this was tracked.

  • sms_logarray of objectoptionalnullable

    Every SMS sent in connection with the call (by the agent during the call, after a voicemail, after the call), oldest first.

  • actionsarray of objectoptionalnullable

    Tools the agent ran for this attempt, in call and after it, ordered oldest first. This is the decision trail; what was delivered is in sms_log and email_log.

  • email_logarray of objectoptionalnullable

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