Campaigns overview
Outbound campaigns let you call a list of contacts with an assistant or squad. You choose the caller, upload or enter the contacts, decide when calls can run, and review the result of every attempt from one campaign.
Use a campaign when the same assistant or squad needs to make many related calls, such as appointment reminders, lead qualification, customer follow-ups, or surveys.
How campaigns work
Every campaign combines four parts:
- Caller: The assistant or squad that handles each conversation.
- Phone number: The outbound-capable number used to place the calls. Vapi Free Numbers are not supported for campaigns.
- Contacts: The people to call and any values used to personalize their conversations.
- Schedule: When dialing starts, when it must stop, and how many calls the campaign can place concurrently.
When the campaign starts, contacts begin in a pending state. Vapi dispatches calls as capacity becomes available, up to the campaign’s Max concurrency and your organization’s available call concurrency.
Each contact is processed independently. A completed campaign therefore contains a result for each contact rather than one result for the campaign as a whole.
Creating a campaign launches it immediately or schedules it for later; there is no saved draft. After creation, its configuration is fixed:
- You cannot edit the caller, contacts, or schedule. These are locked when the campaign is created.
- Before a scheduled run, you can only cancel. You can cancel a queued or scheduled campaign, but you cannot change it.
A campaign runs once. To run it again, or to change its configuration, duplicate it, review the copied contacts and settings, and launch the duplicate.
Campaign lifecycle
Configure the campaign
Select an outbound phone number and an assistant or squad that can detect and handle voicemail. Choose either the voicemail tool for assistant-driven handling or automatic voicemail detection for provider-based detection that does not depend on the assistant’s prompt; do not configure both on the same assistant. Optionally configure a Server URL, event webhooks, and a pre-dial eligibility check.
Add contacts
Upload a CSV file or enter contacts manually. A campaign can contain up to 10,000 contacts.
Choose when calls run
Start immediately or define a scheduled calling window. The Dashboard supports scheduling a campaign up to seven days in advance.
Personalize calls with contact data
Every contact needs a phone number. You can also provide a name and additional values that the assistant or squad uses as dynamic variables.
For example, this CSV provides name, appointment_date, and location for each contact:
You can reference the values in an assistant prompt:
The number and name columns have dedicated contact fields. Vapi also makes name and every additional populated column available to the caller as a variable. Empty cells are omitted for that contact.
Control maximum call concurrency
Max concurrency limits how many calls this campaign can have active at once. It does not reserve capacity exclusively for the campaign or increase your organization’s total concurrency.
For example, if the campaign limit is 10 but only four organization concurrency slots are available, the campaign can start up to four calls. Other calls in your organization use the same pool of concurrency slots.
Calls that cannot start immediately wait for capacity during the campaign’s execution window. Review call concurrency before launching a high-volume campaign. If the organization needs more simultaneous capacity, purchase additional call lines.
Review campaign results
The campaign detail page remains available after the campaign is completed. Its summary shows:
- Audience: Every contact added to the campaign, including contacts that were skipped or failed.
- Remaining calls: Contacts that are still pending or dispatched and have not reached a final status.
- Connected calls: Calls answered by a person.
- Pick up rate: Connected calls divided by calls actually placed. Voicemail does not count as a pickup.

Use Contact status to filter the results by pending, dispatched, completed, failed, skipped, or pre-dial failed. The results table shows the call ID, customer phone number, contact status, call type, ended reason, start time, duration, and cost.
Contacts that were skipped or failed before dialing do not have a call ID or call details. When a call ID is present, select the row to open the call record and review its transcript, recording, analysis, and ended reason with the rest of your call logs.
Next steps
Upload contacts, configure the caller, and launch an outbound campaign.
Combine contact variables, voicemail handling, scheduling, concurrency, and webhooks.
Review caller identification, trusted calling, and outbound-call requirements.
Learn how active calls share your organization’s concurrency capacity.
Buy capacity add-ons to add more simultaneous call lines.