What a deployment is
A deployment is one campaign instance: a Finn, an audience, a from-number, and a schedule bound together.
Finn + Audience + Phone Number + Schedule = Deployment
The same Finn can run several deployments at once against different audiences or schedules. They are independent and do not share pacing, retries, or budget.
Deployments are created and launched from the dashboard, not through the API. There is no documented endpoint for launching a campaign. Open Dynamic Deployments in the sidebar, or click Deploy from a Finn's page.
Where deployments live
| Screen | Shows |
|---|---|
| Dynamic Deployments | The launcher. Create new deployments here. |
| Scheduled Deployments | Deployments waiting for a future start time. |
| Live Deployments | Currently running, with real-time counts and a live call table. |
| Deployment Analytics | In-progress and completed deployments with metric drilldown. |
A scheduled deployment moves to Live automatically at its start time.
Batch types
Standard dials contacts one at a time, or in small concurrent batches depending on your plan. Use it for moderate volume, up to a few thousand contacts, and for cases where gentle pacing matters.
Parallel is an enterprise type that dials thousands of contacts at once. Use it for time-sensitive sweeps where the whole audience must be reached in a tight window.
Parallel fails without enough phone-number capacity. You cannot dial thousands of calls from a single number, so provision a number pool first. See phone numbers and concurrency.
Required and schedule fields
| Field | What it does |
|---|---|
| Finn | The agent to run. Must already exist. |
| Audience | A full audience or a segment. See api-audiences. |
| From number | The caller ID. Must be assigned to your account. |
| Call type | Outbound, inbound, or both. |
| Start time | When dialing begins. Use Now for immediate. |
| End time | Optional cap. The deployment auto-stops at this time. |
| Calling hours | Per-contact local-time window, for example 9 AM to 6 PM. |
| Time zone source | Where the contact timezone comes from. Default is country code, overridable per row via a custom field. |
Calling hours are evaluated in each contact's local time, so contacts in different zones get called at different absolute times. A deployment that spans days only dials inside the window you set.
Pacing and retries
| Advanced field | Default | Notes |
|---|---|---|
| Max retries | 2 | Retry on no-answer, busy, or voicemail. |
| Retry interval | 4 hours | Wait between retries. |
| Voicemail behavior | End call | Or leave a message via TTS. |
| Compliance disclaimer | Off | Injects required disclosures, for example a recording notice. |
Retries are scheduled at the next valid calling-hour window for that contact, not at the raw interval. A 4-hour retry interval on a contact whose window closed at 6 PM means the retry lands the next morning, not at 10 PM.
If voicemail behavior is set to Leave a message, the platform plays the message and does not retry that contact. Setting both a voicemail message and a high retry cap does not produce repeated attempts.
Numbers on the global do-not-call list are dropped silently from every deployment regardless of which audience they sit in. Manage that list under Settings → Compliance → Do Not Call List. See compliance and recording-consent.
For follow-up logic more complex than a retry cap, such as branching on the call result or sending a text after a pickup, use Sequences rather than retry settings.
Monitoring, pausing, stopping
Live Deployments shows active calls, completed calls with status, a completion-weighted success rate, buffer status, and a live per-call table. Click a row to open the transcript and audio. Health indicators at the top cover Redis buffer health, dispatcher status, and queue backups.
Pause stops new dials. Active calls finish normally, no new cost accrues, and you can resume. Stop does the same and marks the deployment completed, which cannot be reversed. Calls in progress are never cut off mid-conversation.
Before you launch
- Test the Finn on yourself with Test on Call.
- Validate the audience. Remove invalid numbers and leftover test numbers from earlier imports.
- Confirm the from-number is registered and attested for the destination country.
- Check the calling-hour window against contact local time.
- Define your post-call analysis fields. Without them you cannot measure the run. See post-call-analysis.
- Read the cost estimate in the launch confirmation and set a spend cap on early runs.
What goes wrong
| Symptom | Cause |
|---|---|
| Every call fails with carrier rejected | From-number is not registered for the destination country. |
| Calls connect but the Finn is silent | Welcome message is set to defined with an empty script. |
| Wrong language on the call | An audience language_group or timezone field is overriding the Finn default. See agents-multilingual. |
| Deployment paused on its own | The buffer drained because the audience is exhausted, or a budget cap was hit. Check the Live Deployments health panel. |
| Parallel deployment dials far below the configured rate | Not enough numbers in the pool. |
Costs are per-call telephony plus per-minute AI cost, rolled up nightly. The confirmation modal estimate is based on average call duration and will differ from the actual charge.