Outbound campaigns
Upload a contact list and let an agent work through it — with calling windows, retries, and live progress.
Campaigns dial a list of contacts on your behalf: pick an agent, upload a
CSV, set when calling is allowed, and ThunderPhone works through the list
— retrying no-answers and voicemails on the schedule you choose. Find
them under Engagement → Campaigns (/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
- Click New campaign
Name it, pick the voice agent, and choose the from number (one of your VoIP numbers).
- Upload the contacts CSV
Rows with an invalid phone number are rejected individually and reported back with their row numbers — the rest import fine.
- 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.
- 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).
- 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.
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.
Campaign statuses: draft, scheduled, running, paused,
completed, cancelled. Contact statuses: pending, scheduled,
calling, completed, failed, exhausted.