> For the complete documentation index, see [llms.txt](https://docs.ixhello.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ixhello.com/ixhc2/flow-node-subflow-user-guide.md).

# Flow Node (Subflow) User Guide

#### Overview

The Flow Node, also referred to as a Subflow Node, enables flow designers to connect one flow to another, allowing modular development and flow reusability. Alongside this enhancement, the Start Node has been upgraded with new capabilities for handling errors, disconnects, and subflow input/output variables.

These enhancements help simplify flow design, improve maintainability, reduce duplicate logic, and enable collaborative development of large projects.

***

## Flow Node (Subflow)

### What is a Flow Node?

A Flow Node allows a parent flow to execute another flow (subflow) and then return to the parent flow once execution is complete.

Think of it as flow chaining, where one flow can call another reusable flow component.

#### Runtime Behavior

When a Flow Node is executed:

* The system retrieves the selected subflow definition through an internal API.
* The subflow executes independently.
* Once execution is completed, control returns to the parent flow.
* The parent flow continues from the Flow Node completion path.
* If an error occurs within the subflow, it must be handled by the subflow itself.

***

### Key Benefits

* **Reusability:** Create common functionality once and reuse it across multiple flows.
* **Standard Libraries:** Build reusable flow components that can be shared throughout the organization.
* **Better Flow Organization**: Break large, complex flows into smaller manageable subflows.
* **Collaborative Development:** Different developers can independently work on different subflows, allowing faster project delivery.

***

### Flow Node Configuration

#### Step 1: Add a Flow Node

* Open Flow Builder.
* Drag and drop a Flow Node onto the canvas.
* Connect it to the desired location in the flow.

The Start Node now supports:

* Input Variables
* Output Variables
* Error Exit Path
* Disconnect Exit Path

These additions improve error handling and provide greater flexibility for subflow design.

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2Fi9EmUyHj1gu816Flq4R5%2Fimage.png?alt=media&amp;token=62e735f0-9e16-4995-a31a-d093e68db9c7" alt=""><figcaption></figcaption></figure>

***

#### Step 2: Select a Subflow

* Open the Flow Node configuration.
* Choose an existing flow from your organization.

{% hint style="info" %}
**Note:** Only flows available within the same organization can be selected.
{% endhint %}

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2F5dVkSMzTPXNUFSpNwULP%2Fimage.png?alt=media&amp;token=cee697c2-a8a4-4a37-b4d2-2ca96e89c3be" alt="" width="563"><figcaption></figcaption></figure>

***

#### Step 3: Configure Input Variables

Define the variables that should be passed from the parent flow into the subflow.

Examples:

* Customer ID
* Account Number
* Session Variables
* API Response Data

#### Step 4: Configure Output Variables

Specify the values that should be returned from the subflow back to the parent flow.

Examples:

* Survey Results
* Validation Status
* Process Completion Flag
* Generated Summary

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2F994bPyzdfb7EfejOAUdv%2Fimage.png?alt=media&amp;token=aead363c-6bfe-4d21-9739-6da2b44c0172" alt=""><figcaption></figcaption></figure>

#### Input and Output Variables

* Purpose: When a flow is intended to function as a subflow, the Start Node acts as the interface between the parent flow and the subflow.
* Input Variables: Used to receive information from the parent flow.
* Output Variables: Used to return data back to the parent flow.

***

### Designer Controls

Flow designers can determine:

* **Variables Passed Into Subflow:** Select which variables should be shared with the subflow.
* **Variables Returned:** Select which variables the subflow should return to the parent flow.
* **System Variable Visibility:** Choose which system variables should be available inside the subflow.

***

### Additional Behavior

* Conversation Context Isolation: Each subflow executes in its own conversation context.
* Persona Inheritance: The subflow automatically inherits the persona and voice configuration from the parent flow.
* Flow Validation: A parent flow is considered valid only if the linked subflow is also valid.
* If the referenced subflow contains validation issues, the parent flow will fail validation.

***

### Hide Subflow Transcript

For sensitive interactions such as:

* Authentication
* Authorization
* Security Verification
* Confidential Data Collection

Designers can enable the Hide Transcript option within the Subflow Start Node.

When enabled:

* The subflow conversation is excluded from the call transcript.
* Sensitive interactions remain hidden from transcript records.

***

### Quick Navigation

The Flow Node provides direct navigation to the referenced subflow.

Benefits:

* Quickly open and edit the linked subflow.
* No need to return to the main Flow menu.
* Faster development and troubleshooting.

Used to return data back to the parent flow.

***

#### Error Exit

The Error Exit provides centralized error handling for the entire flow.

Instead of adding error-handling logic to every node, a default error path can be configured once in the Start Node.

Runtime Behavior

When any node encounters an error:

1. The engine checks whether the node has its own error path.
2. If not, execution automatically routes to the Start Node Error Exit.
3. The configured error process executes.
4. The flow can either continue or terminate based on the configured logic.

#### Disconnect Exit

The Disconnect Exit enables execution of custom logic when a caller disconnects or when the session unexpectedly terminates.

Previously, disconnected sessions immediately ended without executing additional workflow logic.

**Runtime Behavior**

When a disconnect occurs:

1. The runtime engine detects the disconnect.
2. Execution moves to the Start Node Disconnect Exit.
3. The configured disconnect logic runs.
4. The flow ends after disconnect processing is complete.

<figure><img src="https://4187494610-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFe4cpY1jy0FJ4kgC7wSx%2Fuploads%2Fi2iSPHsQcQ5FCMMxJCls%2Fimage.png?alt=media&amp;token=506af502-ae45-413c-8771-8e58f0f72748" alt="" width="379"><figcaption></figcaption></figure>

#### Error Handling Within Disconnect Logic

To prevent infinite execution loops:

* Errors occurring inside the Disconnect Exit path do not route back to the Error Exit path.
* Any disconnect-path error immediately terminates the flow.

***

#### Existing Flow Compatibility

**Impact on Existing Flows**

There is no impact on currently deployed flows.

For existing flows:

* Error Exit remains undefined.
* Disconnect Exit remains undefined.
* Existing error-handling implementations continue to operate as before.

Users can optionally enhance existing flows by configuring the new Start Node capabilities.

***

#### Benefits

* Preserve Session Information: Store important data collected before the disconnect.
* Custom Logging: Record disconnect events for reporting and analytics.
* API Cleanup: Close active API sessions and release resources.
* Billing Activities: Execute custom billing operations.
* Chat Timeout Handling: Configure actions to perform when chat sessions terminate unexpectedly.
* Flow Summary Processing: Generate and save summaries before ending the session.

***

## Supported Nodes in Disconnect Path

Since the caller is no longer connected, user-facing operations are not permitted.

The following node types are supported:

* Set Node
* API Call Node
* Branch Node
* Flow Node (Subflow)
* End Node

The following are not supported:

* Say Node
* Transfer Node
* Any user-interaction node

***

## Conclusion

The introduction of Flow Nodes (Subflows) and the enhanced Start Node significantly improves flow design flexibility and maintainability. These capabilities allow teams to create reusable flow components, reduce duplicate development effort, implement centralized error handling, and execute custom disconnect processing. Together, these enhancements enable faster development, cleaner flow architecture, improved collaboration, and a more scalable approach to building complex conversational experiences.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ixhello.com/ixhc2/flow-node-subflow-user-guide.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
