Auto-Save Email Attachments to OneDrive
with Power Automate
Manually downloading email attachments is slow, error-prone, and a waste of your time. In this guide, you'll build a Power Automate flow that automatically saves every incoming attachment to a OneDrive folder — so files are always organised, backed up, and accessible without lifting a finger.
Why Automate This?
The Flow: Step by Step
This flow uses just two steps: a trigger (detecting a new email with an attachment) and an action (saving the file to OneDrive). Here's how to build it:
Create a new Instant Cloud Flow
Go to make.powerautomate.com and click + Create → Automated cloud flow.
Set the trigger: "When a new email arrives (V3)"
This is the trigger that watches your inbox and fires whenever a new email lands.
- Set Include Attachments to Yes — this is critical
- Optionally set Only with Attachments to Yes to prevent the flow from running on emails without files
- You can also filter by sender, subject, or folder to narrow when the flow fires
Add the action: OneDrive "Create File"
Click + New Step, search for OneDrive for Business, and select Create File.
- Folder Path — choose the OneDrive folder where attachments will be saved
- File Name — from Dynamic Content, select Attachment Name
- File Content — from Dynamic Content, select Attachment Content
Save and test
Click Save, then send yourself a test email with an attachment. Check your OneDrive folder — the file should appear within seconds.
Key Settings Reference
| Setting | Value to Use | Why It Matters |
|---|---|---|
| Include Attachments | Yes |
Without this, Power Automate can't access the email's attached files |
| Only with Attachments | Yes (recommended) |
Prevents the flow from running on emails that have no files — saves run quota |
| File Name | Dynamic: Attachment Name |
Preserves the original file name (e.g., invoice.pdf) |
| File Content | Dynamic: Attachment Content |
This is the actual binary data of the file — required to save it correctly |
report.pdf, Power Automate will overwrite the first file. To prevent this, prefix the file name with the date — use an expression like concat(formatDateTime(utcNow(), 'yyyyMMdd-HHmm'), '-', triggerOutputs()?['body/attachments/0/name']).
Want a Custom Power Automate Setup?
We can build this flow for your team — with custom folder structures, filters by sender, Teams notifications, and more. All in English, all done for you.
Get a Free Consultation