Overview
Call Flow Design provides a visual interface for creating and customizing call-handling workflows by adding and connecting components. It can be used to build flexible call-routing logic for different UC scenarios, allowing administrators to define how calls are handled based on caller input, time conditions, logical conditions, and other configured criteria.
A call flow can include prompts, IVR menus, user input, time conditions, language selection, call recording, dialing, transfers, conditions, loops, and call termination.
Call Flow Design is useful when a deployment requires multiple call-handling decisions to be combined into one workflow. For example:
Incoming Call → Welcome Prompt → Time Condition → IVR Menu → Condition → Destination
In summary: Call Flow Design allows administrators to visually define how a call should behave from the moment it enters the flow until it reaches its final destination.
Call Flow Number Range
The UCM provides a dedicated Call Flow Number range, separate from other extension ranges.
The example configuration shown in the WebUI uses:
| Type | Range |
|---|---|
| User Extensions | 1000–6299 |
| Meeting Extensions | 6300–6399 |
| Ring Group Extensions | 6400–6499 |
| Queue Extensions | 6500–6599 |
| Voicemail Group Extensions | 6600–6699 |
| IVR Extensions | 7000–7100 |
| Dial By Name Extensions | 7101–7199 |
| Fax Extensions | 7200–8200 |
| Call Flow Numbers | 8300–8499 |
The WebUI identifies these as allocated ranges for specific call features and notes that the ranges do not represent the maximum number of objects supported by the feature.
The separate Call Flow range helps distinguish call-flow numbers from ordinary user and service extensions. For this reason, a Call Flow should be assigned a number from the configured Call Flow Number range.
For example, if the Call Flow range is 8300–8499, using 1005 as the Call Flow Number results in an “Extension already exists” message because that number is already within the User Extension range.
Creating a Call Flow
The UCM provides four methods for creating a call flow:
Templates cover common scenarios, including IVR key routing, time-based routing, and input-matching authentication.
Create from a Template
Under Advanced Call Features, from the Call Flow Design page, click Add.
In Create New Call Flow, enter the required information:
Name
Enter a name for the call flow.
Remark
Enter an optional description.
Add Method
Select Based on Existing Template.
Select the required template and save the configuration.
The available templates include:
| Template | Purpose |
|---|---|
| IVR Key Call Flow | Provides a predefined IVR-based call flow that routes callers according to the key they press. It is suitable for menu-driven scenarios where different keypad selections lead to different destinations, such as Sales, Support, or other departments. |
| Time Condition Call Flow | Provides a predefined call flow that routes incoming calls according to the configured time conditions. Different routing actions can be applied during office hours, outside office hours, or holidays, allowing the call-handling behavior to change automatically based on the organization’s schedule. |
| Input Match Authentication Call Flow | Provides a predefined call flow that collects input from the caller and checks it against predefined values. Based on whether the entered value matches the configured value, the call can be routed to the appropriate destination or handled as invalid input. |
After creation, click Edit Component. The call-flow editor opens in a new browser tab. Click the + icon to add additional nodes.
IVR Key Call Flow
The Call Flow Based on IVR Key Press template provides a predefined call-routing structure based on the caller’s keypad input. When the template is selected, the UCM automatically creates an IVR-based flow with branches for Key 1 and Key 2, which can route the caller to different destinations, as well as Invalid Input and Response Timeout branches to handle unsuccessful or incomplete input. The generated flow provides a ready-to-use starting point for menu-based call routing and can be further customized in the Call Flow editor to match the required UC solution.
Call Flow Based on Time Condition
The Call Flow Based on Time Condition template provides a predefined structure for routing calls according to the configured time conditions. When the template is selected, the UCM automatically creates branches for different time states, such as Office Time, Out of Office Time, and Holiday. In the example shown, calls received during office hours are transferred to a Queue, calls received outside office hours are transferred to Voicemail, while calls received during a holiday are terminated. This template is therefore useful for automatically applying different call-handling rules depending on the organization’s operating schedule.
Input Match Authentication Call Flow
The Input Match Authentication Call Flow template provides a predefined structure for collecting input from the caller and checking it against a configured value. In the example shown, the caller enters information through the User Input component, after which the Condition component evaluates the entered value. If the input matches the configured value (1000), the call is transferred to the Queue; if the input is invalid, the call is routed to Hang Up. This template is useful for simple input-based validation and routing scenarios where access or call handling depends on information entered by the caller.
Create Manually
Click Add and select Manual under Add Method.
After you create the flow, open the editor and add or drag the required components into the design area.
Copy an Existing Call Flow
Select Based on Existing Flow to reuse an existing call flow.
This method is useful when an existing configuration is similar to the new requirement and only a few components need to be modified.
Import a Call Flow File
Select Import Call Flow File to import an existing call-flow configuration in JSON format.
Building the Call Flow
The call flow begins with the Initial Action and continues through the components added to the visual design.
The main components are:
| Component | Function |
|---|---|
| Prompt | Plays an audio file or text-to-speech prompt. |
| Time Condition | Routes calls according to time. |
| IVR Menu | Provides menu choices and routes calls according to DTMF input. |
| User Input | Collects DTMF input for further processing. |
| Language | Changes the language used by subsequent prompts. |
| Record Audio | Controls call recording. |
| Dial By Number | Allows callers to enter a number for dialing. |
| Dial By Name | Allows callers to search for a user by name. |
| Transfer | Transfers the call to a configured destination. |
| Hang Up | Terminates the call. |
| Condition | Routes the call according to an expression. |
| Loop | Repeats components according to a count or condition. |
Initial Action
The Initial Action is the starting point of the call flow. It defines the number used to access the call flow and can also include a prompt for a welcome message or instructions. The configured number must belong to the Call Flow Number range.
Prompt
The Prompt component plays an audio file or converts text to speech. Custom audio can also be uploaded, and AI-generated prompts can be used when the applicable AI functionality is available.
Time Condition
The Time Condition component routes calls according to time. It supports Office Time, Custom Time, and Custom Time Group.
IVR Menu
The IVR Menu component provides menu options and routes calls according to the caller’s DTMF input. A prompt can be configured using an existing audio file or AI-generated speech, with options to define the language, voice, speech speed, and volume. The menu can also be configured to repeat the prompt a specified number of times, as well as define Digit Timeout and Response Timeout values. When the configured timeout is reached, the call can follow the corresponding Invalid Input or Response Timeout branch.
User Input
The User Input component collects DTMF input from the caller for further processing. The entered value can be stored in a variable and used with a Condition component to determine the next call-flow branch. A prompt can be configured to guide the caller’s input, using an existing audio file or AI-generated speech. The component also supports Digit Timeout, Response Timeout, and the configured terminating key to control when input collection ends.
Language
The Language component changes the language used by subsequent system prompts. Its priority is lower than the extension language setting; when the extension uses the default language, the language configured in this component is applied.
Record Audio
The Record Audio component controls call recording. A prompt can be played before or during recording to inform the parties that the call is being recorded. The component can also be used to disable recording for the call.
Dial By Number
The Dial By Number component allows the caller to enter a number and be routed to an applicable destination. Extension dialing can be configured to allow all extensions, selected extensions, or all extensions except selected ones. Local service numbers and external numbers can also be configured.
Dial By Name
The Dial By Name component allows callers to search for and call a user by entering the first three letters of the user’s name. The component can be configured with a Prompt to guide the caller and supports dialing users from Local Members and configured LDAP Phonebooks. Administrators can select which local users or LDAP phonebook entries are available for dialing by moving them from the Available list to the Selected list.

