Configuring the Predictive Dialer (for Administrators)
Please Note:This feature is currently still being developed and may not be fully implemented on every cluster. Please contact your Account Executive if you would like to learn more.
[Predictive Dialer should be configured by the Account Executive. Administrator privileges are required for setup]
Inbound Campaigns on CX Route can be paired with Predictive Dialer technology to reduce agent downtime.
- Establish Communication to the Dialer*
- Attach the Integration to the CX Route Campaign
- Set Up the Dialer
- Connect the Inbound Campaign to a Dialer Campaign
- Control Call Flow with Agent Availability
- Start the Campaign
*The Predictive Dialer feature must first be exposed on the cluster. This article assumes that a new Inbound campaign has already been created on CX Route. Routing for these campaigns can be Skills Based or Rank Based (if rank based, agents must be assigned to a crew-- see step 5) .
It is also advised that Predictive Dialer campaigns be paired with new CX Route campaigns that are dedicated to using the PD.
A Note about Admins: Any user with a Administrator role must be assigned to the Administrator Group with a weight of 100,000.
1. Establish Communication to the Dialer
Turning on the feature is controlled by the following variable in the lib/config.php file:
define ('SIPDIC_ENABLED', true);
A sample of this variable is provided in the lib/config.example.php in the main repository.
If this variable is not defined or is set to false, then the feature will remain off.
Communication from CX Route to the Dialer is accomplished by using an integration.
- Click Integrations in the left-hand navigation bar
- Click New Integration
- On the Integration Details tab:
- Name
- Description [optional]
- Protocol: HTTP
- Timeout: [leave at default of 60 seconds]
- Retries: [leave at default of 0 times]
- Retry Delay:[leave at default of 30 sec]
- Suspended: [leave at default of No]
- Click Update to save
- On the Protocol Settings tab:
- Method: [leave at default of GET]
- Host: This is the IP address of the Dialer server. It is client-specific and provided by SingleComm developers to the Account Executive
- Port: 443
- Path: populate with the base path
- for dialer.ai (currently the ONLY supported dialer), the path should be /rest-api/
- Secured: Yes
- Authentication: Basic
- Authentication Username: This is client-specific and provided by SingleComm developers to the Account Executive.
- Authentication Password: This is client-specific and provided by SingleComm developers to the Account Executive.
- Content Type: application/json
- Agent: dialer.ai
*indicates the type of dialer used.
- On the Request Transform tab:
- enter the following block of code
<?
if (!empty($data['appendpath'])) {
$initParams['path'] .= $data['appendpath'];
unset($data['appendpath']);
}
if (!empty($data['method'])) {
$initParams['method'] = strtoupper($data['method']);
unset($data['method']);
}?>
- Click Update to save
- enter the following block of code
- Response Transform tab should be left blank
2. Attach the Integration to the CX Route Campaign
- Browse to your CX Route IB campaign
- On the PD Inbound tab:
- Enabled: Yes
- Integration: click the dropdown and choose the integration you just created in step 1
- Dialer: Once the integration is selected, this button will appear.
- When clicked, it is a direct link to your dialer site. (clientname.dialer.singlecomm.com)
- External Campaign: this will be the name of the dialer campaign once it is created in step 3 and connected in step 4
You will need to come back and complete the above step. - Dial Agents Available: this number changes based on current campaign settings and will change as the dialer makes call
3. Set Up the Dialer
- Access the Dialer by entering the DNS into a browser
- https://clientname.dialer.singlecomm.com
- https://clientname.dialer.singlecomm.com
- Click Log In
- Enter in the Username (Authentication Username) and the Password (Authentication Password)
Administration Options:
Add the Client ID
The Client ID needs to be added for all Admin users (username=root) and all Manager users (username= clientname_manager). This is included in the webhook and ensures that data is matched to the correct client.
Only the "root" user can change these admin settings. This only needs to be done at client setup.
- Click your username in the top right and select Administration from the dropdown
- On the General tile:
- Click Change to edit the admins settings
- Click the username you wish to match the client ID to
- On the Change Admin page, scroll down until you see the Accountcode field
- Enter the Client ID for the server you are configuring
(codes are obtainable from Prof. Serv) - Scroll to the bottom of the page and click Save
- Repeat the above steps for managers
Modify Field Contacts Import
Additionally, this page (admin/manager change permissions) is where you can manage the parameters for importing of Field Contacts.
- Scroll to the middle of the page
- Fields that you want added when importing contacts can be programmed here.
*Must use JSON formatting
Block Out Area Codes
There may be a need to block entire area codes at the dialer level to ensure that they are never contacted.
From the Admin Dashboard page:
- Scroll to the Settings tile
- Click Change to edit the dialer settings
- Click the Name of the dialer whose settings you will be editing (there may only one)
On the Change Dialer Settings page:
The Standard options section is where you will add the area codes to blacklist (block) or whitelist (approve). When area codes are blacklisted, the dialer assumes all others are approved. When an area code is whitelisted, the dialer assumes that all others are blocked.
- To block area codes 215 and 267, the following expression should be used:
- ^(\+1215|\+1267)+
- Additional area codes can be added within the parentheses
- You must use the country code plus the area code
- For US numbers, that is 1 plus the 3-digit area code
- Scroll to the bottom of the page and click Save
Create the Module:
- Click the Modules dropdown, then Survey/IVR
- Click Add to create a new module
- Click Add to create a new module
- Type in a Name and Description for the module
- Click Save
- Click Add Section
- On the Add Section pop-up:
- Section type: CALL TRANSFER*
*No other section types are supported at this time
This modal must be filled out to these exact specifications. - Section title: this field is required but is not being used for call transfer use cases, because of this- you must enter ONLY a period in this field.
- Audio file: leave as-is [---]
- Phone Number/SIP URI: populate the field as follows
- (DID* of Inbound CX Route campaign)@(client cluster)-proxy.singlecomm.com:5060
*DID number MUST lead with a "+1"
- (DID* of Inbound CX Route campaign)@(client cluster)-proxy.singlecomm.com:5060
- Confirm script: leave blank
- Confirm key: leave as-is [---]
- Completed: leave as-is [OFF]
- Click Update to save and close the pop-up
- On the Add Section pop-up:
- The Survey/IVR will now display
- An audio file 0:00/0:00 will display although NO audio file is in use
- Branching / Goto should be left as-is [hangup]
- Click Close Survey to exit the Survey/IVR (the module is now complete)
You should not attempt to edit the Survey/IVR for a campaign that is STARTED or RUNNING, the changes will not take effect.
If you Clone a campaign, it will copy the original Survey/IVR, therefore it is suggested that a new campaign be created.
Create the Phonebook:
- Click Contact, then Phonebooks* to be taken to al list of current phonebooks, then click Add to create a new phonebook
*This is also where you will go to upload/add additional numbers to an existing phonebook - Add a phonebook Name and Description
- Click Save to exit the pop-up and import your leads
- Leads can be uploaded in bulk, or singly. To upload a list:
- Click Import Contacts
- Verify that the phonebook your just created is listed in the dropdown
- Click Next
- Contacts can be pasted into the text box, or click Browse file (preferred method) to upload a CSV or TXT file with your lead list
The dialer supports the uploading of sheets with data in any number of fields/ columns, and in any order. - Advanced options are not supported at this time
- Click Import
- Data from the sheet will be imported, and depending on the number of columns, you will be prompted to match that data to the options in the dialer:
- The above example had 3 columns: number, name, zip code
- Click the Belongs to dropdown and choose from the following:
- Click Finish importing contact
Note the formatting options.
Phone numbers can be formatted as follows:
- XXXXXXXXX
- (XXX) XXX-XXXX
- XXX-XXX-XXXX
If the phone numbers being uploaded are international, they should lead with a + sign
- +XXX-XXXXXXXXXXXX
From the Contacts page, you can also do the following:
- Search for an entry in the phonebook
- Click Add to manually input numbers to an existing phonebook
- Click the Action dropdown to Delete Selected entries from an existing phonebook
To add contacts to a campaign in progress, the campaign must be in a STARTED state.
If the campaign is PAUSED or STOPPED, the contacts WILL NOT be called when the campaign is restarted. If the contacts are added while the campaign is in a Started state, it can THEN be paused or stopped without issue.
It is recommended that all contacts be loaded into the dialer before the start of the campaign.
Create the DNC:
- Click the Modules dropdown, then Do Not Call (DNC)
- The DNC will be uploaded via individual entries or from a CSV file using the same steps as the phonebook
- The DNC can also be set up to include entire area codes. This can be done by Product Support in the Dialer config.
The DNC does not update automatically. Routine manual updates are suggested, or the campaign can be configured using integrations to update via designated script dispositions. For more information, click here.
Create the Caller IDs:
*Caller ID Numbers and Groups are created in the Module, and assigned to the dialer campaign, in the next section.
- Click the Modules dropdown, then CallerIDs
- If using Caller ID Groups:
- Click CallerID Group on the left
- On the Add CallerID Group page:
- Name
- Description [optional]
- Click Save to add the Caller ID Group
- Once the Group is saved, a Wild Card CallerID entry will be created:
- Caller ID Groups will attempt to use an area code that is the same as the area code of the Contact.
- If there is no matching area code in the Caller ID Group, the number displayed will be the wildcard (number with the * in its area code)
- Click CallerID Group on the left
- If using Caller ID Numbers:
- Click CallerID on the left
- On the Add CallerID page:
- CallerID Group: click to add it to a Group (if applicable)
- Area Code: must be entered with a leading "+1" as shown
- Caller ID Number
- Caller Name
- Click Save to add the Caller ID Number
- Click CallerID on the left
Create the Campaign:
Each server can contain a maximum of 25 campaigns/phonebooks.
If you require an increase to this limit, please ask your Account Executive.
- Click the Campaign dropdown, then Voice Campaign
- Click Add
- On the General Settings tab:
- Campaign name: enter the name for your dialer campaign
- Application: click the dropdown and choose the Survey/IVR from the Module that was created previously
- Caller ID Number: enter the number that will appear on caller ID (this can be any number, does not have to be a valid phone number or the DID but is advised that you use a number that the receiver can call you back on)
*This number should be entered with NO FORMATTING and without a "1" in front. For example: 8884644698
It should be noted that if you list the DID and the consumer returns the call, it will come into CX Route as an incoming call but will show as INVALID_CODE in CX Explore: Predictive Dial/Hangup Cause. This is expected functionality since the call was not dialed by the PD. For more information on viewing PD data in CX Explore, click here. - Caller Name: this field is dependent on carrier settings and may or may not display
- Caller ID Group: when selected, this will override the Caller ID Number
(it is advised to use a Caller ID Number instead of this option) - DNCList: click the dropdown and choose the DNC that was created in the previous step
- Phonebook: click the dropdown and choose the Phonebook that was created previously
- You can also ctrl+click to select multiple phonebooks
- Click Update to save the campaign settings so far
Once you click Update, the only fields on this tab that can be modified are Caller ID Number, Caller Name, and Caller ID Group.
If you want/need to change any of the other components after this tab has been updated, a new campaign will need to be created. - On the Dialer tab:
- A-leg Gateway:defaults to VoxTeleSys (the only supported gateway at this time)
- Frequency: number of outgoing dials per minute
*This value limits the number of dials to be made per minute, and should be set above the number of available agents multiplied by Dial Rate (below) - Max concurrent call: number of concurrent outgoing dials that can be handled by the server
*This can be left at the default value of 50 if that number is not greater than the number of agents available at the start of the campaign. - Max concurrent transfer (Max available agents): number of agents available to take calls
*This should be left at the default value and not surpass the number of agents that are assigned to this dialer campaign, given that agents can only be assigned to one dialer campaign at a time. CX Route will adjust this number based on the amount of dedicated available agents. - Dialing method: should always be set to Power Dialer
- Dial rate: number of calls made per available agent
*A rate of 3 means that if 1 agent is available, 3 dials will be made. If 2 of those dials are answered, one is transferred to the agent and the other is transferred to the queue.
Be advised that when there is a low number of available agents (1 or 2) and a dial rate of >1/1, there is a possibility that dials could be made after the last agent becomes unavailable. The dialer doesn't react instantly and some calls could still be made in the time before the campaign pauses. This buffer is only pronounced when the number of available agents is low.
- Click Save to save the settings
- On the Retry tab:
- Max retries: number of times the lead will be redialed* during the lifetime of the campaign.
*Leads are eligible for retries if there is no answer, or if a human voice is not detected on the other end.
What about voicemail/answering machines that sound like a human voice?
This can happen when using voicemail detection (enabled in the next step). The dialer listens for 1-3 words (detects as human) or more than 3 words (detects as voicemail) and if it incorrectly determines that the recorded outgoing message is a human, the call will be transferred to a live agent and the number will not be retried. - Time between retries: Minimum amount of time (in seconds) between retries. If the dialer is still cycling through other numbers, it will dial retries only after all other leads have been exhausted.
- Call completion: [currently not supported]
- Max retries: number of times the lead will be redialed* during the lifetime of the campaign.
- Click Save
- On the Voicemail tab:
- Voicemail detection: on/off
If ON:- Detection behavior*
- ALWAYS PLAY MESSAGE: call will transfer directly to CX Route without playing any audio if human is detected, and play message if voicemail is detected
- PLAY MESSAGE TO HUMAN ONLY: dialer will play audio to human, then connect to CX Route but disconnect if voicemail is detected
- LEAVE MESSAGE TO VOICEMAIL ONLY: dialer will disconnect if a human is detected but play message to voicemail
- Voicemail audio file: click to select a pre-recorded audio file
- Plays Text to Speech: type a message that will be spoken, based on the settings above it, after the audio message is played
- Detection behavior*
- Click Save
The settings on this tab cannot be changed once they are saved.
- Voicemail detection: on/off
*Please note the following setup scenarios:
These are potential scenarios that can be configured in the dialer. The following can also be set up using CX Route IVRs (preferred method).
- On Person detected just transfer (no audio/TTS), VM detected just hang up (no audio/TTS)
- Use a transfer survey, set Detection behavior= Play message to human only
- On Person detected just transfer (no audio/TTS), VM detected play audio/TTS then hang up
- Use a transfer survey, set Detection behavior= Always play message, select VM drop message + Optional TTS
- On Person detected play audio/TTS then transfer, VM detected just hang up (no audio/TTS)
- Use a survey configured to play audio and transfer, set Detection behavior= Play message to human only
- On Person detected play audio/TTS then transfer, VM detected play audio/TTS then hang up
- Use a survey configured to play audio and transfer, set Detection behavior= Always play message, select VM drop message + Optional TTS
- On Person detected play audio/TTS then hang up, VM detected just hang up (no audio/TTS)
- Use a survey configured to play audio, set Detection behavior= Play message to human only
- On Person detected play audio/TTS then hang up, VM detected play audio/TTS then hang up
- Use a survey configured to play audio, set Detection behavior= Always play message, select VM drop message + Optional TTS
- On Person detected just hang up (no audio/TTS), VM detected play audio/TTS then hang up
- Make single survey with a short silence file, set Detection behavior= Leave message to voicemail only.
- On the Schedule tab:
All campaigns default to all 7 days enabled, end time of 24 hours from the time of creation, start time of midnight, end time of 11:59 pm, and time zone dialing off.- Week Days: toggle individual days on/off
- Start: campaign start date
- Finish: campaign ending date
- Daily start time*: time at which dialer will begin making calls if agents are available
- Daily stop time: time at which dialer will stop making calls for the day
*Dialer uses a 24-hour clock, Eastern Time Zone! - Timezone Dialing: (on/off) When enabled, dialer will use the contact's area code to ensure they are within the daily start and stop times.
- Click Update to save these settings
If you have Timezone Dialing enabled: the dialer will continue to place calls based on the contact's TZ. This could mean that calls are being placed outside of the start/end time which is based on the server's TZ. If your campaign ends at 9pm Eastern time, but contacts are located on the west coast, dials will continue until 9pm Pacific time.
A note about call time compliance:
Dialer campaigns will make calls in between the start and end times that are set when the campaign is created. The dialer does not take into account any state that may have rules that vary their allowable call times. It is up to the person who creates the campaign to set start/finish parameters in line with the calling rules of the areas they will be contacting.- On the Extra tab:
[non-default settings on this tab are currently not supported]
4. Connect the Inbound Campaign to a Dialer Campaign
- Browse CX Route to the IB campaign that was configured in step 2.
- On the PD Inbound tab of the campaign:
- Click the External Campaign dropdown and choose the name of the dialer module that was previously created
- Click Update to save
- You will then be able to see how many agents are available for this campaign
- You will then be able to see how many agents are available for this campaign
- Click the External Campaign dropdown and choose the name of the dialer module that was previously created
- On the IVRs tab:
- Select the IVR used for your campaign
- In IVR Details
- Click YES on the option to Enable Federated Services
- Click YES on the option to Enable Federated Services
- Click Update to save
- In IVR Tree
- Click the answer node to expand it
- Enter the following code into the PHP code to execute before responding field:
if(! empty( $this->vars['variable_sip_h_P-CallRequest-ID'] )) {
require_once( SYSTEM_PATH . 'lib/sipdic.php' );
$sdh = new SIPDICHelper();
$sdh->createSIPDICCallRelation($_REQUEST[ 'CallUUID' ], $this->vars['variable_sip_h_P-CallRequest-ID']);
}
- Click Commit IVR Node Changes
- Click Update
- In the Deploy tab
- recompile and redeploy the IVR
*This step sends the relationship between the dialer call and the CX Route call to CX Explore and is required for accurate reporting on Dialer campaigns.
5. Control Call Flow with Agent Availability
Integration:
Agent availability tracking to control the flow of calls for the agents is performed through an integration.
In CX Route:
- Click Integrations in the left-hand navigation bar
- Click New Integration
- On the Integration Details tab:
- Name
- Description [optional]
- Protocol: Custom
- Timeout: [leave at default of 60 seconds]
- Retries: [leave at default of 0 times]
- Retry Delay:[leave at default of 30 sec]
- Suspended: [leave at default of No]
- Click Update to save
- On the Request Transform tab:
- enter the following block of code
<?php
require_once( SYSTEM_PATH . 'class/sipdic.php' );
$sd = new SIPDIC();
$o = $sd->AdjustForUser($data["userId"]);
?>
- Click Update to save
- Response Transform tab should be left blank
- enter the following block of code
- Connect the integration:
- Click Agent Management / Agent Events Management
- Connect the integration to the Event Agent Availability Start
- Connect the integration to the Event Agent Availability Stop
- Click Save / Save Changes
- Click Agent Management / Agent Events Management
Crews:
As mentioned before, agents can only be assigned to ONE dialer campaign at a time. Trained agents can be added at the campaign level, or in Agent Management.
For accurate reporting, agents MUST be assigned to a Crew. Agent Logs are not tied to a single campaign, so blended agents may be assigned to multiple campaigns. This allows supervisors to build a report in CX Explore that shows campaign-specific PD metrics.
- In Agent Management, on the Agent Profile tab:
- Click the Crew dropdown and select the crew name that matches the dialer campaign* or choose Add New Crew if this is the first agent to be added and the crew does not yet exist.
*It is suggested for easy tracking that crew names match the campaigns.
- Click the Crew dropdown and select the crew name that matches the dialer campaign* or choose Add New Crew if this is the first agent to be added and the crew does not yet exist.
6. Start the Campaign
To start the campaign, browse to the dialer
- Click Campaign / Voice Campaign
- In the Status column:
- Click the Play button to change the status from Stopped to Started
- As long as agents are available, the dialer campaign will remain in a Started state and dials will be made. If no agents are available at a given time, the dialer will Pause until an agent goes back to an available state.
- Click the Play button to change the status from Stopped to Started
Be advised: If you manually STOP an already active campaign, it WILL NOT be restarted automatically when agents become available. To stop the dialer temporarily, you should press PAUSE. A campaign that is PAUSED will resume dialing when agents place themselves in an available state.
Campaigns that have been STOPPED will be archived after 30 days, at which point the associated data will no longer be available.
It should also be noted that once the campaign is active and leads are being called, there may be a discrepancy in the Voice Dashboard and the dialer's Reporting\Voice\CDRs. Because the dialer will buffer calls, essentially marking them as dialed when the lead may still be in the queue for dialing. This overflow would appear in the progress bar.
Accurate reporting on a campaign, regardless of status, can be done in CX Explore. For more information on building reports using the Predictive Dial Explore, click here.
An overview of the Campaign Info can be viewed by hovering over the campaign name:
*Any campaign flagged as "Won't run now" is out of schedule range (either start/stop date or daily dialing hours).