Dialer User Guide
Back to Dashboard

Dialer User Guide

Complete guide to managing outbound dialing campaigns

Version 1.3 · March 2026

Campaign Management

Create, start, pause, stop, and reset outbound campaigns

Auto Audio Generation

AI-powered text-to-speech for personalized call audio

Real-Time Dashboard

Live call feed, stats, and campaign monitoring

Full Reporting

Detailed reports with CSV export and charts

CRTC Compliant

Province-based timezone-aware dialing windows

Speed Control

Per-campaign and global speed adjustment

1 Overview

The Dialer is a campaign management platform that drives outbound calling. It supports two call types that work with separate backend dialers.

Call Types

LB
Link Back (LB)

Interactive IVR call. Plays a personalized message, then waits for DTMF input. Press 1 to connect to a representative, Press 2 if wrong person. If no key is pressed, the full message plays and the system calls back.

MD
Message Drop (MD)

Plays a full pre-recorded voicemail message with no interaction required. The message includes the debtor's full name, toll-free callback number, and contact details.

Both call types support English and French audio. English uses the Natasha voice and French uses the Denise voice by default.

2 Getting Started

How to log in and navigate the system.

1
Open the Dialer

Navigate to the Dialer URL provided by your system administrator in your browser. You will see the login screen.

2
Sign In

Enter your username and password, then click Sign In. Your credentials are provided by the system administrator.

3
Navigate Using the Sidebar

After login, you will see the main dashboard. Use the left sidebar to navigate between pages: Dashboard, Campaigns, New Campaign, Call Queue, Results, Reports, Test Call, Users, and Settings.

User Roles

RolePermissions
Super Admin Full access. Create/manage campaigns, manage users, change system settings, delete campaigns, run audio cleanup.
Admin Create and manage campaigns, start/stop/pause campaigns, adjust speed, generate audio, send test calls, delete campaigns.
Viewer View-only access. Can see the dashboard, campaigns, results, reports, and call queue but cannot make changes.

3 Dashboard

Your command center for monitoring all campaign activity in real time.

Stat Cards

The top row displays four key metrics that update automatically:

CardDescription
Active CampaignsNumber of campaigns currently in "active" (dialing) state.
Today's CallsTotal calls attempted today across all campaigns.
Success RatePercentage of today's calls that resulted in "completed" or "transferred" status.
Calls/MinCurrent calls being sent per minute across all campaigns (live counter).

Campaign Overview Cards

Below the stats, each campaign is shown as a card with a progress bar, record counts, and status badge. Click any card to view the full campaign detail page.

Live Call Feed

The bottom section shows a real-time feed of calls as they happen. New calls appear at the top with a brief animation. The feed shows the campaign name, debtor name, phone number, call type (LB/MD), and current status.

The dashboard auto-refreshes every 5 seconds. The live call feed updates instantly via WebSocket - no need to manually refresh.

4 Creating a Campaign

Step-by-step guide to setting up a new outbound dialing campaign.

1
Go to "New Campaign"

Click New Campaign in the sidebar, or use the icon.

2
Fill in Campaign Details

Campaign Name - A descriptive name (e.g. "BMO Distressed Jan 2026 - LB English").
Type - Choose Link Back (LB) for interactive calls or Message Drop (MD) for voicemail drops.
Language - English or French. This determines the default TTS voice.

3
Configure TTS Scripts

Each campaign has two TTS template fields: an English template and a French template. The English template is used for all records. The French template is used for records with province QC (Quebec) - these records will receive bilingual audio that combines both the English and French scripts into a single file. Use template variables (like {full_name}) that get replaced with each debtor's actual data. See the TTS Templates section for all available variables.

4
Set Dialing Parameters

Transfer Number (LB only) - The DID where connected calls transfer to.
Calls Per Minute - Starting speed for this campaign (adjustable later).
Dial Order - Choose Random (default) to dial records in random order, or Sequential to dial them in the order they appear in the CSV. Can be changed on-the-fly while the campaign is active.
Caller IDs - Comma-separated list of outbound caller IDs to display on the recipient's phone (e.g. 18663123618,18889617999).
Dial Start/End Time - The daily dialing window. Default: 9:00 AM to 6:45 PM.
Saturday/Sunday - Check these to allow weekend dialing.

5
Upload CSV File

Select your CSV file. The system will parse all records and store them in the campaign. See the CSV Format section for column requirements.

6
Click "Create Campaign"

The campaign is created in Draft status. The CSV will be processed in the background - you'll see a notification when complete.

