Skip to main content

Distribution Lists

Distribution Lists contain the phone numbers that auto-dialer campaigns call. They support CSV upload, manual entry, versioning, copying, and archiving.

Purpose​

Use this module to:

  • Create lists of phone numbers
  • Upload numbers via CSV
  • Add single numbers or batches
  • Version lists for tracking changes
  • Assign lists to campaigns

List Status Lifecycle​

DRAFT --[first dest added]--> READY
DRAFT --[CSV upload]--> PROCESSING --[success]--> READY
--[failure]--> FAILED
READY --[assign to campaign]--> IN_USE --[campaign done]--> USED
READY|FAILED|USED --[archive]--> ARCHIVED
READY|USED --[create version]--> new version (DRAFT)

CSV Upload​

  1. Navigate to a distribution list
  2. Click Upload CSV
  3. Select a CSV file
  4. The system validates each row for E.164 format and deduplicates
  5. Processing runs asynchronously; view progress with the job ID

Lists up to 100,000 rows use ProcessListUploadJob. Larger lists use ProcessLargeListJob.

Versioning​

Each list can have a version chain:

  • parent_list_id links a list to its previous version
  • Creating a new version archives the current list and creates a child with an incremented version number
  • The version history traverses the parent chain to the root

Permissions​

ActionOwnerPBX AdminPBX UserReporter
View distribution listsYesYesYesYes
Create distribution listsYesYesNoNo
Update distribution listsYesYesNoNo
Delete distribution listsYesYesNoNo
Assign to campaignYesYesNoNo

UI Workflow​

Create a List​

  1. Navigate to Auto Dialer > Distribution Lists
  2. Click Create List
  3. Enter a name and optional description
  4. Save

Add Destinations​

  1. Open the list
  2. Click Add Destination or Upload CSV
  3. Enter phone numbers in E.164 format
  4. Save

Assign to a Campaign​

  1. Open the list
  2. Click Assign to Campaign
  3. Select a campaign
  4. Confirm

The list status changes to IN_USE.

Key Data Fields​

auto_dialer_lists Table​

ColumnTypeNotes
idbigintPrimary key
organization_idFKTenant scope
campaign_idFK nullableCurrently assigned campaign
namestring
descriptionstring nullable
version_numberinteger
parent_list_idFK nullablePrevious version
is_latest_versionboolean
statusenumDRAFT, PENDING, PROCESSING, READY, FAILED, IN_USE, USED, ARCHIVED
total_rowsinteger
valid_rowsinteger
invalid_rowsinteger
validation_errorsJSON
archived_atdatetime nullable

auto_dialer_destinations Table​

ColumnTypeNotes
idbigintPrimary key
organization_idFKTenant scope
list_idFKParent list
phone_numberstringE.164 format
descriptionstring nullable
statusenumDestinationStatus
dial_attemptsinteger
next_retry_atdatetime nullable
last_dispositionstring
durationinteger
billsecinteger
MethodEndpointPurpose
GET/POST/v1/auto-dialer-campaigns/listsList/create lists
GET/v1/auto-dialer-campaigns/lists/{list}Show list
POST/v1/auto-dialer-campaigns/lists/{list}/uploadCSV upload
GET/v1/auto-dialer-campaigns/lists/upload-progress/{jobId}Upload progress
POST/v1/auto-dialer-campaigns/lists/{list}/destinationsAdd single destination
POST/v1/auto-dialer-campaigns/lists/{list}/destinations/batchAdd batch (max 1000)
GET/v1/auto-dialer-campaigns/lists/{list}/destinationsList destinations
GET/v1/auto-dialer-campaigns/lists/{list}/versionsVersion history
POST/v1/auto-dialer-campaigns/lists/{list}/copyCopy list
PATCH/v1/auto-dialer-campaigns/lists/{list}/archiveArchive list
GET/v1/auto-dialer-campaigns/lists/{list}/downloadCSV export
POST/v1/auto-dialer-campaigns/lists/{list}/assignAssign to campaign
POST/v1/auto-dialer-campaigns/lists/{list}/unassignUnassign from campaign

See the OPBX REST API reference for full schemas.