FEEL Operations and Functions

◷ Reading Time: 6 minutes

 

Friendly Enough Expression Language (FEEL) is a standard language for defining decision logics in a way that is easy to understand for both business and technical experts. This article describes how the user can use FEEL operations to build up the business rules.

 

FEEL Operations for Boolean

Boolean Literal

True and false boolean values

true

false
Comparison

Compares two values and results in a boolean value

OperatorDescription
=equal to
!=not equal to
<less than
<=less than or equal to
>greater than
>=greater than or equal to
true = true
Result: True

7 != 8
Result: True

"hello" < "bye"
Result: False

3 <= 4
Result: True

3 > 4
Result: False

1 >= 1
Result: True
and/ or

Combines multiple boolean values

true and true
Result: True

true and false
Result: False

true or true
Result: True

true or false
Result: True
in

Use the in operator to check if a specified range matches a given value.

1 in [1..10]  
Result: true

1 in (1..10]
Result: false

10 in [1..10]
Result: true

10 in [1..10)
Result: false
null

Any value in FEEL operations can be compared with null. This checks if it is null or if it doesn’t exist. It will return a boolean value

true = null
Result: false

false = null
Result: False

true or null
Result: True

null = null
Result: True

FEEL Operation String

String Literal

String value

"hello"
Concatenation

Addition of strings

"hello" + " world"
Result: "hello world"

FEEL Operation for Numeric

Number Literal

Numeric values

5
-5
3.67
0.05
-0005
Addition

Adds a value to another value

5 + 1
Result: 6
Subtraction

Subtracts a value to another value

5 - 6
Result: -1
Multiplication

Multiplies a value to another value

5 * 6
Result: 30
Division

Numeric values

5.0 / 6.0
Result: 0.8333333333333334
Exponentation

Numeric values

5 ** 6
Result: 15625

FEEL Operations and Functions for List

Literal

List of given elements. Nested lists are valid

[1, "a", 2, "b", 3, "c"]

[[1, "a"], [2, "b"], [3, "c"]]
some-in-satisfies

To identify conditions where at least one requirement is met to determine a valid outcome, we can use some-in-satisfies format:

some condition in context satisfies result applied condition

For example:

some x in [2,4,6,8] satisfies x>5
result: True

some x in [2,4,6,8], y in [4,5,6,12] satisfies x>y
result: True

every-in-satisfies

To identify conditions where all requirement is met to determine a valid outcome, we can use every-in-satisfies format:

every condition in context satisfies result applied condition

For example:

every x in [2,4,6,8] satisfies x>5
result: False

Filters

The FEEL operations and functions able the user to filter a list with simple approach, see the examples:

The default name for the elements is “item”.

Example: [4,5,10,22][1]
Result: 4
Example: [4,5,10,22][-2]
Result: 10
Example: [4,5,10,22][item > 5]
Result: [10,22]
Example: [4,5,10,22][modulo (item,2)=1]
Result: 5

Control Structures

for-in-return

When iterating through conditions, evaluating each, and returning a final outcome, we can use for-in-return format:

for condition in context return applied condition

For example:

for x in [2,4,6,8] return x-1
result: [1,3,5,7]

if-then-else

The alternative to an inline condition operator is to use the if-then-else format:

if condition then result else other-result

For example:

if 3==4 then 'this is cool' else 'what are you talking about?'
result: what are you talking about?

Updated on December 5, 2025

Was this article helpful?

Related Articles