clsDynamicStepBuilder Step

Use this feature to dynamically create workflow execution steps during process execution.

Last published at: August 4th, 2026

Description:

The Dynamic Steps step enables a FlowWright workflow to dynamically construct workflow execution steps during runtime.

In many enterprise workflows, the execution path cannot be fully determined during workflow design. For example, approval stages may vary depending on organizational hierarchy, project type, business rules, risk level, or external configuration. Rather than creating numerous conditional branches within the workflow designer, this step allows FlowWright to generate serial or parallel workflow steps dynamically during execution.

The step accepts a dynamic execution type and runtime step data supplied through a workflow variable or global variable. During execution, FlowWright interprets the supplied runtime data and constructs the required workflow steps according to the selected dynamic type.

Typical uses include:

  • Creating dynamic approval paths
  • Building serial approval workflows
  • Creating parallel review processes
  • Generating workflow branches at runtime
  • Supporting metadata-driven workflow execution
  • Implementing configurable business processes
  • Building adaptive workflow structures
  • Creating runtime workflow routing

This step enables organizations to create flexible workflows that automatically adjust their execution structure according to runtime business conditions without requiring workflow redesign.

 

Inputs

  • Select Dynamic Type – Specifies the dynamic execution type that determines how workflow steps will be created, such as serial or parallel execution. This property is required.
  • Variable/Global Holding Dynamic Step Data – Specifies the workflow variable or global variable containing the runtime step definition data used to construct the workflow steps. This property is required.
 

 

Returns

  • True  – The workflow steps were successfully created using the selected dynamic type and runtime step data. Workflow execution continues through the success path.
  • False – One or more workflow steps could not be created because of invalid runtime data, incorrect dynamic type selection, configuration errors, or another execution error. Workflow execution follows the alternate path.
 

 

Usage:

The Dynamic Steps step is typically used whenever the workflow execution path must be determined during runtime rather than during workflow design.

During execution:

  1. Read the selected dynamic type.
  2. Retrieve the runtime step data from the configured workflow variable or global variable.
  3. Interpret the supplied step definition data.
  4. Construct the workflow execution path according to the selected dynamic type.
  5. Create the required serial or parallel workflow steps.
  6. Continue workflow execution through either the True or False return path.

A typical workflow might look like this:

 

Typical workflow scenarios include:

  • Dynamic approval routing
  • Parallel document reviews
  • Configurable business processes
  • Runtime workflow branching
  • Department-specific workflow execution
  • Customer-driven workflow customization
  • Metadata-driven process execution
  • Adaptive enterprise workflows

 

Example:

Let’s build and execute the “clsDynamicStepBuilderDef” example.

  • Create a new process definition named “clsDynamicStepBuilderDef” and open it in designer mode. 
  • Drag the “updateGlobals, placeHolders, and clsDynamicStepBuilder" steps to the canvas.
  • Connect the dots between the “Start” and other steps, as shown above.
  • Click the “updateGlobals” step to configure its “Required” properties. Provide a name for the step, then click the Save button. Note: Click the "AI Predict" button for the Copilot to add new process steps that match your process description. 

 

  • Click the “updateGlobals” step to configure its “Optional” properties. Click the button to update multiple globals. A pop-up window appears for configuration. Click the Add Row (+) button to insert an empty row. Enter a global reference and the step data as a global value. Select “Yes” for “Has Expression” if the global value includes a C# expression. Click the Save button. 

 

  • The global value contains the dynamic step data.
 PHN0ZXBEYXRhPgo8ZmlndXJlIGlkPSIxZWRmNDRiYy0yZjg2LTE4M2QtNWQyMC1lYmUxNDZhYzU1YzEiIG5hbWU9IlNhbGVzIGFwcHJvdmFsIiB0eXBlPSJ0YXNrIiB4PSIwIiB5PSItOTIwIiBpc1ZhbGlkPSJ0cnVlIj4KICA8cHJvcGVydGllcz4KICAgIDxwcm9wZXJ0eSBuYW1lPSJpdGVtTmFtZSI+U2FsZXMgYXBwcm92YWw8L3Byb3BlcnR5PgogICAgIDxwcm9wZXJ0eSBuYW1lPSJ0YXNrRGVzYyI+U2FsZXMgYXBwcm92YWw8L3Byb3BlcnR5PgogICAgPHByb3BlcnR5IG5hbWU9ImRheXNUb0NvbXBsZXRlIj41PC9wcm9wZXJ0eT4KICAgIDxwcm9wZXJ0eSBuYW1lPSJleHBpcmVUeXBlIj5taW51dGVzPC9wcm9wZXJ0eT4KICAgIDxwcm9wZXJ0eSBuYW1lPSJpbmNsdWRlV2Vla2VuZHMiPjE8L3Byb3BlcnR5PgogICAgPHByb3BlcnR5IG5hbWU9InJvdXRlVG8iPjQ2ZWNiNGRhLWQ3ZjEtNGM3Mi1iYjM3LTI2MjZmM2Y0M2Y2MzwvcHJvcGVydHk+CiAgPC9wcm9wZXJ0aWVzPgo8L2ZpZ3VyZT4gIAo8ZmlndXJlIGlkPSIxZWRmNDRiYy0yZjg2LTE4M2QtNWQyMC1lYmUxNDZhYzU1YzEiIG5hbWU9IkZpbmFuY2UgYXBwcm92YWwiIHR5cGU9InRhc2siIHg9IjAiIHk9Ii05MjAiIGlzVmFsaWQ9InRydWUiPgogIDxwcm9wZXJ0aWVzPgogICAgPHByb3BlcnR5IG5hbWU9Iml0ZW1OYW1lIj5GaW5hbmNlIGFwcHJvdmFsPC9wcm9wZXJ0eT4KICAgICA8cHJvcGVydHkgbmFtZT0idGFza0Rlc2MiPkZpbmFuY2UgYXBwcm92YWw8L3Byb3BlcnR5PgogICAgPHByb3BlcnR5IG5hbWU9ImRheXNUb0NvbXBsZXRlIj4xMjwvcHJvcGVydHk+CiAgICA8cHJvcGVydHkgbmFtZT0iZXhwaXJlVHlwZSI+bWludXRlczwvcHJvcGVydHk+CiAgICA8cHJvcGVydHkgbmFtZT0iaW5jbHVkZVdlZWtlbmRzIj4xPC9wcm9wZXJ0eT4KICAgIDxwcm9wZXJ0eSBuYW1lPSJyb3V0ZVRvIj40NmVjYjRkYS1kN2YxLTRjNzItYmIzNy0yNjI2ZjNmNDNmNjM8L3Byb3BlcnR5PgogIDwvcHJvcGVydGllcz4KPC9maWd1cmU+IAo8L3N0ZXBEYXRhPg==

 

  • Extract the Step information from any process definition XML (such as the one below) and convert it to Base64 for use as Step data (as shown above). 
