Expression language
All functions
The complete catalog of expression functions, grouped by picker category, with links to each function's reference.
This catalog lists every function and operator in the expression picker, grouped by the picker category you find it in. The first column is the card label you pick; the second shows how the function appears in the formula bar.
For values rather than functions (inputs, data from earlier steps and constants), see Values and constants.
Text Functions
Section titled “Text Functions”| Function | Formula bar | Returns | What it does |
|---|---|---|---|
| Concatenate | Concatenate(a, b, …) |
Text | Joins values into one text |
| Format | Format(template, …) |
Text | Fills numbered placeholders in a template |
| Join | Join(list, separator) |
Text | Joins list items with a separator, skipping empty items |
| Split | Split(text, separator) |
List of Text | Splits text into a list |
| Pad Left | PadLeft(text, length, char) |
Text | Pads the start of a text to a length |
| Pad Right | PadRight(text, length, char) |
Text | Pads the end of a text to a length |
| String Length | Length(text) |
Whole Number | Counts characters |
| Index Of | Index Of(text, search) |
Whole Number | Position of the first occurrence (0-based, case-sensitive) |
| Last Index Of | Last Index Of(text, search) |
Whole Number | Position of the last occurrence |
| Match Pattern | ValidateText(text, pattern) |
Yes/No | Checks text against a regular expression |
| Substring | Substring(text, start, length) |
Text | Part of a text from a position |
| Left | Left(text, count) |
Text | First characters of a text |
| Right | Right(text, count) |
Text | Last characters of a text |
| Trim | Trim(text) |
Text | Removes leading and trailing spaces |
| To Upper Case | Uppercase(text) |
Text | Converts to capitals |
| To Lower Case | Lowercase(text) |
Text | Converts to small letters |
| Replace | Replace(text, old, new) |
Text | Replaces every occurrence (case-sensitive) |
| Remove HTML | StripHtml(text) |
Text | Turns rich text into plain text |
| Extract with Pattern | RegexExtract(text, pattern, group) |
Text | First match of a regular expression |
| Extract All with Pattern | RegexExtractAll(text, pattern, group) |
List of Text | Every match of a regular expression |
| Replace with Pattern | RegexReplace(text, pattern, replacement) |
Text | Replaces matches of a regular expression |
| To String | toString(value, format) |
Text | Formats a date, number or ID as text |
| Base64 Encode | Base64Encode(text) |
Text | Encodes text as Base64 |
| Base64 Decode | Base64Decode(text) |
Text | Decodes Base64 text |
| URL Encode | UrlEncode(text) |
Text | Escapes text for a web address |
| URL Decode | UrlDecode(text) |
Text | Reverses URL escaping |
| HTML Encode | HtmlEncode(text) |
Text | Makes text safe inside HTML |
| HTML Decode | HtmlDecode(text) |
Text | Turns HTML entities back into characters |
| Option Label | OptionLabel(value, language) |
Text or List of Text | Display label of a choice or Yes/No value |
| Organization URL | OrganizationUrl() |
Text | Web address of your organization |
| Record Link | RecordUrl(record, appId) |
Text | Link that opens a record’s form |
Math Functions
Section titled “Math Functions”| Function | Formula bar | Returns | What it does |
|---|---|---|---|
| Add | a + b |
Widest number type | Adds numbers |
| Subtract | a - b |
Widest number type | Subtracts numbers, left to right |
| Multiply | a * b |
Widest number type | Multiplies numbers |
| Divide | a / b |
Widest number type | Divides numbers; whole numbers drop the fraction |
| Modulo | a % b |
Widest number type | Remainder of a division |
| Raise to Power | a ^ b |
Widest number type | Raises a number to a power |
| Max Value | Max(a, b, …) |
Widest number type | Largest of the values |
| Min Value | Min(a, b, …) |
Widest number type | Smallest of the values |
| Random | Random(min, max) |
Whole Number | Random number from min up to, but not including, max |
| Round | Round(value, digits) |
Same as value | Rounds, halves away from zero |
| Round Up | RoundUp(value, digits) |
Same as value | Rounds away from zero |
| Round Down | RoundDown(value, digits) |
Same as value | Rounds toward zero |
| Floor | Floor(value) |
Same as value | Rounds down to a whole number |
| Ceiling | Ceiling(value) |
Same as value | Rounds up to a whole number |
| Truncate | Truncate(value) |
Same as value | Drops the fraction |
| Absolute Value | Abs(value) |
Same as value | Removes the sign |
| Convert Currency | ConvertCurrency(amount, from, to) |
Currency | Converts between currencies using Dataverse exchange rates |
Conversion Functions
Section titled “Conversion Functions”| Function | Formula bar | Returns | What it does |
|---|---|---|---|
| To Whole Number | ToInteger(value, default) |
Whole Number | Converts text or a number, dropping the fraction |
| To Decimal | ToDecimal(value, default) |
Decimal Number | Converts text or a number |
| To True/False | ToBoolean(value, default) |
Yes/No | Converts text or a number to Yes/No |
| Is Number | IsNumeric(text) |
Yes/No | Checks whether text is a valid number |
Date Functions
Section titled “Date Functions”| Function | Formula bar | Returns | What it does |
|---|---|---|---|
| Now | Now |
Date and Time | Current date and time in UTC |
| Day | Day(date) |
Whole Number | Day of the month |
| Month | Month(date) |
Whole Number | Month, 1 to 12 |
| Year | Year(date) |
Whole Number | Year |
| Day Of Week | Day Of Week(date) |
Whole Number | 0 = Sunday to 6 = Saturday |
| Add Days | Add Days(date, days) |
Date and Time | Adds days |
| Add Hours | Add Hours(date, hours) |
Date and Time | Adds hours |
| Add Minutes | Add Minutes(date, minutes) |
Date and Time | Adds minutes |
| Add Seconds | Add Seconds(date, seconds) |
Date and Time | Adds seconds |
| Add Month | Add Months(date, months) |
Date and Time | Adds months |
| Add Years | Add Years(date, years) |
Date and Time | Adds years |
| Days Diff | Days(start, target) |
Whole Number | Days between two dates; part days count as full days |
| Hours Diff | Hours(start, target) |
Floating Point Number | Hours between two dates, to one decimal |
| Minutes Diff | Minutes(start, target) |
Whole Number | Minutes between two dates |
| Months Diff | Months(start, target) |
Whole Number | Completed months between two dates |
| Years Diff | Years(start, target) |
Whole Number | Completed years between two dates |
| Start Of Day | Start Of Day(date) |
Date and Time | Midnight of the date |
| Start Of Hour | Start Of Hour(date) |
Date and Time | Start of the hour |
| Start Of Month | Start Of Month(date) |
Date and Time | First day of the month |
| Ticks | Ticks(date) |
Decimal Number | A number that grows with time, for ordering |
| Parse DateTime | Parse DateTime(text, format) |
Date and Time | Reads text as a date |
| Convert From Utc | From Utc(date, timeZone) |
Date and Time | UTC to a time zone’s local time |
| Convert To Utc | To Utc(date, timeZone) |
Date and Time | A time zone’s local time to UTC |
| Convert Time Zone | To Time Zone(date, timeZone) |
Date and Time | Converts into a time zone |
| Add Business Days | AddBusinessDays(date, days, workWeek) |
Date and Time | Adds working days, skipping weekends and closures |
| Is Business Day | IsBusinessDay(date, workWeek) |
Yes/No | Checks for a working day |
| Business Days Between | BusinessDaysDif(start, end, workWeek) |
Whole Number | Counts working days between two dates |
Collection Utilities
Section titled “Collection Utilities”| Function | Formula bar | Returns | What it does |
|---|---|---|---|
| Collection Count | Count(list) |
Whole Number | Number of items |
| Collection Sum | Sum(list) |
List’s number type | Total of a list of numbers |
| Collection Average | Average(list) |
Number | Average of a list of numbers |
| Collection Minimum | Min(list) |
List’s number type | Smallest number in a list |
| Collection Maximum | Max(list) |
List’s number type | Largest number in a list |
| Projection | Projection(list, selector, name) |
List | Calculates a value for each item |
| Filter | Filter(list, condition, name) |
List | Keeps items that meet a condition |
| First Item | First(list) |
One item | First item of a list |
| Last Item | Last(list) |
One item | Last item of a list |
| Item at Position | Item(list, position) |
One item | Item at a position (1 = first, -1 = last) |
| First Items | Take(list, count) |
List | The first items of a list |
| Skip Items | Skip(list, count) |
List | The list without its first items |
| Reverse List | Reverse(list) |
List | The list in reverse order |
| Sort | Sort(list, descending) |
List | Sorts numbers, dates or text |
| Sort By | SortBy(list, name, key, descending) |
List | Sorts items by a value of each item |
| Remove Duplicates | Distinct(list) |
List | Removes repeated items |
| Add Items | Union(list, items) |
List | Adds items without duplicates |
| Remove Items | Except(list, items) |
List | Removes items |
Choice Functions
Section titled “Choice Functions”| Function | Formula bar | Returns | What it does |
|---|---|---|---|
| First Non-Empty | Coalesce(a, b, …) |
Type of the values | First value that is not empty |
| Is One Of | value in (a, b, …) |
Yes/No | Value equals one of the candidates |
| Is Between | IsBetween(value, from, to) |
Yes/No | Value is within a range, ends included |
| Switch | Switch(value; when => then; else …) |
Type of the results | Result of the first matching case |
Control and logical operators
Section titled “Control and logical operators”| Function | Category | Formula bar | Returns | What it does |
|---|---|---|---|---|
| If Condition | Control | If(condition, then, else) |
Type of the values | One of two values |
| And | Boolean Logical Operators | And(a, b, …) |
Yes/No | Every condition is Yes |
| Or | Boolean Logical Operators | Or(a, b, …) |
Yes/No | At least one condition is Yes |
| User Has Security Role | Boolean Logical Operators | UserHasRole(user, role, includeTeamRoles) |
Yes/No | User has a security role |
| User Is in Team | Boolean Logical Operators | UserInTeam(user, team) |
Yes/No | User is a member of a team |
Binary Logical Functions (comparisons)
Section titled “Binary Logical Functions (comparisons)”| Function | Formula bar | Returns | What it does |
|---|---|---|---|
| Is Equal To | a = b |
Yes/No | Values are equal (text case-sensitive) |
| Is Not Equal To | a ≠ b |
Yes/No | Values are different |
| Is Greater Than | a > b |
Yes/No | Number or date is greater |
| Is Greater Than Or Equal To | a ≥ b |
Yes/No | Number or date is greater or equal |
| Is Less Than | a < b |
Yes/No | Number or date is less |
| Is Less Than Or Equal To | a ≤ b |
Yes/No | Number or date is less or equal |
| Contains | a contains b |
Yes/No | Text contains text (ignores case) |
| Does Not Contain | a does not contain b |
Yes/No | Text does not contain text |
| Starts With | a starts with b |
Yes/No | Text starts with text (ignores case) |
| Does Not Start With | a does not start with b |
Yes/No | Text does not start with text |
| Ends With | a ends with b |
Yes/No | Text ends with text (ignores case) |
| Does Not End With | a does not end with b |
Yes/No | Text does not end with text |
| Contains Item | list includes item |
Yes/No | List holds the item |
| Does Not Contain Item | list does not include item |
Yes/No | List does not hold the item |
Unary Logical Functions (checks)
Section titled “Unary Logical Functions (checks)”| Function | Reads as | Returns | What it does |
|---|---|---|---|
| Null | is empty | Yes/No | Value is empty |
| Not Null | is not empty | Yes/No | Value is not empty |
| Null Or Empty String | is empty | Yes/No | Text is empty or "" |
| Not Null Or Empty String | is not empty | Yes/No | Text has at least one character |
| Is True | is Yes | Yes/No | Value is Yes |
| Is False | is No | Yes/No | Value is No or empty |
| Any | Yes/No | List has at least one item |
Decision-table cells offer the same comparisons and checks in the Functions category, applied to the cell’s column: = "Business", > 1000, is not empty. See Checks in decision-table cells.
Logic Block, Value and Localized Value
Section titled “Logic Block, Value and Localized Value”| Function | Category | Returns | What it does |
|---|---|---|---|
| Run Logic Block | Logic Block | The chosen output’s type | Runs a logic block and returns one of its outputs |
| Configuration Value | Value | The type the slot needs | Value of a project configuration |
| Localized Resource | Localized Value | Text | Text in the user’s language, or a chosen language |
| Regarding | Offered for multi-table lookups | Lookup | Picks the table, then the row, for a lookup such as a task’s Regarding or a case’s Customer |