Skip to main content
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

PHONE_NUMBER
The phone number column must be named PHONE_NUMBER in uppercase exactly. phone_number, PhoneNumber, Phone, and other variations will not be recognized.

Phone number format

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

SettingDescription
Date / TimeWhen to start the campaign
TimezoneThe timezone of your leads (not your own timezone)
CSV uploadUpload 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

StatusMeaning
ScheduledCampaign is queued but hasn’t started yet
ActiveThe agent is currently making calls
CompletedAll 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.