Callflows and Dialers
On this topic
A voice application has two possible entry points:
- Callflows: are triggered when an inbound call arrives to the voice application extension.
- Dialers: are launched when the 3CX Queue Manager Service starts, and do their work without any established call.
Creating a Callflow
When you create a new project, by default a new callflow named “Main.flow” is automatically created. The CFD only allows one callflow per project. This is because when you build your project, the output package is uploaded to a queue using a single extension. This extension will be used to activate this callflow.
If you need more callflows, please create a different project for each one.
Creating Callflow Variables
Callflows usually need variables to perform their job. In order to create variables for the callflow, go to the Project Explorer, select the Callflow file, then go to the Properties Window and click the button on the right of the Variables property. The Variable Collection Editor will be shown.
Creating a Dialer
In a similar way to callflows, a project can only have one dialer. When you upload a project containing a dialer to a queue, it will start working immediately after the 3CX Queue Manager Service starts, without any call triggering this.
A CFD project can have both a callflow and a dialer, in which case the callflow will be activated when the queue extension receives a call, and the dialer will start working as soon as the 3CX Queue Manager Service starts.
To create a new dialer, go to the Project Explorer, right click on the project node, and select “New Dialer”. The new dialer file will be created. The Properties Window will show the dialer properties:
Dialers have 2 properties that customize their behavior:
- ParallelDialers: this is the quantity of simultaneous dialer instances that will be launched.
- PauseBetweenDialerExecution: this is the quantity of seconds that each instance will wait between flow executions.
Let’s explain this using a simple example. Let’s assume that our dialer gets the numbers to call from a database, and then makes the call. The dialer flow will look like this:
If we set ParallelDialers to 5, and PauseBetweenDialerExecution to 30 seconds, this is what will happen:
- A first dialer instance is created. It invokes the database query and makes the first call. Then it waits 30 seconds.
- After 6 seconds, a second dialer instance is created. It invokes the database query and makes the second call. Then this instance waits 30 seconds.
- After 6 seconds, a third dialer instance is created. It invokes the database query and makes the third call. Then this instance waits 30 seconds.
- After 6 seconds, a fourth dialer instance is created. It invokes the database query and makes the fourth call. Then this instance waits 30 seconds.
- After 6 seconds, a fifth dialer instance is created. It invokes the database query and makes the fifth call. Then this instance waits 30 seconds.
- After another 6 seconds, the first instance wakes up from waiting for 30 seconds, and makes another call.
- After another 6 seconds, the second instance wakes up from waiting for 30 seconds, and makes another call.
- And so on…
This iteration continues until the 3CX Queue Manager Service is stopped, the queue is deleted, or the voice app is removed from the queue.
Creating Dialer Variables
The same way than callflows, dialers have variables and you can create or edit them from the Properties Window, selecting the dialer object.
Important considerations for Dialers
It’s important to note that Dialers start working as soon as the 3CX Queue Manager Service starts.
Therefore, you need to use “Create a Condition” components to decide if it’s a good moment to make calls. For example, you can check the time of the day, if today is a holiday or we’re in a weekend. And depending on that you decide if you make calls or not.
If you don’t add this logic, the dialer will start making calls as soon as it starts, and will not stop until you stop the 3CX Queue Manager Service.
- Install the 3CX Call Flow Designer
- Accessing a database from a CFD voice app
- Sending e-mails from a CFD voice app
- How to play a sequence of digits from a 3CX Call Flow Designer voice app
- Creating a Phone Support Portal with the 3CX Call Flow Designer – Part 1, 2, 3, 4
- Routing Calls Based on the Time of Day
- Creating an outbound dialer
- Time-Based Routing without Programming
- Using the Authentication component to validate customers
- Using the Credit Card Component
- Text to Speech with the 3CX Call Flow Designer
- Creating a predictive dialer with the 3CX CFD