Tool-page

WDL Expression Formatter

Indent nested Power Automate expressions so you can read them, whitespace only, no change to the content.

Long expressions with many if(), concat() and variables() quickly become unreadable. The formatter makes the nesting visible. In text with embedded @{...} blocks it only formats the blocks, the text in between stays as it is. Short calls such as variables('Total') stay on one line, and strings with '' are recognized correctly.

Open WDL Formatter

Free. You enter your email address once, then all tools are unlocked. Your data is processed locally in your browser.

How it works

  1. Paste an expression or text with @{...}.
  2. Click Format.
  3. Use the indented expression to read and check it.

Example: nested expression

// Input
@{if(equals(triggerBody()?['Status'],'Done'),concat('Done: ',variables('Name')),'Open')}

// Output
@{
  if(
    equals(
      triggerBody()?['Status'],
      'Done'
    ),
    concat(
      'Done: ',
      variables('Name')
    ),
    'Open'
  )
}

Frequently asked questions

Is the WDL formatter free?

Yes.

What is WDL?

Workflow Definition Language, the expression language behind Power Automate used in @{...} and in expressions starting with @.

Does the tool change my expression?

No, it only adds line breaks and indentation. Text outside @{...} stays character for character the same.

Does Power Automate keep the indentation?

No, Power Automate stores expressions on a single line again. The formatting is for readability.

Are strings changed?

No, content in single quotes stays untouched, also with doubled quotes ('').

What happens to short calls?

Calls without nesting such as variables('Total') or body('Get_items') stay on one line.

Related tips

All tips in the archive

Microsoft and the Power Platform product names (for example Power Apps, Power Automate, Copilot Studio) are trademarks of the Microsoft group of companies. This is an independent website. It is not operated, sponsored or endorsed by Microsoft.