Page cover

Call Flow Builder

You are a builder of your customer experience. Let's make a call a pleasant event they will enjoy

Call Flows define what happens to a call. By adding actions to Call Flow, you can customize the behaviour of incoming calls and provide callers with the user experience they need

Actions within the Call Flow dictate various actions such as speech translation, sending a call to voicemail, prompting the caller to press a key for further options, transferring the call to another Connection or external numbers, playing prerecorded audio files, converting text to speech with specified language and voice settings, and more...

How to use it

You create a Call Flow by dragging actions from the actions sidebar menu onto a design pane at app.voipnumber.net/callflowbuilder There you can move them around, configure their settings, connect them with each other, and remove (actions and connections)

Drag'n'drop actions from the sidebar (on the right) onto a design pane. There you can move them around, connect with each other, remove them and remove/change connections

Every action is represented on the design pane by Action Main Node and one or more Action Outcome Nodes e.g. Success, Fail, Completed, Interrupted. Every action has an input and output

Action Main Node

This is a coloured rectangle with the action's name, e.g. Bridge, Play text with AI, Incoming Call, End, etc.

Action Outcome Node (action outcome)

Action Main Node is connected to one or more outcomes. These define possible results for the action. Start and stop actions ( Incoming Call and End ) are exceptions from this rule, as they do not have Action Outcome Node

Action Input Handle (action input)

Action Input Handle is located at the top of Action Main Node

Action Output Handle (action output)

Action Output Handle is located at the bottom of Action Outcome Node

Connection

Connection is a line that you draw to connect actions (Note, this is not a SIP Connection). Connection is always attached to Action Output Handle and leads to the Action Input Handle. A line leading from Action Main Node to one of its Action Outcome Node, drawn automatically when action is dropped onto a pane is not a Connection in this sense (for example, a green dashed line connecting Bridge to Success or line connecting Play Text with AI and Completed)

Rules

  • Action Input Handle must be connected to Action Output Handle of other action

  • Action Output Handle must be connected to the Action Input Handle of other action

  • Actions Incoming Call and End are mandatory (any valid Call Flow starts and ends on them)

Start and stop actions ( Incoming Call and End ) have only a single handle. But the above rule still holds.

Let's draw that on the screen

Call Flow Builder. Action input, output, outcome and connection

In some cases it makes sense for the action to loop itself (e.g. Call Flow Builder), in this case action's output connects to the input of the same action

Validate your Call Flow

Call Flow Builder warns you as you draw when you attempt to create an invalid Connection or make other design errors. Once you've finished always check your design for any errors before saving

Always VALIDATE your Call Flow to catch any errors
Call Flow Builder will tell you if there's any connection missingor something else isn't right

Configuring actions

