Skip to main content

Auto Dialer Campaigns

The Auto Dialer manages outbound calling campaigns for sales, surveys, notifications, and other use cases.

Purpose

Use this module to:

  • Create and manage outbound campaigns
  • Assign distribution lists
  • Configure rate limiting (CAC and CPS)
  • Set schedules and retry logic
  • Choose routing destinations for answered calls
  • Monitor campaign progress in real time

Campaign Status Lifecycle

DRAFT --[start]--> ACTIVE --[pause]--> PAUSED --[resume]--> ACTIVE
|
+--[all done]--> COMPLETED

ANY --[archive]--> ARCHIVED (pauses first if ACTIVE)
StatusDescription
DraftInitial configuration state
ActiveCurrently dialing
PausedTemporarily stopped
CompletedAll destinations processed
ArchivedSoft-deleted, no longer editable

Rate Limiting

ParameterDescriptionRange
CAC (Concurrent Active Calls)Maximum simultaneous active calls1-50
CPS (Calls Per Second)Maximum call initiation rate1-5 in UI, 1-30 clamped in worker

The Go worker calculates the batch size per poll cycle as min(CPS × poll_interval_seconds, CAC).

Routing Destinations

When a call is answered, it can be routed to:

DestinationDescription
AI AssistantConnect to an AI assistant
AI Load BalancerDistribute across AI assistants
HangupDisconnect the call

AMD Actions

When AMD is enabled, the campaign defines actions for each detection result:

ResultAction Options
HumanHANGUP, CONTINUE, or a CXML URL
VoicemailHANGUP, CONTINUE, or a CXML URL
UnknownHANGUP, CONTINUE, or a CXML URL

Scheduling

A campaign is runnable when:

  • Status is ACTIVE
  • Current date is within start_date and end_date
  • Current day and time are within the configured weekly schedule

Retry Logic

Retryable dispositions: busy, no-answer, cancelled.

Backoff interval: 5 × 2^(attempt-1) minutes, capped at 60 minutes.

Permissions

ActionOwnerPBX AdminPBX UserReporter
View campaignsYesYesYesYes
Create campaignsYesYesNoNo
Update campaignsYesYesDraft/Paused onlyNo
Start/pause/resume/archiveYesYesNoNo
View monitorYesYesYesYes

UI Workflow

Create a Campaign

  1. Navigate to Auto Dialer > Campaigns in the sidebar
  2. Click Create Campaign
  3. Enter name, schedule, and rate limits
  4. Choose the routing destination
  5. Configure AMD actions if needed
  6. Save as Draft

Assign a Distribution List

  1. Open the campaign detail
  2. Click Assign List
  3. Select or upload a distribution list
  4. Save

Start a Campaign

  1. Open the campaign detail or list
  2. Click Start
  3. The campaign status changes to ACTIVE
  4. The Go dialer worker begins polling and initiating calls

Monitor a Campaign

  1. Navigate to Auto Dialer > Monitor
  2. View the bird's-eye summary of all active and paused campaigns
  3. Click a campaign card for drill-down statistics, active calls, and disposition charts

Key Data Fields

auto_dialer_campaigns Table

ColumnTypeNotes
idbigintPrimary key
organization_idFKTenant scope
namestring
statusenumCampaignStatus
routing_destination_typeenumai_assistant, ai_load_balancer, hangup
routing_destination_idinteger nullable
dial_timeoutinteger
caller_idstringDefault caller ID
max_dial_attemptsinteger
concurrent_active_callsintegerCAC limit
calls_per_secondintegerCPS limit
days_activeJSONActive days
start_time / end_timetimeDaily window
start_date / end_datedateCampaign window
timezonestringIANA timezone
scheduleJSONWeekly schedule
action_voicemailstringAMD action
action_humanstringAMD action
action_unknownstringAMD action
MethodEndpointPurpose
GET/POST/PUT/DELETE/v1/auto-dialer-campaigns[/{campaign}]Standard CRUD
PATCH/v1/auto-dialer-campaigns/{campaign}/startStart campaign
PATCH/v1/auto-dialer-campaigns/{campaign}/pausePause campaign
PATCH/v1/auto-dialer-campaigns/{campaign}/resumeResume campaign
PATCH/v1/auto-dialer-campaigns/{campaign}/archiveArchive campaign
GET/v1/auto-dialer-campaigns/{campaign}/destinationsList destinations
GET/v1/auto-dialer-campaigns/{campaign}/concurrencyReal-time CAC
GET/v1/auto-dialer-campaigns/monitor/summaryBird's-eye monitor
GET/v1/auto-dialer-campaigns/{campaign}/monitor/detailCampaign drill-down
GET/v1/auto-dialer-campaigns/available-caller-idsAvailable DIDs for caller ID pooling
GET/v1/auto-dialer-campaigns/{campaign}/caller-id-statsPer-DID usage statistics
POST/v1/auto-dialer-campaigns/{campaign}/reset-caller-id-cycleReset round-robin position

See the OPBX REST API reference for full schemas.