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
- In the Business Rule form, locate the Conditions section. Set the top-level logical operator to And, Or, or All True.
- Click Add Condition. A new condition row appears
- Select the Domain from the first dropdown. The available condition operators in the second dropdown update automatically based on the Domain's data type
- Select the condition operator
- 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.
- 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
- 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.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article