Power Automate expression cheat sheet - atulvij.com Power Automate Intermediate
Results assume the flow ran at 2026-10-05 04:30 UTC (10:00 IST). Paste expressions in the 'Expression' tab of dynamic content.

Today's date for file names (UTC)
  formatDateTime(utcNow(),'yyyy-MM-dd')
  -> 2026-10-05

Indian time - utcNow() is UTC, 5:30 behind IST
  convertFromUtc(utcNow(),'India Standard Time','yyyy-MM-dd HH:mm')
  -> 2026-10-05 10:00

A due date one week ahead
  addDays(utcNow(),7,'yyyy-MM-dd')
  -> 2026-10-12

Readable date for an email
  formatDateTime(utcNow(),'dddd, dd MMM yyyy')
  -> Monday, 05 Oct 2026

Build an ID
  concat('INV-', formatDateTime(utcNow(),'yyyyMM'), '-001')
  -> INV-202610-001

Clean text
  toUpper(trim('  pune  '))
  -> PUNE

Domain of an email
  split('ravi@atulvij.com','@')[1]
  -> atulvij.com

Fixed-position text (start index 0, length)
  substring('INV-2026-145', 4, 4)
  -> 2026

Remove Indian thousands separators
  replace('1,25,000', ',', '')
  -> 125000

Text amount to number
  float(replace('1,25,000.50', ',', ''))
  -> 125000.5

Approval routing
  if(greater(float(triggerBody()?['Amount']), 100000), 'Needs approval', 'Auto-approved')
  -> Needs approval (for Amount 125000)

Count items from a list
  length(body('Get_items')?['value'])
  -> number of rows returned

Default for empty fields
  coalesce(triggerBody()?['Phone'], 'not given')
  -> not given (when Phone is empty)

18% GST on 1,25,000
  div(mul(float('125000'), 18), 100)
  -> 22500

Notes
- ?['Field'] (safe navigation) returns null instead of failing when a field is missing.
- utcNow() is always UTC. Convert to India Standard Time before showing dates to people.
- Excel dates arrive as serial numbers (e.g. 46300) unless you set DateTime Format = ISO 8601 in 'List rows present in a table'.
