Outbound Campaigns let you run AIVA, Aircall's AI Voice Agent, at scale across a contact list, without involving human agents. The campaign engine manages the contact queue, calling hours, and retry logic for you. Contacts can be imported as a CSV file, as a static segment from HubSpot, or sent from your own tools via the API. A campaign can run once through a fixed list (one-time) or stay active and dial new contacts as they're added (continuous).

Note: Outbound Campaigns come in two types: Agent campaigns and AI Voice Agent campaigns, see "Outbound Campaigns: Overview" (https://support.aircall.io/en-gb/articles/36360413250973) for how the two compare. This article covers AI Voice Agent campaigns, which are available on all Aircall plans. Any feature limitations tied to your plan continue to apply.

This article covers the setup steps specific to AI Voice Agent campaigns. For general campaign setup and management, please see Outbound Campaigns: Creating and managing human agent campaigns. For standalone AIVA setup, prompt writing, voicemail drop, and transfer rules, please see Outbound AI Voice Agent setup guide.

Before you start

Confirm each of these before setting up your campaign:

  • Admin access: Only admins can create, launch, pause, and archive campaigns.
  • AIVA agent configured for outbound use, with a call script, first message, and voicemail drop. For instructions, please see Outbound AI Voice Agent setup guide.
  • Contact list ready (optional at launch): a CSV file or a static HubSpot segment, including phone numbers and the personalization fields you want to map to AIVA variables. You can also launch with an empty queue and add contacts later, manually or via the API.
  • Variable names match your contact source: the variable names in your AIVA agent should match the field names in your contact list (CSV column headers or HubSpot property names), so they can be mapped during setup.
  • At least one eligible outbound number: numbers must be eligible for automated outbound calling in the target country. Please see Outbound AI Voice Agent setup guide for the restricted numbers and eligibility reference.
  • Calling hours planned, timezone, days of the week, and time window, consistent with local regulations for your target markets.
  • Compliance confirmed: consent obligations (for example, PEWC), calling hours requirements, and Do Not Call register requirements verified for your target markets before launch.

Concurrency limits and number eligibility

The same concurrency limits and number eligibility rules that apply to standalone outbound AI Voice Agent apply to AI Voice Agent outbound campaigns. The number pool you define for a campaign sets how many simultaneous AIVA calls it can run, within your organization's overall concurrency cap. For the full list of restricted number types, eligibility by country, and concurrency limits, please see Outbound AI Voice Agent setup guide.

What changes in an AI Voice Agent campaign

Running AIVA through a campaign works differently from standalone AIVA in a few important ways.

Standalone AIVAAI Voice Agent campaign
No contact list or variable mapping, AIVA handles calls triggered by webhookThe campaign manages a contact queue. Contact fields can be mapped to AIVA variables for personalized conversations at scale.
The AIVA agent can be edited at any timeThe AIVA agent is locked while a campaign is active, to prevent a mismatch between the variable mapping and the contacts already in the queue. It's released once a one-time campaign is completed, or once any campaign is archived. A continuous campaign never completes, so archive it to release the agent.
The outbound number is assigned directly in the AIVA configurationThe number pool is configured at the campaign level, within the pool size and your organization's concurrency limits.
No calling hours configuration, this relies on your webhook setupThe campaign applies one configured timezone and time window to every contact. Outside that window, the campaign pauses automatically and resumes when the window opens.

Setting up your campaign

Step 1: Configure your AIVA agent

AIVA configuration, the call script, first message, voicemail drop, and transfer rules, is managed under Aircall Dashboard > AI Agents > AI Voice Agents, separately from the campaign. The campaign references an existing AIVA configuration, it doesn't modify it.

If you haven't set up an AIVA agent yet, follow the Outbound AI Voice Agent setup guide first, then come back here once your agent is configured for outbound use.

AIVA agents use two types of variables: mandatory variables, coming from the AIVA first message and voicemail drop, and optional variables, coming from AIVA Conversational guidelines.

In addition to the standard AIVA settings, make sure to:

  • Match your variable names to your contact source. Name the variables in your greeting or voicemail message to match the field names in your contact list, CSV column headers or HubSpot property names, so they map correctly during campaign setup. For example, if your CSV has a column appointment_date, use that exact name as your variable.
  • Let the contact know they're speaking with an AI. Your opening message should clearly indicate this, for example: "Hi, this is an automated AI assistant calling on behalf of…"
Important: Plan your script and variable structure before adding the agent to a campaign. If you need to change the agent after it's been linked to an active campaign, you'll need to wait until that campaign is completed (one-time) or archived (one-time or continuous), then update the agent and create a new campaign referencing the updated configuration.

Step 2: Create a campaign and select AIVA as the agent type

Go to Campaigns > Create campaign.

general settings

In General settings:

  1. Enter a campaign name and, optionally, a description.

  2. Under Campaign type, choose One-time (dials through your list and completes when the queue is empty) or Continuous (stays active and dials new contacts as they're added, until you pause or archive it).

  3. Under Assignments, select AI Voice Agent campaign.

  4. From the AIVA configuration dropdown, select the agent you configured in Step 1. Only agents enabled for outbound use appear here.

  5. Review the auto-outcome chips shown below: Human answered, Machine answered, Voicemail, No answer, Escalated. These are applied automatically, you can't add or rename them for AI Voice Agent campaigns.

Step 3: Configure your dialing strategy and calling hours

New AIVA Outbound campaign - dialing strategy

In Dialing strategy:

  1. Number pool: select one or more outbound numbers for the campaign.
  2. Outbound call settings: configure how calls are distributed, their cadence, and how they are completed. 
  • Call attempts: up to 5 per contact.
  • Time between attempts: 1 minute to 72 hours.
  • Ringing time before hang up: how long AIVA waits before classifying a call as NO_ANSWER. Minimum 15 seconds. 
  1. Calling hours: select the timezone, days of the week, and start/end times AIVA is allowed to dial within. Outside this window, the campaign pauses automatically and resumes once the window opens. See Business hours configuration for more on how calling hours are set. Calling hours are pre-filled with a default window so you can launch faster. Adjust them to match your target markets and local regulations.

Step 4: Add contacts and map variables

In Contact sources:

  1. Three options are available: Upload a CSV file, Import from CRM, or Add via API. CSV files can contain up to 10,000 rows (2 MB max) per import. There's no limit on the number of imports or on the total number of contacts in a campaign.
  2. Upload your CSV file, or select a pre-configured static HubSpot segment.
  3. If your contact list doesn't use E.164 format, select the default country prefix to apply during import, so numbers are formatted correctly for dialing.
  4. Once uploaded, the variable mapping panel appears. Map each contact field, CSV column or HubSpot property, to the matching variable in your AIVA agent. Every configured variable must be mapped to a value from your contact source, contacts missing a required mapped value are flagged in the Invalid tab and excluded from the dialing queue.
  5. Optional variables also appear at this step, whether you're importing via CSV or HubSpot. Map them to a CSV column or CRM field, this step remains optional. If values are missing from your import source, it won't block contact import, and the campaign launches without issue, AIVA simply runs without that extra context for those contacts.
  6. Review the validation results. Invalid phone numbers, duplicates, and missing required values are flagged. Only valid contacts enter the dialing queue. You can download the full validation report.

Add via API

Use this option to send contacts to the campaign from your own tools, for example a CRM workflow or a web form, with custom development. Contacts join the live queue as they arrive, and AIVA dials them automatically.

  • Endpoint: each campaign has its own endpoint (POST https://api.aircall.io/v1/campaigns/{campaign_id}/contacts). Copy it with the copy button.

  • API key: click See API keys to open your company's API keys.

  • Limit: up to 100 contacts per request.

  • Recent events: contact batches sent through the API are listed in the setup step. Click Refresh to update.

For request format, including AIVA variables, click Docs or see the Developer portal.

Launch without contacts

If your contacts will come from another source over time, for example via the API, click Launch without contacts. The campaign goes live with an empty queue, and AIVA starts dialing as soon as contacts are added. This is most useful for continuous campaigns.

Step 5: Review and launch

Before launching, confirm your campaign complies with outbound calling regulations for your target markets, including consent obligations, calling hours requirements, and Do Not Call register requirements.

Check the acknowledgment box to confirm compliance, then click Launch. This acknowledgment is recorded once, at launch.

Monitoring your campaign

Once launched, the campaign moves to In progress, and AIVA begins dialing the contact queue automatically.

From the campaign dashboard, you can:

  • Track overall progress: total contacts, connected calls, average call duration and active time. One-time campaigns also show their % of completion. Continuous campaigns don't, since they have no fixed list to complete. For long-running campaigns, active time is shown in days and hours.
  • View contacts waiting to be dialed, with their scheduled next-attempt time, on the Live queue tab. A live indicator next to the tab shows how many calls are currently in progress.
  • View completed contacts and their outcomes, including attempt history, on the Outcomes tab.
  • Add more contacts at any time with + Add contacts. 
  • Add contacts from your own tools from the Sources tab: it shows the campaign's API endpoint, a link to your API keys, recent API events (View events) and the docs.
  • Pause the campaign manually at any time. In-flight calls run to completion, then dialing stops. Queue position and outcomes are preserved.

The campaign also pauses automatically when:

  • It's outside calling hours. It resumes automatically once the window opens.
  • It's waiting to retry. All remaining contacts were called recently and are waiting out the retry interval. It resumes once the next attempt is due.
  • It's waiting for capacity. Your account has reached its concurrency limit. Dialing resumes as soon as a call ends.

Continuous campaigns with an empty queue stay In progress. AIVA resumes dialing automatically as soon as new contacts are added. A continuous campaign never completes on its own, pause it when you want to stop, then archive it once you no longer need it.

For a full breakdown of campaign statuses, monitoring views, and retry behaviour, please check the Launch, pause and manage campaign section in the Outbound Campaigns: Creating and managing human agent campaigns article.

Duplicating an AI Voice Agent campaign

You can duplicate a completed (one-time) or paused (one-time or continuous) AI Voice Agent campaign to reuse its general settings as a starting point for a new one with the same agent.

  1. If the AIVA agent hasn't changed since the original campaign, duplicate it and choose which contacts to carry over: the full list, the live queue, or contacts filtered by outcome, for example, re-calling every Voicemail contact. General settings, the AIVA agent, and the variable mapping all carry over to the new draft.
  2. If you need to use an updated AIVA agent, since variable definitions may have changed, start a new campaign, upload a new contact list, and redo the variable mapping to keep the agent and your contact data aligned. You can still duplicate an existing campaign to copy over its general settings as a starting point.

In every case, the new campaign resets its live queue, clears prior outcomes, and requires a fresh compliance acknowledgment at launch.