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
idstringThe ID of the call.
Example
"8d2f6b1a-4c9e-4f37-b215-6a0e9c3d7f12"organization_idstringThe ID of the organization that owns the call.
from_phone_numberstringThe phone number that made the call (the caller ID of an outbound call), in E.164 format.
Example
"+33199001234"to_phone_numberstringThe 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 /. It is not dialed until then.campaigns/ {id}/ launch-calls "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"optionalnullableWhy 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_stoppedbooleanWhether 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
falsecallback_fromobjectoptionalnullableFor 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
metadataover, 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 thewebhook_urlof the assistant that answers.calls_countnumberThe number of call attempts made.
Example
1The most recent attempt, the same as the first entry of call_attempts. Null until a first attempt is made.
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_modelobjectThe LLM that drives this call, copied from the assistant when the call is created.
call_attemptsarray of CallAttemptAll call attempts for this call order, ordered by most recent first.
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
assistantconfiguration, and when the assistant was deleted.prompt_versionobjectoptionalnullableThe 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.
campaignobjectnullableThe campaign this call belongs to. Null for a call outside any campaign.
scheduled_atstring (date-time)nullableWhen 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/searchsorts on it by default.Example
"2026-11-09T08:32:20Z"metadataobject<string, string>nullableYour own key/value pairs stored with the call (e.g. your CRM ID), as sent in
POST /call. On an inbound callback (callback_fromset), the metadata of the outbound call it answers, copied over whichever assistant answers; null on other inbound calls. The query and variables filters ofPOST /call/searchmatch them.Keys: A key of your choice.
prompt_variablesobject<string, string>nullableThe 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 objectnullableWhere this call can be transferred, if anywhere.
contactobjectWho the prospect is, read from the call's prompt variables and, after the call, from the transcript.
first_sentence_delay_msintegerDelay in milliseconds before speaking the first sentence. Default: 400.
outcomeenum (4 values)optionalnullableHow 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_summarystringoptionalnullableWhy 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_callbooleanoptionalTrue when the prospect's phone number is on the do-not-call list: it can no longer be called.
assigneeobjectnullableThe team member assigned to follow up on this call. Null when unassigned.