- 07 Jul 2022
- 1 Minute to read
- Updated on 07 Jul 2022
- 1 Minute to read
Similar to how Folders can house other Folders, Flows can house other Flows, known as Sub Flows. Sub Flows provide the ability to isolate and reuse groups of steps within other Flows, reducing design time and simplifying a complex process into more manageable sub processes.
For example, making Sub Flows of frequently used steps, such as Sending an Email, Saving an Article, Creating an Alert, or performing Error Handling, simplifies an application's design and reduces clutter in the Flow Designer workspace.
For working examples, the Example Project section contains projects which utilize Sub Flows.
Adding a Sub Flow step
- In the Toolbox, select the Run Sub Flow step under the Favorite Steps category. If the step is not found here, expand the Designer Entities > Flows category and select [Pick or Create Flow] or Run Flow step.
- After adding the step to the workspace, select the Pick or Create Flow action in the properties panel and either create or select an existing Flow.
Inputs/Outputs for Sub Flows
The configured values will be reflected in the Properties for the Sub Flow step.
Designers may wish to run multiple asynchronous Sub Flows to accomplish tasks that normally occur synchronously to run in parallel to save time.
This checkbox is found under Properties > Advanced above the Selection Type setting.
Similar to the standard Flow, Sub Flows may utilize a variety of Selection Types that may affect both how and when the Sub Flow runs.
To view the Selection Types, add a Run Sub Flow step from the Toolbox in the Flow Designer. Click on it to view its Properties and expand the Advanced section to locate Selection Type.
Sub Flows may choose between the following three Selection Types:
|Pick (Default)||Allows the Designer to pick a Child Flow that runs once the Parent Flow progresses to the Run Flow Step|
|Runtime Selection||Initializes the Child Flow at runtime, reduces memory demands of Parent Flow preventing crashing|
|Champion/Challenger||Initializes the Child Flow against other Child Flows against changing logic to promote the most optimal solution|