Every action has configuration settings that you can change. Click on the Action Main Node (coloured rectangle with action's name) to open configuration settings

Removing connections

To remove a connection click on it and press BACKSPACE or DELETE

Actions

Actions available in Call Flow Builder define what gets done on a call. There always must be action Start and action End placed on a Call Flow. Between them you insert Voice AI and PBX actions to perform actual things

Action Start

Every Call Flow starts with Start action and ends on action End . These two actions are mandatory for a valid Call Flow. Start action doesn't really do anything to a call, it is completely transparent. Its only purpose is to define where everything starts 🛫

Action End

Action End defines where your Call Flow stops. Just like with any other action, you can connect to it multiple action outputs

Next, we got regular actions which perform actual things. These are grouped into 2 sets: Voice AI and PBX. Voice AI actions make use of AI in form of LLM. PBX actions are regular functionalities you expect every legitimate telephony platform to have

Voice AI actions

Action AI Agent

This action executes an AI Agent on a call, with tools to perform work.

Settings include AI Agent selection and media with configurable input/output channels and audio level knobs

See how to setup and configure agent: AI Agent , Appointment bookings , AI Agent with Groq LLM

Action Translate speech coming from VoIP Number

Performs real time speech translation in direction from VoIP Number to a target dependent on type of Call Flow:

A leg - from VoIP Number to calling party

B leg - from VoIP Number to called party

Settings include languages, TTS engine selection and audio level knobs

Action Translate speech coming to VoIP Number

Performs real time speech translation in direction to VoIP Number from a target dependent on type of Call Flow:

A leg - to VoIP Number from calling party

B leg - to VoIP Number from called party

Settings include languages, TTS engine selection and audio level knobs

Action Translate speech (routed)

Performs real time speech translation with configurable input and output between VoIP Number and target dependent on type of a Call Flow:

A leg - between VoIP Number and calling party

B leg - between VoIP Number and called party

💡 This gives 4 possible routing setups (channel input/output configurations) on each call leg

Settings include languages, TTS engine selection and media with configurable input/output channels and audio level knobs

PBX actions

Action Echo 🔊

Echo is very useful in testing. It simply plays back any audio it received. Audio level can be optionally attenuated (in dB)

Echo plays back any RTP it receives. You can attenuate it

Action Delay echo 🔊⏰

Delay echo is similar to action Echo . It plays audio back with a configurable delay (in milliseconds). It is very useful in testing. Audio level can be optionally attenuated (in dB)

Action Bridge ☎️

Action Bridge sends a call to another Connection

When call is bridged it is ringing a target Connection. It may and up being connected (answered) or not, and this is represented on a Call Flow as outcome Success and outcome Fail . You can configure what happens after the bridge succeeded or failed by drawing a line from respective outcomes

In example below we end up a call regardless the outcome

In the next example we send it to AI Agent instead

Action Bridge has two Bridge target modes:

  • Dialed connection

  • Selected connection

This is because a single Call Flow may be attached to more than just one Connection

During a call, when Call Flow is executed, an actually dialed Connection is changing, reflecting a SIP To header. If Bridge is in Dialed connection mode it will send a call to that Connection. If you instead want a Call Flow that always bridges to the same Connection, set a bridge target mode to Selected connection and pick your Connection from a dropdown menu

Action Play text

Action Play text changes your text into speech and plays it (this is commonly known as Text To Speech or TTS)

Action Play text

This action transforms your text into audio to be played on the fly. That means every time it's executed on a media engine a speech is synthesized on the same media engine and played. This process doesn't involve any network transactions, like downloading audio file for playback. But the voice produced may sound a bit robotic 🤖 When additional 15 ms of a delay is not a problem we recommend to use action Play text with AI which needs to download your audio for playback (from your files stored securely on VoIP Number), but generates awesome, very natural sounding speech 🗣️

Compare by yourself

Speech generated with action Play text sounds bit robotic but is generated super fast
Speech generated with action Play text with AI sounds very natural 🙂

This is the simplest possible usage of this action

Example

Click on the Action Main Node to open configuration dialog. Type a text you want to be spoken in a Text field. Toggle Interruptible switch if speech playback during Call Flow execution should terminate on a key pressed by a user

Toggle Interruptible switch if user should be able to interrupt speech and move on to the next action with their Call Flow

Action Play text with AI

You can generate very human like speech with action Play text with AI This is how it sounds

Speech generated with action Play text with AI sounds very natural 🙂
Action Play text with AI

This is the simplest possible usage of this action

Example

Type a text to get synthesized into speech in a Text field. Select a voice engine type and a voice from a dropdown list of available persons 🙎🙎🏻‍♂️🙍‍♀️ Click Play to listen how it sounds. Change text and re-Play until you're happy with the result. Click OK to save it

Toggle Interruptible switch if speech playback during Call Flow execution should terminate on a key pressed by a user

Configuration of action Play text with AI

Action Play audio

Use action Play audio to playback wav, mp3 or mp4 files from uploaded file or from URL

Action Play audio
Play audio example usage
Play audio configuration
Play audio config with background

Action Collect digits 0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣

Action Collect digits is a DTMF collection block, where you can define important aspects of DTMF collection process, e.g: how many digits you require, a terminator, timeout on a single digit and the whole process and if digits accumulated before this action is hit should be flushed 🧐

Action Collect digits
A simple flow with DTMF collection

Action Handle digits

Use action Handle digits to execute functions assigned to DTMF digits in a Collect digits action. Collect digits would normally precede this action

Action Handle digits
Simple flow with Handle digits

Action Voicemail deposit 📫

Action Voicemail deposit implements a voicemail box. Use this action to record a voicemail, transcribe it and send to email

Action Voicemail deposit
Simplest flow with Voicemail deposit

Action Voicemail retrieval

Action Voicemail retrieval implements a voicemail box for the voicemail owner. Dial to this action to listen to your voicemails, save or delete them, on the phone

Action Voicemail retrieval
A simple flow with a call to a voicemail box

Access to voicemail can be protected by the PIN

Last updated