Power Automate: Build Your First Workflow in 15 Minutes
Tech Setup4 min read
TS
Published July 30, 2026 · Editorial policy

What is Power Automate?
Power Automate (formerly Microsoft Flow) is a no-code automation platform. It connects 400+ services and runs workflows triggered by events — new emails, form submissions, file uploads, scheduled times, and more.
Accessing Power Automate
- Go to flow.microsoft.com
- Sign in with your Microsoft 365 account
- Click + Create to start a new flow
Flow Types
| Type | Trigger | Use Case |
|---|---|---|
| Automated | Event (email, file, etc.) | React to things happening |
| Instant | Button press / HTTP | On-demand actions |
| Scheduled | Time-based | Daily/weekly reports |
| Desktop | UI automation | Legacy app interaction |
Flow 1: Save Email Attachments to OneDrive
Trigger
- + Create → Automated cloud flow
- Search: "When a new email arrives"
- Select Office 365 Outlook — When a new email arrives (V3)
- Configure:
- Folder: Inbox
- Include Attachments: Yes
- Only with Attachments: Yes
Action: Apply to Each Attachment
- + New step → Apply to each
- Select Attachments from dynamic content
- Inside the loop:
- + Add an action → Create file
- Site Address: Your OneDrive
- Folder Path: /Email Attachments
- File Name:
items('Apply_to_each')?['name'] - File Content:
items('Apply_to_each')?['content']
Test
Send yourself an email with an attachment → check OneDrive.
Flow 2: Daily Digest Email
Trigger
- + Create → Scheduled cloud flow
- Name: "Daily Digest"
- Run: Every day at 8:00 AM
Action: Get Weather
- + New step → HTTP
- Method: GET
- URI:
https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_KEY
Action: Send Email
- + New step → Send an email (V2)
- To: your email
- Subject: "Daily Digest -
formatDateTime(utcNow(), 'MMMM dd')" - Body: Build HTML with weather data from previous step
Flow 3: Approval Workflow
Trigger
- + Create → Automated cloud flow
- Trigger: "When a new response is submitted" (Microsoft Forms)
Action: Get Response Details
- + New step → Microsoft Forms — Get response details
- Form ID: Select your form
- Response ID:
triggerOutputs()?['body/responseId']
Action: Start Approval
- + New step → Start an approval
- Approval Type: "Approve/Reject — First to respond"
- Title: "New request:
body('Get_response_details')?['body/Question1']" - Assigned To: manager's email
- Details: Response details
Action: Condition
- + New step → Condition
- If Outcome equals "Approve"
- If yes: Send approval email
- If no: Send rejection email
Power Automate Desktop (PAD)
For automating Windows applications:
Install
- Download from aka.ms/padownloads
- Sign in with Microsoft account
Example: Extract Data from Excel
- Launch PAD
- Launch Excel → open workbook
- Read range → store in variable
- For each row → process data
- Write to text file → save results
Example: Web Automation
- Launch Chrome → navigate to URL
- Populate text field → enter search term
- Click element → submit form
- Extract element values → scrape results
Connectors
Standard (Free with M365)
- Outlook, OneDrive, SharePoint, Teams
- Excel, Word, PowerPoint
- Planner, To Do, Forms
Premium (License Required)
- SQL Server, SAP, Oracle
- Salesforce, Dynamics 365
- Custom connectors (HTTP, REST APIs)
Custom Connector
- + Create → Custom connector
- Enter API base URL
- Define actions (GET, POST, etc.)
- Test with sample request
Best Practices
- Error handling: Add Configure run after → check for failures
- Concurrency: Set Concurrency Control on Apply to each (up to 50)
- Naming: Use descriptive names for steps
- Comments: Add notes to complex steps
- Testing: Always test with the Test button before going live
- Environment: Use separate environments for dev/prod
Common Patterns
Parallel Branches
Split a flow into parallel paths:
Trigger
├── Branch 1: Send email
└── Branch 2: Update database
Do Until Loop
Repeat until a condition is met:
Do Until (status = "Complete")
→ Check status
→ Wait 5 minutes
Loop
Scope (Error Handling)
Wrap steps in a Scope to catch errors:
Scope (Try)
→ Risky operation
Scope (Catch) — Configure run after: has failed
→ Send error notification
Troubleshooting
- Check Run history for error details
- Resubmit failed runs after fixing issues
- Use Peek code to see the underlying JSON
- Export flow as JSON for backup/sharing


