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

# Condition

> Branch the flow based on conditional logic

The **Condition** node evaluates one or more conditions against variables and branches the flow into `True` or `False` paths.

## Behavior

* Evaluates a list of conditions using the selected logic operator (`AND` / `OR`)
* Routes to `True` if the combined result is truthy, `False` otherwise
* Supports 13 comparison operators including regex matching

## Configuration

| Parameter       | Type  | Default | Description                                                                         |
| --------------- | ----- | ------- | ----------------------------------------------------------------------------------- |
| `logicOperator` | enum  | `"and"` | How to combine multiple conditions: `and` (all must match) or `or` (any must match) |
| `conditions`    | array | —       | List of condition rules (see below)                                                 |

### Condition rule

Each condition in the `conditions` array has:

| Field           | Type    | Default    | Description                           |
| --------------- | ------- | ---------- | ------------------------------------- |
| `variable`      | string  | `""`       | Variable name to evaluate             |
| `operator`      | enum    | `"equals"` | Comparison operator (see table below) |
| `value`         | string  | `""`       | Value to compare against              |
| `caseSensitive` | boolean | `false`    | Enable case-sensitive comparison      |

### Operators

| Operator        | Description                           |
| --------------- | ------------------------------------- |
| `equals`        | Exact match                           |
| `not_equals`    | Not equal                             |
| `contains`      | Variable contains the value           |
| `not_contains`  | Variable does not contain the value   |
| `starts_with`   | Variable starts with the value        |
| `ends_with`     | Variable ends with the value          |
| `greater_than`  | Numeric greater than                  |
| `less_than`     | Numeric less than                     |
| `greater_equal` | Numeric greater than or equal         |
| `less_equal`    | Numeric less than or equal            |
| `is_empty`      | Variable is empty or undefined        |
| `is_not_empty`  | Variable has a value                  |
| `regex_match`   | Variable matches a regular expression |

## Output handles

| Handle    | Description                                       |
| --------- | ------------------------------------------------- |
| **True**  | All conditions met (AND) or at least one met (OR) |
| **False** | Conditions not satisfied                          |

## Use cases

<AccordionGroup>
  <Accordion title="VIP routing">
    Check if `{{customer_tier}}` equals `"vip"`. Route VIPs to a priority transfer queue and standard customers to the general queue.
  </Accordion>

  <Accordion title="Input validation">
    After Collect Digits, check if `{{digits}}` matches a regex pattern (`regex_match` with `^\d{10}$`) to validate a 10-digit phone number.
  </Accordion>

  <Accordion title="Multi-condition logic">
    Combine conditions with `AND`: check that `{{department}}` equals `"sales"` AND `{{business_hours}}` is `"open"`. Only transfer if both are true.
  </Accordion>
</AccordionGroup>
