---
description: executes flow
---

# Subflow

<img src="https://processmix.com/wp-content/uploads/2023/01/Property-1Subflow.png" alt="" data-size="line"> Enables encapsulation and reuse of flow logic by invoking reusable subflows. It promotes modular design and simplifies flow management by abstracting complex logic into reusable components. Users can configure the Subflow node to specify input parameters, interact with subflow outputs, and manage execution control within the parent flow.

***

## Properties

### Common

<mark style="color:purple;">**Name**</mark> - refers to the unique identifier or label assigned to a node within a flow.

<table><thead><tr><th width="139">Type</th><th>Restrictions</th></tr></thead><tbody><tr><td>input Text</td><td><ul><li>must consist of letters (A-Z or a-z), digits (0-9), underscores (_), or dollar signs ($). However, a class name cannot start with a digit and dollar sign ($)</li><li>Unique per flow</li><li>Mandatory</li><li>Min length: 1</li><li>Max length: 255</li><li><a href="../../../appendix/reserved-words">Reserved words</a></li></ul></td></tr></tbody></table>

<mark style="color:purple;">**Description**</mark> - provides a textual description or additional information about a  node within a flow. Unlike the name property, which serves as a unique identifier or label for the node, the description property offers supplementary details that help to clarify the purpose, functionality, or behavior of the node.

<table><thead><tr><th width="144">Type</th><th>Restrictions</th></tr></thead><tbody><tr><td>Input Text</td><td><ul><li>Max length: 5000</li></ul></td></tr></tbody></table>

### Specific

<mark style="color:purple;">**Flow**</mark> - the flow to be executed. You can select any flow from the project or its [dependencies](../../../dependencies).

<table><thead><tr><th width="144">Type</th><th>Restrictions</th></tr></thead><tbody><tr><td><a href="../..">Flow</a></td><td><ul><li>Mandatory</li></ul></td></tr></tbody></table>

<mark style="color:purple;">**Arguments**</mark> - flows can have input arguments.

<table><thead><tr><th width="144">Type</th><th>Restrictions</th></tr></thead><tbody><tr><td><a href="../../expressions">Expression</a></td><td><ul><li>Mandatory</li></ul></td></tr></tbody></table>

<mark style="color:purple;">**Async**</mark> - starts parallel execution of the selected flow. You'll not get a response. Default value is `FALSE`

<table><thead><tr><th width="144">Type</th><th>Restrictions</th></tr></thead><tbody><tr><td>Checkbox</td><td><ul><li>Mandatory</li></ul></td></tr></tbody></table>

***

## Result

If the Async property is `FALSE`, then a new [node variable](../../variables/node-variables) with the type defined in the selected flow will be added to the scope.

***

## Connections

| Type | Min count | Max count |
| ---- | --------- | --------- |
| in   | 1         | \*        |
| out  | 1         | 1         |

