SharePoint admins often need to move files between document libraries. Doing this manually for many files takes too much time. Power Automate can automate the file copy process without writing code. This guide explains how to create a flow that copies files from one SharePoint library to another. You will learn the exact steps to set up the trigger, actions, and conditions for a reliable copy operation.
Key Takeaways: Automating SharePoint File Copy with Power Automate
- Power Automate > Instant cloud flow > SharePoint trigger: Use the “When a file is created or modified (properties only)” trigger to start the copy process.
- Copy file action > Destination library: Select the target site and library to store the copied files.
- Condition control > File exists check: Add a condition to avoid overwriting existing files in the destination library.
How Power Automate Copies Files Between SharePoint Libraries
Power Automate is a cloud-based service that creates automated workflows between apps and services. For SharePoint, it can monitor a library for new or changed files and then copy those files to another library. The flow uses built-in connectors that do not require custom code. The core trigger is “When a file is created or modified (properties only).” This trigger fires when a file is added or its metadata changes. The flow then uses the “Copy file” action to duplicate the file to a destination library. The destination can be in the same site, a different site, or even a different tenant if the connection permits.
Before creating the flow, you need the following prerequisites:
- A Power Automate license (included with most Microsoft 365 plans that include SharePoint)
- Access to both the source and destination SharePoint sites
- Edit or Contribute permissions on the source library to read files
- Edit or Contribute permissions on the destination library to write files
- Power Automate environment where you can create flows (default environment works)
Steps to Create a Power Automate Flow That Copies Files Between Libraries
This section covers the exact steps to build an automated file copy flow. The flow triggers when a file is added to the source library and copies it to the destination library. Use a browser to access Power Automate at make.powerautomate.com.
- Create a new instant cloud flow
Sign in to Power Automate. On the left navigation, select Create. Choose Instant cloud flow. Give the flow a name like “Copy File Between Libraries.” Under Choose how to trigger this flow, search for and select Manually trigger a flow. Click Create. - Add the SharePoint trigger for file creation
Click + New step. Search for SharePoint and select the When a file is created or modified (properties only) trigger. Set Site Address to the URL of the source site. Set Library Name to the name of the source document library. Leave other settings as default. - Add the “Copy file” action
Click + New step. Search for SharePoint and select the Copy file action. Set Source site address to the source site URL. Set Source file to the Identifier dynamic content from the trigger. Set Destination site address to the destination site URL. Set Destination folder to the library path where files should be copied (for example, “/Shared Documents”). Leave Overwrite as No to prevent accidental overwrites. - Add a condition to check if the file already exists
Click + New step. Search for Condition and select it. In the Condition card, set the left side to the File name with extension dynamic content from the trigger. Set the operator to is not equal to. Leave the right side blank for now. Click Edit in advanced mode. Replace the expression with:@not(equals(triggerOutputs()?['body/{FilenameWithExtension}'], '')). This ensures the flow only continues if a file name exists. Place the Copy file action inside the If yes branch. Leave the If no branch empty. - Save and test the flow
Click Save in the top right corner. Click Test. Select Manually and click Test. Upload a file to the source library. The flow should trigger and copy the file to the destination library. Check the destination library to confirm the file appears.
Common Issues When Copying Files with Power Automate
Flow Fails with “Access Denied” Error
The most common cause is insufficient permissions. The flow runs under the context of the flow owner. The owner must have at least Contribute access to both the source and destination libraries. If the owner has only Read access on the destination library, the copy action fails. To fix this, ask a site collection admin to grant Contribute permissions to the flow owner on the destination library.
Flow Does Not Trigger When a File Is Added
The trigger “When a file is created or modified (properties only)” does not fire for files added via SharePoint migration tools or direct database imports. It only fires for user actions through the SharePoint web interface, mobile app, or other Microsoft 365 services that raise webhook events. If you need to copy files from a bulk upload, use a scheduled flow instead. Create a recurring flow that runs every hour and lists all files in the source library, then copies only new files based on a timestamp comparison.
Large Files Fail to Copy
Power Automate has a default file size limit of 250 MB for the Copy file action. If your files exceed this limit, the flow fails. To copy larger files, use the SharePoint migration API or a third-party tool. Alternatively, split large files into smaller parts before copying, though this is not practical for most admin scenarios.
Power Automate File Copy vs SharePoint Move vs Third-Party Tools
| Item | Power Automate Copy | SharePoint Move To | Third-Party Tool |
|---|---|---|---|
| Trigger | Automatic on file creation | Manual user action | Scheduled or on-demand |
| Cross-site copy | Supported | Supported | Supported |
| File size limit | 250 MB | None (SharePoint limits apply) | Varies by tool |
| Metadata preservation | Partial (some custom columns may not copy) | Full | Usually full |
| Version history | Not copied | Copied | Often copied |
| License cost | Included with Microsoft 365 | Free within SharePoint | Additional cost |
Use Power Automate when you need an automated, event-driven copy without manual intervention. Use SharePoint Move To when you need to preserve version history and metadata. Use third-party tools for very large files or complex migration scenarios.
You can now create a Power Automate flow that automatically copies files between SharePoint libraries. Start by testing the flow with a small set of files in a non-production environment. For advanced scenarios, add error handling using the Configure Run After settings on each action to retry failed copies. This approach saves time and reduces manual errors in daily operations.