<stepData>
<figure id="1edf44bc-2f86-183d-5d20-ebe146ac55c1" name="Sales approval" type="task" x="0" y="-920" isValid="true">
<properties>
<property name="itemName">Sales approval</property>
<property name="taskDesc">Sales approval</property>
<property name="daysToComplete">5</property>
<property name="expireType">minutes</property>
<property name="includeWeekends">1</property>
<property name="routeTo">46ecb4da-d7f1-4c72-bb37-2626f3f43f63</property>
</properties>
</figure>  
<figure id="1edf44bc-2f86-183d-5d20-ebe146ac55c1" name="Finance approval" type="task" x="0" y="-920" isValid="true">
<properties>
<property name="itemName">Finance approval</property>
<property name="taskDesc">Finance approval</property>
<property name="daysToComplete">12</property>
<property name="expireType">minutes</property>
<property name="includeWeekends">1</property>
<property name="routeTo">46ecb4da-d7f1-4c72-bb37-2626f3f43f63</property>
</properties>
</figure> 
</stepData>

 

  • Click the “clsDynamicStepBuilder” step to configure its “Required” properties. Provide a name for the step. Select the dynamic type from the list (parallel or serial). Provide the global reference for the dynamic step’s data value. Click the Save button. Note: Click the "AI Predict" button to have the Copilot add new process steps that match your process description. 

 

  • The “Logging” configuration is necessary for documentation and also measures workflow progress and percent complete. This is achieved by configuring the step state and percent fields individually, as shown below. Configure the “Logging” using the following properties.

 

  • Save the process definition, create a new instance, and execute it. Render the process instance. Click the process step to view its properties. The step dynamically creates serial or parallel steps based on the schema at runtime.

 

Tips:

  • Validate the runtime step data before executing this step.
  • Select the appropriate dynamic type that matches the intended workflow behavior.
  • Use a consistent runtime schema format across all workflows that generate dynamic steps.
  • Test both serial and parallel execution scenarios before deploying workflows into production.
  • Route the False execution path to logging and administrator notification activities.
  • Combine this step with Decision Tables, Business Rules, REST API, Database Query, Dynamic Tasks, or integration steps to create highly adaptive workflow solutions.

 

Notes:

  • The Select Dynamic Type property is required.
  • The Variable/Global Holding Dynamic Step Data property is required.
  • The step dynamically creates workflow execution steps during runtime.
  • Workflow execution may include dynamically generated serial or parallel branches depending on the selected dynamic type.
  • Runtime step definitions are supplied through a workflow variable or global variable.
  • Both the True and False execution paths should be implemented for complete workflow handling.
  • Invalid runtime step data or incompatible dynamic types may prevent workflow generation.v

 

Dynamic Steps vs. Dynamic Tasks:

Although both workflow steps dynamically construct workflow elements during runtime, they operate on different workflow components and use different configuration models.

Dynamic Steps Dynamic Tasks
Dynamically creates workflow execution steps during runtime. Dynamically creates workflow tasks during runtime.
Builds serial or parallel workflow execution paths. Builds runtime work assignments and task instances.
Requires a Dynamic Type and Variable/Global Holding Dynamic Step Data. Requires a Task XML definition.
Runtime behavior is driven by structured step definition data and the selected execution type. Runtime behavior is driven by an XML task definition.
Primarily modifies the workflow execution structure. Primarily creates workflow tasks for users or participants.
Ideal for adaptive workflow routing and configurable execution paths. Ideal for runtime generation of approval tasks, review tasks, and work assignments.

As a general guideline:

  • Use Dynamic Steps when workflows need to dynamically construct their execution structure, including serial or parallel branches, based on runtime configuration or business rules.
  • Use Dynamic Tasks when workflows need to dynamically create user tasks or work assignments from an XML definition without modifying the overall workflow execution structure.

 

Definition Sample:

You may download the sample workflow definition from the link provided and import it into your FlowWright environment.

Note: Verify and complete any missing configuration after importing the sample, including:

  • Dynamic type selection
  • Runtime step definition data
  • Success and failure workflow branches
  • Validation of the runtime workflow schema

After verifying the configuration, save and publish the workflow before execution.

Click here to download the sample file.