Chapter 9 · Run
Campaigns
Call a list of people with one of your workflows — a few at a time, inside your calling hours, with retries — and follow every attempt.
What a campaign is
A campaign calls a list of numbers from one of your phone numbers, running one workflow on every call. It dials a few at a time, only between the calling hours you set, retries numbers that were busy or did not pick up, and pauses itself outside its hours and starts again the next day — nobody has to watch it.
Create a campaign
- Open Campaigns and press New campaign.
- Give it a Campaign name and, optionally, a Description.
- Choose the number to Call from and the Workflow (one used for outgoing calls or both directions).
- Set Calls at the same time — 1 to 10, 5 by default.
- Set Calling starts and Calling ends — any half hour from 00:00 to 23:30; a new campaign starts with 09:00–19:00 — and the Timezone.
- Optionally open Show retry and timeout settings: Tries per number (1 to 5; 1 means no retries), Wait before trying again (minutes) (5 to 1440, 30 by default) and Ring for (seconds) (10 to 120, 45 by default).
- Press Create campaign. Its page opens, ready for contacts.
Add the people to call
From the campaign page’s menu (or the empty list’s buttons):
- Add numbers — paste numbers, one per line. “Name, number” on a line adds the name too. Numbers without a country code get the campaign line’s code. Up to 1,000 at a time.
- Pick contacts — choose parties from your list, filtered by tag, with Select all shown.
- From another campaign — copy people from another campaign by how their calls went: everyone, called and finished, not reached, still waiting, cancelled or invalid.
- Upload a spreadsheet — an .xlsx, .xls or .csv file (first sheet, up to 50,000 rows). Choose the Phone number column and, optionally, the Name column; every other column becomes a variable the workflow can use, such as
{order_id}. The file is read in your browser and only the rows you confirm are uploaded. - Import from party list — every party with the tags you name, matching Any of these tags or All of these tags; their party fields travel with them.
Each batch you add gets a six-character group id, shown as a chip on its rows. If a batch was a mistake, choose Remove group #id on any of its rows to take the whole batch off the list (anyone being called right now stays).
Start, pause and resume
Start calling asks you to confirm how many numbers will be called, from which line, how many at a time and between which hours. A campaign needs at least one contact, an active number and an active workflow to start.
- Pause — no new calls; calls already connected finish. Nobody is hung up on.
- Resume — carries on where it left off.
- Outside calling hours — the campaign paused itself at the end of its window and resumes by itself when it opens.
- All called — set automatically when nobody is left to call, and only for that moment: the same campaign serves day after day. Add contacts and they are called straight away; a retry or a scheduled call coming due starts it again too. Pause it to stop that; Start calling sets it running again, waiting for contacts.
- Delete — at any time, even while it is running: the campaign, its contacts, schedule and counters are removed for good. The calls it already made stay in Call history, with their transcripts and recordings.
Follow a campaign
The campaign page shows its status, line, calls at a time and hours, then counters — Contacts, Answered, Not picked, Unreachable, Invalid number, Not called yet — and the attempts, talk time and money spent so far. It refreshes itself every few seconds while running.
- Contacts — every person, filterable by state: Not called yet, Scheduled, Calling now, Done, Waiting to retry, Invalid number. Each row shows the tries, the last outcome and when. History on a row lists every attempt, with Open call for its full details; Call now rings one person immediately.
- Schedule — the people booked for a particular time, with Cancel.
- Call log — the last 100 attempts with their outcome and a link to the transcript.
- Imports — each upload or tag import with how many were added, already there or unreadable, and a download of the rows that failed.
Report downloads an Excel workbook with a summary (connect rate, talk time, average answered call, money spent), every contact and its outcome, and the call log.
Retries and outcomes
A number that was busy, unreachable, not picked up or failed is tried again after the wait you set, until it runs out of tries. Someone who rejected the call, or an invalid number, is not retried. When the tries run out the contact is Done, and Last outcome says how it ended.
Schedule people for a time
Tick contacts and press Schedule, or choose Schedule on one row, to ring them at a particular Date and Time inside the calling hours. A time outside the window is moved to the next opening, and the toast says when. A workflow’s Schedule a call step can also book a caller onto a campaign.
Campaigns on local numbers
A campaign whose line is a local modem is dialled from the computer the modem is plugged into, through the desktop app. Its card appears under On local numbers at the top of the Campaigns page, with Run here. See Campaigns on local numbers.
Questions about campaigns
Every question from every chapter is also on the FAQ page.
Why won’t my campaign start?
It needs at least one contact on the list, an active phone number and an active workflow for outgoing calls. It will also only dial inside its calling hours — outside them it waits as Outside calling hours.
Can a campaign call before 9 am or after 7 pm?
Set Calling starts and Calling ends to any half hour from 00:00 to 23:30 in the campaign’s settings — 09:00–19:00 is only the default. Call now on a single contact can ring someone outside the window after you confirm.
Can I stop a campaign calling on weekends?
Campaigns call every day inside their hours. Pause it on Friday evening and Resume it on Monday.
How do I use data from my spreadsheet in the call?
Every column besides the phone and name becomes a variable, named in lower case with underscores — a column “Order ID” becomes {order_id}. Use it in a Speak step, a Condition or an API call.
I uploaded the wrong file. How do I undo it?
Every row from that upload carries the same group id chip. Choose Remove group #id on any of them to remove the whole batch; anyone being called at that moment stays.
Will someone be called twice?
Not while they are waiting: a number already on the list is skipped. After their call has finished, they can be added again deliberately for another round.
Does pausing hang up on people?
No. Pause stops new calls; calls already connected finish normally.
How much does a campaign cost?
The same as any call: talk time at your plan’s rate plus AI tokens, from your wallet, only for calls that connect. On a local modem there is no talk-time charge. The campaign page shows the money spent so far.
What happens if the wallet runs out mid-campaign?
A call is only placed when the balance can fund at least a minute. Each contact the campaign reaches while it cannot is recorded as a failed attempt (“Wallet balance is too low to place the call”) and is retried only if it has tries left. Top up before a big campaign; if it runs dry, Pause, add credit and Resume — and add any finished-but-unreached numbers again.