What Are Campaigns?
Campaigns are queue management systems for automated outbound calls. They process contact lists, handle retries, respect timezones, and provide real-time monitoring. Use cases include appointment reminders, post-purchase follow-ups, renewal reminders, and lead qualification for consented contacts.Queue Management
Process thousands of contacts efficiently with intelligent queue management and fair-share rate limiting.
Timezone Awareness
Automatically respect local business hours. Never call contacts outside their timezone’s acceptable hours.
Smart Retries
Automatically retry busy signals, no-answers, and failed calls with configurable retry logic.
Real-Time Analytics
Monitor connection rates, completion rates, and more in real-time.
How Campaigns Work
1. Create Campaign
Create a campaign through the TopCalls dashboard. Define the AI configuration (instructions, voice), schedule, and add your contact list. Campaign starts in
draft status.2. Add Contacts
Upload a CSV or add contacts through the dashboard. Each contact can have custom variables (e.g.,
{{name}}, {{appointment_date}}, {{order_number}}). Ensure all contacts have proper consent where required.3. Start Campaign
Start the campaign via the dashboard or API (
POST /v1/campaigns/{id}/start). The system picks up contacts from the queue and dispatches calls.4. Execution
Calls are made respecting:
- Account rate limits
- Campaign parallel call limits
- Timezone restrictions (business hours)
- Retry logic
- Compliance requirements (opt-out handling, frequency limits)
5. Monitoring
Track real-time stats: calls completed, connection rates, and more. Use
GET /v1/campaigns/{id} to check progress.Campaign Statuses
| Status | Description | Actions Available |
|---|---|---|
draft | Configuration phase, no calls made | Edit, Start |
scheduled | Waiting for start time | Edit, Start, Cancel |
running | Actively dispatching calls | Pause, Stop |
paused | Temporarily stopped | Resume, Stop |
completed | All contacts processed | View stats |
cancelled | Permanently stopped | View stats |
API Endpoints
Campaigns are created and configured through the TopCalls dashboard. The API provides control and monitoring:| Endpoint | Description |
|---|---|
GET /v1/campaigns | List all campaigns |
GET /v1/campaigns/{id} | Get campaign details and stats |
POST /v1/campaigns/{id}/start | Start a campaign |
POST /v1/campaigns/{id}/pause | Pause a running campaign |
Rate Limiting & Fair Share
Account-Level Rate Limit
Every account has amax_calls_per_minute setting (default: 20). This controls both API calls and campaign calls.
Campaign Fair Share
If multiple campaigns are running, they share the account limit fairly. Campaigns that want less don’t waste capacity for others. Example:- Account limit: 20 calls/minute
- 2 campaigns running
- Each campaign gets: 10 calls/minute (fair share)
Timezone & Business Hours
Contacts are only called during their local business hours:Timezone awareness helps prevent compliance issues and improves connection rates. Customers are responsible for compliance with local calling laws (TCPA/TSR/DNC, GDPR).
Retry Logic
Failed calls are automatically retried:- Busy: Retry after a few minutes
- No Answer: Retry after a couple of hours
- Failed: Retry after an hour (technical issues)
- Voicemail: Optional retry (configurable)
Contact Variables
Personalize each call with contact-specific data:Campaign Analytics
Track key metrics in real-time:| Metric | Description |
|---|---|
| Total Contacts | Number of contacts in campaign |
| Calls Completed | Successfully finished calls |
| Calls Pending | Still in queue |
| Calls Failed | Technical failures |
| Connection Rate | % of calls that connected |
| Completion Rate | % that completed successfully |
| Avg Duration | Average call length |
Best Practices
Do This
- Verify consent: Ensure all contacts have proper consent where required
- Start small: Test with 10-20 contacts before scaling
- Monitor closely: Watch connection rates and adjust
- Respect timezones: Always configure timezone and business hours
- Set retry limits: Don’t retry indefinitely
- Use variables: Personalize calls with contact data
- Honor opt-outs: Immediately remove contacts who request to be removed
Avoid This
- Call without consent: Never call contacts who haven’t opted in where required
- Ignore rate limits: Respect account and campaign limits
- Call outside hours: Always use timezone awareness
- Skip testing: Test your instructions on a few calls first
- Over-retry: Set reasonable max attempts
Next Steps
Making Calls Guide
Learn how to make individual calls via API.
Webhooks Guide
Set up webhooks to receive real-time campaign and call events.