The Condition block is used to create decision points in a flow, allowing paths to diverge based on specific conditions. For example, you can implement logic such as:
“If Score is greater than 10, follow this path. Otherwise, follow another path.”

How Conditions Work

A condition block evaluates one or more comparisons, which can be combined using logical operators AND or OR:

  • AND: All comparisons must evaluate to true for the condition to pass.
  • OR: At least one comparison must evaluate to true for the condition to pass.

Each comparison checks a value against a specific operator.

Operators Available and Their Behavior

OperatorDescriptionExample
Equal toMatches if the provided value is strictly equal to the target value."age" = 25 will match if age is exactly 25.
Not equalMatches if the provided value is not equal to the target value."status" Not equial "active" will match if status is not "active".
ContainsMatches if the provided value contains the target value (or shares any elements if a list is provided)."tags" contains "important" will match if tags includes "important".
Does not containMatches if the provided value does not contain the target value (or does not share any elements if a list is provided)."tags" does not contain "important" will match if tags excludes "important".
Greater thanMatches if the provided value is greater than or equal to the target value."score" Greater than 20 will match if score is greater than or equal to 20.
Less thanMatches if the provided value is less than or equal to the target value."score" Less than 20 will match if score is less than or equal to 20.
Is setMatches if the provided value is neither null, undefined, nor an empty string."user.name" is set will match if user.name is not empty.
Is emptyMatches if the provided value is null, undefined, or an empty string."user.email" is empty will match if user.email is empty.
Starts withMatches if the provided value starts with the target value."username" starts with "admin" will match if username begins with "admin".
Ends withMatches if the provided value ends with the target value."filename" ends with ".jpg" will match if filename ends with ".jpg".
Matches regexMatches if the provided value conforms to a valid regex pattern."message" matches /^hello$/ will match if message is exactly "hello".
Does not match regexMatches if the provided value does not conform to a regex pattern."input" does not match /^[a-z]+$/ will match if input contains non-lowercase letters.

Regex Examples

Regex patterns can help match complex string conditions:

  • Exact Match: /^hello$/ matches the string "hello", but not "hello world".
  • Contains Substring: /hello/ matches any string containing "hello" (e.g., "hello world").
  • Case-Insensitive Match: /hello/i matches "Hello" or "HELLO".
  • Digit Check: /[0-9]+/ matches strings with one or more digits, such as "123" or "abc123".

Note: Regex patterns must start and end with / to be valid.

Example Use Case

If you want to route a flow based on the user’s score, you can define:

  1. Condition: Score > 20
    Path A: “High Score Route”
    Path B: “Low Score Route”

  2. Condition: User Tags contains "premium"
    Path A: “Premium Features Route”
    Path B: “Basic Features Route”

This enables dynamic and personalized user interactions based on predefined logic.