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.