Campaigns never auto-start. After creating a campaign, you must generate audio first, then explicitly click Start. This is a safety feature to prevent accidental dialing.

5 CSV File Format

The system accepts a standard CSV layout. Columns must be in the exact order shown below.

ColumnRequiredDescription
Account Number 1YesUnique account identifier. Used for audio file naming.
First NameYesDebtor's first name.
Last NameYesDebtor's last name.
ProvinceYes2-letter province code (ON, QC, AB, BC, etc). Used for timezone-based dialing windows. QC records receive bilingual audio.
CollectorNoAssigned collector ID.
Client NameNoCreditor/client name.
StatusNoAccount status field.
BalanceNoOutstanding balance amount. Available as {balance} template variable.
EmailNoDebtor's email address.
Agency PhoneNoAgency contact phone number. Available as {agency_phone} template variable.
Assign DateNoDate the account was assigned.
Full NameYesFull name for TTS audio generation.
AddressNoDebtor's street address. Available as {address} template variable.
CityNoDebtor's city. Available as {city} template variable.
Postal CodeNoDebtor's postal code. Available as {postal_code} template variable.
TFNYesToll-free callback number spoken in the message.
DIDFor LBDirect inward dial number for call transfers.
Original CreditorNoOriginal creditor name. Available as {original_creditor} template variable.
Original ProductNoOriginal product/service type.
amount_dueNoAmount currently due. Available as {amount_due} template variable.
min_paymentNoMinimum payment amount. Available as {min_payment} template variable.
sif_pctNoSettlement-in-full percentage.
Client Ref #NoClient reference number.
Phone 1 through Phone 20At least 1Up to 20 phone numbers per record. The system dials them in order, cycling to the next phone on each attempt.
The CSV can have partially populated phone columns. The system will skip empty phone fields and dial the next available number. Additional columns beyond the standard layout are preserved in raw data for reference.
Multi-phone cycling: Each record can have up to 20 phone numbers. On the first dial attempt, the system calls Phone 1. If that attempt results in no answer or failure, the next attempt will try Phone 2, and so on through all available phone numbers. Records with no valid phone numbers are automatically skipped.

6 TTS Templates

Customize the spoken text for each campaign. Use template variables that are replaced with each debtor's actual data.

Available Variables

VariableReplaced WithExample Output
{full_name}Debtor's full nameJOHN MUGLIA
{first_name}First name onlyJOHN
{last_name}Last name onlyMUGLIA
{account_number}Account number1234567
{client_name}Client/creditor nameABC Financial Group
{tfn}Toll-free number (formatted)(800) 270-9938
{balance}Outstanding balance$628.63
{amount_due}Amount due$534.34
{min_payment}Minimum payment$125.73
{did}DID number (formatted)(416) 901-3704
{agency_phone}Agency phone(510) 000-0000
{original_creditor}Original creditor nameACME CORP
{email}Email addressjohn@example.com
{city}CityMARKHAM
{province}Province codeON
{postal_code}Postal codeL3S4V6

Example Templates

Link Back Template:
"This message is for {full_name}. This is an important call regarding your account with {client_name}. To speak with a representative, press 1. If you are not {first_name}, press 2. If you do not press a key, you will be called back at this number."
Message Drop Template:
"This message is for {full_name}. This is an important call from {client_name} regarding your account. Please call {tfn} at your earliest convenience. Again, please call {tfn}. Thank you."
Default templates are configured in Settings and are automatically loaded when creating a new campaign. You can customize them per-campaign.

Bilingual Audio (Quebec)

Records with province QC (Quebec) automatically receive bilingual audio when the campaign has a French template configured. The system concatenates the English audio segment followed by the French audio segment into a single WAV file. This ensures compliance with Quebec language requirements without needing separate campaigns.

Bilingual audio is only generated when both the English and French TTS templates are filled in on the campaign. If only the English template is set, all records (including QC) will receive English-only audio.

7 Audio Generation

Before a campaign can start, every record needs a personalized audio file generated via text-to-speech.

1
Open Campaign Detail

Navigate to the campaign you want to generate audio for by clicking on it from the Campaigns list or Dashboard.

2
Click the "Audio" Button

Click the Audio button in the campaign header. A dialog will appear with two options.

3
Choose Generation Mode

Generate for New Files Only - Only generates audio for records that don't have an audio file yet. Use this when you've added new records via CSV upload.

Regenerate ALL Audio - Deletes all existing audio files for this campaign and regenerates everything from scratch. Use this when you've changed the TTS template or voice.

4
Monitor Progress

