Skip to main content
A campaign reaches a list of leads through exactly one primary channel: AI phone call, approved WhatsApp template, WhatsApp Call (Beta), or SMS. Voice campaigns can send one optional WhatsApp or SMS follow-up after all call retries fail. Existing campaigns remain phone campaigns. Clients that omit channel also create a normal phone_call campaign.

Leads & audiences

Leads are the people a campaign contacts:
  • Import leads via CSV or add them one by one (UI, API, or MCP add_lead).
  • Each lead has a phone number (E.164), optional name/email/tags, and free-form custom fields (e.g. company, open_amount, appointment_date).
  • Campaign mappings can use contact fields, flat custom fields, assistant variables, campaign-local time values, and read-only system/channel values such as last_call_id, telegram_user_id, or whatsapp_user_id.
  • In campaign lead details, contact fields and user-managed variables are editable. Runtime and channel identities are shown separately as read-only system variables.
  • Every primary or follow-up action is recorded as a delivery attempt.

Setting up a campaign

1

Create the campaign

Choose Call, WhatsApp, WhatsApp Call (Beta), or SMS. The wizard only shows named resources that belong to the current workspace.
2

Add leads

Import your CSV. Numbers on your do-not-call list are flagged automatically.
3

Configure campaign settings

Select the assistant or sender, approved template and mappings, outreach windows, timezone, retries, and optional voice follow-up.
4

Start

Start now or schedule a local date and time in the campaign timezone. Pausing stops new delivery claims; active calls and accepted sends finish normally.

Monitoring a running campaign

The campaign view shows primary and follow-up status, last and next activity, delivered/failed totals, and voice duration where applicable. WhatsApp Call leads can wait in Awaiting permission until the customer grants explicit outbound-call permission. By default, when no leads remain and all calls have ended, the campaign completes automatically. This is gated by the mark_complete_when_no_leads setting (default on) — turn it off to keep the campaign running for continuous, automated lead importing, so newly added leads are picked up instead of the campaign closing itself.

Results

Use GET/PATCH /api/v1/campaigns/{id}/leads/{leadId} or MCP get_lead / update_lead for one lead. GET /api/v1/variables/catalog and MCP list_variable_sources list valid mapping sources. Use GET /api/v1/campaigns/{id}/deliveries or MCP list_campaign_deliveries for customer-safe delivery history. Internal provider, room, carrier, and permission references are never exposed.