100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

The Flow Designer

A tour of the Power Automate flow designer canvas, how to work with dynamic content and expressions, and how to test and debug a flow.

FoundationsBeginner8 min readJul 10, 2026
Analogies

The Designer Canvas

The flow designer presents your flow as a vertical, top-to-bottom sequence of cards: one trigger card at the top, followed by action cards connected by plus (+) buttons that let you insert new steps between existing ones. Each card is collapsible, shows its connector icon and operation name, and exposes an ellipsis menu with options like Rename, Delete, Add a note, and Configure run after, which controls whether a step runs on Success, Failure, Skipped, or Timed out of the previous step.

🏏

Cricket analogy: The vertical card sequence is like a fall-of-wickets scorecard read top to bottom, where each entry shows exactly what happened and in what order, and you can insert a note between overs.

Expressions and Dynamic Content

Inside any action's input field, clicking the lightning-bolt Dynamic content picker lets you insert outputs from earlier steps, such as a trigger's Subject field, without typing anything manually. Switching to the Expression tab exposes the full Workflow Definition Language function library, functions like concat(), formatDateTime(), if(), and coalesce() let you transform data inline, and every expression compiles down to the same @{...} syntax stored in the flow's underlying JSON.

🏏

Cricket analogy: Dynamic content is like a live scorecard feed you drag straight into your commentary script, while an expression is like manually calculating the required run rate yourself using a formula.

text
@{concat('Order ', triggerOutputs()?['body/OrderId'], ' due ', formatDateTime(addDays(utcNow(), 3), 'MM/dd/yyyy'))}

@{if(equals(triggerOutputs()?['body/Priority'], 'High'), 'Escalate immediately', 'Standard queue')}

@{coalesce(triggerOutputs()?['body/CustomerEmail'], 'no-reply@example.com')}

Testing and Debugging

The Test pane in the top-right corner lets you run a flow manually with sample data, or replay the most recent real trigger, and every run produces a detailed run history showing each action's inputs, outputs, duration, and status. Failed steps display the exact error message and HTTP status code returned by the connector, and you can use Peek code on any action to view and directly edit its raw JSON definition when the visual designer isn't precise enough.

🏏

Cricket analogy: The run history is like reviewing ball-by-ball footage after a match, where you can pause on the exact delivery, like a no-ball call, that caused a controversial outcome.

Peek code shows the raw JSON for a single action, but it's read-only in the standard designer for most actions — to truly hand-edit a flow's logic you generally need to use the flow checker, the Code view (in newer designer versions), or export/import the flow definition. Manually breaking JSON syntax while editing can corrupt the action and require you to delete and rebuild it.

  • The designer displays a flow as a vertical sequence of collapsible trigger and action cards.
  • The ellipsis menu on each card offers Rename, Delete, Add a note, and Configure run after.
  • Configure run after controls whether a step runs on Success, Failure, Skipped, or Timed out.
  • Dynamic content inserts prior steps' outputs directly; Expressions use Workflow Definition Language functions.
  • Common expression functions include concat(), formatDateTime(), if(), and coalesce().
  • The Test pane runs a flow with sample or real trigger data and produces a detailed run history.
  • Peek code exposes an action's raw JSON, useful for precise inspection beyond the visual designer.

Practice what you learned

Was this page helpful?

Topics covered

#Programming#PowerAutomateStudyNotes#TheFlowDesigner#Flow#Designer#Canvas#Expressions#StudyNotes#SkillVeris#ExamPrep