Built in conditions
CfFlow comes with a set of pre-built conditions that you may use in your workflow definitions. This page details the conditions available. For example, you may use the built-in state.Exists condition in your YAML workflow definition:
condition:
  ref: state.Exists
  args:
    key: product_id
Conditions
- State conditions
- String conditions - string.IsEmpty
- string.IsEqual
- string.IsEqualNoCase
- string.IsGreaterThan
- string.IsGreaterThanNoCase
- string.IsLessThan
- string.IsLessThanNoCase
- string.RegexMatch
- string.RegexMatchNoCase
- string.Contains
- string.ContainsNoCase
- string.StartsWith
- string.StartsWithNoCase
- string.EndsWith
- string.EndsWithNoCase
 
- Boolean conditions
- Numeric conditions
- Date conditions
State conditions
state.Exists
The state.Exists condition allows you to check for the existance a variable within the current state of a workflow.
Args
| Name | Description | 
|---|---|
| key | Required. The name of the variable to check the existance of. | 
Example
condition:
  ref: state.Exists
  args:
    key: product_id
String conditions
string.IsEmpty
The string.IsEmpty condition allows you to evaluate whether the given string value is empty or not.
Args
| Name | Description | 
|---|---|
| value | Required. The input value to check. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.IsEmpty
  args:
    value: $state_var
string.IsEqual
The string.IsEqual condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.IsEqual
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.IsEqual
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.IsEqualNoCase
The string.IsEqualNoCase condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.IsEqualNoCase
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.IsEqualNoCase
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.IsGreaterThan
The string.IsGreaterThan condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.IsGreaterThan
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.IsGreaterThan
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.IsGreaterThanNoCase
The string.IsGreaterThanNoCase condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.IsGreaterThanNoCase
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.IsGreaterThanNoCase
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.IsLessThan
The string.IsLessThan condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.IsLessThan
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.IsLessThan
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.IsLessThanNoCase
The string.IsLessThanNoCase condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.IsLessThanNoCase
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.IsLessThanNoCase
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.RegexMatch
The string.RegexMatch condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.RegexMatch
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.RegexMatch
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.RegexMatchNoCase
The string.RegexMatchNoCase condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.RegexMatchNoCase
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.RegexMatchNoCase
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.Contains
The string.Contains condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.Contains
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.Contains
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.ContainsNoCase
The string.ContainsNoCase condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.ContainsNoCase
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.ContainsNoCase
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.StartsWith
The string.StartsWith condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.StartsWith
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.StartsWith
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.StartsWithNoCase
The string.StartsWithNoCase condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.StartsWithNoCase
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.StartsWithNoCase
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.EndsWith
The string.EndsWith condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.EndsWith
  args:
    pattern: test
    value: $state_var
condition:
  ref: string.EndsWith
  args:
    pattern: 
    - pattern_1
    - pattern_2
    - pattern_3
    value: $state_var
string.EndsWithNoCase
The string.EndsWithNoCase condition allows you to compare an input string against a pattern.
Args
| Name | Description | 
|---|---|
| pattern | Required. The pattern to match. Can be an arrayof string patterns or a String | 
| value | Required. The input value to match against the pattern. Remember that you may use $varsubsitution for state values | 
Example
condition:
  ref: string.EndsWithNoCase
  args:
    pattern: test
    value: $state_var
