The four objects
Everything on the platform is built from four objects. Learn how they relate and the rest of the documentation follows.
Finn + Audience + Phone number + Schedule = Deployment
Deployment → Calls → Transcripts + structured fields
| Object | What it is | Lives for |
|---|---|---|
| Finn | The agent: voice, language, instructions, knowledge, tasks | Until you delete it |
| Audience | A contact list with a name, phone number, country code, and any custom fields you add | Until you delete it |
| Deployment | One campaign instance putting a Finn on real calls | From launch until it stops or completes |
| Call | A single conversation, inbound or outbound | The duration of the call, plus its stored record |
Finn
A Finn is the agent. It holds identity text, style and guardrails, response guidelines, welcome message, voice, language, time zone, knowledge base, optional workflow, tasks, call settings, and post-call analysis fields.
A Finn does not make calls on its own. It is configuration. Nothing is live until a deployment references it.
Edits to a Finn apply to new calls only. Calls already in flight finish under the config they started with, so a mid-campaign edit produces a mixed set of results. There is no configuration history to roll back to, so note what you changed before you save.
See agents-overview, agents-prompting, and agents-knowledge-base.
Audience
An audience is a contact list. Required columns are name, phone_number (local digits, no country code, no formatting), and country_code (with a leading +).
Any extra column can be used as a {{ column }} variable in the Finn's welcome message or system prompt. On each call it's filled from the contact's row, matched to the column header regardless of case, spaces and punctuation. This is how personalization works. There is no separate personalization system. See agents-variables.
Contacts arrive by CSV upload or manual entry. For CRM integrations under Settings → Integrations, Zoho CRM is live, and HubSpot and Salesforce are marked Coming soon. Deduplication is on the (country_code, phone_number) pair and the first occurrence wins.
There are two plans:
| Plan | What it is |
|---|---|
| Pay as you go | Usage-based, billed per minute. Every workspace starts here |
| Enterprise | Custom volume rates and dedicated support, arranged through sales |
See api-audiences.
Deployment
A deployment is the join between a Finn, an audience, a from-number, and a schedule. It is the only object that spends money.
One Finn can back many deployments at once against different audiences or schedules. They run independently and do not share state, retry counters, or pacing.
Deployment types:
- Standard — dials one at a time or in small concurrent batches, bounded by your plan's concurrency.
- Parallel — dials at high concurrency. Requires enough phone-number capacity. One number cannot carry thousands of simultaneous calls, so you need a number pool first. See phone-numbers and concurrency.
- Scheduled — either type, held until its start time, then transitioned to live automatically.
Pause stops new dialing and lets active calls finish. Stop does the same and marks the deployment completed, which is not reversible. Active calls are never cut mid-conversation.
Launching and pausing are done in the dashboard under Dynamic Deployments, Scheduled Deployments, and Live Deployments. The API can also create and stop deployments. See outbound-campaigns and api-deployments.
Call
A call is one conversation. Every call produces a transcript, an outcome status, and the structured fields you defined in the Finn's post-call analysis tab.
Those fields are the measurement layer. If you launch without defining any, you get transcripts and nothing you can aggregate, and you cannot answer "how many booked?" without reading calls by hand. Define them before launch, not after.
See call-outcomes, call-logs, and post-call-analysis.
How the pieces fail together
| Symptom | Which object is wrong |
|---|---|
| Finn says nothing on pickup | Finn — voice not assigned or not valid for its provider. The welcome message is always spoken first, so it isn't a welcome setting |
| Right script, wrong name in greeting | Audience — name column missing or misnamed |
| Carrier rejects every call | Phone number — carriers are refusing or labeling it. Check its Health in Settings → Phone numbers |
| Deployment pauses on its own | Deployment — audience exhausted, or wallet credits ran low |
See troubleshooting.
Next
Build one of each end to end: quickstart-inbound or quickstart-outbound.