# Automation Flows in Leapwork

Automation flows in Leapwork are designed visually, without writing any code.

In Leapwork Flow, every flow is built by **connecting** [**building blocks**](https://docs.leapwork.com/leapwork-flow/latest/building-blocks) **on the** **Design Canvas** to define:

1. Logic 
2. Data flow 
3. Outcomes

**Note**: The screenshots on this page use the **Elegance Design**, introduced in **2025.3**. If you are using an earlier version, your layout may look different.

## Understanding the Studio Layout

Leapwork Flow consists of four main areas:

1. **Flows panel:** Organizes your flows, folders, and subflows in a structured tree view, allowing you to manage and navigate automation assets.
2. **Top toolbar:** Contains key controls like **Run**, **Save**, **Zoom**, **Agent selection**, and **Status settings**.
3. **Design canvas:** The central workspace where automation flows are built using visual building blocks and connectors. It supports zoom, pan, and alignment tools to help you arrange blocks neatly and keep flows easy to read.
4. **Inspector panel:** Located on the right, it displays and allows editing of the properties for the selected block.

## The Flows Panel

The Flows panel is where your automation assets live. It includes:

- **Folders**: to group flows and related items
- [**Flows**:](https://docs.leapwork.com/leapwork-flow/latest/working-with-leapwork/designing-automation-flows/flows) the individual automation processes
- [**Subflows**:](https://docs.leapwork.com/leapwork-flow/latest/working-with-leapwork/designing-automation-flows/sub-flows) reusable flow components
- **Captured elements**: UI elements used during automation

This section allows you to organize your work, create new assets, and interact with flows via right-click or the **New** button.

## How to Design a Flow

Designing a flow in Leapwork Flow means building automation visually on the design canvas using building blocks connected in sequence to define both logic and data flow. Each flow begins with a **Start** block by default, and from there, you can expand it into simple or complex automation, all without writing a single line of code.

### The Design Canvas

The **Design Canvas** is the central workspace where flows are created and edited. Here, you connect blocks to define the order of execution and how data moves between steps.

The canvas supports full **zoom**, **pan**, and **alignment tools**, helping you keep your flows organized and readable. Blocks are connected using two types of visual connectors:

- **Green connectors** define the execution order and indicate what happens next.
- **Blue connectors** pass data or properties between blocks and show how values flow.

With the latest design update, connectors (or _wires_) are now more flexible. You can **create elbows by double-clicking on a wire**, allowing you to shape paths, tidy up complex layouts, and align flows for better clarity.

## Steps to Design a Flow

1. **Create a new flow**:  In the Flows Panel, click the New Flow button or right-click and select New Flow from the list (**Manual and Build with AI**). A blank canvas opens with a **Start** block in place, ready for you to begin designing.

2. **Add building blocks:** Once the flow is created, you can start adding blocks to define the automation logic.
3. **Connect blocks:** Link the blocks together using connectors to define execution order and data flow.
4. **Configure block properties:** Click on a block to open its Inspector Panel to configure each block’s parameters, inputs, and outputs.
5. **Reorganize and refine your flow**: Rearrange blocks by dragging them across the canvas to improve layout and readability.
6. **Run the flow:** Select the execution agent in the top toolbar: Local (Display 1) or a Remote Agent.

**Note:** Local (Display 1) runs in Preview mode and is visible on your screen.

## Verifying Flows

Verification ensures your automation ends with a clear and meaningful result. Leapwork encourages the explicit use of **output blocks** to mark the outcome of every flow. We recommend always ending a flow with one of the following:

- **Pass**: When the flow completes successfully
- **Done**: For neutral or informational end states
- **Fail**: When the automation detects a failure condition

This prevents silent errors and ensures accurate reporting in dashboards and analytics.

### Branching Flows

Flows often include logic branches that determine which path to take based on conditions during execution. For example, a **Compare** block can evaluate a condition and output through the **top green connector** for _True_ or the **“Incorrect” output connector** for _False_.

### Looping Inside Flows

Use the [**Loop**](https://docs.leapwork.com/leapwork-flow/latest/building-blocks/logic/loop) block to repeat steps. It cycles through a range or collection, executing the connected blocks in each iteration.

### Preview Panel and Activity Log

Leapwork's new design offers an improved way to debug flows directly on the canvas. Use blocks from the [Error Handling](https://docs.leapwork.com/leapwork-flow/latest/building-blocks/error-handling) section, such as **Any Error**, to capture and analyze issues during execution.

## Versioning and Collaboration

Leapwork provides version history to track and manage changes. When saving a flow, you’re prompted to add a description.

Each version can be:
- **Previewed**
- **Restored** using one of three methods:
  - **Only Flow**: Restores the flow’s structure and logic (building blocks and their connections), but keeps the most recent Locators (captured UI elements).
  - **Full Restore**: Restores both the flow’s structure and the captured Locators as they were at the time of that version.
  - **Full Copy**: Restores the selected version into a duplicate flow, including all Locators

## Conclusion

Leapwork's features streamline the process of designing, verifying, and debugging automation flows, empowering users with a user-friendly visual interface.
