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

Power Automate Quick Reference

A condensed reference of core Power Automate concepts, expressions, and connector actions for quick lookup while building flows.

PracticeBeginner7 min readJul 10, 2026
Analogies

Trigger Types and Flow Categories

Power Automate organizes flows into three cloud flow categories plus desktop flows: automated cloud flows fire on an external event through a trigger like 'When an item is created' or 'When a new email arrives'; instant cloud flows fire on manual user action such as a mobile button press or 'For a selected item' from a SharePoint list; scheduled cloud flows fire on a recurrence pattern defined by frequency and interval; and desktop flows automate legacy desktop or web applications via UI automation using Power Automate Desktop, typically invoked from a cloud flow through the 'Run a flow built with Power Automate Desktop' action. Knowing which category a requirement falls into determines which trigger to search for first in the designer, since searching generic terms like 'SharePoint' returns dozens of triggers spanning all three categories.

🏏

Cricket analogy: A match is classified as a Test, ODI, or T20 before a single ball is bowled, since the format dictates the rules that follow; identifying whether a flow is automated, instant, or scheduled upfront dictates which trigger to search for.

Common Expressions and Functions

The expression language borrowed from Azure Logic Apps covers most day-to-day needs with a small set of functions: triggerBody() and triggerOutputs() reference data from the trigger; outputs('ActionName') references a prior action's full output, often combined with the safe-navigation operator like outputs('Get_item')?['body/Title']; utcNow() and addDays(utcNow(), -7, 'yyyy-MM-dd') handle dates; and the flow-control functions if(), and(), or(), and coalesce() build inline logic without needing a separate Condition action for simple cases. The distinction between formatDateTime() for converting a date to a display string and convertTimeZone() for shifting a UTC date into a specific time zone like 'India Standard Time' trips up most beginners, since forgetting convertTimeZone() means every timestamp displayed to users stays in UTC regardless of their locale.

🏏

Cricket analogy: A scorer converts raw ball-by-ball data into both a readable scorecard and a locally broadcast time for the next session, mirroring how formatDateTime() creates a display string while convertTimeZone() adjusts it to the viewer's zone.

text
// Common Power Automate expressions cheat sheet

triggerBody()?['Title']                                  // field from the trigger
outputs('Get_item')?['body/Status']                       // field from a named action's output
coalesce(triggerBody()?['Manager'], 'unassigned')         // fallback if null
addDays(utcNow(), -7, 'yyyy-MM-dd')                        // date 7 days ago, formatted
convertTimeZone(utcNow(), 'UTC', 'India Standard Time', 'g')  // localize a timestamp
if(equals(triggerBody()?['Amount'], null), 0, triggerBody()?['Amount'])  // null-safe number
length(body('Get_items')?['value'])                        // count of items returned

Frequently Used Actions by Task

For approvals, 'Start and wait for an approval' and 'Post adaptive card and wait for a response' cover the vast majority of human-in-the-loop scenarios; for looping over data, 'Apply to each' iterates a JSON array, and adding a Filter Array action beforehand instead of nesting a Condition inside the loop keeps the flow both faster and cheaper on API calls; for calling external services, the HTTP action (premium) covers any REST API not represented by a dedicated connector, while 'HTTP with Azure AD' handles calls requiring service principal authentication against Azure resources. For error visibility, 'Post message in a chat or channel' to a dedicated 'Flow Alerts' Teams channel from within a Catch scope is the fastest way to get actionable, human-visible failure notifications without building a separate logging solution.

🏏

Cricket analogy: A captain filters the bowling attack down to specialists suited for the pitch conditions before the match starts rather than deciding over by over, mirroring how a Filter Array action trims a dataset before looping instead of filtering inside each iteration.

Filter Array reduces the number of iterations Apply to each has to run, which directly reduces the number of API calls the loop's inner actions make — this is not just a style preference, it measurably lowers the chance of hitting a connector's throttling limit on large datasets.

The HTTP action, HTTP with Azure AD, and several other high-value actions are premium and require a standalone or per-app Power Automate license — using them in a flow built under a seeded Microsoft 365 license will block the flow from running or force a licensing upgrade prompt.

  • Flows fall into three cloud categories — automated, instant, scheduled — plus UI-based desktop flows.
  • triggerBody(), outputs('ActionName'), and the safe-navigation operator ?[ ] cover most data-referencing needs.
  • Use formatDateTime() for display formatting and convertTimeZone() for localizing a UTC value to a user's time zone.
  • Filter Array before Apply to each is faster and cheaper than filtering with a Condition inside the loop.
  • 'Start and wait for an approval' and 'Post adaptive card and wait for a response' cover most human-in-the-loop scenarios.
  • HTTP and HTTP with Azure AD are premium actions requiring a standalone or per-app license.
  • Route Catch-scope failures to a dedicated Teams channel for fast, human-visible error notification.

Practice what you learned

Was this page helpful?

Topics covered

#Programming#PowerAutomateStudyNotes#PowerAutomateQuickReference#Power#Automate#Quick#Reference#StudyNotes#SkillVeris#ExamPrep