> ## Documentation Index
> Fetch the complete documentation index at: https://docs.callers.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Core concepts

> The building blocks of Callers: agents, channels, scripts, variables, knowledge, actions, contacts, outcomes, webhooks, versions, and accounts.

This page explains the objects you work with in Callers and how they relate. Read it once before you build your first agent; each section links to the page with full details.

## The lifecycle of a conversation

Every conversation, on any channel, moves through the same stages. The agent's **Workflow** tab shows these stages in order.

![Workflow tab of the agent editor showing, from left to right, Triggers, Pre-Conversation Actions, a Script node set to Voice Call with a Summary node beneath it, Success Criteria with Goal Reached and Goal Not Reached outcomes, and Post-Conversation Actions](https://mintcdn.com/voxiaai/UGuY0UNIphM-6pUX/images/documentation/build-your-agent/workflow-tab-clean.png?fit=max\&auto=format\&n=UGuY0UNIphM-6pUX\&q=85\&s=2675e8c5668a1a395476614d8bf7d4fe)

The Workflow tab of an agent: Triggers, Pre-Conversation Actions, Script, Summary, Success Criteria, and Post-Conversation Actions.

<ol />

## Agents

An **agent** is one AI worker with one job: for example, "confirm tomorrow's appointments" or "answer the support line". It bundles the script, voice, channels, knowledge, actions, schedule, contacts, and results for that job.

Agents have a type and a direction:

| Type | What it does |
| - | - |
| **Voice** | Phone calls, plus web calls from the [widget](https://docs.callers.ai/documentation/widget-agents/installing-the-widget.md) or [Web SDK](https://docs.callers.ai/sdk/overview.md). |
| **Text** | SMS and WhatsApp conversations. |
| **Email** | Sends, reads, and replies to emails from your mailboxes. |

**Outgoing** agents start conversations with the contacts you add. **Incoming** agents answer calls or messages that come in.

> [!NOTE]
>
> Agents were called "campaigns" until September 2026. The API and webhook payloads still use the old name in places, such as the `campaign` object and `campaignId` fields.

[Create an agent](https://docs.callers.ai/documentation/build-your-agent/starting-a-new-agent.md)
[Agent settings](https://docs.callers.ai/documentation/build-your-agent/agent-setup.md)

## Channels

A **channel** is how the agent reaches people:

* **Voice**: outbound and inbound phone calls over a number managed by Callers, Twilio, Telnyx, or your own SIP trunk, and web calls in the browser.
* **Text**: SMS through Twilio or Telnyx, and WhatsApp.
* **Email**: Gmail, Outlook, SendGrid, Mailjet, or any SMTP/IMAP mailbox.

[Multichannel agents](https://docs.callers.ai/documentation/get-started/multichannel.md)
[Phone numbers](https://docs.callers.ai/documentation/contacts/phone-numbers-and-caller-id.md)
[Text](https://docs.callers.ai/documentation/text-agents/overview.md)
[Email](https://docs.callers.ai/documentation/email-agents/overview.md)

## Scripts

The **script** is the conversation flow, drawn as a canvas of connected blocks.

* **Blocks** (nodes) are stages of the conversation, such as "Greeting" or "Qualify budget". A block can branch into **subflows** depending on what the contact says, or jump to another block with **Go to Block**.
* **Steps** are what happens inside a block: say something, ask a question, transfer the call, send an SMS or email, book a meeting, run an action, wait, or end the call.
* **Scenarios** handle moments that can happen anywhere, like "How much does it cost?" or "Call me later". When the contact says something that matches a scenario, the agent runs that scenario's steps and then returns to the flow.
* **Instructions** are hidden guidance for the AI, at the agent level or inline in a step. They shape tone and behavior without being spoken.

![Agent editor on the Script tab showing an Introduction & Qualification start block branching into They are the decision maker and They are not the decision maker, a Meeting Scheduling nested script, and Goodbye blocks](https://mintcdn.com/voxiaai/ELyrb3NxuHh0ILKS/images/documentation/build-your-agent/script-example.png?fit=max\&auto=format\&n=ELyrb3NxuHh0ILKS\&q=85\&s=593228bc8eaf4bd9113b7875467d3f1a)

A script on the canvas: a Start block, subflows for each kind of reply, a nested script, and Go to links.

[Script editor](https://docs.callers.ai/documentation/build-your-agent/agent-script.md)
[Steps](https://docs.callers.ai/documentation/build-your-agent/customizing-steps.md)
[Scenarios](https://docs.callers.ai/documentation/build-your-agent/agent-scenarios.md)
[Instructions and guardrails](https://docs.callers.ai/documentation/build-your-agent/instructions-and-guardrails.md)

## Variables

**Variables** personalize each conversation. Write `{{name}}` or `{{appointment_time}}` in the script, and Callers fills the value for each contact from:

* CSV columns you map during import, or the `data` object you send with the API.
* Pre-conversation actions that fetch data before the call.
* Built-in values such as `{{currentDate}}`.

**Transcript variables** go the other way: the AI extracts a value from what the contact said (a date, a number, a yes/no) so you can pass it to an action.

[Variables](https://docs.callers.ai/documentation/build-your-agent/agent-variables.md)
[Uploading contacts](https://docs.callers.ai/documentation/using-callers/uploading-contacts.md)

## Knowledge bases

A **knowledge base** is a set of documents, web pages, and text the agent can search during a conversation to answer questions accurately. Create knowledge bases under **Knowledge** and connect them to agents. Supported sources include PDF, Word, PowerPoint, spreadsheets, text files, images, and website URLs.

[Knowledge base](https://docs.callers.ai/documentation/using-callers/knowledge-base.md)
[Scenarios](https://docs.callers.ai/documentation/build-your-agent/agent-scenarios.md)

## Actions

**Actions** connect the agent to your systems. They run at three points:

| Stage | When it runs | Typical use |
| - | - | - |
| **Pre-conversation** | Before every call, or before the first call to a contact | Fetch the latest account data into variables. Optionally skip the call if the request fails. |
| **In-call** | During the conversation, when the script reaches an Action step | Check availability, look up an order, create a booking. |
| **Post-call** | After the conversation, based on its outcome | Update the CRM, notify Slack, add a row to a sheet. |

An action can be an [App Center](https://docs.callers.ai/documentation/integrations/app-center.md) action, a custom HTTP request, or custom code.

[Actions](https://docs.callers.ai/documentation/build-your-agent/agent-actions.md)
[Actions summary](https://docs.callers.ai/documentation/integrations/summary-actions.md)

## Contacts and statuses

A **contact** is a person the agent talks to: a name, one or more phone numbers or an email address, and data for variables. Each contact has a **status** that tells you where it stands, such as **New**, **Pending Retry**, **Interested**, **Not interested**, **Call later**, **Do not call**, **Wrong number**, or **Unreached**.

Callers decides when to contact each person based on the agent's **availability** (calling hours and time zone) and **retry rules** (total attempts, daily attempts, wait between attempts).

[Uploading contacts](https://docs.callers.ai/documentation/using-callers/uploading-contacts.md)
[Statuses and outcomes](https://docs.callers.ai/documentation/using-callers/call-statuses.md)
[Scheduling and retries](https://docs.callers.ai/documentation/contacts/scheduling-and-retries.md)
[Do Not Call](https://docs.callers.ai/documentation/contacts/do-not-call.md)

## Success criteria and post-call analysis

After each conversation, Callers analyzes the transcript:

* **Success criteria** define whether the agent reached its goal ("goal reached") and classify other outcomes such as call later, wrong number, or do not call. They drive the contact status and which post-call actions run.
* **Post-call analysis** produces a summary and answers your **key questions**: structured fields such as "Budget" (number), "Preferred date" (date), or "Has insurance?" (yes/no).

[Success criteria](https://docs.callers.ai/documentation/results/success-criteria.md)
[Post-call analysis](https://docs.callers.ai/documentation/using-callers/key-questions.md)

## Webhooks and triggers

* **Webhooks** send conversation events and results to your URL: when a call is dialing, connected, finished, and when post-call analysis is done, with the transcript, summary, and recording link.
* **Triggers** work in the other direction: an event in a connected app (for example, a new CRM lead) adds or archives a contact in an agent automatically.

[Webhooks](https://docs.callers.ai/documentation/webhook/webhook-overview.md)
[Triggers](https://docs.callers.ai/documentation/integrations/triggers.md)

## Versions

Agents can have **versions**. You edit a **Draft**, then **Publish** it; only published versions take real conversations. Version history lets you restore an earlier version. With split traffic, you can run several published versions side by side and compare their results.

[Versions and split traffic](https://docs.callers.ai/documentation/build-your-agent/versions-and-split-traffic.md)
[Testing your agent](https://docs.callers.ai/documentation/build-your-agent/testing-your-agent.md)

## Accounts and subaccounts

Your **account** (organization) holds your agents, contacts, numbers, integrations, and team. Members have a role (**Admin** or **ReadOnly**) plus member access settings, such as whether they can see contact phone numbers or export data.

Agencies and larger companies can create **subaccounts**: separate accounts for each client or business unit, managed from one parent account and optionally presented under your own brand with [white label](https://docs.callers.ai/documentation/agencies/white-label.md).

[Team and permissions](https://docs.callers.ai/documentation/account/team-and-permissions.md)
[Managing subaccounts](https://docs.callers.ai/documentation/agencies/managing-subaccounts.md)

## Related

> **[Quickstart](https://docs.callers.ai/documentation/get-started/quickstart.md)**
>
> Build and launch your first agent.

> **[Glossary](https://docs.callers.ai/documentation/resources/glossary.md)**
>
> Short definitions of every term in Callers.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.