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

# True/False Branch

> Create binary conditional branches in your workflows with support for multiple conditions and AND/OR logic.

# True/False Branch

The True/False Branch step creates a binary conditional path in your workflow. It evaluates one or more conditions and routes execution to either the "True" or "False" path based on the result.

## Overview

True/False Branch steps are ideal for:

* Simple yes/no decisions
* Validating data before proceeding
* Implementing if/else logic
* Creating binary workflows based on conditions

## Configuration

When you add a True/False Branch step, you'll configure:

### Logical Operator

Choose how multiple conditions are combined:

* **AND**: All conditions must be true for the branch to evaluate as true
* **OR**: At least one condition must be true for the branch to evaluate as true

<Note>
  The logical operator applies to all conditions in the branch. If you need different logic for different conditions, consider using multiple True/False Branch steps or a Multi-Split Branch.
</Note>

### Conditions

Add one or more condition rules that evaluate workflow data:

#### Field

Select the workflow variable to evaluate. Available fields include:

* Variables from trigger events
* Output from previous steps
* System variables (like `event.timestamp`)

#### Operator

Choose the comparison operator based on the field type:

**String fields:**

* `Equal` - Exact match
* `Not Equal` - Not an exact match
* `Contains` - Field contains the value
* `Not Contains` - Field does not contain the value
* `Starts With` - Field starts with the value
* `Ends With` - Field ends with the value

**Number fields:**

* `Equal` - Values are equal
* `Not Equal` - Values are not equal
* `Greater Than` - Field is greater than value
* `Less Than` - Field is less than value
* `Greater Than or Equal` - Field is greater than or equal to value
* `Less Than or Equal` - Field is less than or equal to value

**Date fields:**

* `Equal` - Dates are equal
* `Not Equal` - Dates are not equal
* `Before` - Field date is before value
* `After` - Field date is after value
* `On or Before` - Field date is on or before value
* `On or After` - Field date is on or after value

#### Comparison Target

Specify what to compare the field against:

**Static Value:**

* Enter a fixed value (string, number, date, or boolean)
* For dates, you can use date pickers or relative dates

**Dynamic Field:**

* Compare against another workflow variable
* Useful for relative comparisons (e.g., `user.age > user.minimumAge`)

**Relative Time:**

* Compare dates relative to the current time
* Options like "7 days ago", "1 month from now", etc.

## Execution Flow

When a True/False Branch executes:

1. All conditions are evaluated based on the logical operator
2. If the result is **true**, execution follows the "True" path
3. If the result is **false**, execution follows the "False" path

```
Trigger
  ↓
True/False Branch (Condition: user.subscription === "premium")
  ├─ True → Send Email (Premium Welcome)
  └─ False → Send Email (Standard Welcome)
```

## Example Use Cases

### User Type Routing

Route users based on their subscription type:

```
Trigger (Event: User Signs Up)
  ↓
True/False Branch (user.subscription === "premium" AND user.verified === true)
  ├─ True → Send Email (Premium Onboarding)
  └─ False → Send Email (Standard Onboarding)
```

### Data Validation

Validate data before processing:

```
Trigger (Event: Order Created)
  ↓
True/False Branch (order.amount > 0 AND order.items.length > 0)
  ├─ True → HTTP Request (Process Order)
  └─ False → Send Email (Invalid Order Notification)
```

### Date-Based Logic

Route based on dates:

```
Trigger (Event: Task Created)
  ↓
True/False Branch (task.dueDate < "now + 7 days")
  ├─ True → Send Email (Urgent Task Reminder)
  └─ False → Send Email (Task Created Confirmation)
```

## Best Practices

<AccordionGroup>
  <Accordion title="Use AND for Validation">
    Use AND logic when you need all conditions to be true (e.g., validating that required fields are present).
  </Accordion>

  <Accordion title="Use OR for Alternatives">
    Use OR logic when any of several conditions should trigger the true path (e.g., checking if a user belongs to any of several groups).
  </Accordion>

  <Accordion title="Keep Conditions Simple">
    If you find yourself creating very complex condition logic, consider breaking it into multiple True/False Branch steps for better readability.
  </Accordion>

  <Accordion title="Test Both Paths">
    Always test both the true and false paths to ensure your workflow behaves correctly in all scenarios.
  </Accordion>
</AccordionGroup>

<Tip>
  You can chain multiple True/False Branch steps to create complex nested logic, but consider using a Multi-Split Branch if you have more than 2-3 paths.
</Tip>

<Warning>
  Empty condition rules (without a field or operator) will cause the branch to always evaluate as false. Make sure all conditions are properly configured.
</Warning>