Audio generation runs in the background. You'll see toast notifications with progress updates. The campaign status changes to Audio Generating and then to Audio Ready when complete.

5
Stopping Audio Generation

If you need to cancel audio generation while it's in progress, click the Stop Audio button that appears in the campaign toolbar (next to the Audio button) during generation. Generation will stop after the current batch finishes. Any audio already generated is kept, so you can resume later by clicking Generate Audio again — it will only generate the remaining files.

You cannot start a campaign until ALL records have audio generated. The Start button will show an error if any records are missing audio files.
Regenerate ALL will permanently delete existing audio files from the server. Only use this when you intentionally want to change the spoken message for all records.

8 Campaign Controls

How to start, pause, stop, and reset your campaigns.

Campaign Lifecycle

Draft Audio Generating Audio Ready Active Completed
From Active, you can also go to: Paused or Stopped

Control Actions

ActionButtonWhat It Does
Start Start Begins dialing. Only available when audio is fully generated. Campaign must be in Audio Ready, Paused, or Stopped status.
Pause Pause Temporarily stops sending new calls. Calls already in progress continue. Resume by clicking Start again.
Stop Stop Stops the campaign. Can be restarted later to continue where it left off.
Stop Audio Stop Audio Cancels in-progress audio generation after the current batch finishes. Already-generated audio is kept. Only visible while audio is being generated.
Reset Reset Re-queues ALL records back to "pending" status. Resets all dial attempt counters. Use this to re-dial an entire list.
Multi-day campaigns: You can pause a campaign at the end of the day and resume it the next day. The system remembers which records have been dialed and continues from where it left off.

9 Speed Control

Fine-tune dialing speed at both the campaign level and system-wide level.

Per-Campaign Speed

Each campaign has its own Calls Per Minute (CPM) setting. On the campaign detail page, use the speed slider to adjust from 1 to 200 CPM and click Apply.

Dial Order

Below the speed slider, you can toggle the Dial Order between two modes:

ModeIconBehavior
Random Records are selected randomly from the pending pool each tick. This is the default and helps distribute calls across different debtors and provinces.
Sequential Records are dialed in the order they were imported from the CSV (by database ID). Useful when the list is pre-sorted by priority.
Change on-the-fly: You can switch between Random and Sequential while a campaign is actively dialing. The change takes effect immediately on the next engine tick - no need to pause or restart the campaign.

Global Speed Limit

The Global Speed (CPM) control is in the bottom of the sidebar and applies across ALL active campaigns combined. If you have 3 campaigns each set to 50 CPM but the global limit is 100 CPM, the system will only send 100 calls per minute total.

How speed distribution works: The engine runs every second and calculates how many calls each campaign should send based on its CPM setting. The global limit acts as a ceiling. For example, at 60 CPM, the system sends approximately 1 call per second.
Setting very high speeds (200+ CPM) requires sufficient FreeSWITCH capacity and SIP trunk bandwidth. Start conservatively and increase gradually.

10 Updating Campaigns

How to add new records, change settings, and manage audio for existing campaigns.

Adding New Records via CSV

1
Click "Add CSV" on the campaign detail page

This opens the upload dialog. Select your new CSV file. The new records are added to the existing campaign - existing records are not deleted or modified.

2
Generate audio for new records

After uploading, click Audio and choose Generate for New Files Only. This will only create audio for the newly added records.

Removing Records from a Campaign

To remove specific accounts from a campaign before they are dialed:

1
Click "Delete Records" on the campaign detail page

This opens a dialog where you can paste account numbers (one per line, or comma/space separated).

2
Paste the account numbers and click Delete Records

Only pending records (not yet dialed) will be deleted. Records that have already been called are kept for reporting purposes. You'll see a confirmation showing how many records were removed.

Editing Campaign Settings

Click the Edit button on the campaign detail page to change the campaign name, TTS templates, voice, transfer number, speed, dial order, dialing window, and language.

Changing Audio for All Records

If you change the TTS template or voice and want all records to use the new script:

1
Edit the campaign and update the TTS template

Save your changes.

2
Click Audio and choose "Regenerate ALL Audio"

This deletes all existing audio files and regenerates them with the new template. The campaign must be paused or stopped first.

11 Call Queue

View calls that are currently queued or in the process of being dialed.

The Call Queue page shows all records in "queued" or "dialing" status across all campaigns. This gives you a real-time view of what the system is actively working on.

