/dashboard/campaigns).
For one-off programmatic calls, use the
outbound calls API instead.
Prerequisites
- A deployed voice agent.
- A VoIP phone number connected to your organization to call from — demo numbers are inbound-only and cannot place campaign calls. See Connect a VoIP provider.
- Contacts as a CSV file (or pasted JSON) with a
phoneorphone_numbercolumn. Up to 5,000 rows per upload, UTF-8 encoded. Any extra columns are kept as per-contact variables on the campaign’s contact records.
Create a campaign
1
Click New campaign
Name it, pick the voice agent, and choose the from number
(one of your VoIP numbers).
2
Upload the contacts CSV
Rows with an invalid phone number are rejected individually and
reported back with their row numbers — the rest import fine.
3
Set the calling window
Choose a timezone and a daily start/end window; the campaign
only dials inside it. Windows may span midnight (e.g. 22:00 → 02:00).
Optionally set a start at to schedule the launch and an
end at after which the campaign completes automatically.
4
Tune pacing and retries
- Concurrent calls — how many calls this campaign runs at once (1–10, default 3). Your organization is also capped at 10 concurrent outbound calls across everything, so parallel campaigns share that budget.
- Maximum attempts — how many times each contact may be dialed (default 2).
- Retry backoff (minutes) — the wait before a retry (default 60).
- Retry on — which outcomes trigger a retry: no answer, voicemail, failed (all on by default).
5
Create draft, then start
Campaigns are created as drafts — contacts can only be added while a
campaign is a draft. Starting a campaign requires an explicit consent
to the call charges. With a future start at it becomes
scheduled; otherwise it starts running immediately.
How outcomes and retries work
After each call, the contact gets an outcome — successful calls are marked completed; a call graded as no-answer, detected as voicemail, or failed is retried if that outcome is in your retry on list and the contact has attempts left. Contacts that run out of attempts are marked exhausted; non-retryable failures are marked failed.Dialing pauses automatically while your account balance isn’t in good
standing, and resumes once it is. Keep
auto top-up on for long campaigns.
Monitor and control
Each campaign card shows its status and progress (e.g. “173 of 248 finished”). Open a campaign for the status breakdown, per-contact results, and recent calls — each links to the full transcript and recording in call history.- Pause / resume — pausing stops new dials; calls already in progress finish naturally. Paused campaigns can be edited and resumed.
- Cancel — permanently stops the campaign.
- A campaign completes on its own when every contact reaches a final state or the end at time passes.
draft, scheduled, running, paused,
completed, cancelled. Contact statuses: pending, scheduled,
calling, completed, failed, exhausted.
Next steps
Watch calls live
Listen in on campaign calls as they happen.
Outbound calls API
Place individual calls programmatically.