String Functions
// Combine strings
concat('Hello, ', triggerBody()?['name'])
// Extract parts
substring('PowerAutomate', 0, 5) // Returns: Power
// Replace text
replace(variables('text'), 'old', 'new')
// Format with multiple values
formatNumber(123456.789, 'C2', 'en-US') // $123,456.79
// Split into array
split('a,b,c', ',')
Date Functions
// Current time
utcNow()
// Format dates
formatDateTime(utcNow(), 'yyyy-MM-dd')
// Add/subtract time
addDays(utcNow(), 7)
addHours(utcNow(), -2)
// Get components
dayOfWeek(utcNow()) // 0=Sunday
dayOfMonth(utcNow())
// Parse strings to dates
parseDateTime('2024-12-27', 'yyyy-MM-dd')
Conditional Logic
// If-else
if(equals(triggerBody()?['status'], 'Approved'), 'Yes', 'No')
// Coalesce (first non-null)
coalesce(triggerBody()?['preferred'], triggerBody()?['default'], 'None')
// Null checks
if(empty(variables('myVar')), 'Empty', variables('myVar'))
Array Operations
// Get length
length(variables('myArray'))
// First/last item
first(variables('myArray'))
last(variables('myArray'))
// Check if contains
contains(variables('myArray'), 'searchValue')
// Join array to string
join(variables('myArray'), ', ')
// Filter array (use with Select action)
@{body('Filter_array')}
JSON Operations
// Parse JSON string
json(triggerBody()?['jsonString'])
// Access nested properties
triggerBody()?['customer']?['address']?['city']
// Create JSON
json(concat('{"name":"', variables('name'), '"}'))
Common Patterns
Safe Property Access
// Avoid errors on missing properties
coalesce(triggerBody()?['optionalField'], 'default value')
Trim and Clean Text
trim(replace(variables('text'), ' ', ' '))
Pro tip: Use the Compose action to test expressions before using them in complex operations.
Advertisement