Documentation Index
Fetch the complete documentation index at: https://docs.burki.dev/llms.txt
Use this file to discover all available pages before exploring further.
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.