Skip to main content
A call in Truedy represents a single conversation between one of your AI agents and a person. Every time your agent speaks with someone — whether you initiated the call, someone called in, or they connected through a browser widget — Truedy creates a call object that records everything: the transcript, the recording, timing metadata, and the final outcome. This guide explains the call data model, the lifecycle a call moves through, and how to retrieve call data via the API.

Call Directions

Truedy supports three call directions, each representing a different way a conversation is initiated.

Outbound

Your agent places a call to a contact’s phone number. Used for proactive outreach, follow-ups, appointment reminders, and campaigns.

Inbound

A contact dials one of your Truedy phone numbers and the call is routed to the configured agent. Used for support lines, hotlines, and always-on reception.

WebRTC

A contact connects through a browser-based widget embedded on your website or app. No phone number required on either side — audio is transmitted over the internet.

The Call Lifecycle

Every call moves through a defined sequence of statuses from creation to completion. Understanding this lifecycle helps you build reliable integrations and interpret webhook payloads correctly.
1

queued

The call has been created in Truedy’s system and is waiting to be dialled. For outbound calls, this is the initial state after you call POST /calls. The call will transition out of this state within seconds under normal conditions.
2

ringing

Truedy has initiated the connection and is waiting for the recipient to answer. For inbound and WebRTC calls, this state is brief or may be skipped entirely.
3

in-progress

The call has been answered and the agent is actively speaking with the contact. Transcription and recording begin at this point.
4

ended

The call completed normally. The transcript, recording URL, duration, and outcome are now available on the call object.
5

failed

The call could not be connected or was interrupted before completion. Check the failure_reason field for details (e.g. no-answer, busy, invalid-number, agent-error).
WebRTC calls skip the ringing state entirely and move directly from queued to in-progress once the browser widget establishes the connection.

Call Status Reference

Only ended, failed, and cancelled are terminal statuses. Once a call reaches one of these states, it will never transition again. Use this to know when it is safe to process a call’s transcript or recording.

The Call Object

When you retrieve a call from the API, you receive a call object with the following fields:

Example: A Completed Call Object


Retrieving a Call

Use GET /calls/{id} to fetch the current state of any call by its ID.
The response is a single call object as shown in the example above.

Polling vs. Webhooks

After creating a call, you have two options for tracking when it completes: Polling — repeatedly call GET /calls/{id} until the status reaches a terminal state. Simple to implement but inefficient at scale. Webhooks — register a webhook endpoint and Truedy will push a call.ended or call.analyzed event to your server the moment the call finishes. This is the recommended approach for production integrations.
For any integration that processes more than a handful of calls per day, webhooks are strongly preferred over polling. See the Webhooks Overview guide for setup instructions.

Next Steps

Making Outbound Calls

Place individual outbound calls via the API

Setting Up Inbound Calls

Route incoming callers to your agents

WebRTC Widget

Embed a browser-based voice widget

Call Management

List, filter, and export call records