Skip to main content

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:

CategoryCountPurposeDocumentation
String Functions14Text manipulation and formattingConcatenate, Format, Replace, Substring
Math Functions9Arithmetic operations and calculationsAdd, Subtract, Multiply, Divide
Date Functions23Date/time manipulation and calculationsNow, Add Days, Days Diff
Logical Operators2Combining boolean expressionsAnd, Or
Comparison Operators14Comparing valuesEquals, Greater Than, Contains
Null Check Operators7Testing for null and empty valuesNull, Not Null, Any
Collection Functions5Aggregate operations on listsCount, Sum, Average, Max, Min
Control Functions1Conditional expressionsIf Condition
Constants9Literal values of specific typesString, Integer, Money
Logic Block Functions1Execute reusable logic blocksRun Logic Block

Type System

The Expression Language uses the Dynamics 365 type system. Understanding types is essential for writing correct expressions.

Supported Types

TypeDescriptionExample Values
stringText value"Hello", "Order-12345"
integerWhole number42, -100, 0
decimalPrecise decimal number3.14159, 0.001
floatFloating-point number2.71828, 1.5e10
moneyCurrency value$1,500.00, €2,340.50
booleanTrue or falsetrue, false
date / datetimeDate and time2026-01-15T14:30:00Z
entityReferenceReference to a recordLookup to Account, Contact, etc.
optionSetChoice from a listStatus: Active, Inactive
listCollection of valuesList 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): integerfloatdecimalmoney

For example:

  • integer + integerinteger
  • integer + decimaldecimal
  • float + moneymoney

Quick Reference

String Functions

FunctionDescription
ConcatenateJoin strings together
FormatReplace placeholders with values
ReplaceReplace substring occurrences
SubstringExtract part of a string
To Lower CaseConvert to lowercase
To Upper CaseConvert to uppercase
TrimRemove leading/trailing whitespace
Index OfFind first position of substring
Last Index OfFind last position of substring
String LengthGet character count
Match PatternTest against regex pattern
To StringConvert to formatted string
Configuration ValueGet configuration variable
Localized ResourceGet localized string

Math Functions

FunctionDescription
AddSum values
SubtractSubtract values
MultiplyMultiply values
DivideDivide values
ModuloGet remainder
Raise to PowerExponentiation
Max ValueGet largest value
Min ValueGet smallest value
RandomGenerate random integer

Date Functions

FunctionDescription
NowCurrent timestamp
DayExtract day component
MonthExtract month component
YearExtract year component
Day Of WeekGet day of week (0-6)
Add DaysAdd/subtract days
Add HoursAdd/subtract hours
Add MinutesAdd/subtract minutes
Add SecondsAdd/subtract seconds
Add MonthAdd/subtract months
Add YearsAdd/subtract years
Days DiffDifference in days
Hours DiffDifference in hours
Minutes DiffDifference in minutes
Months DiffDifference in months
Years DiffDifference in years
Start Of DayMidnight of date
Start Of HourBeginning of hour
Start Of MonthFirst day of month
TicksTimestamp as ticks
Parse DateTimeConvert string to date
Convert From UTCUTC to local time
Convert To UTCLocal to UTC time

Operators Quick Reference

CategoryOperators
LogicalAnd, Or
EqualityIs Equal To, Is Not Equal To
NumericIs Greater Than, Is Greater Than Or Equal To, Is Less Than, Is Less Than Or Equal To
StringContains, Does Not Contain, Starts With, Does Not Start With, Ends With, Does Not End With
ListContains Item, Does Not Contain Item
NullNull, Not Null, Null Or Empty String, Not Null Or Empty String, Is True, Is False, Any