Launch a campaign
Test the agent, build the list, understand what happens to your per-contact variables, then launch and watch the results.
You need an active workspace with voice enabled, funds, a caller-ID number and an active hosted agent. There is no campaign switch to request.
Before you launch: test it
- Talk to the agent in your browser, capped at 180 seconds, for voice, recognition, latency and interruptions. See Test an agent.
- Run a simulation suite in the Simulations Lab: scripted callers, your own pass and fail rules, text or voice.
- A conversation workflow adds Chat for wording and branches, and Phone, which arms one number so your next call to it, from the caller ID you declared, answers with the pinned draft.
- None of these prove the carrier route. On a draft campaign, Call one contact now places one real, billed call to a contact you pick (add your own number as a row to call yourself). It uses the campaign's AI agent, caller ID and that contact's values, and goes through the same checks as any call: do-not-call, calling hours, your workspace's limits and your balance. The campaign stays a draft and the contact is not marked done, so the launch still calls them. A draft places one test call at a time. The test call is listed on the draft with a link to its recording, transcript and cost. The same button is on the wizard's Review and launch step once the campaign is saved as a draft. See Test call on a draft.
Build the list
- Upload a CSV or an Excel workbook (
.xlsx), one row per person, or paste rows. Only the phone column, in international format, is required. - A workbook is read in your browser: the first sheet, the first row as column
names, then the same mapping, preview and per-row report a CSV gets. Date and
number cells arrive as the text the sheet shows — no
46280in place of a date. Keep account references and phone numbers in text-formatted columns; a spreadsheet stores a number as a float and rounds anything past 15 digits before you export it. - Up to 10,000 rows per import. Duplicates are skipped, invalid numbers reported per row.
- Every other column becomes a variable: 28 per contact, 512 characters each, 4 KB in total. No secrets.
- Time zone defaults from the number's country. Calling hours run in each contact's zone, or one fixed zone.
- Numbers on your do-not-call register are never dialed.
- The wizard's Import check shows, before you launch:
- how many contacts of a saved list are already on your do-not-call register. For a new upload the count appears once the list is saved.
- the list's languages, counted per language and checked against the languages the chosen AI agent has published. A contact in a language the AI agent has not published ends as "language not published" when it is dialed. Publish the language on the AI agent, or, for an upload, remove those contacts. A contact with no language is called in the campaign's language.
- contacts whose language is not a language code, such as "English" instead of "en". Their calls fail before dialing: correct the language column.
Per-customer data in the call
- Each contact's columns become that call's call
variables: whatever the agent declares is filled from
the contact, and
contact.*andcampaign.*come for free. A value that does not fit its declaration stops that contact's call before it is placed, with the variable named. - The agent's greeting, workflow lines and SMS templates speak them wherever
you wrote
{{name}}; a protected variable (a balance, a date of birth) is said only after the caller is confirmed. - The wizard's What this AI agent says preview shows the chosen agent's greeting and lines filled in for the first contact of the list, before you launch. For an agent that is not ready for calls it says so instead ("This AI agent isn't ready for calls yet: its setup hasn't been published."), as a call to it would be refused.
- For a fact that must be fetched during the call, give the agent a read tool: an Integration, whose URL and secret the model never sees, or a webhook tool.
Create and launch
- Contacts — the list, the purpose, and the consent basis: existing customers or explicit consent.
- Agent and numbers — the hosted agent and the numbers to rotate caller ID across. Under the chosen AI agent, How calls open shows who speaks first, how long the AI agent waits for the person who answers, and its opening line, with an Edit AI agent link. A campaign has no opening or script of its own: what a call says comes from the AI agent, so you change it there. When the AI agent waits for the person to speak first and has no opening line, the step warns you: if the person waits too, the call can stay silent. Add an opening line, or let the AI agent speak first.
- Schedule and retries — calling hours per weekday, at most four windows a day, and a retry preset: sales, collections or single attempt. Under the presets, one line per outcome says how many attempts it gets and how far apart; Advanced opens the table to set attempts and waits per outcome yourself (a custom policy).
- Review and launch — contact count, spend estimate, and a preview of every launch check.
Launch runs one check against your workspace capabilities: no sanctioned destination, workspace active, voice enabled, every country on your allowlist, a permitted purpose, a declared consent basis. Caps apply per call.
Watch the results
- The campaign page shows audience, remaining, pick-up rate, outcomes and spend.
- Each attempt opens its call: recording, transcript and any post-call extraction. See Read call evidence.
- The Calls page filters by campaign, so you can read one campaign's calls together. See Filter calls by campaign.
- Export CSV gives the disposition per contact, and webhooks push
campaign.launched,campaign.contact.completedandcampaign.completed. See Post-call results.
Common questions
- Why did my launch go to review? Your workspace is not active, voice is not enabled, or a destination is not on your allowlist.
- Why did a country need review? It is not on your workspace's destination list yet.
- Why is a contact skipped? It is on your do-not-call register, its calling hours never reopen, or the campaign was cancelled. A contact whose window is merely closed waits for the next one.
- Can I change settings after launch? Pause, then change hours, caller IDs, retries, concurrency and end date. List, agent, purpose and consent are locked — duplicate to change those.
- How many calls a day? Whichever workspace cap binds first. The Capabilities page lists them.
- How do I stop it? Pause keeps the remaining contacts. Cancel ends the run and skips them.
- Which lists may I call? Your own customers, or people who explicitly agreed. See Policy and outbound.