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

# True/False Branch

> Split contacts into two paths based on whether a set of conditions evaluates to true or false.

The True/False Branch node evaluates one or more conditions against the contact's current data and routes them down one of two paths: **True** (conditions met) or **False** (conditions not met). Use it for any decision point where contacts should follow different paths based on their attributes, engagement, or audience membership.

## Configuration

### Condition types

You can build conditions using the [Unified Query Engine](/product-docs/unified-query-engine/overview), which supports contact fields, company fields, variables, and event properties.

| Operator                        | Description                       | Example                          |
| ------------------------------- | --------------------------------- | -------------------------------- |
| **Equals / Not equals**         | Exact value match                 | `Plan = Enterprise`              |
| **Contains / Does not contain** | Partial text match                | `Job Title contains "Marketing"` |
| **Greater than / Less than**    | Numerical comparison              | `Days since signup > 30`         |
| **Is empty / Is not empty**     | Check whether a field has a value | `Phone is empty`                 |
| **Before / After**              | Date and timestamp comparison     | `Created date before 2025-01-01` |

### Combining conditions

You can add multiple conditions and combine them with logic operators:

* **AND** — every condition must be true for the branch to resolve as True
* **OR** — at least one condition must be true for the branch to resolve as True
* **Nested groups** — combine AND and OR operators for complex rules

Example: `Plan = Enterprise AND (Region = US OR Region = UK)` evaluates to True only if the contact is on an Enterprise plan **and** located in either the US or UK.

## Behavior

* Contacts are evaluated **immediately** when they reach the node, using the most current data available at that moment.
* Each contact follows exactly **one path** — True or False. A contact never follows both.
* If a referenced variable or field is missing or empty, it is treated as empty. This typically causes the condition to evaluate as False, unless the condition explicitly checks for emptiness (e.g., `Phone is empty`).

<Info>
  If you need more than two paths, use an [If/Else Branch](/product-docs/workflows/nodes/if-else-branch) to evaluate multiple conditions sequentially, or a [Field Branch](/product-docs/workflows/nodes/field-branch) to route contacts based on specific field values.
</Info>

### Timing considerations

If a True/False Branch immediately follows a node that updates data (like [Update Field](/product-docs/workflows/nodes/update-field) or [Magic Enrichment](/product-docs/workflows/nodes/magic-enrichment)), the branch evaluates against the updated data. However, if you are relying on data written by an external system (e.g., a CRM sync), there may be a propagation delay. In those cases, consider placing a short [Time Delay](/product-docs/workflows/nodes/time-delay) before the branch to allow the data to settle.

## Decision logic examples

| Condition                           | Contact data                   | Result | Path         |
| ----------------------------------- | ------------------------------ | ------ | ------------ |
| `Plan = Enterprise`                 | Plan = Enterprise              | True   | True branch  |
| `Plan = Enterprise`                 | Plan = SMB                     | False  | False branch |
| `Region = US OR Region = UK`        | Region = US                    | True   | True branch  |
| `Plan = Enterprise AND Region = EU` | Plan = Enterprise, Region = US | False  | False branch |
| `Phone is empty`                    | Phone = (no value)             | True   | True branch  |
| `Phone is not empty`                | Phone = (no value)             | False  | False branch |

## Use cases

* **Enterprise vs. SMB segmentation** — route Enterprise contacts to a high-touch onboarding sequence and SMB contacts to a self-serve flow
* **Engagement gating** — check whether a contact opened a previous email before sending a follow-up
* **Lifecycle email timing** — verify a contact is still in a trial before sending an upsell email
* **Regional compliance routing** — send contacts through different paths based on region for GDPR or other regulatory requirements
* **Data completeness checks** — branch on whether key fields (email, phone, company) are populated before triggering enrichment or outreach
