The Call Flow Designer Workspace

Introduction

Call Flow Designer Workspace

The Call Flow Designer interface is composed by these controls:

  1. The Components toolbox - built-in and custom components to use in your project.
  2. Design workspace - shown when you open or create a new callflow, dialer or component. The “Start Page” is also shown in this space in a separate tab, containing useful information to get started with this tool, like links to articles, videos, recent projects, and documentation about featured components.
  3. Design view customization - use these tools available in the application toolbar, or under the “Tools” menu:
  • “Zoom Level” - set to a specific percentage or fit all components into the design view.
  • “Navigation Tool” - the hand cursor enables you to "grab" and shift the design view.
  • “Default” - use the arrow cursor to select components in the design view.
  1. Project Explorer and Properties panels - control and configure project and component options.
  2. Error List and Output panels - view error and informational messages for your project.

Flow Types

A flow is a sequence of built in or user defined components. You can drag components from the toolbox and drop them into the designer at the desired position. Once a component has been placed into the designer, the user can change its properties, using the “Properties” panel or the “Configure” dialog.

Call Flow Designer - Flow Types

For each call flow, CFD creates three flow types for callflows, i.e. Main Flow, Error Handler Flow and Disconnect Handler Flow, and two flow types for dialers, i.e. Main Flow and Error Handler Flow.

The Main Flow

The typical execution path: each component is executed sequentially in the “Main Flow” as long as no error occurs, or the call gets disconnected. When an error occurs, the execution continues on the “Error Handler Flow”. When the call gets disconnected, the execution continues on the “Disconnect Handler Flow”. Call related components cannot be used in the “Disconnect Handler Flow”.

The Error Handler Flow

If an error occurs while executing the “Main Flow” or the “Disconnect Handler Flow”, the execution continues on the “Error Handler Flow”.

A user defined component is always executed from a callflow, a dialer or another user defined component containing it. Therefore:

  • When an error occurs while executing a callflow, the error handler of the callflow is executed and then the call is finalized.
  • When an error occurs while executing a dialer, the error handler of the dialer is executed and then the loop ends, and the dialer pauses until the next iteration.
  • When an error occurs while executing a user defined component, the error handler of the user defined component is executed, and then the execution continues on the main flow of the parent. But if the error handler is empty, the execution continues on the error handler flow of the parent. It behaves as a catch block.

For example, a call arrives, starts executing

Callflow1
, which calls
Component1
, which calls
Component2
. If an error occurs in the main flow of
Component2
, the error handler of
Component2
is executed which is empty, so not handling the error. Then the error handler of
Component1
is executed via a contained component handling the error, and finally execution continues on the main flow of
Callflow1
since the error was handled on a child component.

The Disconnect Handler Flow

If the call gets disconnected in a callflow, when the disconnect handler flow ends its execution, the whole execution ends. On the other hand, if the call gets disconnected on a user defined component, when the disconnect handler flow ends its execution, execution continues on the parent disconnect handler flow.

The behaviour is similar to the one used for error handling, but in this case the call gets disconnected. For example, a call arrives, starts executing

Callflow1
, which calls
Component1
, which calls
Component2
. If the connection is disconnected at that point, the disconnect handler of
Component2
is executed, then the disconnect handler of
Component1
is executed, and finally the disconnect handler of
Callflow1
is executed. The main flow is not executed again for this call.

Components Toolbox

