Campaigns
Outbound calling with the voice AI: one-shot lists and continuous queues, the campaign lifecycle (draft, running, paused, completed, canceled), calling hours, retries, test calls and results. A campaign's instructions replace the inbound AI's prompt entirely: no workflows, bot rules, knowledge, tone or current time unless the instructions or picked actions provide them.
A campaign has the voice AI call a list of people, for example to confirm orders, recover abandoned carts or follow up on a request. Campaigns live in Settings -> Voice & SMS -> Campaigns.
A campaign has:
- Instructions that tell the AI what the call is for and how to run it.
- A greeting, the AI's first words.
- Actions the AI may use during the call.
- A caller ID, one of the business's numbers that can call out.
- Voice AI settings, copied from the assistant you pick. See Voice AI settings.
- Recipients: who to call. See Adding recipients.
A campaign call is not an inbound call
Campaign calls exist for one purpose, so they don't use your customer support setup. The campaign's instructions replace everything the inbound AI gets. On a campaign call, the AI has:
| It has | It doesn't have, unless you add it |
|---|---|
| The campaign's instructions | Workflows, bot rules, General Tone or Business Description |
| The recipient's context, after the instructions | Knowledge base search, order lookups or any action you didn't pick |
The greeting, with {name} replaced by the recipient's name | The current date and time |
| The actions you picked, and ending the call | Built-in guidance on brevity or speaking style |
So write instructions that stand on their own: who the AI is and who it's calling for, the goal of the call, the tone, how brief to be, what to do when the recipient isn't interested or asks something off-topic, and when to end the call. Everything in how the voice AI works still applies: replies are spoken, actions mean silence, and so on.
Put per-recipient facts in the recipient's context, such as what they ordered. A Pre-Call hook can fill or refresh it, including the current date, right before each call.
{name} is the only placeholder in the greeting. Any other {...} is left out, and so is {name} when the recipient has no name.
Modes
| Mode | How it works |
|---|---|
| One-shot | Calls an uploaded list once, then completes on its own when every recipient is done. |
| Continuous | A standing queue. You keep adding recipients from your systems, and it runs until you cancel it. It never completes on its own. |
The mode can't be changed after the campaign is created. A one-shot campaign gets its recipients when it's created. Only a continuous campaign accepts recipients later.
Lifecycle
| State | What it means | Next |
|---|---|---|
| Draft | Saved, not calling. | Launch -> Running. Delete removes it. |
| Running | Calling recipients, within its calling hours. | Pause -> Paused. Cancel -> Canceled. One-shot: Completed when done. |
| Paused | Calls in progress finish. Nobody new is called until you resume. | Resume -> Running. Cancel -> Canceled. |
| Completed | A one-shot campaign that reached everyone it could. | Final. |
| Canceled | Stopped for good. Calls still ringing are dropped. | Final. It can't be restarted; copy it to run it again. |
A draft can't be canceled; delete it instead. A campaign can't be deleted while a call is in progress.
Editing. Drafts, running and paused campaigns can be edited: name, assistant, caller ID, instructions, greeting, actions and calling hours. Changes apply to the calls placed after the change. The mode and the recipient list can't be edited. Completed and canceled campaigns can't be changed. Copy in the campaign list starts a new campaign from an existing one.
Calling hours
Restrict calling hours limits calls to one daily window, such as 09:00 to 17:00, in a time zone you choose. Without it, the campaign calls at any time.
- The window applies every day; there are no separate weekday settings.
- An end time earlier than the start wraps past midnight, such as 20:00 to 06:00. The start and end can't be the same.
- Outside the window the campaign stays Running but places no calls. Waiting recipients are called once the window opens. Test calls follow the window too.
Attempts
Each recipient gets up to three attempts, at least 5 minutes apart. A call that isn't answered, is busy or fails to connect is tried again until the attempts run out. A call that connects completes the recipient, whatever the outcome of the conversation.
Some problems on Octocom's side, such as a temporary limit at the phone provider, don't use an attempt: the recipient is tried again later. To find out why a call didn't connect, see Call failures.
Test calls
Test recipients are called like any other recipient but don't count toward the metrics. They show in the results with a Test badge, their conversations are marked as tests, and hooks see isTest so they can swap in test data.
- Continuous campaigns: click Test call on a running campaign and enter your number. The AI calls you from the campaign's caller ID with the current instructions.
- Any campaign: add recipients with
isTest: true, or mark existing ones with Mark as test in the results table (set_campaign_recipients_testwith Copilot or MCP).
Results
The campaign page shows every recipient with their Status, attempts, last call, duration and a link to the conversation, where the transcript and recording are. Filter by outcome (such as Reached, Not reached or Skipped), by success and by date, and export to CSV.
| Metric | Meaning |
|---|---|
| Called | Recipients dialed at least once. Retries of the same recipient count once. |
| Reach rate | Recipients who had a live conversation, out of those called. |
| Success rate | Calls marked successful, out of calls with a verdict. |
Success needs a verdict. A call counts as successful when its conversation has the collected value success set to true, yes or 1; any other value counts as not successful. Set it from an action during the call or from a Call Completed hook with set_data_collection_result. Other collected values show as extra columns in the results.
With Copilot or MCP
| Tool | What it does |
|---|---|
get_campaign_resources | Lists the assistants, caller IDs and actions a business can use. Call it first. |
create_campaign | Creates a campaign, as a draft unless launch is true. |
update_campaign | Changes a draft, running or paused campaign. |
start_campaign | Launches a draft or resumes a paused campaign. It calls real people. |
pause_campaign, cancel_campaign, delete_campaign | Pause, cancel for good, or delete. |
append_campaign_recipients | Adds recipients to a continuous campaign. |
set_campaign_recipients_test | Marks recipients as test or not. |
list_campaigns, get_campaign, list_campaign_recipients | Campaigns, their settings and metrics, and per-recipient results. |
To set the voice AI settings of a campaign directly, pass voiceAi to create_campaign or update_campaign.
For automating campaigns around your own systems, see Events and hooks. For calling rules by country and playbooks for common campaigns, see Compliance and Playbooks.