Complete guide to managing outbound dialing campaigns
Create, start, pause, stop, and reset outbound campaigns
AI-powered text-to-speech for personalized call audio
Live call feed, stats, and campaign monitoring
Detailed reports with CSV export and charts
Province-based timezone-aware dialing windows
Per-campaign and global speed adjustment
The Dialer is a campaign management platform that drives outbound calling. It supports two call types that work with separate backend dialers.
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.
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.
How to log in and navigate the system.
Navigate to the Dialer URL provided by your system administrator in your browser. You will see the login screen.
Enter your username and password, then click Sign In. Your credentials are provided by the system administrator.
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.
| Role | Permissions |
|---|---|
| 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. |
Your command center for monitoring all campaign activity in real time.
The top row displays four key metrics that update automatically:
| Card | Description |
|---|---|
| Active Campaigns | Number of campaigns currently in "active" (dialing) state. |
| Today's Calls | Total calls attempted today across all campaigns. |
| Success Rate | Percentage of today's calls that resulted in "completed" or "transferred" status. |
| Calls/Min | Current calls being sent per minute across all campaigns (live counter). |
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.
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.
Step-by-step guide to setting up a new outbound dialing campaign.
Click New Campaign in the sidebar, or use the icon.
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.
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.
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.
Select your CSV file. The system will parse all records and store them in the campaign. See the CSV Format section for column requirements.
The campaign is created in Draft status. The CSV will be processed in the background - you'll see a notification when complete.
The system accepts a standard CSV layout. Columns must be in the exact order shown below.
| Column | Required | Description |
|---|---|---|
Account Number 1 | Yes | Unique account identifier. Used for audio file naming. |
First Name | Yes | Debtor's first name. |
Last Name | Yes | Debtor's last name. |
Province | Yes | 2-letter province code (ON, QC, AB, BC, etc). Used for timezone-based dialing windows. QC records receive bilingual audio. |
Collector | No | Assigned collector ID. |
Client Name | No | Creditor/client name. |
Status | No | Account status field. |
Balance | No | Outstanding balance amount. Available as {balance} template variable. |
Email | No | Debtor's email address. |
Agency Phone | No | Agency contact phone number. Available as {agency_phone} template variable. |
Assign Date | No | Date the account was assigned. |
Full Name | Yes | Full name for TTS audio generation. |
Address | No | Debtor's street address. Available as {address} template variable. |
City | No | Debtor's city. Available as {city} template variable. |
Postal Code | No | Debtor's postal code. Available as {postal_code} template variable. |
TFN | Yes | Toll-free callback number spoken in the message. |
DID | For LB | Direct inward dial number for call transfers. |
Original Creditor | No | Original creditor name. Available as {original_creditor} template variable. |
Original Product | No | Original product/service type. |
amount_due | No | Amount currently due. Available as {amount_due} template variable. |
min_payment | No | Minimum payment amount. Available as {min_payment} template variable. |
sif_pct | No | Settlement-in-full percentage. |
Client Ref # | No | Client reference number. |
Phone 1 through Phone 20 | At least 1 | Up to 20 phone numbers per record. The system dials them in order, cycling to the next phone on each attempt. |
Customize the spoken text for each campaign. Use template variables that are replaced with each debtor's actual data.
| Variable | Replaced With | Example Output |
|---|---|---|
{full_name} | Debtor's full name | JOHN MUGLIA |
{first_name} | First name only | JOHN |
{last_name} | Last name only | MUGLIA |
{account_number} | Account number | 1234567 |
{client_name} | Client/creditor name | ABC 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 name | ACME CORP |
{email} | Email address | john@example.com |
{city} | City | MARKHAM |
{province} | Province code | ON |
{postal_code} | Postal code | L3S4V6 |
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.
Before a campaign can start, every record needs a personalized audio file generated via text-to-speech.
Navigate to the campaign you want to generate audio for by clicking on it from the Campaigns list or Dashboard.
Click the Audio button in the campaign header. A dialog will appear with two options.
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.
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.
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.
How to start, pause, stop, and reset your campaigns.
| Action | Button | What 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. |
Fine-tune dialing speed at both the campaign level and system-wide level.
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.
Below the speed slider, you can toggle the Dial Order between two modes:
| Mode | Icon | Behavior |
|---|---|---|
| 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. |
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 to add new records, change settings, and manage audio for existing campaigns.
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.
After uploading, click Audio and choose Generate for New Files Only. This will only create audio for the newly added records.
To remove specific accounts from a campaign before they are dialed:
This opens a dialog where you can paste account numbers (one per line, or comma/space separated).
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.
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.
If you change the TTS template or voice and want all records to use the new script:
Save your changes.
This deletes all existing audio files and regenerates them with the new template. The campaign must be paused or stopped first.
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.
| Column | Description |
|---|---|
| Campaign | Campaign name and type (LB/MD). |
| Name | Debtor's full name. |
| Account | Account number. |
| Phone | Phone number being dialed. |
| Province | Province code (used for timezone checks). |
| Status | "queued" = waiting to be sent. "dialing" = call is in progress. |
| Time | When the call was queued or initiated. |
Track outcomes and generate reports for analysis and compliance.
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.
| Status | Meaning |
|---|---|
| completed | Call was answered and the full message played. |
| transferred | Debtor pressed 1 and was connected to a representative. |
| no_answer | Phone rang but nobody answered within the timeout. |
| busy | The line was busy. |
| failed | Call failed due to technical error or invalid number. |
| wrong_person | Debtor pressed 2 indicating they are not the intended recipient. |
The Reports page provides summary analytics with filters:
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.
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.
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.
Enter the phone number you want to receive the test call on.
Choose Link Back or Message Drop. For Link Back, you'll also need to enter a Transfer Number.
Type the message you want spoken. This is raw text — template variables like {full_name} are not substituted in Quick Test mode.
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.
The system generates the audio in real-time and immediately places the call. The temporary audio file is automatically cleaned up after 5 minutes.
Test a call using an existing campaign record's pre-generated audio. This tests exactly what the debtor will hear.
Choose the campaign you want to test from the dropdown. This loads the records available for testing.
Choose a specific debtor record. This determines which audio file will play during the test call.
Enter the phone number you want to receive the test call on (e.g. your desk phone or mobile).
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).
Super Admins can create and manage user accounts. (Super Admin only)
Fill in the username, password, full name, email, and role. Click Create User.
From the Users page you can:
Configure global system behavior. (Super Admin only for editing)
| Setting | Description | Default |
|---|---|---|
| Global Max CPM | Maximum calls per minute across all campaigns combined. | 200 |
| Auto-Stop Time | All active campaigns are automatically paused at this time (Eastern Time). | 18:45 |
| Stale Audio Days | Audio files from completed/stopped campaigns older than this many days are auto-deleted during daily cleanup. | 30 |
| English Voice | Default TTS voice for English campaigns. | en-AU-NatashaNeural |
| French Voice | Default TTS voice for French campaigns. | fr-FR-DeniseNeural |
| Default LB Template | Pre-filled TTS script for new Link Back campaigns. | (see Templates section) |
| Default MD Template | Pre-filled TTS script for new Message Drop campaigns. | (see Templates section) |
| SFTP Export | When enabled, daily result files are uploaded to the configured SFTP server. | Disabled |
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.
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.
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).
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.
Click "Add All" to insert them. Duplicates are automatically handled - if a number already exists, its reason is updated.
Use the search box at the top of the DNC page to filter by phone number or reason. Results update as you type.
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.
| Aspect | Details |
|---|---|
| When checked | Just before each call is sent to the dialer, during the engine tick |
| Scope | All campaigns (MD and LB) - the DNC list is global |
| Record status | Matched records are set to dnc status and skipped permanently |
| Phone format | Numbers are normalized to 10 digits (country code stripped) for matching |
The system enforces Canadian telemarketing regulations automatically.
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.
| Province | Timezone |
|---|---|
| BC, YT | Pacific Time |
| AB, NT | Mountain Time |
| SK | Central Time (no DST) |
| MB | Central Time |
| ON, QC | Eastern Time |
| NB | Atlantic Time |
| NS, PE | Atlantic Time |
| NL | Newfoundland Time |
| NU | Eastern Time |
The system includes multiple safety mechanisms:
Common issues and how to resolve them.
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.
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?
The audio file for that record hasn't been generated yet, or was deleted during cleanup. Regenerate audio for the campaign.
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.
The engine status badge updates every 2 seconds. If it stays on "Idle", check if the dialer server is running. Contact the system administrator.
At-a-glance reference for common tasks.
| Task | Steps |
|---|---|
| Create a campaign | Sidebar > New Campaign > Fill form > Upload CSV > Create |
| Generate audio | Campaign Detail > Audio button > Choose mode |
| Start dialing | Campaign Detail > Start button (green) |
| Pause dialing | Campaign Detail > Pause button (yellow) |
| Stop dialing | Campaign Detail > Stop button (red) |
| Redial entire list | Campaign Detail > Reset > Generate audio (if needed) > Start |
| Add more records | Campaign Detail > Add CSV > Upload > Generate audio for new > Start |
| Change spoken text | Campaign Detail > Edit > Update template > Audio > Regenerate ALL |
| Adjust speed | Campaign Detail > Speed slider > Apply |
| Change dial order | Campaign Detail > Dial Order toggle (Random / Sequential) |
| Adjust global speed | Sidebar bottom > Global Speed input > Set |
| Quick test (no campaign) | Sidebar > Test Call > Quick Test tab > Enter text/phone > Generate & Call |
| Campaign test call | Sidebar > Test Call > Campaign Test tab > Select campaign/record > Enter phone > Send |
| Export results | Reports > Set filters > Export CSV |
| Add a user | Users > Add User > Fill form > Create |
| Clean up old audio | Settings > Audio Maintenance > Run Cleanup Now |
Dialer v1.2 · Campaign Management System
For technical support, contact the system administrator.