---
version: "2026.1.0"
language: "en"
---
# Logic

The logic building blocks are used to control the execution flow of automation cases, as well as to transform values (numbers, text, coordinates, and dates) that you pass between steps.

## Logic flow

The **Compare** block compares two values and routes the flow based on whether the comparison evaluates to true or false.

The **Switch** block routes the flow to the first matching case based on an input value, with a dedicated No match path if nothing matches.

The **Loop** block creates an explicit loop that iterates from a start value to an end value using a step, and exposes a completion path when the loop finishes.

The **Break Iteration** block breaks out of a loop iteration (and can also break out of nested loops, depending on scope).

The **Wait** block pauses execution for a specified number of seconds before continuing.

## Change values

The **Calculate** block adds, subtracts, multiplies, or divides two numbers and can apply rounding.

The **Change Text** block manipulates text by applying operations such as substring and concatenate.

The **Regular Expression** block applies regex logic to text (for example match, split, or replace) and outputs the resulting value.

The **Offset Area** and **Offset Position** blocks adjust areas and positions by adding or subtracting values to their coordinates.

The **Offset Date/Time** block adds or subtracts time units (such as days, months, and hours) to a date/time value and returns the adjusted result.

## Utilities and custom logic

The **Get Clipboard** and **Set Clipboard** blocks read from and write to the system clipboard so you can pass values via copy and paste when needed.

The **Close Windows** block closes or minimizes all open windows (based on the action you select).

The **C# Code** block lets you run custom C# for advanced logic and data handling, with dedicated error handling when execution fails.