Campaigns

View as Markdown

A campaign dials an audience for you. You upload a contact list, map personalization variables, set a schedule, and the campaign works through the list automatically — with retries, concurrency control, and live progress tracking.

Open Deploy → Campaigns.

Outbound vs. inbound. Campaigns are for outbound calling — your agent dials the audience (like appointment reminders or lead follow-ups). To answer incoming calls instead, use Inbounds. They’re separate flows: a campaign needs a contact list and a schedule, while an inbound deployment just routes incoming numbers to an agent.

Before you start

1

Set up telephony

Add a telephony connection and, ideally, a group so the campaign can rotate across numbers.

2

Prepare a contact list

A CSV with one contact per row — phone numbers plus any personalization fields your agent needs (name, account number, appointment date, and so on).

3

Have a configured agent

Your agent must be configured and committed before you can schedule a campaign.

The Campaigns page

The Campaigns page is your home base for outbound calling. When you open Deploy → Campaigns, the top of the page shows a Calls / Concurrency graph for the last 24 hours. Toggle between the two views and change the window with 1h, 12h, or 24h:

  • Calls — the total number of calls placed across your campaigns over the period.
  • Concurrency — how many calls ran simultaneously, with the peak concurrency called out above the chart.

Below the graph, your campaigns are split across two tabs:

  • Active campaigns — everything currently running, paused, or scheduled. If you have no active campaigns, the page opens on Past campaigns instead.
  • Past campaigns — campaigns that have ended or been cancelled.

Each row in either tab shows the same columns:

ColumnDescription
NameThe campaign name you set when creating it.
Agent typeThe agent (or workflow) the campaign runs.
StatusThe current lifecycle stateActive, Paused, or Scheduled on the Active tab; Ended or Cancelled on the Past tab.
WhenWhen the campaign was launched.

Use the search box to find a campaign by name, and the two dropdowns to filter by status and by timeAll time, This week, This month, or a custom date range.

What you can do from here

From the Campaigns page you take one of two actions — create a new campaign, or open an existing one to view its details. The DND list button (top-right) opens your org-wide suppression list, which applies across every campaign.

Webhooks

A campaign can POST an event to your server as each call finishes — with the outcome, transcript, duration, and the agent variables collected during the call. Set the Webhook URL in the campaign wizard’s Advanced step (see Create a campaign).

  • Payload — see the Campaigns webhook payload reference for every field, including start_datetime/end_datetime and output_agent_variables.
  • Delivery records — every POST attempt is recorded with a status (running, completed, or failed). List them with List webhook deliveries, filtered by status and time window.
  • Retries — if your endpoint was down, re-deliver up to 200 attempts per request with Retry webhook deliveries.

Webhook events fire per call attempt, whether or not the call connected — so you can track failures too. To fetch caller context before an inbound call begins, use an on-start hook on the inbound side instead.

Where to go next