Conditions: Defining When a Rule Passes or Fails

Created by Alexandru Sirbu, Modified on Tue, 17 Mar at 12:28 PM by Alexandru Sirbu

Each condition is made up of three parts: a Domain (the left-hand side), a condition operator (the test), and a value (the right-hand side). The value can be a literal string, number, or date - or it can reference another Domain or a Data Link column by typing @ to open the reference picker.


Multiple conditions within a single rule are combined by a logical operator set at the top of the Conditions section: And (all must be met), Or (at least one must be met), or All True (conditions are skipped and the rule always passes - useful for unconditional action rules). Sub-Conditions can be nested inside a condition to build more complex logic: for example, an And group that contains an Or sub-group.


Adding Conditions

  1. In the Business Rule form, locate the Conditions section. Set the top-level logical operator to And, Or, or All True.
  2. Click Add Condition. A new condition row appears
  3. Select the Domain from the first dropdown. The available condition operators in the second dropdown update automatically based on the Domain's data type
  4. Select the condition operator
  5. Enter the comparison value in the third field. Type @ to open the reference picker and select another Domain or a Data Link column instead of a literal value, when applicable.
  6. To add a Sub-Condition nested under an existing condition, click the Add Sub-Condition button on that condition row. Sub-conditions can have their own logical operator independent of the parent level
  7. Repeat for each additional condition

Use Sub-Conditions when you need mixed And/Or logic within a single rule. For example: (Country is 'DE') And ((PostalCode starts with '1') Or (PostalCode starts with '2')). The outer level uses And; the inner sub-condition group uses Or.


Condition Operators by Data Type

The available operators depend on the data type of the Domain selected.


String Conditions

Operator

Description

Is equal to

Exact match - both values must be identical.

Is not equal to

Values must differ.

Is null

The value is NULL (empty cell, not an empty string).

Is not null

The value is not NULL.

Empty

The string is empty (zero-length, not NULL).

Whitespace

The string contains only whitespace characters.

Contains

The string contains the specified substring.

Starts with

The string begins with the specified value.

Ends with

The string ends with the specified value.

Has exact length of

The string has exactly the specified number of characters.

Has maximum length of

The string does not exceed the specified number of characters.

Has minimum length of

The string meets or exceeds the specified minimum number of characters.

Has Date format

The string can be parsed as a valid date.

Matches pattern

The string matches a pattern using * (zero or more characters) and . (any single character).

Not Matches pattern

The string does not match the pattern.

Matches Regex

The string matches a regular expression.

Not Matches Regex

The string does not match the regular expression.

Character Blacklist

The string does not contain any of the specified characters.

Is one of

The value is present in a comma-separated list.

Is none of

The value is not present in a comma-separated list.

 

Number Conditions

Operator

Description

Is equal to

Both values are numerically equal.

Is not equal to

Values differ.

Is null

The value is NULL.

Is not null

The value is not NULL.

Is greater than

Left value is greater than the right.

Is greater than or equal to

Left value is greater than or equal to the right.

Is lower than

Left value is less than the right.

Is lower than or equal to

Left value is less than or equal to the right.

Has maximum length of

The number has at most this many digits.

Has minimum length of

The number has at least this many digits.

Is one of

The value is in a comma-separated list of numbers.

Is none of

The value is not in a comma-separated list of numbers.


Date Conditions

Operator

Description

Is equal to

Both dates are the same.

Is not equal to

Dates differ.

Is null

The value is NULL.

Is not null

The value is not NULL.

Is greater than

Date is later than the comparison value.

Is greater than or equal to

Date is the same as or later than the comparison value.

Is lower than

Date is earlier than the comparison value.

Is lower than or equal to

Date is the same as or earlier than the comparison value.

Is one of

The date is in a list.

Is none of

The date is not in a list.

Is day of week

The date falls on the specified day of the week.

Is not day of week

The date does not fall on the specified day.

Is month

The date falls in the specified month.

Is not month

The date does not fall in the specified month.

Older than

The date is older than the specified duration.

Not older than

The date is not older than the specified duration.


Boolean Conditions

Operator

Description

Is equal to

Both boolean values are the same.

Is not equal to

Values differ.

Is null

The value is NULL.

Is not null

The value is not NULL.

Is True

Value is true - accepts: y, yes, true, 1, wahr (case-insensitive).

Is False

Value is false - accepts: n, no, false, 0, falsch (case-insensitive).


Pattern Matching

The Matches pattern and Not Matches pattern operators use a simplified pattern syntax with two special characters:

  • . (dot): Matches any single character except a newline.
  • * (asterisk): Matches zero or more occurrences of any character.


Pattern

Behaviour

A.C

Matches any three-character string starting with A and ending with C. Valid: ABC, ADC, A C. Invalid: ABDC, ABD.

A*C

Matches any string that starts with A and ends with C, any length. Valid: ABC, ADBSFC, A%C. Invalid: ABDFB, CCBBC.

INV.....D..-..-....

Matches an invoice reference starting with INV, any five characters, then D, then a date in DD-MM-YYYY format.


Pattern matching is not the same as RegEx - the * in HEDDA.IO patterns matches any character (equivalent to .* in RegEx), not just the preceding character. Use Matches Regex for full regular expression control.


Regular Expression Matching

The Matches Regex and Not Matches Regex operators accept standard regular expressions. This is the most powerful condition operator for string validation - use it for structured formats like email addresses, phone numbers, postal codes, or document references.


Referencing Other Domains and Data Links

Any condition value field accepts a reference to another Domain or a Data Link column instead of a literal value. Type @ in the value field to open the reference picker, which lists all Domains in the Knowledge Base and all columns from configured Data Links.


Condition: InvoiceDate is lower than or equal to @DueDate. Both are Domains in the same Knowledge Base. This checks that every invoice was created before or on its due date - without any hardcoded literal value.

Condition: product_name is equal to @DataLink.old_product_name. The right-hand side is a column from a Data Link. When combined with a second condition on the client Domain, this matches rows where the product name matches an entry in the reference table.


If you have any further questions, please feel free to Contact Us.

You can also refer to the HEDDA.IO End User Documentation.


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article