Using Power Automate to migrate SharePoint documents from one tenant to another while preserving System Columns
The background After my previous post Updating SharePoint Items Without Modifying System Columns, I got a really good question on LinkedIn. First of all, I’d like to take the opportunity to thank everyone who reached out and connected, it's been great seeing the interest and feedback! The question was whether the same kind of logic could be applied to documents instead of list items. And more than that, "could it work across tenants?". He meant: create new documents in another tenant based on documents in a source tenant, and keep system columns like "Created", "Created by", "Modified", and "Modified by" intact. That got me thinking. Up until now, I’ve mostly done tenant-to-tenant migrations using tools like ShareGate, which make the process much easier. But I was curious to see what could be done directly in Power Automate. So, I decided to try and build a flow that moves documents from one SharePoint tenant to another without relying on third party tools. Note: We’re talking about a few documents here, not massive libraries or thousands of files. The challenge Copying files between sites in the same tenant is straightforward in Power Automate. But what if you try to move something to another tenant, would the usual "Create file" or "Copy file" actions work? The workaround What I discovered is that it’s possible to set up a flow that writes to a site in another tenant, you just have to add a new connection to the SharePoint connector using credentials from the destination tenant. Magic huh Here's how we make it work Build your flow as usual, up until the point where you need to create the file in the target library in the destination tenant. Use your source tenant credentials for the "Get file properties", "Get file content", etc. actions. Then: Add the "Create file" action Classic design: Click the three dots (…) in the top right of the action and select "Add new connection". Modern design: Select the action, and in the panel that opens on the left, down to the bottom, select "Change connection", then click "Add new connection". Sign in with a user from the destination tenant who has permission to write to the target document library. Once connected, you’ll be able to select the site and folder path from the destination tenant just like you would within your own. Now to the point, while it’s totally possible to copy documents across tenants using Power Automate, keeping system columns like "Created" and "Modified" is where things get complicated. If you follow the steps in this article Updating SharePoint Items Without Modifying System Columns you will be able to preserve the original timestamps (Created/Modified dates). For author and editor (Created by / Modified by), those accounts must exist in the destination tenant, ff they don’t, you’ll need to assign another user account, I would recommend a service account. Conclusion I’m still experimenting but can already confirm that document migration across tenants is possible using Power Automate. Even better, I was able to create new documents in a destination library based on a source library in another tenant, and keep the information in the system columns like Created, Modified, Created by, and Modified by (as long as the users exist).

The background
After my previous post Updating SharePoint Items Without Modifying System Columns, I got a really good question on LinkedIn. First of all, I’d like to take the opportunity to thank everyone who reached out and connected, it's been great seeing the interest and feedback!
The question was whether the same kind of logic could be applied to documents instead of list items. And more than that, "could it work across tenants?".
He meant: create new documents in another tenant based on documents in a source tenant, and keep system columns like "Created", "Created by", "Modified", and "Modified by" intact.
That got me thinking.
Up until now, I’ve mostly done tenant-to-tenant migrations using tools like ShareGate, which make the process much easier. But I was curious to see what could be done directly in Power Automate. So, I decided to try and build a flow that moves documents from one SharePoint tenant to another without relying on third party tools.
Note: We’re talking about a few documents here, not massive libraries or thousands of files.
The challenge
Copying files between sites in the same tenant is straightforward in Power Automate. But what if you try to move something to another tenant, would the usual "Create file" or "Copy file" actions work?
The workaround
What I discovered is that it’s possible to set up a flow that writes to a site in another tenant, you just have to add a new connection to the SharePoint connector using credentials from the destination tenant. Magic huh
Here's how we make it work
Build your flow as usual, up until the point where you need to create the file in the target library in the destination tenant.
Use your source tenant credentials for the "Get file properties", "Get file content", etc. actions.
Then:
Add the "Create file" action
Classic design: Click the three dots (…) in the top right of the action and select "Add new connection".
Modern design: Select the action, and in the panel that opens on the left, down to the bottom, select "Change connection", then click "Add new connection".
- Sign in with a user from the destination tenant who has permission to write to the target document library.
- Once connected, you’ll be able to select the site and folder path from the destination tenant just like you would within your own.
Now to the point, while it’s totally possible to copy documents across tenants using Power Automate, keeping system columns like "Created" and "Modified" is where things get complicated.
If you follow the steps in this article Updating SharePoint Items Without Modifying System Columns you will be able to preserve the original timestamps (Created/Modified dates). For author and editor (Created by / Modified by), those accounts must exist in the destination tenant, ff they don’t, you’ll need to assign another user account, I would recommend a service account.
Conclusion
I’m still experimenting but can already confirm that document migration across tenants is possible using Power Automate. Even better, I was able to create new documents in a destination library based on a source library in another tenant, and keep the information in the system columns like Created, Modified, Created by, and Modified by (as long as the users exist).