~4 min2 / 14

Flow Control Activities

Flow Control activities define the execution path of a workflow — branching on conditions, iterating over collections, handling errors, composing sub-workflows, and pausing execution. They are the backbone of every automation.

BreakBreak

Exit the current loop immediately. Works inside ForEach and While loops.

This activity takes no parameters.

CommentComment

Add a comment or note to the workflow. Does not affect execution.

ParameterTypeRequiredDefaultDescription
TextStringNoThe comment text (displayed in the workflow designer and logged during execution)

ContinueContinue

Skip to the next iteration of the current loop. Works inside ForEach and While loops.

This activity takes no parameters.

DelayDelay

Pauses workflow execution for a specified duration.

ParameterTypeRequiredDefaultDescription
DurationStringYes00:00:01Duration to delay in format hh:mm:ss (e.g., 00:00:05 for 5 seconds, 00:01:30 for 1 minute 30 seconds). Also accepts seconds as a number. Supports variable references.

Do WhileDo While

Executes actions first, then repeats while a condition remains true (body runs at least once).

ParameterTypeRequiredDefaultDescription
ConditionStringYesBoolean expression checked AFTER each iteration (e.g., '${i} < 10'). Loop continues while true.
CounterStringNodoWhileCounterVariable to store the current iteration count (0-based)
MaxIterationsInt32NoMaximum number of iterations (safety limit, default 10000)
BodyActionsList<Object>NoActions to execute in each iteration

Else IfElse If

Evaluates condition only if no previous If/Else If in the chain matched. Place directly after an If or another Else If.

ParameterTypeRequiredDefaultDescription
ConditionStringYesBoolean expression to evaluate (e.g., '${Score} >= 90' or '${Status} == "Pending"')
ThenActionsList<Object>NoActions to execute if condition is true
ElseActionsList<Object>NoActions to execute if condition is false

For EachFor Each

Iterates over a collection and executes actions for each item.

ParameterTypeRequiredDefaultDescription
InObjectYesCollection of items to iterate (List, Array, DataTable, etc.)
ItemNameStringNocurrentItemName of the variable that will hold the current item during each iteration
ArgumentTypeStringNoObjectThe type of each item in the collection Allowed: Boolean, Int32, String, Object, DataTable, File, Array
ConditionStringNoOptional condition to filter items (VB expression)
MaxIterationsInt32NoMaximum number of iterations (leave blank for no limit)
IndexInt32NocurrentIndexVariable to store the current iteration index (0-based)
BodyActionsList<Object>NoActions to execute for each item

If ConditionIf

Executes one sequence of actions if a condition is true, otherwise executes an alternative sequence.

ParameterTypeRequiredDefaultDescription
ConditionStringYesBoolean expression to evaluate (e.g., '${Count} > 10' or '${Status} == "Active"')
ThenActionsList<Object>NoActions to execute if condition is true
ElseActionsList<Object>NoActions to execute if condition is false

Invoke WorkflowInvoke Workflow

Call another workflow as a sub-process, passing arguments and capturing outputs.

ParameterTypeRequiredDefaultDescription
WorkflowStringYesWorkflow file to invoke (relative path within the project).
ArgumentsStringNoJSON array of ArgumentMapping — maps parent variables to/from child workflow parameters. Direction is auto-detected.

ParallelParallel

Execute child activities in parallel. All branches run simultaneously.

ParameterTypeRequiredDefaultDescription
CompletionConditionStringNoAllWhen to complete: 'All' waits for all branches, 'Any' completes when first branch finishes Allowed: All, Any

RethrowRethrow

Re-throw the current exception from a Catch block. Use inside TryCatch Catch blocks to propagate errors.

This activity takes no parameters.

RetryRetry

Retry failed activities with configurable attempts, exponential backoff, and exception type filtering.

ParameterTypeRequiredDefaultDescription
MaxAttemptsInt32No3Maximum number of retry attempts (including the first attempt)
RetryIntervalInt32No1000Delay between retries in milliseconds
ExponentialBackoffBooleanNoTrueUse exponential backoff (1s, 2s, 4s, 8s...) instead of fixed interval
RetryOnExceptionsStringNoComma-separated exception types to retry on (e.g. 'TimeoutException,IOException'). Leave empty to retry on all exceptions.

SequenceSequence

Executes a set of child activities according to a single, defined order.

This activity takes no parameters.

SwitchSwitch

Multi-branch conditional. Evaluates an expression and executes the matching case branch.

ParameterTypeRequiredDefaultDescription
ExpressionStringYesThe expression to evaluate. The result is matched against case values.

ThrowThrow

Throw a custom exception with a message. Use inside Try Catch blocks for error signaling.

ParameterTypeRequiredDefaultDescription
MessageStringYesThe exception message to throw
ExceptionTypeStringNoExceptionThe type of exception to throw Allowed: Exception, ArgumentException, InvalidOperationException, NotSupportedException, TimeoutException, FormatException, IOException, ApplicationException

Try CatchTry Catch

Execute activities with error handling. Catch exceptions and optionally run cleanup logic in a Finally block.

ParameterTypeRequiredDefaultDescription
RethrowBooleanNoFalseRe-throw the caught exception after executing the Catch block

While LoopWhile

Repeatedly executes actions while a condition remains true.

ParameterTypeRequiredDefaultDescription
ConditionStringYesBoolean expression to evaluate (e.g., '${i} < 10' or 'i < 10')
CounterStringNowhileCounterVariable to store the current iteration count (0-based)
MaxIterationsInt32NoMaximum number of iterations (leave blank for default 10000 safety limit)
BodyActionsList<Object>NoActions to execute in each iteration
Was this helpful?