Rate this page:

Predictive dialing system

Contents

Copy URL

What is a PDS

Copy URL

A predictive dialing system, or PDS, is a call center module intended to optimize the load on agents. It analyzes the call statistics, such as load on the active agents and the average call duration, then calls customers predictively and connects the successful calls to agents, avoiding failed calls. You can use PDS with AI voicemail detection to filter voicemails from actual calls. The system is designed so maximum number of agents are busy and the customers receive the call right before the agent is free.

PDS key features:

  • Filters unsuccessful calls and voicemails, so the agents receive only real calls. To filter voicemails, add AI voicemail detection to your scenario.

  • Uses progression statistics to call customers in advance, then connects the successful call to the agent, keeping all the agents productive

  • Uses SmartQueue statistics to know when to call customers so they do not wait long for an agent

  • You can set up initial statistic values, such as call duration and failed calls percentage, and the system constantly updates it during the call list progress.

  • You can set up the multiplier for progressive mode specifying how many customers the system needs to call so agents are constantly busy and the customers do not wait long.

PDS works in two modes: predictive and progressive.

Predictive mode

Copy URL

The predictive mode calculates the time when to call a new customer, depending on the call list statistics.

You can set up initial average call duration and failed calls percentage statistic values at the call list start, and the system adjusts the values depending on the call list progression. You can set up the allowed failed calls percentage. When the percentage is low, more records from the contact list are reached, but the agents can wait for a customer longer. If you have under 30 agents, we recommend setting the value of failed calls to 10-15%, and if you have 100-200 agents, we recommend setting the value to 5%.

This mode is useful when you make outgoing calls from a big call list and have a large number of agents (30-100 agents). When you load the call list into the application, the system analyzes the number of active agents, the average call time, and the percentage of the customers that answer, to call the necessary numbers of customers so they can reach an agent as soon as possible.

Progressive mode

Copy URL

The progressive mode calculates how many calls per agent the system needs to call so agents are constantly busy and the customers do not wait long.

Before the call list starts, you need to set up the multiplier that specifies how many calls per agent the system should launch. You can manually correct the multiplier to control the call list efficiency.

This mode is useful for call lists with a decent percentage of answering customers when you have a small number of agents.

How to set up a PDS

Copy URL
  1. Set up agents and queues as it is described in the voice contact center article.

For the PDS module, the scenario differs from the common contact center scenario. Use the following one:

PDS scenario

PDS scenario

  1. Set up an agent's workspace.

You can set up your own workspace manually as it is described in the voice contact center article or use our ready-to-use voice & video app as a client workspace.

  1. Compile and run the PDS client. You can find the client and the instructions on how to build and run it on our Github. The sample client uses the Go programming language.

Passing the phone number list to the PDS client

You can pass the phone numbers list to the PDS client in any desired format. Provide the instructions on how to parse your phone number list source in this function:

taskChan := agent.GetTaskChannel()
go func() {
    defer close(taskChan)
    for {
        // provide instructions for parsing the source
        // send the call list data to the client
        tmpTask := map[string]interface{}{
            "phone_number": "1234567",
        }
        taskChan <- tmpTask
    }
}()

Choosing between predictive and progressive modes

The default PDS mode is predictive. You can specify the initial statistic values in the pdsConfig object. Specify the average call duration in the AvgTimeTalkSec parameter in seconds and the successful calls percentage in the PercentSuccessful parameter as a decimal value from 0 to 1.

pdsConfig := client.PDSConf{
    RuleID:            1, // specify your rule id here
    QueueID:           1, // specify the queue id here
    ReferenceIP:       "69.167.178.4",
    AvgTimeTalkSec:    80.0,
    PercentSuccessful: 0.4,
    MaximumErrorRate:  0.05,
    SessionID:         uuid.NewV4().String(),
    ApplicationID:     1, // specify your application id here
}

A successful call is a call when the customer answers and there is no voicemail prompt after the answer. The system adjusts the values depending on the call list progression automatically.

To enable the progressive mode, specify the multiplier in the pdsConfig.TaskMultiplier parameter. You can adjust the multiplier to control the call list efficiency.

pdsConfig.TaskMultiplier = 1

To start the progressive mode, use the PDS.StartProgressive method instead of the default PDS.Start method.

PDS mode selection

The system selects the mode depending on the presence of the TaskMultiplier parameter. If you specify both the TaskMultiplier and the AvgTimeTalkSec/PercentSuccessful, the system works in the progressive mode, disregarding the average call duration and the successful calls percentage parameters.

If you experience trouble setting up the PDS client, feel free to contact our support. You can find more hints in the PDS client repository.

Buffer management

Copy URL

If you do not specify any buffer settings, the default buffer size is 500 records, with treshold of 250 records. When the treshold is reached, PDS requests more tasks.

You can set up the buffer size manually. To do this, specify the "buffer" settings in the init message:

"buffer": {
    "size_target": "VALUE",
    "size_value": 300
},

The default treshold value is 2.5, so if you set up the buffer value to 500, the treshold is 200. You can change the treshold value is the threshold_factor parameter:

"buffer": {
    "size_target": "VALUE",
    "size_value": 300,
    "threshold_factor": 2
},

Alternatively to the static buffer size, you can use the dynamic buffer size, when the buffer size calculates depending on the number of active agents. This mode can be very useful for call centers with small number of agents.

To enable the dynamic buffer, pass the following "buffer" settings in the init message:

"buffer": {
    "size_target": "AGENT",
    "threshold_factor": 2
},

The threshold_factor parameter is optional for both static and dynamic buffers.

Frequently asked questions

Copy URL

Q: In predictive mode, PDS recalculates parameters, such as average call duration and failed call percentage. Can I get these parameters?
A: No, you cannot get the in-progress parameters, because they are constantly changing.

Q: How PDS switches between agents? When it decides to call a new agent?
A: PDS does not call a specific agent. The goal of this system is to make the call just in time when an agent gets free, so the customer and the agent do not wait.

Q: Can I restrict an agent from getting calls?
A: No, when an agent gets free, it receives a call. To avoid getting calls, set the status that is not getting calls.

Q: Can I set the dialing timeout for the task?
A: Yes. Use the timeout parameter to limit the timeout for answering the call.