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

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 $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 array of string patterns or a String
value Required. The input value to match against the pattern. Remember that you may use $var subsitution 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 match value.
match Required. The value to compare against the value value.

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 match value.
match Required. The value to compare against the value value.

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 match value.
match Required. The value to compare against the value value.

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 match value.
match Required. The value to compare against the value value.

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 match value.
match Required. The value to compare against the value value.

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 match value.
match Required. The value to compare against the value value.
range Required. The acceptable difference between match and value.

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, or 3w, 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, or 3w, 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, or 3w, 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 match date.
match Required. The value to compare against the value date.

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 match date.
match Required. The value to compare against the value date.

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 match date.
match Required. The value to compare against the value date.

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 match date.
match Required. The value to compare against the value date.

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 match date.
match Required. The value to compare against the value date.

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 match date.
match Required. The value to compare against the value date.

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 match date.
match Required. The value to compare against the value date.
range Required. Allowable difference between the dates. Must be in CfFlow friendly date format. e.g. 2d, or 3w, or 18y

Examples

condition:
  ref: number.IsWithin
  args:
    value: $event_date
    match: 2020-12-25
    range: 7d