> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fetchhive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Condition

> Configure a workflow step that branches execution into a TRUE or FALSE path based on a boolean expression over workflow variables

Use **Condition** when you want a workflow to take a different path depending on the value of an earlier step's output or a start input. The Condition step evaluates a boolean expression and routes execution down a **TRUE** or **FALSE** branch. Both branches must eventually rejoin at a single merge step before the workflow can continue.

Reach for this step when you need if/else logic, gated steps (for example, only send an email when a score is above a threshold), or lightweight A/B splits inside a workflow.

## Configuration

| Option             | Required | Description                                                                                                                                                      |
| ------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name               | No       | Label for the step in the workflow canvas.                                                                                                                       |
| Condition          | Yes      | The boolean expression that decides which branch runs. Built in the **Condition builder** as one or more rows, optionally nested in `AND` / `OR` / `NOT` groups. |
| Branches rejoin at | —        | Read-only. Shown once both branches converge on a merge step.                                                                                                    |

Add this step from the **Utilities** group in **Search steps...**. In the step picker, the label is **Condition**.

When you insert a Condition, Fetch Hive automatically creates an empty **TRUE** branch and an empty **FALSE** branch that both initially point at whatever step used to follow the insertion point. Use the `+` handles on each branch to add steps into that side of the branch from the canvas.

### Operators

The **Condition builder** supports these operators:

* Group operators: `AND`, `OR`, `NOT` — combine multiple rows or negate a sub-expression.
* Leaf operators:
  * `equals`, `does not equal`
  * `>`, `>=`, `<`, `<=`
  * `contains`, `starts with`, `ends with`
  * `is one of`
  * `exists`, `is empty` — take only a left-hand operand

### Operands

Each clause compares a **left** operand against a **right** operand (except `exists` and `is empty`, which only take a left operand).

Operands are either:

* A **workflow variable** — click **Insert Variable** to reference a start input (`{{variable_name}}`) or a previous step's output (`{{step_2.output.score}}`).
* A **literal value** — type a string, number, boolean, or array directly into the right-hand field.

## Output

Click **Run** in the step header to test the Condition. Fetch Hive shows the evaluated boolean result and a trace of the resolved left/right operands in **Output** after the run completes.

During a real workflow run, only one branch executes — the one matching the boolean result. The step's base reference is:

```text theme={null}
{{STEP_IDENTIFIER.output}}
```

Which resolves to `true` or `false` for later steps that want to reference the branch decision itself.

## Example

Add **Condition** from the **Utilities** group in **Search steps...**.

Set **Name** to something like `Score above threshold`.

In the **Condition builder**:

1. On the left operand, click **Insert Variable** and pick `{{step_2.output.score}}`.
2. Choose the `>` operator.
3. On the right operand, pick **Literal** and type `70`.

Click **Run** to confirm the expression evaluates the way you expect against the last test output. Then add the "send email" step into the **TRUE** branch on the canvas so it only runs when the score is above 70. The **FALSE** branch can stay empty (it rejoins the merge step directly) or you can add an alternative path.

{/* Add screenshot: Condition settings sheet with the expression builder */}

## Notes

* The expression must be complete before saving. Every row needs both a left and right operand (except `exists` / `is empty`, which only take a left operand).
* The evaluator is lenient with numeric-looking strings — comparing `"70"` to `70` works as you would expect.
* A Condition can only be removed when both branches are empty. Removing a Condition cascades deletes every step inside the TRUE and FALSE branches, so clear the branches first if you want to keep those steps.
* Both branches must converge at a single merge step for the workflow to be valid. Fetch Hive surfaces a warning if the branches don't rejoin.
* Conditions cannot be nested inside another Condition branch yet.

See also: [Creating and Editing](../../creating-and-editing), [Testing and Iteration](../../testing-and-iteration), and [Error Handling](../../error-handling)
