From Evo Voice
Jump to: navigation, search


In Evo Voice, Flows are basically visual communication programs. Flows consist of a series of Nodes that are connected by Transitions. Communication "flows" from Node to Node until either the Flow ends or a communication path has been established, for example by dialing a user that answers.

It is important to note that Flows are used for establishing communication both for voice (e.g. incoming phone numbers) but also for text/chat based media (e.g. SMS).


The following image shows an example of a very simple flow that simply dials a user when executed.


We would then assign this Flow to a phone number for example:


And now when we dial that 10 digit phone number, it will ring the Patrick user.

Flow Components

As mentioned above, a Flow consists of a series of Nodes that are connected together by Transitions. Each Node has settings which define its behavior. There are Nodes for doing Text to Speech, Playing Audio, Recording Audio, etc.

Each Node is a standalone component that provides a very specific piece of functionality. This is in direct contrast to the entwined nature of many current PBX platforms.

The image below provides a guide to the main pieces of a Flow



As shown above, Nodes are displayed as boxes in the Flow designer.

Node Title

Each Node has a title which is shown in the title bar of the Node box. By default the Node's title is set to the type of Node, e.g. "Say" however you can double click the title bar to change the Node's title.

Node Type

Each Node has an Icon which represents the type of Node, for example the Say node has a speech icon. Note You can hover your mouse over the icon to see the actual type of the Node. It is also shown in the Node Properties pane.

Node Transitions

Below the Node's title bar are the Node's available Transitions. For example, the Say node has a single Transition available "Done". You can see that the Dial Patrick Node has two transitions, Recording Ready and No Answer. By left clicking and dragging from a Node's transition to another Node, you are effectively connecting the nodes together in the Flow. For example, in the image above, after we execute the Say node, we move to the Dial Patrick node.

You can delete a Node connection by clicking the blue arrow


Asynchronous Transitions

The clock next to a transition indicates an "Asynchronous Transition". This means that the transition will be executed after the main communication flow. For example, in the case above, when the recording of the call is ready. It is important to realize that certain nodes will not function properly in Asynchronous Transitions, e.g. you will not be able to use a Dial node (since there will no longer be a caller to send anywhere) but you can still use the Email node, SMS node, etc.

Node Properties

On the right side of the screen is the Properties tab which shows the settings for the currently selected Node.

For example, in the image above, the selected Node is the Say node, and we have specified what we want it to say ("You've reached the Evo main line...") and also the voice that we want it to use (British Female).



Whenever a Flow is executed, for example when someone dials a phone number, the Flow has a Channel. There are currently 3 types of Channels in the system

Channel Description
Voice Standard voice communication, for example an incoming phone call, or an outgoing voice call from a SIP device
Chat Text/image/video based communication, for example an SMS message received by a phone number or an email received by an Email Address
Fax This channel is only used on Fax Numbers.

Most Nodes can be used regardless of Channel, but some nodes are Channel specific and will not work if the Flow is in the wrong mode. For example, let's say we have a Flow

Flow Example 4.png

This Flow will not work if someone sends an SMS message to the Phone Number because you cannot use a Dial node in a Chat channel.

In order to get around this, we can use a Channel Selector node in order to do different things based on what type of communication channel we are dealing with. For example

Flow Example 5.png

In the above example, the Flow uses a Channel Selector node, if someone calls the Phone Number, we will Dial the operators, otherwise, if someone sends an SMS message to the Phone Number, we will send a text message back to the sender (using the Say node) that says we don't support that.