Campaign Management allows you to automate outbound voice calls and SMS messaging at scale. Create personalized campaigns with your AI assistant, import contacts, schedule execution, and monitor progress in real-time.
What are Campaigns?
A Campaign is an automated outreach system that connects your AI assistant with a list of contacts. Campaigns can:- Make outbound voice calls with your AI assistant
- Send bulk SMS messages with personalized content
- Combine both for mixed campaigns
Campaign Types
Call Campaigns
Call Campaigns
Outbound voice calling with your AI assistant.
- AI makes calls to each contact in your list
- Personalized welcome messages and conversation flow
- Handles voicemail detection automatically
- Records calls and generates transcripts
SMS Campaigns
SMS Campaigns
Bulk SMS messaging with personalized content.
- Send templated SMS messages to contacts
- Supports variable substitution for personalization
- Track delivery status and responses
Mixed Campaigns
Mixed Campaigns
Combines voice and SMS for comprehensive outreach.
- Start with a call, follow up with SMS (or vice versa)
- Different messaging per channel
- Unified tracking and analytics
Contact Management
Importing Contacts
Import your contacts from CSV or JSON files. The system automatically:- Validates phone number formats (converts to E.164)
- Detects duplicate contacts
- Maps columns to contact fields
- Extracts variables for templating
- CSV: Comma-separated values with header row
- JSON: Array of contact objects
CSV Import Example
CSV Import Example
Your CSV should have headers that map to contact fields:Required columns:
phone_number(orphone,mobile,cell)
name(orfull_name,contact_name)- Any custom fields for template variables
Column Mapping
Column Mapping
The system suggests mappings based on column names:
Custom columns become template variables automatically.
| CSV Column | Maps To |
|---|---|
| phone, phone_number, mobile | phone_number |
| name, full_name, contact_name | name |
| email, email_address | email |
| company, organization | company |
Contact Statuses
| Status | Description |
|---|---|
pending | Waiting to be contacted |
in_progress | Currently being contacted |
completed | Successfully contacted |
failed | Contact attempt failed |
no_answer | Call not answered |
busy | Line was busy |
voicemail | Reached voicemail |
skipped | Skipped (DNC list, etc.) |
Template System
Campaigns use Jinja2-style templating for personalized messages. Variables from your contact data are automatically available.Variable Syntax
Use double curly braces to insert variables:Built-in Filters
| Filter | Description | Example |
|---|---|---|
phone_format | Format phone numbers | {{phone_number|phone_format}} |
title_case | Capitalize words | {{name|title_case}} |
upper | UPPERCASE | {{company|upper}} |
lower | lowercase | {{email|lower}} |
System Variables
These variables are always available:| Variable | Description |
|---|---|
assistant_name | Name of your AI assistant |
company | Your company name |
name | Contact’s name (falls back to “there”) |
Fallback Values
Define fallback values for missing variables:Template Types
| Template | Used For |
|---|---|
welcome_message_template | Opening message when call connects |
agenda_template | Purpose/agenda of the call |
end_call_message_template | Closing message |
sms_message_template | SMS message content |
Template Example
Template Example
Welcome Message:With fallbacks:
Scheduling
Campaigns support flexible scheduling options:Schedule Types
Immediate
Immediate
Campaign starts execution right away when you click “Start”.
Scheduled (Once)
Scheduled (Once)
Campaign runs at a specific date and time.
Recurring
Recurring
Campaign runs on a repeating schedule.Frequency options:
daily, weekly, monthlyTime Windows
Respect calling hours by configuring allowed time windows:Execution Settings
Control how your campaign executes:| Setting | Description | Default |
|---|---|---|
max_attempts | Maximum call attempts per contact | 3 |
retry_delay_minutes | Wait time between retries | 30 |
concurrent_limit | Max simultaneous calls | 5 |
rate_limit_per_minute | Max calls initiated per minute | 10 |
Voicemail Detection (AMD)
For call campaigns, enable automatic voicemail detection:Monitoring & Analytics
Real-Time Progress
Monitor your campaign in real-time via WebSocket or REST API:- Total contacts - Number of contacts in campaign
- Completed - Successfully contacted
- Failed - Contact attempts that failed
- Pending - Waiting to be contacted
- Processing - Currently being contacted
WebSocket Updates
Connect to the WebSocket endpoint for live updates:Metrics
| Metric | Description |
|---|---|
completion_rate | Percentage of contacts processed |
success_rate | Successful contacts / total attempted |
answer_rate | Calls answered / total calls made |
average_duration | Average call duration (seconds) |
total_cost | Estimated total cost |
Campaign Lifecycle
| Status | Description |
|---|---|
draft | Campaign created, not yet started |
scheduled | Campaign scheduled for future execution |
running | Campaign actively executing |
paused | Campaign paused, can resume |
completed | All contacts processed |
cancelled | Campaign stopped before completion |
failed | Campaign encountered fatal error |
Best Practices
Compliance (TCPA, GDPR)
Compliance (TCPA, GDPR)
- Only contact people who have opted in
- Respect Do-Not-Call lists
- Call during reasonable hours (typically 8 AM - 9 PM local time)
- Provide opt-out mechanisms
- Keep records of consent
Optimal Scheduling
Optimal Scheduling
- Best days: Tuesday through Thursday
- Best times: 10 AM - 12 PM, 2 PM - 4 PM local time
- Avoid Monday mornings and Friday afternoons
- Consider your audience’s timezone
Template Design
Template Design
- Keep messages concise and clear
- Personalize with contact data
- Set appropriate fallback values
- Test templates before launching
- Use professional, conversational tone
Performance Optimization
Performance Optimization
- Start with lower concurrent limits and increase gradually
- Monitor answer rates to optimize timing
- Use retry logic for no-answers
- Segment contacts for targeted campaigns
Quick Start
- Create a campaign with your assistant and campaign type
- Import contacts from CSV or JSON
- Configure templates with personalization variables
- Set scheduling (immediate or scheduled)
- Start the campaign and monitor progress
- Analyze results and optimize
Use the WebSocket endpoint to build real-time monitoring dashboards for your campaigns.