Skip to main content
Version: V11

IF Conditional Node

The IF Conditional Node evaluates conditions against workflow data to enable conditional branching, routing execution to different paths based on whether conditions are true or false. It supports six data types with type-specific comparison operators, multiple conditions combined using AND or OR logic, and nested data access using dot notation. The node has two output handles (True and False) that determine which downstream path executes.

How It Works

The IF Conditional node evaluates one or more conditions against workflow data to produce a boolean result that determines execution flow. During execution, the node retrieves values from workflow variables using specified data field paths, which support dot notation for nested objects and bracket notation for array access. Each condition compares the retrieved value against a comparison value using a type-aware operator.

The node performs type-specific comparisons: strings support pattern matching and case sensitivity options, numbers use mathematical comparisons with optional automatic type conversion, booleans handle truthy/falsy values, dates perform chronological comparisons, arrays evaluate both size and content, and objects check property existence.

When multiple conditions are configured, the node combines results using the specified logical operator. With AND, all conditions must evaluate to true for the overall result to be true, using short-circuit evaluation that stops at the first false condition. With OR, at least one condition must be true, stopping at the first true condition. The final boolean result is stored in the output field (defaulting to if_result) and determines which downstream path executes.

The node has two output handles: True and False. Connect downstream nodes to the appropriate handle based on the desired execution path. When the condition evaluates to true, execution continues through the True handle; when false, execution continues through the False handle.

Configuration Parameters

Conditions

Conditions (Array, Required): List of conditions to evaluate. At least one condition is required.

Each condition specifies a data field, data type, comparison operator, and optionally a value to compare against. Conditions are evaluated in order with short-circuit logic applied.

Each condition has the following properties:

Data Field (Text, Required): The workflow variable to evaluate. Supports dot notation for nested fields (e.g., user.profile.age) and bracket notation for array elements (e.g., results[0].score).

Data Type (Dropdown, Default: String): Data type of the field being evaluated.

Data TypeComparison BehaviorNotes
String (default)Pattern matching and case sensitivityLexicographic comparison: "10" > "2" is false
NumberMathematical operationsNumeric comparison: 10 > 2 is true
BooleanTruthy/falsy valuesHandles true/false evaluation
DateChronological comparisonsWorks with timestamps; ISO 8601 format recommended
ArraySize or content evaluationCompares array length or checks item presence
ObjectProperty existence checksVerifies if properties exist in objects

Operator (Dropdown, Required): Comparison operator based on the selected data type. Available operators change dynamically:

  • String: Equals, Not Equals, Contains, Not Contains, Starts With, Ends With, In, Regex, Is Empty, Is Not Empty
  • Number: Equals, Not Equals, Greater Than, Less Than, Greater Than or Equal, Less Than or Equal, Is Empty, Is Not Empty
  • Boolean: Equals, Not Equals, Is True, Is False, Is Empty, Is Not Empty
  • Date: Equals, Not Equals, Greater Than, Less Than, Greater Than or Equal, Less Than or Equal, Before, After, Is Empty, Is Not Empty
  • Array: Size Equal To, Size Not Equal To, Size Greater Than, Size Less Than, Contains, Not Contains, In, Is Empty, Is Not Empty
  • Object: Has Property, Not Has Property, Is Empty, Is Not Empty

Value (Text, Conditional): Value to compare against. Supports variable interpolation with ${variable_name}. Not required for Is Empty, Is Not Empty, Is True, Is False operators.

Case Sensitive (Toggle, Default: OFF): Enables case-sensitive string comparisons. Only available for String data type.

Strict Type Validation (Toggle, Default: OFF): Prevents automatic type conversion between strings and numbers.

Logical Operator

Logical Operator (Dropdown, Default: AND): How to combine multiple conditions.

OperatorBehaviorUse when
AND (default)All conditions must be trueAll criteria must be met simultaneously
ORAt least one condition must be trueAny criterion can trigger the true path

Short-circuit evaluation is applied: AND stops at the first false condition, OR stops at the first true condition.

Output Field

Output Field (Hidden, Default: if_result): Workflow variable where the evaluation result (true/false) is stored.

The result can be accessed in downstream nodes using ${if_result}, which returns true or false as a boolean value. This field is hidden in the Configuration Panel.

Common Parameters

This node supports common parameters shared across workflow nodes, including Logging Mode and Wait For All Edges. For detailed information, see Common Parameters.

Best Practices

  • Select the correct Data Type to avoid unexpected comparison results, especially when comparing numeric values stored as strings
  • Order conditions for performance: with AND, place conditions most likely to fail first; with OR, place conditions most likely to succeed first
  • Enable Strict Type Validation when working with external data sources to prevent bugs from automatic type coercion
  • Use variable interpolation (${variable_name}) instead of hardcoded values for reusable workflows
  • Check for empty or null values explicitly using Is Empty or Is Not Empty operators before performing other comparisons

Limitations

  • Single logical operator: All conditions use the same logical operator (AND or OR). Complex logic requiring mixed operators needs multiple IF Conditional nodes or the Switch node.
  • No nested conditions: Conditions cannot be nested or grouped. Each condition is evaluated independently.
  • String-based value input: The Value field accepts string input converted based on Data Type. Complex objects or arrays must be serialized to JSON strings.
  • Limited date format support: Date comparisons work best with ISO 8601 format. Custom formats may require preprocessing.
  • Output field hidden: The output field defaults to if_result and is not configurable in the UI.