Outbound campaigns let your AI agent automatically call through a list of contacts. Upload a CSV, configure the schedule, and the agent handles every call — personalized with each contact’s data.
Open an outbound assistant and click Campaigns in the sidebar.
CSV structure
Your CSV must follow specific formatting rules. Getting this wrong is the most common reason campaigns fail.
Required column
The phone number column must be named PHONE_NUMBER in uppercase exactly. phone_number, PhoneNumber, Phone, and other variations will not be recognized.
All numbers must be in E.164 format: +1XXXXXXXXXX for North American numbers.
+15141234567 ✅
+15147654321 ✅
5141234567 ❌ (missing country code)
514-123-4567 ❌ (wrong format)
Optional columns
Add any additional columns you want to use as dynamic variables in your script. Column names are flexible for all non-phone fields.
Example CSV:
PHONE_NUMBER,FIRST_NAME,LAST_NAME,ADDRESS,CITY
+15141234567,John,Doe,123 Main St,Montreal
+15147654321,Jane,Smith,456 Oak Ave,Laval
+14381234567,Marc,Tremblay,789 Rue St-Denis,Quebec City
Dynamic variables
Use column values from your CSV directly in your Call Flow script to personalize every call.
PulsyAI syntax: single braces {VARIABLE_NAME}
{FIRST_NAME} ✅ Correct
{ADDRESS} ✅ Correct
{{FIRST_NAME}} ❌ Wrong (double brace — used by other platforms, not PulsyAI)
{ NAME } ❌ Wrong (spaces not allowed)
Variable names are case-sensitive and must match your CSV column headers exactly.CSV: FIRST_NAME → Script: {FIRST_NAME} ✅
CSV: first_name → Script: {FIRST_NAME} ❌
Example script using variables:
"Bonjour {FIRST_NAME} {LAST_NAME}! Je suis Alex.
J'appelle concernant votre propriété au {ADDRESS} à {CITY}.
Seriez-vous intéressé à vendre?"
What the agent says to John Doe:
"Bonjour John Doe! Je suis Alex.
J'appelle concernant votre propriété au 123 Main St à Montreal.
Seriez-vous intéressé à vendre?"
Campaign configuration
| Setting | Description |
|---|
| Date / Time | When to start the campaign |
| Timezone | The timezone of your leads (not your own timezone) |
| CSV upload | Upload the contact list with the PHONE_NUMBER column |
Always use the lead’s timezone for scheduling, not yours. Calling at the wrong local time reduces contact rates and may violate regulations.
Campaign status
| Status | Meaning |
|---|
| Scheduled | Campaign is queued but hasn’t started yet |
| Active | The agent is currently making calls |
| Completed | All contacts in the list have been called |
Compliance
Outbound calling is regulated. Before running campaigns, ensure you have the required consent and are complying with applicable laws:
- Canada: CASL (Canadian Anti-Spam Legislation)
- USA: TCPA (Telephone Consumer Protection Act)
- Europe: GDPR
- All markets: Respect Do Not Call registries
PulsyAI provides the technology. Compliance with local regulations is your responsibility.
Auto Call Back
Most outbound calls will go unanswered on the first attempt. Use Auto Call Back to automatically retry unanswered contacts within your configured business hours, and fall back to SMS if the contact never picks up.