Power Automate Cloud Flows Triggers and Actions
Every business has work that happens the same way, every time, on repeat: an email arrives, someone approves it, a record gets updated, a notification goes out. Humans do this work today — copy, paste, click, send. Power Automate replaces that human effort with automated flows that run in the cloud, any time of day, without coffee breaks or Monday mornings off.
This topic explains how Power Automate cloud flows work, what triggers and actions mean, and how to read and build flows that automate real business tasks.
What Is a Cloud Flow?
A cloud flow is a sequence of automated steps that runs in Microsoft's cloud infrastructure — not on your computer. It starts when something happens (a trigger), then performs one or more automated actions in response. The flow runs whether your computer is on or off, and whether you are awake or asleep.
The Flow Anatomy
CLOUD FLOW STRUCTURE
┌─────────────────────────────────────────────────────────┐
│ TRIGGER │
│ "When does this flow start?" │
│ Example: When a new item is added to SharePoint list │
└─────────────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ ACTION 1 │
│ "What is the first thing to do?" │
│ Example: Get the manager of the person who added it │
└─────────────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ ACTION 2 │
│ "What is the second thing to do?" │
│ Example: Send an approval email to that manager │
└─────────────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ ACTION 3 │
│ "What happens after approval?" │
│ Example: Update the SharePoint item status to Approved │
└─────────────────────────────────────────────────────────┘
Types of Cloud Flows
Power Automate has three types of cloud flows. Understanding the difference helps you pick the right one for each scenario.
Automated Flows
An automated flow starts automatically when a specific event happens in a connected service — a new email arrives, a file is uploaded, a record is created, a form is submitted. You do not press a button — the flow triggers itself whenever the event occurs.
AUTOMATED FLOW EXAMPLES: Event → Flow runs automatically "New row in Dataverse table" → Send welcome email to new customer "File uploaded to SharePoint folder" → Extract text, notify team via Teams "New Microsoft Forms response" → Create a Dataverse record, email thank-you "Record updated in Dataverse" → Start an approval process "Tweet mentions your company" → Log it in SharePoint for review
Instant Flows
An instant flow starts when a human explicitly triggers it — by clicking a button. That button can be in a Power Apps canvas app, in the Power Automate mobile app, from within a SharePoint list (as a "Flow" menu option on a selected item), or from a Teams message action.
INSTANT FLOW EXAMPLES: Button click → Flow runs on-demand "Approve selected item" button in SharePoint → Email to approver "Generate PDF report" button in Power App → Create PDF, email it "Send reminder" button in Teams → Notification to all team members "Sync data" button in Power Automate app → Pull from external API, update Dataverse
Scheduled Flows
A scheduled flow runs on a defined schedule — every day, every hour, every Monday at 9 AM. Use scheduled flows for reports, data cleanup, batch processing, and any task that needs to happen at a regular interval regardless of user activity.
SCHEDULED FLOW EXAMPLES: Every day at 8 AM → Email managers a summary of their team's open tasks Every Monday at 9 AM → Create new weekly task records in Planner Every hour → Sync data from an external API into Dataverse Last day of each month → Generate monthly report PDF and email to leadership Every 15 minutes → Check for overdue records and send reminders
The Flow Designer Interface
Open make.powerautomate.com and click Create from the left sidebar. You see options to create an Automated, Instant, or Scheduled flow — plus options to start from a template. The flow designer opens as a visual canvas where steps appear as connected boxes. Each box is a step — either a trigger or an action.
FLOW DESIGNER LAYOUT ┌───────────────────────────────────────────────────────────────┐ │ ← My Flows | YOUR FLOW NAME | [Test] [Save] [...] │ ├───────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────┐ │ │ │ ⚡ TRIGGER │ │ │ │ When a new response is submitted (Forms) │ │ │ │ Form Id: Customer Feedback Form │ │ │ └────────────────────┬────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌─────────────────────────────────────────────┐ │ │ │ 📋 ACTION │ │ │ │ Get response details (Forms) │ │ │ │ Form Id: Customer Feedback Form │ │ │ │ Response Id: (dynamic content from trigger)│ │ │ └────────────────────┬────────────────────────┘ │ │ │ │ │ ▼ │ │ [+ New step] [+ Add parallel branch] │ │ │ └───────────────────────────────────────────────────────────────┘
Dynamic Content: Using Outputs From Earlier Steps
The most powerful concept in Power Automate is dynamic content. Each step produces outputs — data it discovered or created. You use those outputs as inputs to later steps. This is how flows pass information forward through the chain.
DYNAMIC CONTENT EXAMPLE
Step 1: "When a new row is added" (Dataverse trigger)
Outputs available: Customer Name, Email, Phone, City, Created On
Step 2: "Send an email" (Outlook action)
To: [Customer Email] ← dynamic content from Step 1
Subject: "Welcome to our service!"
Body: "Hello [Customer Name], ← dynamic content from Step 1
We are excited to have you on board from [City]."
Dynamic content values are wrapped in curly braces in the editor.
When the flow runs, each value is replaced with the actual data from the trigger.
The Dynamic Content Panel
When you click inside any text field in an action, a panel appears showing all available dynamic content from previous steps. Click any item to insert it at the cursor position. You can also type expressions directly using the Expression tab — which gives you access to a full set of functions for manipulating text, dates, numbers, and arrays.
Expressions: Power Automate's Formula Language
Power Automate expressions use a function-based syntax similar to Excel. You write them in the Expression tab of the dynamic content panel. Common expressions transform and manipulate data mid-flow.
USEFUL POWER AUTOMATE EXPRESSIONS
Text manipulation:
concat('Hello, ', triggerBody()?['CustomerName'])
→ Combines text: "Hello, Priya"
toUpper(triggerBody()?['CustomerName'])
→ Converts to uppercase: "PRIYA"
substring(triggerBody()?['Email'], 0, 5)
→ First 5 characters of email
Date and time:
utcNow()
→ Current date and time in UTC: "2025-06-04T08:30:00Z"
addDays(utcNow(), 7)
→ Date 7 days from now
formatDateTime(utcNow(), 'dd MMM yyyy')
→ Formatted date: "04 Jun 2025"
Conditional:
if(equals(triggerBody()?['Status'], 'Open'), 'Urgent', 'Normal')
→ Returns "Urgent" if Status is Open, "Normal" otherwise
Number:
add(5, 3) → 8
mul(100, 0.18) → 18 (useful for tax calculations)
div(variables('TotalAmount'), variables('ItemCount'))
The Most Useful Actions in Power Automate
Outlook: Sending Emails
Action: Send an email (V2) — Outlook connector To: [email address or dynamic content] Subject: [subject text with dynamic values] Body: [HTML or plain text body — supports rich formatting] Optional: CC, BCC: additional recipients Attachments: file content from a previous step Importance: Normal / High / Low Reply To: different reply-to address
Teams: Sending Messages and Notifications
Action: Post a message in a chat or channel — Teams connector Post as: Flow bot (no user login needed) or User (uses flow owner's account) Post in: Chat (direct message to a person) or Channel (group message) Message: Text with dynamic content — supports Adaptive Cards for rich formatting Action: Send a push notification (mobile notification): Notification text: "Your request ORD-2025-001 has been approved!"
Dataverse: Create, Update, Delete, Search Records
Add a new row (create): Table Name: Service Requests Title: [dynamic content from trigger] Status: Open Priority: [dynamic content] Update a row (update — requires Row ID): Table Name: Service Requests Row ID: [GUID from earlier Get Row step] Status: Approved Get a row by ID: Table Name: Customers Row ID: [GUID] → Outputs all columns of that customer record List rows (query multiple records): Table Name: Orders Filter rows: Status eq 'Open' and Amount gt 10000 → Returns all matching records for a loop
SharePoint: File and List Operations
Create item: Add new row to a SharePoint list Update item: Change fields on existing list item Get items: Query list items with filter and top parameters Create file: Upload a file to a SharePoint document library Get file content: Download file bytes for attachment or processing Move file: Relocate a file between folders or libraries Copy file: Duplicate a file
Triggers in Detail
Polling vs. Push Triggers
Triggers check for events in two ways. A polling trigger asks the service "has anything changed?" at regular intervals — every few minutes. A push trigger registers a webhook and the service sends an instant notification the moment an event occurs. Polling triggers have a delay (usually 1–5 minutes for standard license, faster for premium). Push triggers fire within seconds. SharePoint uses polling. Dataverse, Teams, and Outlook use push webhooks for most triggers.
Common Trigger Types
TRIGGER CATALOGUE (examples) Dataverse: "When a row is added, modified or deleted" "When an action is performed" (custom actions) SharePoint: "When an item is created" "When an item is created or modified" "For a selected item" (instant trigger from list) Outlook / Exchange: "When a new email arrives" "When a new email arrives in a shared mailbox" "When an email is flagged" Microsoft Forms: "When a new response is submitted" Recurrence (scheduled): "Recurrence" — set interval and time HTTP (for custom webhook triggers): "When an HTTP request is received" → Generates a unique URL; external systems POST to this URL to trigger your flow
Running and Monitoring Flows
Testing a Flow
Click Test in the top-right corner of the flow designer. Choose Manually (trigger it yourself right now) or Automatically (use data from the last real trigger event). Power Automate runs the flow immediately and shows each step's result in real time — green checkmark for success, red X for failure, with full input and output data visible for debugging.
Run History
After a flow has run in production, view its history by going to My Flows, clicking the flow name, and scrolling to the Run history section. Each row shows when the flow ran, how long it took, and whether it succeeded or failed. Click any row to see each step's inputs and outputs — this is your primary debugging tool.
RUN HISTORY TABLE Date/Time Duration Status 04 Jun 2025 8:02 AM 12 seconds ✓ Succeeded 04 Jun 2025 7:15 AM 45 seconds ✗ Failed ← Click to see which step failed 03 Jun 2025 6:48 PM 8 seconds ✓ Succeeded
Flow Ownership and Sharing
Every flow belongs to the person who created it. Their connections (their authentication to SharePoint, Outlook, etc.) are used when the flow runs. If that person leaves the organization and their account is disabled, all their flows stop working. To prevent this, add co-owners to important flows. Co-owners can edit the flow and their connections keep it running even if the original owner is unavailable.
BEST PRACTICE: Use a service account for critical flows Instead of: priya@company.com creates the flow with her personal connections Better: serviceaccount@company.com creates/owns the flow Priya as co-owner can edit the flow. The service account's stable credentials keep the flow running. When Priya leaves, the flow keeps working.
Key Points
- Cloud flows have three types: Automated (triggered by events), Instant (triggered by a button click), and Scheduled (triggered on a time schedule).
- Every flow starts with one trigger and can have any number of actions chained afterward.
- Dynamic content inserts real data from earlier steps into later steps — this is how flows pass information forward.
- Expressions use functions (concat, formatDateTime, if, add) to transform data mid-flow.
- The most-used actions are: Outlook email, Teams message, Dataverse row operations, and SharePoint list/file operations.
- Polling triggers check periodically (slower); push triggers fire instantly via webhooks (faster and more efficient).
- Use Run History to debug flows — click any failed run to see exactly which step failed and what input/output it had.
- Add co-owners to critical production flows, ideally using a service account, to prevent flows from breaking when individuals leave the organization.