The toolbox contains the built-in components, and the custom components created by the user for a specific project, grouped under relevant categories:

  • “Call Control”
  • Menu: Plays a menu with single DTMF digit options.
  • User Input: Collects DTMF digits from the caller.
  • Voice Input: Collects voice input from the caller using speech recognition.
  • Authentication: Collects caller ID and PIN for later validation.
  • Credit Card: Collects credit card number, expiration date and security code from the caller, for later validation, avoiding call recording while entering digits.
  • Survey: Enables asking questions, collecting the caller’s answers in a CSV file.
  • Prompt Playback: Plays back an audio prompt.
  • Record: Records audio from the caller.
  • Record and Email: Records audio from the caller, and sends it attached to an email message.
  • Transfer: Transfers a call.
  • Attach Call Data: Attaches data to an active call.
  • Get Attached Call Data: Reads data previously attached to the current call.
  • Disconnect Call: Disconnects the call.
  • Make Call: Makes a call between two numbers.
  • “Call Flow”
  • Assign a Variable: Sets a variable to a value.
  • Increment Variable: Increments a numeric variable.
  • Decrement Variable: Decrements a numeric variable.
  • Create a Condition: Selects different branches depending on a condition.
  • Date & Time Condition: Selects different branches depending on the date and time, also applying filters to the DID used to reach 3CX.
  • Parallel Execution: executes many branches at the same time.
  • Loop: Loops while a condition is met.
  • Logger: Writes information to the 3CXCallFlow.log file.
  • Exit Callflow: Finalizes execution immediately.
  • “Application Tools”
  • Encryption: Encrypts or decrypts data using TripleDES, and computes MD5 hashes.
  • CRM Lookup: Executes queries on the CRM configured in the 3CX Management Console.
  • Database Access: Executes SQL statements on SQL Server, PostgreSQL or MySQL databases.
  • E-Mail Sender: Sends emails with attachments.
  • Execute C# File: Executes C# code (.NET Core) from a file.
  • Execute C# Code: Executes C# code (.NET Core) provided in the same component.
  • Read / Write to File: Reads or writes data to files.
  • Open a Socket: Opens a TCP or UDP connection, sends data through the connection and optionally waits for a response from the remote endpoint.
  • HTTP Requests: Performs HTTP requests.
  • Web Service REST: Executes REST Web Services, providing out of the box authentication.
  • JSON / XML Parser: Allows parsing JSON or XML text, mapping specific nodes to variables.
  • CSV Parser: Allows parsing CSV formatted text, returning a table with all the values.
  • Transcribe Audio: Allows converting speech to text, taking the audio from a WAV file.
  • “3CX Internal Properties”
  • Get DN Property: Reads a DN property value.
  • Set DN Property: Writes a DN property value.
  • Get Global Property: Reads a global 3CX parameter.
  • Set Global Property: Writes a global 3CX parameter.
  • Get Extension Status: Gets an extension’s active profile, including overrides, and checks if it is in a call.
  • Set Extension Status: Sets the extension’s active profile.
  • Get Queue Extensions: Gets the list of agent extensions for a queue, based on logged-in status.
  • Get Queue Status: Gets the status for a specific queue from the 3CX server, returning the number of calls waiting, calls being served, and available agents.
  • Set Queue Extension Status: Allows changing the queue login status for an extension, either globally or specifically for a particular queue.
  • “User Defined Components” - These user-created components created are automatically added to the toolbox.

For more info on the CFD components refer to the CFD Components guide.

Project Explorer

CFD - Project Explorer

This panel allows exploring the Project’s files, including callflows, dialers and user defined components, which can be grouped into folders. The entry point of a call is always a callflow, while a dialer is the entry point to start automatically making outbound calls.

The “Project Explorer” enables you to perform these actions:

  • Save the project or file
  • Rename the project, folder or file
  • Close the project or file
  • Create a new folder, callflow, dialer or component
  • Add an existing callflow, dialer or component
  • Remove an existing folder, callflow, dialer or component
  • Build the project

These actions can be performed by right-clicking on an item and selecting the option in the context menu. Files and folders can be moved to other locations within the project using drag and drop. If the CFD cannot find a file or folder referenced by the project, it is shown in red font, indicating that it is missing.

Properties

CFD - Properties Windows

The “Properties” panel shows information on the currently selected object. If the object contains actions, these are shown so they can be quickly executed. For example, the “Create a condition” component contains an “Add Branch” action, used to add child conditional branches easily.

Error List

Error List window

The “Error List” panel is used to display these types of messages during the build process:

  • Errors: the project could not be built because of errors in the configuration of one or more of the components. The user needs to correct the error(s) before output can be generated.
  • Warnings: some issue(s) exist but the output can be generated. Users need to consider the message(s) and verify if some corrective action is required.
  • Messages: information to be considered by the user without affecting output generation.

Each message includes information related to the component to review, including the file location. Double-clicking or pressing <Enter> on a message, automatically opens the referenced file and selects the component.

The CFD enables filtering the list of messages by clicking on the button for each message type.

Output

Output Window

The “Output” panel shows the actions performed by the compiler during the build process. For example, the CFD informs when the build process begins, when a file starts being compiled, etc.

Getting Help

You can open the web-based user’s manual at any time from the “Help” > “Documentation” menu item.

Help in a CFD component configuration dialog

When configuring a component, to open the relevant documentation you can:

  • click on the included help button on the dialog’s title bar
  • press the <F1> key with a component selected in the designer
  • right-click a component and select “Help” from the context-sensitive menu.

See Αlso

Last Updated

This document was last updated on 30th May 2023

https://www.3cx.com/docs/manual/cfd-workspace/