FlowOn Expression Language
The FlowOn Expression Language is a comprehensive library of functions and operators used to write expressions in FlowOn Logic. Expressions are used throughout FlowOn Logic constructs—in Formulas, Decision Tables, Decision Trees, Validations, Flow steps, and anywhere calculations, comparisons, or transformations are needed.
Function Categories
The Expression Language provides 85 built-in functions organized into categories:
| Category | Count | Purpose | Documentation |
|---|---|---|---|
| String Functions | 14 | Text manipulation and formatting | Concatenate, Format, Replace, Substring |
| Math Functions | 9 | Arithmetic operations and calculations | Add, Subtract, Multiply, Divide |
| Date Functions | 23 | Date/time manipulation and calculations | Now, Add Days, Days Diff |
| Logical Operators | 2 | Combining boolean expressions | And, Or |
| Comparison Operators | 14 | Comparing values | Equals, Greater Than, Contains |
| Null Check Operators | 7 | Testing for null and empty values | Null, Not Null, Any |
| Collection Functions | 5 | Aggregate operations on lists | Count, Sum, Average, Max, Min |
| Control Functions | 1 | Conditional expressions | If Condition |
| Constants | 9 | Literal values of specific types | String, Integer, Money |
| Logic Block Functions | 1 | Execute reusable logic blocks | Run Logic Block |
Type System
The Expression Language uses the Dynamics 365 type system. Understanding types is essential for writing correct expressions.
Supported Types
| Type | Description | Example Values |
|---|---|---|
string | Text value | "Hello", "Order-12345" |
integer | Whole number | 42, -100, 0 |
decimal | Precise decimal number | 3.14159, 0.001 |
float | Floating-point number | 2.71828, 1.5e10 |
money | Currency value | $1,500.00, €2,340.50 |
boolean | True or false | true, false |
date / datetime | Date and time | 2026-01-15T14:30:00Z |
entityReference | Reference to a record | Lookup to Account, Contact, etc. |
optionSet | Choice from a list | Status: Active, Inactive |
list | Collection of values | List of integers, list of strings |
Type Promotion
When mixing numeric types in calculations, the result type is promoted to the "highest weight" type:
Type Weight Order (lowest to highest): integer → float → decimal → money
For example:
integer + integer→integerinteger + decimal→decimalfloat + money→money
Quick Reference
String Functions
| Function | Description |
|---|---|
| Concatenate | Join strings together |
| Format | Replace placeholders with values |
| Replace | Replace substring occurrences |
| Substring | Extract part of a string |
| To Lower Case | Convert to lowercase |
| To Upper Case | Convert to uppercase |
| Trim | Remove leading/trailing whitespace |
| Index Of | Find first position of substring |
| Last Index Of | Find last position of substring |
| String Length | Get character count |
| Match Pattern | Test against regex pattern |
| To String | Convert to formatted string |
| Configuration Value | Get configuration variable |
| Localized Resource | Get localized string |
Math Functions
| Function | Description |
|---|---|
| Add | Sum values |
| Subtract | Subtract values |
| Multiply | Multiply values |
| Divide | Divide values |
| Modulo | Get remainder |
| Raise to Power | Exponentiation |
| Max Value | Get largest value |
| Min Value | Get smallest value |
| Random | Generate random integer |
Date Functions
| Function | Description |
|---|---|
| Now | Current timestamp |
| Day | Extract day component |
| Month | Extract month component |
| Year | Extract year component |
| Day Of Week | Get day of week (0-6) |
| Add Days | Add/subtract days |
| Add Hours | Add/subtract hours |
| Add Minutes | Add/subtract minutes |
| Add Seconds | Add/subtract seconds |
| Add Month | Add/subtract months |
| Add Years | Add/subtract years |
| Days Diff | Difference in days |
| Hours Diff | Difference in hours |
| Minutes Diff | Difference in minutes |
| Months Diff | Difference in months |
| Years Diff | Difference in years |
| Start Of Day | Midnight of date |
| Start Of Hour | Beginning of hour |
| Start Of Month | First day of month |
| Ticks | Timestamp as ticks |
| Parse DateTime | Convert string to date |
| Convert From UTC | UTC to local time |
| Convert To UTC | Local to UTC time |
Operators Quick Reference
| Category | Operators |
|---|---|
| Logical | And, Or |
| Equality | Is Equal To, Is Not Equal To |
| Numeric | Is Greater Than, Is Greater Than Or Equal To, Is Less Than, Is Less Than Or Equal To |
| String | Contains, Does Not Contain, Starts With, Does Not Start With, Ends With, Does Not End With |
| List | Contains Item, Does Not Contain Item |
| Null | Null, Not Null, Null Or Empty String, Not Null Or Empty String, Is True, Is False, Any |