IVR Flows
Node | IVR Nodes |
|---|---|
Description | The IVR Flow Builder is a user-friendly, visual design tool for creating and managing IVR call flows. It allows users to configure key elements such as audio prompts, menu options, decision branches, and API integrations, enabling efficient setup and modification of customer interaction flows without the need for complex coding. |
Main IVR Nodes
The following are the main IVR nodes. There are many sub-nodes within these main nodes.
| Node | Description |
|---|---|
| Prompts Node | The Prompts Node is a standalone utility node used to retrieve audio prompts from a remote server via SSH. This node does not participate in the main IVR call flow, hangup flow, or exception flow. It is designed to operate independently on the same page where your main flow is created. To use it, place a separate Start node and directly connect it to a Prompts node. No other nodes are required or supported after it in this mini-flow. It simply fetches and lists available prompts from a specified directory and all of its sub-directories on the server. |
| Smart Play Node | Smart Play node is used to dynamically play numbers or dates in IVR — either digit-by-digit, whole number (spoken form), or as a date using audio prompts from predefined directories. |
| Decision Node | Decision node is used to implement conditional branching in an IVR flow, allowing dynamic control based on session data. It evaluates one or more logical conditions using values from CDO, SDO, or ENV sources and determines the next path in the call flow based on whether the combined result is true or false. This node generates conditional logic ( |
| Call Data Object | The CDO (Call Data Object) is essentially a container that holds all call-related information and enables the retrieval of call variables. It allows IVR designers to access call data at any point during the session lifecycle, whether across different nodes or when injecting it into custom JSON payloads. |
| SDO Node (Session Data Object) | The SDO(Session Data Object) Node is used to create or modify session-scoped variables during the IVR call flow. These variables are not tied to the CDO (Call Data Object), but are maintained separately within the the duration of the call. This node enables storing, modifying, and referencing dynamic data, making it extremely useful for managing user inputs, API responses, prompts, or any temporary values throughout the call journey. You can use this node anywhere in the flow, and its values can be accessed later in other nodes using the |
| Play Node | The Play Node is one of the most basic yet essential components of any IVR system. It is used to play a static voice prompt to the caller — often for informational messages, updates, or acknowledgements, without expecting any input in return. |
| Menu Node | The Menu Node is one of the core interactive components in an IVR (Interactive Voice Response) system. It plays a voice prompt to the caller, listens for DTMF (digit) input, and then routes the call based on the user’s selection. |
| Lua Code Node | The Lua Code Node allows you to insert and execute custom Lua code at any point within your IVR flow. It provides flexibility to perform advanced logic, call internal modules, or manipulate session data beyond the standard nodes. This node can be used in any part of the IVR, including the main call flow, hangup flow, or exception flow. |
| Deploy Node | The Deploy node is responsible for finalizing and publishing the entire IVR flow. It takes the complete call flow that has been designed in Node-RED, compiles it into a fully-structured Lua script, and securely deploys it to the target server over SSH. This node must be placed at the end of the flow, and all flow paths should ultimately terminate at this node to ensure proper Lua generation and deployment. |
| Queue Node | The Queue Node is used to route an incoming call to a specific agent queue via the Voice Connector. It interacts with the backend system to push the caller into a designated queue, based on predefined configuration or dynamic inputs during the call flow. |
| HTTP Node | The HTTP Node allows you to make RESTful API requests within the IVR flow. It can send data to or fetch data from external services, and automatically captures the response for use in later parts of the flow. This node is essential for integrating dynamic content, performing lookups, validating user input, or executing business logic via APIs. |
| Hang-up Node | The Hangup Node is designed to execute specific actions right after a call is terminated — whether the call ends naturally, is dropped by the caller, or disconnected by the system. It ensures that post-call processes are handled reliably, even though the main IVR flow has ended. |
| Exception Node | The Exception Node is a special-purpose node used to define a fallback flow in case of unhandled or unexpected errors during the IVR execution. It ensures that even if the main flow encounters a failure (e.g., API error, misconfiguration, timeout), the caller experience remains smooth and guided. |
| ENV Node | The ENV node is used to define environment-specific variables at the beginning of the IVR flow. It allows you to configure external or infrastructure-level values (e.g., API base URLs, domain names, configuration flags) that can be referenced throughout the flow using a single source of truth. This enables seamless transitions between environments (e.g., staging and production) without modifying logic in multiple places. |
| Digit Node | The Digit node is used to collect numeric input from the caller via DTMF tones. It plays a user-defined prompt and waits for a number to be entered by the caller. Input is validated against configurable rules like length and regular expressions, and is then stored into an SDO (Session Data Object) variable for later use in the IVR flow. This node is ideal for collecting values like complaint numbers, customer IDs, extension digits, or any form of numeric input. |