TryLearn More

Use SIP trunks, WebRTC & Apps

Slash your Phone Bill by 80%

Callflows and Dialers

On this topic

Callflows and Dialers

Introduction

Creating a Callflow

Creating Callflow Variables

Creating a Dialer

Creating Dialer Variables

Important considerations for Dialers

See also

Introduction

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:

  1. A first dialer instance is created. It invokes the database query and makes the first call. Then it waits 30 seconds.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. After another 6 seconds, the first instance wakes up from waiting for 30 seconds, and makes another call.
  7. After another 6 seconds, the second instance wakes up from waiting for 30 seconds, and makes another call.
  8. 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.

See also

Get 3CX Free today

Download On-Premise or Try in the Cloud