Power Automate Expressions: The 15 Most Important Functions
The 15 most important Power Automate expression functions such as concat, formatDateTime and coalesce, explained with German practical examples.
The most important expression functions in Power Automate are concat, toUpper, toLower, replace and substring for text, utcNow, formatDateTime, addDays and dayOfWeek for date and time, if, equals, coalesce and empty for logic checks, and first and length for accessing lists and arrays. These 15 functions cover most text building blocks, date calculations and conditions in a cloud flow without you having to add extra actions. Each function is entered in the expression editor and can be nested with other functions, for example formatDateTime(utcNow(), 'dd.MM.yyyy') for a German date format. As of: July 2026.
Which text functions combine and clean up strings?
Text functions join strings together, convert upper and lower case, or cut parts out of a string. They form the basis of almost every subject line, file name, or message in a flow.
- concat(text1, text2, ...): Combines at least two strings into one. The example concat('Invoice-', variables('CustomerNumber')) results in "Invoice-4711". The complete syntax of all text functions is listed in the Microsoft reference guide for expression functions. How you can specifically collect such expressions in a dedicated action of your own is shown in the article on Composing in Power Automate (Compose).
- toUpper(text) / toLower(text): Converts a string to uppercase or lowercase letters. Useful for normalizing email addresses before a comparison, for example toLower('Anna.Muster@Firma.DE').
- replace(text, oldText, newText): Replaces a substring with another. replace('2026/03/18', '/', '-') results in "2026-03-18". The function is case-sensitive.
- substring(text, startIndex, length): Cuts out a certain number of characters starting from a start position. substring('Rechnung-2026-0042', 9, 4) results in "2026". The index starts at 0, and the third argument is the length, not the end position.
How do you calculate with date and time in an expression?
Date and time functions provide the current timestamp, format it for display, and shift it by days or weeks. Power Automate works in UTC by default.
- utcNow(format?): Returns the current UTC timestamp, optionally already in a desired format. Without a parameter, the function returns the ISO 8601 format.
- formatDateTime(timestamp, format?, locale?): Formats a timestamp according to a custom pattern. formatDateTime(utcNow(), 'dd.MM.yyyy') returns a German date such as "18.03.2026". Pay attention to case: MM stands for months, mm for minutes.
- addDays(timestamp, number): Adds or subtracts days to a timestamp. addDays(utcNow(), 7) calculates a due date in one week, addDays(utcNow(), -30) a date 30 days ago.
- dayOfWeek(timestamp): Returns the day of the week as a number, where Sunday is 0 and Saturday is 6. Important for weekend checks within a loop, for example when you check appointments per list entry. More date patterns with ready-made expressions are collected in the expression cookbook for cloud flows. How to iterate over a list of such entries is explained in the article on Power Automate Apply to each.
Which logic functions control conditions and default values?
Logic functions check conditions and return different values depending on the result, without you having to create a separate branch in the flow.
- if(expression, valueIfTrue, valueIfFalse): Checks a boolean condition and returns one of two values depending on the result. if(equals(1, 1), 'yes', 'no') results in "yes". The function if() does not understand operators such as > or < directly; for that, you combine it with greater() or less().
- equals(value1, value2): Checks whether two values are identical and returns true or false. Often used as the first argument in if().
- coalesce(value1, value2, ...): Returns the first value that is not null. coalesce(triggerBody()?['preferredName'], triggerBody()?['displayName'], 'Unknown') skips to the next field as soon as one is missing. Empty strings do not count as null here.
- empty(collection): Checks whether a string, array, or object is empty and returns true or false. empty('') results in true, empty('abc') results in false. The function does not work with numbers.
How do you access individual elements in lists?
Collection functions work equally on arrays and strings and are especially useful in loops when you need individual elements instead of the entire list.
- first(collection): Returns the first element of a string or an array. first('hallo') results in "h", first(createArray(0, 1, 2)) results in 0.
- length(collection): Counts the number of characters in a string or the elements of an array. length('abcd') and length(createArray(0, 1, 2, 3)) both result in 4.
Once you have tried out these 15 functions in your own examples, most flow problems can be solved without additional third-party connectors. For teams who prefer to build their flows with a fixed price and a direct contact person instead of doing it themselves, NordFlux provides support with Power Automate consulting from the first expression to the productive flow.
Frequently asked questions about Power Automate expressions
Where do I enter an expression in Power Automate?
In the flow designer, open the "Expression" tab via the function icon (fx) or the expression editor of a field, and type the function directly there. Alternatively, insert dynamic content via the editor and wrap it with a function such as formatDateTime() or concat(). The editor flags syntax errors already while you type, so missing parentheses can be found quickly.
Why does formatDateTime output an incorrect date?
This is usually due to a mix-up of upper and lower case in the format string: MM stands for the month, mm for minutes, and dd for the day. A format such as 'mm/DD/yyyy' swaps minutes and day and thereby produces an obviously incorrect date. Check the format string against the .NET format characters linked by Microsoft Learn.
Can I nest multiple functions inside each other?
Yes, this is even the standard case for more complex expressions. One example is formatDateTime(addDays(utcNow(), 7), 'dd.MM.yyyy'), which outputs a due date in one week directly in the desired German format. Evaluation happens from the inside out, similar to nested formulas in Excel.
What is the difference between coalesce and a check with if and empty?
coalesce() checks exclusively for null and does not automatically skip empty strings, while a combination of if() and empty() can additionally treat empty strings as "no value". For simple default values on missing fields, coalesce() is sufficient; for stricter validation of required fields, the combination with empty() is the more robust choice.
NordFlux UG (haftungsbeschränkt)
NordFlux builds digital employees for organisations: automations and AI agents that take over repetitive work. You stay in control.
Concrete questions about automation or AI?
In a free initial analysis we discuss your case directly. No strings attached.