Skip to content
Calls · Object

The Call object

One order to call one phone number with an assistant. Revox dials it inside the calling windows and calls back when nobody answers: each dial is an attempt, and a call can take several days of attempts.

Fields

  • idstring

    The ID of the call.

    Example "8d2f6b1a-4c9e-4f37-b215-6a0e9c3d7f12"

  • organization_idstring

    The ID of the organization that owns the call.

  • from_phone_numberstring

    The phone number that made the call (the caller ID of an outbound call), in E.164 format.

    Example "+33199001234"

  • to_phone_numberstring

    The phone number that received the call (the person called, for an outbound call), in E.164 format.

    Example "+33612345678"

  • direction"inbound" | "outbound"

    Whether Revox placed the call or received it.

    "inbound"

    Someone called one of your numbers and an assistant answered.

    "outbound"

    Revox called the number: from POST /call, a campaign or the dashboard.

  • channel"phone" | "web"

    Where the call takes place.

    "phone"

    A phone call.

    "web"

    A test call taken in the browser, from the dashboard: its phone number is a placeholder, never dialed.

  • statusenum (10 values)

    Where the call stands. Final statuses, after which nothing changes: completed, cancelled, errored.

    "initializing"

    Being created, not scheduled yet. Newer calls start as scheduled instead.

    "queued_for_calling"

    Its turn came: the attempt is about to dial, within your concurrent call limit.

    "calling"

    An attempt is in progress: the phone is ringing or a conversation is going on.

    "post_processing"

    The phone conversation is over; the transcript, outcome and extracted data are being computed. It can no longer be paused or cancelled.

    "not_launched"

    Created but never sent: a campaign call waiting for POST /campaigns/{id}/launch-calls. It is not dialed until then.

    "scheduled"

    Waiting to be dialed at scheduled_at (the first attempt, a retry or a requested callback). A call due outside its calling windows waits for the next one.

    "paused"

    No new attempt is made until it is resumed (POST /call/{id}/resume, or resuming its campaign).

    "completed"

    Final. Revox will not dial it again: a person or a phone menu answered, or the last attempt allowed by call_retry_config was made. outcome and last_call_attempt tell how it went.

    "cancelled"

    Final. Cancelled before it completed: by a user (POST /call/{id}/cancel, the dashboard, a campaign cancel), or because the prospect called back (see cancel_reason).

    "errored"

    Final. The call could not be placed and will not be retried: the number does not exist, the destination cannot be called, the organization ran out of credits, or an internal error stopped it.

  • cancel_reason"prospect_called_back"optionalnullable

    Why the call was cancelled, when it can be told. Null for a cancel by a user or a campaign, and for calls that are not cancelled.

    "prospect_called_back"

    The prospect called back before the next retry: the pending retry was cancelled, and their call is recorded as a separate inbound call.

  • retries_stoppedboolean

    Whether no further attempt will be made for this call: it was cancelled, or its future attempts were stopped while an attempt was already in progress (that attempt still finishes). Unlike is_cancelled, this is true as soon as retries are stopped, before the call reaches a terminal status.

    Default false

  • callback_fromobjectoptionalnullable

    For an inbound call only: the outbound call this one answers, when the prospect rang us back after we called them. Null for every other call. A callback is matched on the caller's number against outbound calls dialed within the last 2 days on a shared Revox number, or within the last 30 days on a number dedicated to your organization (only your own calls are matched there), counted from the last attempt. A matched callback carries the outbound call's metadata over, cancels its pending retries, and is answered by the outbound call's assistant when the prospect dials back the number we called from (or when the number they dial has no inbound assistant), otherwise by that number's inbound assistant. Its end-of-call webhook goes to the webhook_url of the assistant that answers.

  • calls_countnumber

    The number of call attempts made.

    Example 1

  • last_call_attemptCallAttemptnullable

    The most recent attempt, the same as the first entry of call_attempts. Null until a first attempt is made.

  • call_retry_configCallRetryConfignullable

    Retry configuration this call follows: calling windows, allowed days, delay between attempts and maximum attempts. Copied when the call is created from the assistant's, or the campaign's for a campaign call, with the per-call overrides of POST /call (timezone, call_twice_in_a_row) applied.

  • llm_modelobject

    The LLM that drives this call, copied from the assistant when the call is created.

  • call_attemptsarray of CallAttempt

    All call attempts for this call order, ordered by most recent first.

  • assistantAssistantnullable

    The assistant the call was placed with, as it is configured now (not a snapshot taken at call time). Null for a call made with an inline assistant configuration, and when the assistant was deleted.

  • prompt_versionobjectoptionalnullable

    The assistant prompt version the call's prompt was compiled from. Null for calls created before versions were tracked, and for calls made with an inline assistant.

  • campaignobjectnullable

    The campaign this call belongs to. Null for a call outside any campaign.

  • scheduled_atstring (date-time)nullable

    When the call's next attempt is due (ISO 8601): the requested start for a new call, then the time of the next retry. Null when no time is set, e.g. for a campaign call not launched yet.

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

  • created_atstring (date-time)

    When the call was created.

    Example "2026-11-06T16:12:45Z"

  • updated_atstring (date-time)

    When the call last changed: a status change, a new attempt or an analysis result. POST /call/search sorts on it by default.

    Example "2026-11-09T08:32:20Z"

  • metadataobject<string, string>nullable

    Your own key/value pairs stored with the call (e.g. your CRM ID), as sent in POST /call. On an inbound callback (callback_from set), the metadata of the outbound call it answers, copied over whichever assistant answers; null on other inbound calls. The query and variables filters of POST /call/search match them.

    Keys: A key of your choice.

  • prompt_variablesobject<string, string>nullable

    The values of the assistant's {{variables}} for this call, keyed by variable name.

    Keys: Variable name, as written between the braces: name for {{name}}.

  • transfer_destinationsarray of objectnullable

    Where this call can be transferred, if anywhere.

  • contactobject

    Who the prospect is, read from the call's prompt variables and, after the call, from the transcript.

  • first_sentence_delay_msinteger

    Delay in milliseconds before speaking the first sentence. Default: 400.

  • outcomeenum (4 values)optionalnullable

    How the call went for your business, set after the conversation. Null until computed, and when nobody talked.

    "not_interested"

    The person declined, refused or showed no interest.

    "interested"

    The person engaged and is a lead to follow up: the strongest outcome the AI assigns.

    "completed"

    A person from your team talked to the prospect: they joined the call, the call was transferred to them, or they set this outcome by hand. Never assigned by the AI.

    "requested_callback_later"

    The person asked to be called back later. When they gave a time and attempts are left, the call is scheduled again for that time.

  • outcome_summarystringoptionalnullable

    Why the call got its outcome, in a few sentences written from the transcript. Null when there is no outcome.

    Example "Marie confirmed her appointment on Thursday at 10:00 and asked for the address by text message."

  • do_not_callbooleanoptional

    True when the prospect's phone number is on the do-not-call list: it can no longer be called.

  • assigneeobjectnullable

    The team member assigned to follow up on this call. Null when unassigned.