Automation

Power Automate: Build Your First Workflow in 15 Minutes

Tech Setup4 min read
TS

Tech Setup

Published July 30, 2026 · Editorial policy

Power Automate: Build Your First Workflow in 15 Minutes

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

  1. Go to flow.microsoft.com
  2. Sign in with your Microsoft 365 account
  3. Click + Create to start a new flow

Flow Types

TypeTriggerUse Case
AutomatedEvent (email, file, etc.)React to things happening
InstantButton press / HTTPOn-demand actions
ScheduledTime-basedDaily/weekly reports
DesktopUI automationLegacy app interaction

Flow 1: Save Email Attachments to OneDrive

Trigger

  1. + CreateAutomated cloud flow
  2. Search: "When a new email arrives"
  3. Select Office 365 Outlook — When a new email arrives (V3)
  4. Configure:
    • Folder: Inbox
    • Include Attachments: Yes
    • Only with Attachments: Yes

Action: Apply to Each Attachment

  1. + New stepApply to each
  2. Select Attachments from dynamic content
  3. Inside the loop:
    • + Add an actionCreate 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

  1. + CreateScheduled cloud flow
  2. Name: "Daily Digest"
  3. Run: Every day at 8:00 AM

Action: Get Weather

  1. + New stepHTTP
  2. Method: GET
  3. URI: https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_KEY

Action: Send Email

  1. + New stepSend an email (V2)
  2. To: your email
  3. Subject: "Daily Digest - formatDateTime(utcNow(), 'MMMM dd')"
  4. Body: Build HTML with weather data from previous step

Flow 3: Approval Workflow

Trigger

  1. + CreateAutomated cloud flow
  2. Trigger: "When a new response is submitted" (Microsoft Forms)

Action: Get Response Details

  1. + New stepMicrosoft Forms — Get response details
  2. Form ID: Select your form
  3. Response ID: triggerOutputs()?['body/responseId']

Action: Start Approval

  1. + New stepStart an approval
  2. Approval Type: "Approve/Reject — First to respond"
  3. Title: "New request: body('Get_response_details')?['body/Question1']"
  4. Assigned To: manager's email
  5. Details: Response details

Action: Condition

  1. + New stepCondition
  2. If Outcome equals "Approve"
  3. If yes: Send approval email
  4. If no: Send rejection email

Power Automate Desktop (PAD)

For automating Windows applications:

Install

  1. Download from aka.ms/padownloads
  2. Sign in with Microsoft account

Example: Extract Data from Excel

  1. Launch PAD
  2. Launch Excel → open workbook
  3. Read range → store in variable
  4. For each row → process data
  5. Write to text file → save results

Example: Web Automation

  1. Launch Chrome → navigate to URL
  2. Populate text field → enter search term
  3. Click element → submit form
  4. 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

  1. + CreateCustom connector
  2. Enter API base URL
  3. Define actions (GET, POST, etc.)
  4. Test with sample request

Best Practices

  1. Error handling: Add Configure run after → check for failures
  2. Concurrency: Set Concurrency Control on Apply to each (up to 50)
  3. Naming: Use descriptive names for steps
  4. Comments: Add notes to complex steps
  5. Testing: Always test with the Test button before going live
  6. 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

  1. Check Run history for error details
  2. Resubmit failed runs after fixing issues
  3. Use Peek code to see the underlying JSON
  4. Export flow as JSON for backup/sharing