> For the complete documentation index, see [llms.txt](https://docs.does.qa/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.does.qa/platform/flow-builder.md).

# Flow Builder

The **Flow Builder** is the visual editor for a [Flow](/getting-started/terminology.md). You place [Test Steps](/getting-started/terminology.md) on a canvas, connect them, and grow the design into full coverage.

After Getting Started, journey guides use the Flow Builder as the default way to build. The [Scenario editor](/platform/scenario-editor.md) shares the same Test Steps. Switching tabs shows the same Flow another way.

![Flow Builder canvas for a DoesQA Website journey](https://static.does.qa/assets/ui/light/working-flow-canvas.png)

## What you can do here

* Drag Test Steps from the step library onto the canvas, and filter the library when you search
* Connect steps so each [Test Case](/getting-started/terminology.md) path is clear
* Open a step to set Elements, Values, and other fields
* Add [Flow Branches](/getting-started/terminology.md) when one Flow should cover more than one path
* Gate a branch with [Condition](/test-steps/runner/condition.md) when a path should run only for a device, language, timezone, or Value
* Drop in [Step Groups](/better-coverage/reuse-steps-with-step-groups.md) for shared login or setup
* Select several steps, align them, duplicate them, or turn them into a Step Group
* Run or preview the Flow from the toolbar, then open **Results**

## Open the Flow Builder

{% stepper %}
{% step %}

## Open a Flow

Open a Flow from **Flows**, or create one.
{% endstep %}

{% step %}

## Select the Flow tab

Select the **Flow** tab.

New Flows open in the Scenario editor first. Use the **Flow** tab when you want the canvas, branches, or a clearer view of a growing Flow. See [Create and run your first Flow](/getting-started/create-and-run-your-first-flow.md).
{% endstep %}
{% endstepper %}

## Build on the canvas

1. Find a Test Step in the step library. Type in the search box to filter by name or family.
2. Drag the step onto the canvas below the step it should follow, so the connector joins them.
3. Open the step and set its fields.
4. Keep adding steps until the path matches the journey you want to prove.

{% hint style="info" %}
**Pro tip:** Hold **Shift** and drag to select several Test Steps at once. Then duplicate them, align them, or create a [Step Group](/better-coverage/reuse-steps-with-step-groups.md) from the selection.
{% endhint %}

## Useful canvas actions

| Action       | How                                                                                     |
| ------------ | --------------------------------------------------------------------------------------- |
| Undo / redo  | Toolbar controls, or **Cmd/Ctrl+Z** and **Cmd/Ctrl+Shift+Z**                            |
| Copy / paste | **Cmd/Ctrl+C** and **Cmd/Ctrl+V**                                                       |
| Duplicate    | **Cmd/Ctrl+D**, or **Duplicate Step(s)** on the context menu                            |
| Align        | Select two or more steps, then align left, right, top, or bottom from the context menu  |
| Delete       | **Backspace** or **Delete**. Neighbouring steps reconnect when a middle step is removed |
| Save         | Changes autosave. **Cmd/Ctrl+S** also saves                                             |

## Branches and Conditions

A Flow with more than one path uses Flow Branches. Design the shared steps once, then split into paths for smoke vs regression, mobile vs desktop, or staging vs production tags.

See [Choose Flow Branch shapes](/better-coverage/choose-flow-branch-shapes.md) for joined starts, a later split, join then split, and layered combinations.

Use [Condition](/test-steps/runner/condition.md) early on a branch when that path should run only for a matching Runner, device, language, timezone, or Run Value. Use [Tag Test](/test-steps/utility/tag-test.md) when a schedule, Recipe, or CI/CD call should pick the path by tag.

For tagging smoke and regression paths, see [Build smoke and regression coverage](/better-coverage/build-smoke-and-regression-coverage.md).

## Run from the Flow Builder

Use **Run Flow** on the toolbar to start a Run while you edit. Overflow controls also let you **Run Tests** or **Preview Tests** when you want a narrower check. Open **Results** from the same place when the Run finishes. See [Understand your results](/getting-started/understand-your-results.md).

## When to prefer the Flow Builder

| Prefer the Flow Builder when                              | Prefer the Scenario editor when                           |
| --------------------------------------------------------- | --------------------------------------------------------- |
| You need Flow Branches or a multi-path design             | You want a single path as plain-language sentences        |
| You are rearranging or extending a larger Flow            | You are starting a simple Flow for the first time         |
| You want the step library and canvas layout               | You are happiest editing step text in a list              |
| You need Step Groups, align, or multi-select canvas tools | You are editing Values and Element names in sentence form |

## Related

* [Scenario editor](/platform/scenario-editor.md)
* [DoesQA AI](/platform/doesqa-ai.md)
* [Create and run your first Flow](/getting-started/create-and-run-your-first-flow.md)
* [DoesQA concepts](/getting-started/doesqa-concepts.md)
* [Reuse steps with Step Groups](/better-coverage/reuse-steps-with-step-groups.md)
* [Choose Flow Branch shapes](/better-coverage/choose-flow-branch-shapes.md)
* [Build smoke and regression coverage](/better-coverage/build-smoke-and-regression-coverage.md)
* [Condition](/test-steps/runner/condition.md)
* [Terminology](/getting-started/terminology.md)
