Outbound Call Center: Creating a Predictive Dialer in 3CX Call Flow Designer

Introduction


Earlier, we already created a voice application for automatic calling of subscribers in the 3CX Call Flow Designer application , which uses the Power Dialer component. With a normal outgoing call, calls to subscribers from the database are made with the same, equal, periodicity. However, a situation is possible where some calls (conversations) take longer than planned. And we are still trying to recruit new subscribers! Another situation - at different time periods (day and night, for example) in the call center there is a different number of operators. Agree, it would be nice to adapt the call frequency depending on the availability of free operators. The new 3CX CFD component, called the Predictive Dialer, is great for this.

In this article, we’ll show you how to create predictive outgoing calls (dialers) in 3CX. Dyler will automatically make outgoing calls to external numbers and connect them to an internal Call Queue. At the same time, the call speed dynamically changes depending on the number of free operators in this Queue. This fundamentally reduces the operator downtime, that is, there are no operators left who have not received calls for a long time.

Please note that the 3CX CFD development environment is free. But voice applications will only run on the 3CX edition of Pro and Enterprise . You can download CFDs from here .      
 
The demo project of this voice application is supplied with the 3CX CFD distribution kit and is located in the Documents \ 3CX Call Flow Designer Demos folder.

It is important to note that by default, the dialer starts working when the 3CX Queue Manager Service starts. Therefore, it is necessary to set a certain condition under which the dialer will make calls. To do this, the voice application uses the Create a Condition component. For example, you can check (set) the day and time of day at which dialing should be performed. We will show how to limit the work of the dealer on working days and during a certain period during the day.

Caller numbers can be taken from different data sources, for example, from a text file, database, etc. In our example, the database is used.

Project creation


To create a CFD project, go to File → New → Project, specify the project location folder and its name, for example, PredictiveDialerDemo.

The new project contains the voice application Main.flow by default. It is not used in this project, so delete it in the Project Explorer window. In the same window, add a new application - right-click on the project name and select New Dialer. Name it MainDialer. In the Project Explorer, select the MailDialer object and set its properties in the Properties Window, as shown below.



The new diver can now work in two modes:

  • Power Dialer - calls are made at a constant frequency (we examined this earlier).
  • Predictive Dialer - the call frequency is automatically adjusted depending on the number of free operators at each time point.

Because we use the Predictive Dialer mode, consider two of its properties:

  • Optimization - call execution mode with optimization for operators or subscribers
  • Queue - the extension number of the Queue whose operators the diver will track

When starting up, the diiler checks the total number of agents in the Queue and the number of free agents. Then it starts calling up to the limit set for this optimization mode. Depending on the set mode, the diiler will accelerate or decelerate. Let's see how it works:

  • Optimization for operators - in this mode, the diver tries to load operators as much as possible, reducing the time during which they are idle (do not process calls). He will try to make calls with such a frequency that every operator at any given time works with a call. During the call process, a situation is possible when several calls fall into the Queue for a short period, waiting for the agent to be released. At this moment, the dialer will automatically reduce the call speed to minimize the waiting time for the subscriber in the Queue.
  • Optimization for subscribers - in this mode, the subscriber will be immediately connected to a free operator and will never wait in the Queue. In this case, unlike the previous one, some operators can remain free for a short time. But the diiler guarantees that each dialed subscriber will be immediately serviced by the operator.

Call start time selection


Add the Date & Time condition component to the application and call it checkTimeToCall. The component uses only one branch of timeToCall, which will be executed when the call time comes.



To configure the timeToCall branch to run from Monday to Friday from 9:00 to 17:00, we will set the DID selection of AllDIDs lines and time intervals, as shown below.



Getting a number from the database and dialing a subscriber


As was said, we get subscriber numbers from an external database. A request to the database should return the subscriber number or an empty string if there are no more subscribers at the moment. To do this, use the Database Access component and configure it to perform a database query.



Since the request returns a single value (subscriber number), we set the operator type to Scalar. Of course, you should change the SQL query string to match the structure of your database.

After configuring the Database Access component, we will check whether it returned the subscriber number. This must be done before dialing. Add another component Create a condition and create a single branch with the condition of checking for the presence of a number. Boolean expression for checking the number:

GREAT_THAN(LEN(TRIM(getNextNumber.ScalarResult)),0)

If the condition is met, then we have a number to call. And then we make a call using the Make Call component, which is configured as follows:

  • Make call from (call source) - subscriber number received from the database
  • To (call receiver) - extension number of the Queue to which agents are connected.



The final form of the voice predictive calling application should look something like this.

Compiling and installing the application on the 3CX server


The voice application is ready! Now it should be compiled and downloaded to the 3CX server. For this:

  1. Go to Build> Build All, and CFD will create the PredictiveDialerDemo.tcxvoiceapp file.
  2. Go to the 3CX management interface, under Call Queues. Create a new Call Queue, specify the name and extension of the Queue, and then set the Voice applications option and download the compiled file.
  3. Save the changes to the queue.

Please note that the call will start when the 3CX Queue Manager service is started / restarted.

Also popular now: