Categories: Soft Skills

How to Use Power Automate to Send Emails (Full Guide)

How to Use Power Automate to Send Emails (Full Guide)

To send emails with Power Automate, create a flow (Instant, Automated, or Scheduled), add the Send an email (V2) action from the Office 365 Outlook connector, fill in To, Subject and Body, then save and test. The same action covers shared-mailbox sends, attachments, HTML bodies, approval requests, and emails triggered from an Excel row or a SharePoint item.

In 24 years of training in Singapore, I have noticed one thing: most people learn Power Automate the wrong way round. They watch a YouTube tutorial, build one flow, and then panic the moment the second flow needs a different trigger or a shared mailbox. The fix is to understand the three building blocks once — and then every flow looks like a variation of the same three steps.

This guide walks you through how to use Power Automate to send emails end-to-end. The three building blocks of every email flow. A seven-step walkthrough of the Send an email action. The V2-to-V3 naming change that confuses everyone. How to trigger an email from an Excel row. How to send from a shared mailbox (and the licensing trap that comes with it). How to attach files from OneDrive or SharePoint. How to format the body in HTML. How to build approval emails. How to schedule a daily digest. And an honest decision table on when Outlook rules or Zapier win instead.

Read the whole thing if you are building your first flow. Skip to the section you need if you have built ten and just want the bit you keep forgetting.

Why use Power Automate for email (and when Outlook rules win instead)

Power Automate is the right tool when an email needs to come out of, or go into, a system that is not just Outlook. A new row arrives in an Excel sheet, and a confirmation email goes to the customer. A SharePoint item is updated, and the manager gets a notification. A Microsoft Forms response is submitted, and the requester gets a copy. A scheduled time arrives, and the daily report goes to the team. In each of those, the trigger or the action sits outside Outlook. Outlook rules cannot reach there.

Outlook rules still beat Power Automate when the entire workflow lives inside the mailbox. Incoming email from a specific sender goes to a folder. Subject contains a keyword, mark it as read. Forward all attachments to a team distribution list. These rules run on the Exchange server. They are free. They are instant. They keep working even when Power Automate has a service outage. Building the same logic in a flow is overkill.

A second comparison worth making is against Zapier or Make. Power Automate is included with most Microsoft 365 business licences (E3, E5, Business Standard, Business Premium). The per-flow cost is already paid. Zapier and Make charge per task and per zap. For email automations inside a Microsoft 365 tenant, Power Automate is the default. Zapier is the right call when the other side of the workflow is a non-Microsoft tool with a strong Zapier integration but a weak Power Automate connector (Stripe, Mailchimp, Notion, some CRMs).

The cluster keyword email automation outlook is searched by people looking for both answers — Outlook rules and Power Automate. The honest answer is that you often want both. Rules for inbound triage. Flows for outbound automation. Your boss will be delighted when both are running quietly in the background and the team stops asking “did you see my email?” three times a day.

The three building blocks of every email flow: trigger, connector, content

Every email flow in Power Automate is made of the same three parts. Think of an email flow like a relay race — three runners, one baton. The baton starts with the trigger, gets passed to the connector, and ends with the email content crossing the finish line. Once you see this pattern, every Power Automate tutorial on the internet becomes easy to read.

  1. Trigger — the event that starts the flow. Triggers come in three families. Manual (you click a button). Automated (an event happens in another system — a row is added in Excel, an item is created in SharePoint, an email arrives in Outlook, a form is submitted). Scheduled (a clock-based trigger that fires every day at 8 a.m., every Monday, every hour). The trigger is the first block in your flow, and you cannot change its type without rebuilding.
  2. Connector — the bridge between Power Automate and the service that sends the email. For most Microsoft 365 users this is the Office 365 Outlook connector, which is a standard (no extra cost) connector. The other email connectors are Outlook.com (for personal accounts), Gmail (premium connector — needs a per-user Power Automate licence on most plans), and Mail (a generic SMTP connector that works with any mail server you have the credentials for).
  3. Email content — what goes inside the email. To, Subject, Body, optional Cc, Bcc, attachments, importance, reply-to. Content can be hard-coded (typed in the action), built from dynamic content (values pulled from the trigger or an earlier step), or assembled from a variable you built earlier in the flow. Most useful flows use a mix of all three.

These three blocks combine in every example below. When a flow is misbehaving, the fix is almost always in one of the three. The trigger fired on the wrong event. The connector is signed in with the wrong account. Or the content has a missing dynamic-content reference. Check those three before anything else.

Send an email with the V2 (and V3) action: 7-step walkthrough

This is the workflow that maps directly to the primary search term — how to use Power Automate to send emails. The example below uses an Instant cloud flow (manual trigger) so you can run it on demand and see the result in your own inbox. Do try it out on your own laptop as you read — fifteen minutes from start to finish.

  1. Go to make.powerautomate.com, sign in with your Microsoft 365 work account, and click + Create in the left pane.
  2. Choose Instant cloud flow. Give the flow a name like Send test email. Select Manually trigger a flow as the trigger. Click Create.
  3. Add the send-email action. Click + New step. In the connector search box, type Outlook. Pick Office 365 Outlook. From the action list, pick Send an email (V2) — or V3 if your tenant shows it. They work the same way.
  4. Fill the basic fields.
    • To: your own email address for the first test. Comma-separated for multiple recipients.
    • Subject: Test from Power Automate.
    • Body: a short message. The body editor accepts rich text by default — bold, italics, lists. Click the </> icon to switch to HTML source view if you need that.
  5. Open Show advanced options to see the rest:
    • From (Send as) — set this only if you have Send-on-behalf permission on another mailbox.
    • Cc / Bcc — same format as To.
    • Attachments — empty for this first test.
    • Importance — Low, Normal, or High.
    • Reply-To — the address replies will go to (often different from the From).
    • Sensitivity — Normal, Personal, Private, or Confidential.
  6. Save (the disk icon, top right), then Test (next to Save). Choose Manually, click Test, click Run flow, then Done. The flow runs for a second or two. The email lands in your inbox.
  7. Check the run history. Click on the run in the flow’s detail page. Each step has a green tick when it succeeded. If anything failed, the red error message tells you which field was wrong.

That is the whole basic flow. Every other section in this guide is a variation on those seven steps — a different trigger, a different connector, a few more content options. If you can build this one, you can build the rest. Fantastic.

Course CTA: Power Apps & Power Automate Masterclass — a one-day WSQ-funded hands-on programme that takes you from a blank flow to a working production automation. Built for Singapore working professionals.

A note on V2 versus V3. Microsoft has been renaming the action from Send an email (V2) to Send an email (V3) through 2024–2025. The fields are identical. V3 adds support for adaptive cards inside the body and has a slightly cleaner attachment schema for developers. For day-to-day flow-building, you can use whichever your tenant offers and not worry about the rename. Old flows built on V2 continue to work indefinitely.

Trigger an email from an Excel row (the most common starter automation)

The cluster keyword how to use power automate to send emails from excel (volume 70, KD 1) is one of the most common starter automations in any office. The pattern is simple. Your team keeps a list of clients, orders, or leave requests in an Excel file on OneDrive or SharePoint. A new row gets added. You want an email to fire automatically. After 24 years of running training rooms, I can tell you this is the single flow that wins more managers over to Power Automate than any other. It feels like magic the first time you see it work.

Setup is in three parts.

Part 1 — prepare the Excel file. The file must be saved in OneDrive for Business or in a SharePoint document library. Open the file in Excel. Select the data range. Press Ctrl + T to convert it into a proper Excel Table. Give the table a name in Table Design > Table Name, for example tbl_NewLeads. Power Automate cannot read raw ranges — only named tables. Think of an Excel Table as a passport — without that name and proper format, Power Automate will not let your data through the gate. If you have never set one up before, our walkthrough on building Excel Tables and pivot tables covers the Ctrl + T trick from scratch.

Part 2 — build the flow. In Power Automate, create an Automated cloud flow. For the trigger, search for and select When a row is added, modified or deleted (Excel Online for Business). Pick Added for the change type. Point the trigger at the location (OneDrive or SharePoint), the file, and the table. The polling interval defaults to about a minute.

Part 3 — add the Send an email action. Add Send an email (V2) as before. In the To field, use the Add dynamic content picker and pick the column from your table that holds the email address. The Subject and Body can be a mix of literal text and other dynamic columns. For example:

Subject: New lead received: @{triggerBody()?['Company']}

Body: Hi team, a new lead has just been added.<br><br>Company: @{triggerBody()?['Company']}<br>Contact: @{triggerBody()?['Contact_Name']}<br>Email: @{triggerBody()?['Email']}<br><br>Please follow up within 24 hours.

Save and test by adding a new row to the Excel table. Within a minute or two, the email arrives. This single pattern — Excel table change + Send email — is the foundation for dozens of real workplace automations. Leave request approvals. Sales lead routing. Training enrolment confirmations. Expense submission notifications. Give it a try with a dummy spreadsheet first, before you point it at real data.

Send from a shared mailbox: the licensing and permissions trap

Most teams have a shared mailbox somewhere — support@, info@, hr@, enquiries@. Sending from a shared mailbox with Power Automate is a different action and comes with two real gotchas that catch most people the first time.

The action: instead of Send an email (V2), use Send an email from a shared mailbox (V2). The fields are almost identical, with one extra field at the top: Original Mailbox Address. Type the shared mailbox address (for example support@yourcompany.com) into this field.

Trap 1 — permissions. Your user account must have either Send-As or Send-on-behalf permission on the shared mailbox. This is set in the Microsoft 365 admin centre by a global admin or an Exchange admin — not by you. Without it, the flow runs but the action fails with a 403 error. The fastest way to confirm permission is to open Outlook and try to send a manual email from the shared address. If that works, the flow will too. Many Singapore SMEs I work with skip this check, then spend half an afternoon debugging the flow. Five minutes with the IT admin first saves the afternoon.

Trap 2 — licensing on the mailbox. A shared mailbox does not need a Microsoft 365 licence as long as it stays under 50 GB and is genuinely shared (not a regular mailbox renamed to look shared). When a shared mailbox grows past 50 GB or starts being used by only one person, Microsoft requires a licence on it. Power Automate flows will keep sending while the mailbox is unlicensed, but the audit trail looks cleaner when it is properly classified.

A subtle but useful behaviour: when you send from a shared mailbox with this action, the email appears in the Sent items folder of the shared mailbox itself, not in your personal Sent folder. Everyone with access to the shared mailbox can see what was sent. That is usually what you want for an audit trail. How good is that?

Attachments: from OneDrive, SharePoint, or a freshly-generated file

Sending an attachment in Power Automate is a two-step pattern. Fetch the file content from storage. Pass that content into the Send an email action. That is it.

From OneDrive for Business:

  1. Before the Send an email action, add OneDrive for Business > Get file content.
  2. Click the folder icon, navigate to the file, and select it.
  3. In the Send an email action, expand Attachments. Set Attachments Name – 1 to the file name with extension (for example report.pdf). Set Attachments Content – 1 to the File Content dynamic output of the Get file content step.

From SharePoint is the same pattern with a different connector: SharePoint > Get file content using path. The path is the relative path inside the site, like /Shared Documents/Reports/march.pdf.

From a freshly-generated file — for example, a Word or PDF document that the flow itself creates from a template — chain the file-creation action (Word Online Business > Populate a Microsoft Word template, then Convert Word Document to PDF, both premium) into the Send an email step. The output of the conversion step is the attachment content directly. No separate Get file content needed.

Multiple attachments: click + Add new item under the Attachments section in the Send an email action. Each row holds one Name + Content pair. For variable numbers of attachments, switch the Attachments input from “select item” mode to “enter entire array” mode using the toggle icon, and supply a JSON array.

The 50 MB ceiling: the combined size of the email body, headers, and all attachments cannot exceed 50 MB. The flow will fail with an HTTP 413 error if you cross it. For larger files, attach a OneDrive or SharePoint link to the file inside the body instead of attaching the file itself. This is also the more polite approach — your recipient’s mailbox quota will thank you.

HTML emails: branded templates and dynamic content

The Body field of Send an email (V2) accepts full HTML. Click the </> icon in the body editor toolbar to switch from rich-text view to source view, then paste your HTML. Save the action, and the email is rendered with the styling intact.

Two rules of thumb keep HTML email reliable:

  • Use table layouts, not divs. Outlook on Windows still uses the Microsoft Word rendering engine for HTML. It does not handle flexbox, grid, or many modern CSS properties. Tables (<table>, <tr>, <td>) with role="presentation" render consistently across Outlook desktop, Outlook web, Gmail, and Apple Mail.
  • Inline your CSS. Style attributes on each element (style="padding:12px;") work everywhere. A <style> block in the head works in some clients and is stripped in others. The boring approach is the reliable one — and in email, boring is good.

A simple branded template you can drop into the body and customise:

<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="font-family: Arial, Helvetica, sans-serif;">
  <tr>
    <td style="background:#0b3954; padding:20px; color:#ffffff;">
      <h2 style="margin:0;">Your Company</h2>
    </td>
  </tr>
  <tr>
    <td style="padding:24px;">
      <p style="font-size:16px; line-height:1.5;">Hi @{triggerBody()?['Name']},</p>
      <p style="font-size:16px; line-height:1.5;">
        Thank you for your enquiry. Your reference number is
        <strong>@{triggerBody()?['Ref']}</strong>.
      </p>
      <p style="font-size:16px; line-height:1.5;">We will be in touch within one working day.</p>
    </td>
  </tr>
  <tr>
    <td style="background:#f2f2f2; padding:16px; text-align:center; font-size:12px; color:#666;">
      Sent automatically by Power Automate.
    </td>
  </tr>
</table>

The @{triggerBody()?['Name']} and @{triggerBody()?['Ref']} tokens are dynamic content references. You can either type them directly in source view, or switch back to rich-text view and use the Add dynamic content picker, which inserts the correct expression for you.

For longer transactional emails where the wording matters as much as the layout, our Writing Professional Emails course covers tone, subject lines, and structure — a useful companion when the automated email actually needs to read like a human wrote it.

Approval emails (Outlook actionable messages)

Approval emails are a built-in pattern in Power Automate. They send a richly formatted email with Approve and Reject buttons inside the email itself, capture which button the recipient clicks, and resume the flow with that response. Managers love this one. They get to approve a leave request, an expense claim, or a purchase order without leaving Outlook — one click, done.

The action lives in the Approvals connector, not Outlook. Add Start and wait for an approval (the modern version) or Send email with options (the older, lighter version).

Start and wait for an approval — recommended for most cases:

  1. Pick Approve/Reject — First to respond as the approval type if any single approver can decide. Pick Everyone must approve if all named approvers need to agree.
  2. Fill in Title, Assigned to (the approver’s email), and Details (the body, which accepts Markdown).
  3. After this action, the flow pauses. The approver gets an actionable email and a notification in the Power Automate mobile app and Microsoft Teams.
  4. Add a Condition action after the approval to branch on outcome equals Approve versus outcome equals Reject. Put a follow-up Send an email action in each branch.

Send email with options — lighter, no Approvals connector needed:

The recipient sees an email with custom buttons. You set the labels in the User Options field as a comma-separated list, like Yes, No, Maybe. The flow captures the selected option as a dynamic output called SelectedOption, which you can use in subsequent actions.

For approval flows that combine multiple approvers, parallel branches, escalation timers, and integration with Microsoft Teams adaptive cards, the natural extension is an agentic AI workflow — where the bot drafts the approval, routes it, and chases the response. Our Create Agentic AI Automations Without Coding course covers this end to end.

Scheduled and recurring emails (daily digest, weekly summary)

A scheduled flow runs at a fixed time on a fixed cadence — every day at 8 a.m., every Monday morning, the first of every month. The trigger is Recurrence under the Schedule connector. It is one of the simplest triggers to configure.

A common pattern is the daily digest. Every weekday at 8 a.m., pull yesterday’s new sales leads from an Excel table or a SharePoint list. Format them into an HTML table. Email the summary to the sales manager. Here is the recipe:

  1. Recurrence trigger. Frequency Day, Interval 1, set At these hours to 8 and At these minutes to 0. Set On these days to Monday–Friday only.
  2. List rows present in a table (Excel Online Business) or Get items (SharePoint), filtered to yesterday’s records using a filter query like Created ge '@{addDays(utcNow(), -1, 'yyyy-MM-dd')}'.
  3. Select (Data Operations) to keep only the columns you want in the email.
  4. Create HTML table (Data Operations) on the output of the Select step.
  5. Send an email (V2) with the output of Create HTML table in the body, wrapped in a short intro paragraph.

The whole flow has five blocks and runs in under ten seconds. Once it is built, you have a reliable daily report that lands in the same inbox at the same time every morning, with zero manual work. Managers can be quite demanding — they want yesterday’s leads on their desk before their first coffee. A scheduled digest delivers exactly that.

For reminder emails (sent before a deadline, or after a period of inactivity), use a scheduled trigger combined with a query that filters items by date — the same pattern with a different filter. If you also want the AI assistant in Outlook to summarise the day’s threads alongside the digest, our guide on how to use Copilot in Outlook walks through the email-side AI workflow.

Outlook rules vs. Power Automate vs. Zapier — a decision table

The honest answer to which tool depends on the trigger, the action, and the licence you already have. A quick decision table:

Scenario Outlook rules Power Automate Zapier / Make
Move inbound email to a folder Best — instant, free, native Possible, overkill Overkill
Forward all emails from a sender Best Possible Possible
Auto-reply when out of office Best (built-in Automatic Replies) Possible Overkill
New row in Excel triggers an email Cannot do this Best — native Excel connector Possible, Excel connector is weaker
New SharePoint item triggers an approval Cannot do this Best — native Cannot easily reach SharePoint
New row in a non-Microsoft CRM triggers an email Cannot do this Possible (if connector exists) Best — usually has a better CRM integration
Stripe payment triggers a thank-you email Cannot do this Possible (premium) Best — native Stripe trigger
Daily 8 a.m. digest from internal data Cannot do this Best — native Recurrence trigger Possible, costs per run
Scheduled email to a Notion database Cannot do this Possible (premium HTTP) Best — native Notion
Cost Free (included in Exchange) Included with most Microsoft 365 business plans Per-task pricing (free tier limited)

Most workplaces end up with a mix. Outlook rules clean up the inbox. Power Automate runs the business-system automations. Zapier covers the long tail of non-Microsoft SaaS tools. The Singapore SMEs I have worked with over the years almost all settle at this same combination after a year or two — usually after burning a few hundred dollars on Zapier tasks for workflows that Power Automate could have done for free.

If your primary stack is Microsoft 365 (Excel, SharePoint, Teams, Outlook, Forms, Lists, Dynamics, Dataverse), Power Automate is the default and you will rarely need anything else. If you live in Notion, Stripe, Shopify, Mailchimp, Slack, and HubSpot, Zapier is usually faster to build in.

Troubleshooting: the 5 errors you’ll hit in your first week

Most flow problems are one of five things. In order of how often they happen:

  1. Action fails with “Mailbox does not exist” or 403 Forbidden when sending from a shared mailbox. You do not have Send-As or Send-on-behalf permission. Ask your Microsoft 365 admin to add it. Confirm by trying to send manually from Outlook first.
  2. “The size of the email message exceeds the maximum limit.” The combined email plus attachments crossed 50 MB. Reduce the attachment size, split into multiple emails, or replace the attachment with a OneDrive or SharePoint share link inside the body.
  3. Premium connector prompt — “This action requires a premium licence.” Some connectors (Gmail, custom HTTP, Dataverse for some operations, third-party SaaS) require a per-user Power Automate Premium licence on top of Microsoft 365. Either switch to the equivalent standard connector (Office 365 Outlook instead of Gmail, SharePoint instead of Dataverse) or buy the Premium licence.
  4. Flow runs but no email arrives. Check the Junk Email folder first. After that, check the run history. If the Send-email step shows a green tick, the email left Power Automate successfully — the problem is at the recipient end (filtered by their gateway, blocked sender, full mailbox). If the step shows red, read the error message; it is usually a missing required field or a dynamic-content reference that returned null.
  5. Excel trigger does not fire. The Excel range is not a real Table. Open the file, click into the data, press Ctrl + T, give the table a name, save and close the file, then re-bind the trigger to the named table.

When all five are ruled out, use Peek code (the action’s ... menu) to read the raw JSON that Power Automate is sending and compare it to a known-good run. The official Microsoft email scenarios reference is the canonical doc for every action and field.

Wrapping up

Power Automate’s email actions cover almost every email-automation scenario a Microsoft 365 workplace will hit. Send an email (V2/V3) is the workhorse. Shared mailbox, approval emails, scheduled digests, and HTML branded templates are variations on the same three-block pattern — trigger, connector, content. The only judgement calls are positioning. Outlook rules for inside-Outlook workflows. Power Automate for anything that crosses to another Microsoft 365 system. Zapier for the long tail of non-Microsoft tools.

I hope you’ll like this guide. Pick one flow — start with the Excel-row-to-email one in the section above. Give it a try with a dummy spreadsheet first, before you point it at real client data. Once that runs, the rest of the patterns in this guide click into place quickly.

Course CTA: The Power Apps & Power Automate Masterclass is our one-day WSQ-funded, SkillsFuture-claimable hands-on programme in Singapore. We walk you from a blank flow to a working production automation, with an instructor watching your screen. After 24 years of training Singapore professionals at Intellisoft, it is the fastest way I know to learn Power Automate properly.

Vinai Prakash

Vinai Prakash is the Founder and Chief Trainer at Intellisoft Training, a leading SSG-Approved Training Provider and Pearson VUE Authorized Testing Centre in Singapore. With over 25 years of hands-on industry experience in Python, Data Analysis, Business Intelligence, Excel, Power BI, and Project Management, Vinai is passionate about helping individuals future-proof their careers by making complex concepts simple and actionable. Under his leadership, Intellisoft Training offers WSQ-Funded Courses in Python, Data Analytics, Microsoft Office, Power Platform, and more, all taught by seasoned industry experts.

Recent Posts

Power BI Quick Measures Explained (10 You’ll Actually Use)

Power BI Quick Measures Explained (10 You'll Actually Use) A Power BI Quick Measure is…

1 day ago

How to Add Animations in PowerPoint (Step-by-Step)

How to Add Animations in PowerPoint (Step-by-Step + Examples) TL;DR: To put animation in PowerPoint,…

2 days ago

How to Write a Follow-Up Email: Templates and Timing

Want to sharpen your professional email writing end-to-end? Our hands-on Writing Professional Emails course covers…

3 days ago

How to Design a Stunning Canva Presentation (2026)

How to Design a Stunning Canva Presentation (2026) A Canva presentation can look polished in…

4 days ago

How to Install Power Automate Desktop (Step-by-Step Guide)

How to Install Power Automate Desktop (Step-by-Step for Windows 10 & 11) To install Power…

1 week ago

Data Visualization with Power BI: 10 Chart Types Guide

New to Power BI dashboards? Our hands-on Analyze and Visualize with Power BI course walks…

1 week ago