Skip to main content
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
Each contact receives a personalized experience using template variables from your imported data.

Campaign Types

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
Best for: Appointment reminders, sales outreach, customer follow-ups, surveys
Bulk SMS messaging with personalized content.
  • Send templated SMS messages to contacts
  • Supports variable substitution for personalization
  • Track delivery status and responses
Best for: Promotional messages, appointment confirmations, notifications
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
Best for: Multi-touch outreach, lead nurturing, complex workflows

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
Supported Formats:
  • CSV: Comma-separated values with header row
  • JSON: Array of contact objects
Your CSV should have headers that map to contact fields:
Required columns:
  • phone_number (or phone, mobile, cell)
Recommended columns:
  • name (or full_name, contact_name)
  • Any custom fields for template variables
The system suggests mappings based on column names:Custom columns become template variables automatically.

Contact Statuses


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

System Variables

These variables are always available:

Fallback Values

Define fallback values for missing variables:

Template Types

Welcome Message:
With fallbacks:

Scheduling

Campaigns support flexible scheduling options:

Schedule Types

Campaign starts execution right away when you click “Start”.
Campaign runs at a specific date and time.
Campaign runs on a repeating schedule.
Frequency options: daily, weekly, monthly

Time Windows

Respect calling hours by configuring allowed time windows:

Execution Settings

Control how your campaign executes:

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


Campaign Lifecycle


Best Practices

  • 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
  • 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
  • Keep messages concise and clear
  • Personalize with contact data
  • Set appropriate fallback values
  • Test templates before launching
  • Use professional, conversational tone
  • 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

  1. Create a campaign with your assistant and campaign type
  2. Import contacts from CSV or JSON
  3. Configure templates with personalization variables
  4. Set scheduling (immediate or scheduled)
  5. Start the campaign and monitor progress
  6. Analyze results and optimize
Use the WebSocket endpoint to build real-time monitoring dashboards for your campaigns.