ColumnDescription
CampaignCampaign name and type (LB/MD).
NameDebtor's full name.
AccountAccount number.
PhonePhone number being dialed.
ProvinceProvince code (used for timezone checks).
Status"queued" = waiting to be sent. "dialing" = call is in progress.
TimeWhen the call was queued or initiated.
The call queue page auto-refreshes every 5 seconds. Calls typically move through the queue quickly - if you see calls stuck in "queued" status for a long time, check the dialer server health.

12 Results & Reporting

Track outcomes and generate reports for analysis and compliance.

Results Page

The Results page shows a paginated list of all call outcomes. Filter by campaign using the dropdown. Each row shows the timestamp, campaign, debtor info, phone dialed, call type, status, duration, and any DTMF input captured.

Call Status Reference

StatusMeaning
completedCall was answered and the full message played.
transferredDebtor pressed 1 and was connected to a representative.
no_answerPhone rang but nobody answered within the timeout.
busyThe line was busy.
failedCall failed due to technical error or invalid number.
wrong_personDebtor pressed 2 indicating they are not the intended recipient.

Reports Page

The Reports page provides summary analytics with filters:

Exporting Data

Click Export CSV on the Reports page to download a CSV file with all call results matching your current filters. The export includes: Date/Time, Phone Dialed, Campaign Name, List Name, Call Duration, Disposition, Call ID, Account Number, Full Name, Province, DTMF, and Hangup Cause.

Export data is formatted for easy import into third-party systems. The CSV follows a standard result file format with all relevant call details.

13 Test Calls

Send individual test calls to verify audio quality and campaign configuration before going live. The Test Call page has two tabs: Quick Test and Campaign Test.

Quick Test

Generate TTS audio on-the-fly and place a test call — no campaign needed. This is useful for testing TTS scripts, voices, and call flow before creating a campaign.

1
Enter Phone Number

Enter the phone number you want to receive the test call on.

2
Select Call Type

Choose Link Back or Message Drop. For Link Back, you'll also need to enter a Transfer Number.

3
Enter TTS Text

Type the message you want spoken. This is raw text — template variables like {full_name} are not substituted in Quick Test mode.

4
Choose Voice and Language

Select from available voices: Natasha (English AU), Jenny (English US), Clara (English CA), Denise (French FR), or Sylvie (French CA). Select the language for the call.

5
Click "Generate & Call"

The system generates the audio in real-time and immediately places the call. The temporary audio file is automatically cleaned up after 5 minutes.

Campaign Test

Test a call using an existing campaign record's pre-generated audio. This tests exactly what the debtor will hear.

1
Select a Campaign

Choose the campaign you want to test from the dropdown. This loads the records available for testing.

2
Select a Record

Choose a specific debtor record. This determines which audio file will play during the test call.

3
Enter Your Phone Number

Enter the phone number you want to receive the test call on (e.g. your desk phone or mobile).

4
Click "Send Test Call"

The system will initiate a call to your phone using the selected record's audio. For LB calls, you can test the full IVR flow (press 1 to transfer, press 2 for wrong person).

Audio must be generated first. If the selected record doesn't have an audio file, the Campaign Test will fail with an error. Generate audio for the campaign before testing. Alternatively, use Quick Test which generates audio on-the-fly.

14 User Management

Super Admins can create and manage user accounts. (Super Admin only)

Creating a New User

1
Go to Users page and click "Add User"

Fill in the username, password, full name, email, and role. Click Create User.

Managing Users

From the Users page you can:

You cannot delete your own account. You also cannot downgrade the last Super Admin - the system always needs at least one.

15 System Settings

Configure global system behavior. (Super Admin only for editing)

SettingDescriptionDefault
Global Max CPMMaximum calls per minute across all campaigns combined.200
Auto-Stop TimeAll active campaigns are automatically paused at this time (Eastern Time).18:45
Stale Audio DaysAudio files from completed/stopped campaigns older than this many days are auto-deleted during daily cleanup.30
English VoiceDefault TTS voice for English campaigns.en-AU-NatashaNeural
French VoiceDefault TTS voice for French campaigns.fr-FR-DeniseNeural
Default LB TemplatePre-filled TTS script for new Link Back campaigns.(see Templates section)
Default MD TemplatePre-filled TTS script for new Message Drop campaigns.(see Templates section)
SFTP ExportWhen enabled, daily result files are uploaded to the configured SFTP server.Disabled

Audio Maintenance

The Run Cleanup Now button on the Settings page manually triggers deletion of stale audio files. This runs automatically every night at 2:00 AM, but you can trigger it on demand.

16 Do Not Call (DNC) List

Manage a global list of phone numbers that should never be called, regardless of campaign.

