How to Copy SharePoint List Attachments to Another List with Power Automate
Question details
The user needs to automate the copying of attachments from one SharePoint list item to a new item in a different list without losing data or corrupting the files.

- Product
- SharePoint and Power Automate
- Device & OS
- not provided
- Scenario
- Creating a Power Automate flow to migrate or duplicate SharePoint list items along with their attached files.
- Observed behavior
- When the attachment content is not handled and passed correctly during the automation flow, the resulting files in the destination list become blank or corrupted upon opening.
Ensure you have Edit permissions for both the source and destination SharePoint lists, and verify that the destination list has attachments enabled in its settings.
Use an Array Variable and Apply to Each Loop
This method correctly extracts the binary file content from the source attachments and maps it to the new list item, preventing file corruption.
To avoid creating blank or corrupted files, you cannot just pass the attachment metadata. You must explicitly retrieve the binary file content using the 'Get attachment content' action and temporarily store it in an array before attaching it to the new list item.
At the start of your flow, add an 'Initialize variable' action. Set the type to 'Array' and give it a recognizable name, such as 'AttachmentArray'.
Add the SharePoint 'Get attachments' action. Select your Site Address, the source List Name, and insert the dynamic content 'ID' of the source item you are copying from.
Add an 'Apply to each' loop and use the 'Body' output from the 'Get attachments' action. Inside this loop, add a 'Get attachment content' action. Then, add an 'Append to array variable' action to store a JSON object containing the file name and content: {"Name": "@{item()?['DisplayName']}", "Content": @{body('Get_attachment_content')}}.
After creating the new item in your destination list, add a second 'Apply to each' loop using your 'AttachmentArray' variable. Inside it, use the 'Add attachment' action, mapping the array's 'Name' property to the 'File Name' field and the 'Content' property to the 'File Content' field.

Manage Your Exported SharePoint Documents with WPS Office
While Power Automate handles your SharePoint list migrations, WPS Office is the perfect lightweight suite for opening, editing, and managing the Word, Excel, and PDF attachments you download. Enjoy full compatibility with Microsoft formats at zero cost.
- 1. Download WPS Office: Visit the official WPS website to download and install the free WPS Office suite on your device.
- 2. Open Exported Attachments: Locate the documents downloaded from your SharePoint list and open them directly in WPS Office.
- 3. Edit and Save: Edit your files using familiar tools and save them seamlessly in standard Microsoft Office formats.

Frequently Asked Questions
Why are my copied SharePoint list attachments showing up as blank pages?
This typically happens if your Power Automate flow only copies the attachment's metadata (like the file name and type) without fetching the actual binary data. You must use the 'Get attachment content' action to retrieve the file's binary content before recreating it in the new list.
How do I handle copying multiple attachments from one SharePoint list item?
You need to use an 'Apply to each' loop. First, initialize an array variable. Loop through the output of 'Get attachments', fetch each file's content, append it to the array, and then use a second loop to add those stored files to the newly created list item.
Can I copy list attachments to a SharePoint document library instead of another list?
Yes. The process of getting the attachment content remains the same. However, instead of using the 'Add attachment' action in your final step, you will use the SharePoint 'Create file' action and point it to the target document library's folder path.