Transfer
The Transfer component transfers the current call to a configured UCM destination. A prompt can be played before the transfer to notify the caller.
Hang Up
The Hang Up component terminates the current call when the caller reaches this point in the call flow. This component does not have any configuration options; simply add it to the flow wherever the call should be terminated
Condition
The Condition component evaluates expressions and routes the call through different branches according to the result. Multiple branches can be configured with different expressions.
Loop
The Loop component repeats one or more components either for a fixed number of times or according to a configured condition. Components to be repeated can be added inside the Loop component.

Expressions
Expressions are mainly used with Condition and conditional loops.
The feature provides built-in variables including:
| Variable | Description |
|---|---|
CALLFLOW_LANGUAGE | Language configured for the current call flow |
CALLFLOW_NUMBER | Number of the current call flow |
CFAUTORECORDING | Whether recording is enabled |
CF_INPUT_STATUS | Status of the previous user input |
CF_INPUT_KEY | Value of the previous DTMF input |
Examples:
"${CF_INPUT_KEY}" == "1234"
Checks whether the entered value is 1234.
"${CF_INPUT_KEY}" == "1" & "${CALLERID(number)}" == "5003"
Checks whether the input is 1 and the caller number is 5003.
"${CF_INPUT_KEY}" == "1" | "${CALLERID(number)}" == "5003"
Checks whether the input is 1 or the caller number is 5003.
"${BLACKLIST()}" == "1"
Checks whether the caller is on the blacklist.
Saving and Enabling the Call Flow
When the configuration is complete, click Save.
An incomplete configuration can be saved as a draft, but a draft cannot be enabled.
A completed call flow can be enabled from either:
- the Call Flow Design list; or
- the call-flow editing page.
When enabling from the editing page, click Enable and save the configuration.
Using a Call Flow with Other UCM Services
A call flow becomes part of the UC solution when it is assigned as the destination of another UCM service.
For example, in an Inbound Route, the Inbound Destination can be configured to use a Call Flow.
A typical deployment can therefore follow:
External Call → Inbound Route → Call Flow → IVR / Condition / Transfer → Final Destination
This approach allows administrators to use Call Flow Design as the logic layer between an incoming call and the final destination, making complex routing easier to organize and maintain.

Call Flow Management
Call flows can also be exported for reuse or backup.
Select the required call flow(s) and click Export.
- Exporting one call flow produces a JSON file.
- Exporting multiple call flows produces a ZIP file containing the JSON files.
Supported Devices
Models | Firmware Required |
UCM630x Series | 1.0.35.4+ |
UCM630xA Series | 1.0.35.4+ |

