The DNC list is a system-wide block list. When a campaign is running, the engine checks every phone number against the DNC list before dialing. If a match is found, the record is skipped and marked as "DNC" instead of being called.

Adding a Single Number

1
Go to the DNC List page and click "Add Number"

Enter the phone number and an optional reason (e.g., "Customer requested", "Legal hold"). The number is automatically normalized (formatting and country code are stripped).

Bulk Adding Numbers

1
Click "Bulk Add" on the DNC List page

Paste multiple phone numbers into the text area. Numbers can be separated by new lines, commas, spaces, or semicolons. The system automatically extracts and normalizes valid phone numbers. You can also specify a reason that applies to all entries in the batch.

2
A live preview shows how many numbers were detected

Click "Add All" to insert them. Duplicates are automatically handled - if a number already exists, its reason is updated.

Searching and Filtering

Use the search box at the top of the DNC page to filter by phone number or reason. Results update as you type.

Editing and Removing Entries

Each DNC entry has Edit and Delete buttons. Editing allows you to change the phone number or reason. Deleting permanently removes the entry, allowing that number to be called again in future campaigns.

How DNC Filtering Works

AspectDetails
When checkedJust before each call is sent to the dialer, during the engine tick
ScopeAll campaigns (MD and LB) - the DNC list is global
Record statusMatched records are set to dnc status and skipped permanently
Phone formatNumbers are normalized to 10 digits (country code stripped) for matching

17 CRTC Compliance

The system enforces Canadian telemarketing regulations automatically.

Follow-the-Sun Dialing

Each record's Province field determines its timezone. The system will only dial a record if the current local time in that province falls within the campaign's configured dialing window.

ProvinceTimezone
BC, YTPacific Time
AB, NTMountain Time
SKCentral Time (no DST)
MBCentral Time
ON, QCEastern Time
NBAtlantic Time
NS, PEAtlantic Time
NLNewfoundland Time
NUEastern Time

Safety Stops

The system includes multiple safety mechanisms:

The auto-stop fires even if an admin forgets to stop manually. This is a regulatory safety net. The system will not allow calls outside the configured dialing hours regardless of campaign status.

18 Troubleshooting

Common issues and how to resolve them.

!
"Cannot start: X records still need audio generated"

Go to the campaign detail page, click the Audio button, and generate audio for the remaining records. All records must have audio before the campaign can start.

!
Campaign is Active but no calls are being sent

Check: (1) Is the current time within the dialing window? (2) Are there records with provinces currently in legal dialing hours? (3) Is the global speed limit set above 0? (4) Are there records in "pending" status?

!
"Audio file not found" on test call

The audio file for that record hasn't been generated yet, or was deleted during cleanup. Regenerate audio for the campaign.

!
High failure rate in results

Check the hangup cause column. Common causes: "UNALLOCATED_NUMBER" means invalid phone numbers in the CSV. "NORMAL_TEMPORARY_FAILURE" may indicate carrier issues. "NO_ANSWER" is normal for unanswered calls.

!
Dashboard shows "Engine Idle" even with active campaigns

The engine status badge updates every 2 seconds. If it stays on "Idle", check if the dialer server is running. Contact the system administrator.

19 Quick Reference

At-a-glance reference for common tasks.

TaskSteps
Create a campaignSidebar > New Campaign > Fill form > Upload CSV > Create
Generate audioCampaign Detail > Audio button > Choose mode
Start dialingCampaign Detail > Start button (green)
Pause dialingCampaign Detail > Pause button (yellow)
Stop dialingCampaign Detail > Stop button (red)
Redial entire listCampaign Detail > Reset > Generate audio (if needed) > Start
Add more recordsCampaign Detail > Add CSV > Upload > Generate audio for new > Start
Change spoken textCampaign Detail > Edit > Update template > Audio > Regenerate ALL
Adjust speedCampaign Detail > Speed slider > Apply
Change dial orderCampaign Detail > Dial Order toggle (Random / Sequential)
Adjust global speedSidebar bottom > Global Speed input > Set
Quick test (no campaign)Sidebar > Test Call > Quick Test tab > Enter text/phone > Generate & Call
Campaign test callSidebar > Test Call > Campaign Test tab > Select campaign/record > Enter phone > Send
Export resultsReports > Set filters > Export CSV
Add a userUsers > Add User > Fill form > Create
Clean up old audioSettings > Audio Maintenance > Run Cleanup Now

Dialer v1.2 · Campaign Management System
For technical support, contact the system administrator.

Back to Dashboard