```yaml
condition:
  ref: string.EndsWithNoCase
  args:
  	pattern:  
	  - pattern_1
	  - pattern_2
	  - pattern_3
    value: $state_var
Boolean conditions
bool.IsTrue
The bool.IsTrue condition allows you to evaluate whether a given value is true or not. The evaluation is a strict comparison and will only match when the value is true exactly.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare. | 
Example
condition:
  ref: bool.IsTrue
  args:
    value: $state_variable
bool.IsFalse
The bool.IsFalse condition allows you to evaluate whether a given value is true or not. The evaluation is a strict comparison and will only return false when the value is true exactly; it will return true in all other circumstances.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare. | 
Example
condition:
  ref: bool.IsFalse
  args:
    value: $state_variable
bool.IsTruthy
The bool.IsTruthy condition allows you to evaluate whether a given value is true or not. The comparison is a loose comparison that will treat non-zero numbers as true as well as the string, yes.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare. | 
Example
condition:
  ref: bool.IsTruthy
  args:
    value: $state_variable
bool.IsFalsey
The bool.IsFalsey condition allows you to evaluate whether a given value is true or not. The comparison is a loose comparison that will treat non-zero numbers as true as well as the string, yes. These values will all return false, anything not boolean or evaluating to false will return true.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare. | 
Example
condition:
  ref: bool.IsFalsey
  args:
    value: $state_variable
Numeric conditions
number.IsEqual
The number.IsEqual condition compares two numbers, a value against a match. It returns true if the numbers are equal.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchvalue. | 
| match | Required. The value to compare against the valuevalue. | 
Example
condition:
  ref: number.IsEqual
  args:
    value: $state_variable
    match: 10
number.IsLessThan
The number.IsLessThan condition compares two numbers, a value against a match. It returns true if the value arg is less than the match arg.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchvalue. | 
| match | Required. The value to compare against the valuevalue. | 
Example
condition:
  ref: number.IsLessThan
  args:
    value: $state_variable
    match: 10
number.IsLessThanOrEqualTo
The number.IsLessThanOrEqualTo condition compares two numbers, a value against a match. It returns true if the value arg is less or equal to the match arg.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchvalue. | 
| match | Required. The value to compare against the valuevalue. | 
Example
condition:
  ref: number.IsLessThanOrEqualTo
  args:
    value: $state_variable
    match: 10
number.IsGreaterThan
The number.IsGreaterThan condition compares two numbers, a value against a match. It returns true if the value arg is greater than the match arg.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchvalue. | 
| match | Required. The value to compare against the valuevalue. | 
Example
condition:
  ref: number.IsGreaterThan
  args:
    value: $state_variable
    match: 10
number.IsGreaterThanOrEqualTo
The number.IsGreaterThanOrEqualTo condition compares two numbers, a value against a match. It returns true if the value arg is greater than or equal to the match arg.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchvalue. | 
| match | Required. The value to compare against the valuevalue. | 
Example
condition:
  ref: number.IsGreaterThanOrEqualTo
  args:
    value: $state_variable
    match: 10
number.IsWithin
The number.IsWithin condition compares two numbers, value and match and returns true if the difference between them is less than or equal to a given range.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchvalue. | 
| match | Required. The value to compare against the valuevalue. | 
| range | Required. The acceptable difference between matchandvalue. | 
Example
condition:
  ref: number.IsWithin
  args:
    value: $state_variable
    match: $another_state_variable
    range: 5
Date conditions
date.IsFuture
The date.IsFuture condition allows you to validate whether the given date value is in the future. You may optionally provide an offset to offset the current date for the calculation.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the current date. | 
| offset | Optional. Offset the current date. Must be in CfFlow friendly date format. e.g. -2d, or3w, or-18y | 
Examples
condition:
  ref: number.IsFuture
  args:
    value: $event_date
condition:
  ref: number.IsFuture
  args:
    value: $date_of_birth
    offset: -18y
date.IsPast
The date.IsPast condition allows you to validate whether the given date value is in the past. You may optionally provide an offset to offset the current date for the calculation.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the current date. | 
| offset | Optional. Offset the current date. Must be in CfFlow friendly date format. e.g. -2d, or3w, or-18y | 
Examples
condition:
  ref: number.IsPast
  args:
    value: $event_date
condition:
  ref: number.IsPast
  args:
    value: $date_of_birth
    offset: -18y
date.IsToday
The date.IsToday condition allows you to validate whether the given date value is today. You may optionally provide an offset to offset the current date for the calculation.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the current date. | 
| offset | Optional. Offset the current date. Must be in CfFlow friendly date format. e.g. -2d, or3w, or-18y | 
Examples
condition:
  ref: number.IsToday
  args:
    value: $event_date
condition:
  ref: number.IsToday
  args:
    value: $event_date
    offset: 5d
date.IsBefore
The date.IsBefore condition allows you to validate whether the given date value is before the given date match.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchdate. | 
| match | Required. The value to compare against the valuedate. | 
Examples
condition:
  ref: number.IsBefore
  args:
    value: $event_date
    match: $booking_open_date
condition:
  ref: number.IsBefore
  args:
    value: $dob
    match: 2018-01-01
date.IsOnOrBefore
The date.IsOnOrBefore condition allows you to validate whether the given date value is on or before the given date match.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchdate. | 
| match | Required. The value to compare against the valuedate. | 
Examples
condition:
  ref: number.IsOnOrBefore
  args:
    value: $event_date
    match: $booking_open_date
condition:
  ref: number.IsOnOrBefore
  args:
    value: $dob
    match: 2018-01-01
date.IsAfter
The date.IsAfter condition allows you to validate whether the given date value is after the given date match.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchdate. | 
| match | Required. The value to compare against the valuedate. | 
Examples
condition:
  ref: number.IsAfter
  args:
    value: $event_date
    match: $booking_open_date
condition:
  ref: number.IsAfter
  args:
    value: $dob
    match: 2018-01-01
date.IsOnOrAfter
The date.IsOnOrAfter condition allows you to validate whether the given date value is on or after the given date match.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchdate. | 
| match | Required. The value to compare against the valuedate. | 
Examples
condition:
  ref: number.IsOnOrAfter
  args:
    value: $event_date
    match: $booking_open_date
condition:
  ref: number.IsOnOrAfter
  args:
    value: $dob
    match: 2018-01-01
date.IsEqual
The date.IsEqual condition allows you to validate whether the given date value is exactly the same as the given date match.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchdate. | 
| match | Required. The value to compare against the valuedate. | 
Examples
condition:
  ref: number.IsEqual
  args:
    value: $event_date
    match: $booking_open_date
condition:
  ref: number.IsEqual
  args:
    value: $dob
    match: 2018-01-01
date.IsSameDay
The date.IsSameDay condition allows you to validate whether the given date value is the same day as the given date match.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchdate. | 
| match | Required. The value to compare against the valuedate. | 
Examples
condition:
  ref: number.IsSameDay
  args:
    value: $event_date
    match: $booking_open_date
condition:
  ref: number.IsSameDay
  args:
    value: $dob
    match: 2018-01-01
date.IsWithin
The date.IsWithin condition allows you to validate whether the given date value and the given date match are within a given range of each other.
Args
| Name | Description | 
|---|---|
| value | Required. The value to compare against the matchdate. | 
| match | Required. The value to compare against the valuedate. | 
| range | Required. Allowable difference between the dates. Must be in CfFlow friendly date format. e.g. 2d, or3w, or18y | 
Examples
condition:
  ref: number.IsWithin
  args:
    value: $event_date
    match: 2020-12-25
    range: 7d