# Copy or move SharePoint list items to another list with Power Automate

> For the full documentation index, see https://250highstreet.com/llms.txt

> Copy a SharePoint list item to another list with Power Automate, with attachments, or archive closed items so the main list stays fast. Test it on a copy first.

To copy a SharePoint list item to another list in Power Automate, use Get items to read the rows, then Create item in the target list, mapping each column. To archive instead of copy, add a Delete item step after Create item succeeds. The live list stays short and the old rows remain in the archive.

This guide starts with the copy and then adds the archive steps. Exact names may differ on your screen. The Microsoft pages behind each step are listed at the end.

## Copy one item when it is created

If you only need each new item copied to a second list, skip the schedule. Use the trigger When an item is created, which Microsoft describes as "Triggers when an item is created." Pick the site and the source list. Then add Create item, point it at the target list, and map each column from the trigger output. The copy runs once for each new item and no loop is needed. The target must be a different list, so the flow does not trigger itself.

Our advice, not a Microsoft rule: for rows that already exist, use the scheduled Get items version in the steps below. It reads many rows in one run, and you can filter which ones.

## Why old rows hurt

A tracker grows every week. A help desk list, an incident log or a request list collects rows that nobody opens again. After a year or two, three things happen:

- People scroll past hundreds of closed rows to find the open ones.
- Views get slower and filters get harder to build.
- The list moves toward Microsoft's list view threshold. Microsoft's page on large lists says that when a list view shows more than 5,000 items, you might run into a list view threshold error. It also says the actual number is not always 5,000 and can vary depending on your site. The same page says you may see a warning on the List Settings page when a list passes 3,000 items.

Archiving is one way to stay well under that number. It is not the only fix. Indexed columns and filtered views also help. See "[SharePoint list over 5,000 items: what breaks and the fix](/guides/sharepoint-list-view-threshold/)" for those.

## What you will build

1.  An archive list with the same columns as the live list.
2.  A scheduled flow that runs once a week.
3.  Three actions in the flow: Get items, Create item, Delete item.
4.  A habit of checking the archive, so you know it works.

If you do not have a tracker yet, see "[Help desk ticket tracker in a SharePoint list](/guides/help-desk-tracker-sharepoint/)" for an example of a list that fills up fast.

## Step 1. Make sure the live list has a clear Status

The flow needs one column that says an item is closed. Use a Choice column called Status. Put a number in front of each choice so the stored text is exact:

- 1 Open
- 2 In progress
- 3 Closed

The number prefix makes the stored text exact. The flow will look for the text '3 Closed'. If you rename a choice later, the flow stops finding it. Change the flow at the same time.

Also add a date column. When you make it, type ClosedDate with no space, then rename it to Closed date, so the name the flow uses stays simple. The owner fills it in when the item is closed. You will use it so that items are archived only after they have been closed for a while.

## Step 2. Make the archive list

1.  Create a new list called Archive, or a name that says what it holds, such as "Help desk archive".
2.  Add the same columns as the live list, with the same names and types. Match the Choice values exactly, including the number prefixes.
3.  Keep the Title column and map it, so every copied item has a Title.

A list template can save the shape of the live list so you can reuse it. See "[How to back up a SharePoint list before someone wrecks it](/guides/back-up-sharepoint-list/)" for what a template does and does not keep.

Note on columns: some column types do not copy across easily, for example Person columns. Attachments need their own steps, shown below. Test one item first and check every field in the archive.

## Step 3. Test with a copy first

Do not point this flow at your real list on the first try. A flow that deletes rows can remove the wrong rows if a filter is wrong.

1.  Make a copy of the live list with about 20 items. Use some closed and some open.
2.  Build the flow against the copy and the archive.
3.  Run it once.
4.  Check three things: the closed items are in the archive, the open items are still in the copy, and the counts add up.

Only then change the list name in the flow to the real list.

## Step 4. Build the flow

Microsoft describes how to set up a scheduled flow on the page "Run a cloud flow on a schedule in Power Automate". In short:

1.  Sign in to Power Automate.
2.  Select My flows, then the Cloud flows tab, then Create from blank.
3.  Add the Recurrence trigger. For a weekly run, set Interval to 1 and Frequency to Week.
4.  Set the Time zone and a Start time. One way to start: Sunday night, when nobody is working in the list.

Then add the actions below. The Microsoft SharePoint connector page lists all three.

Action 1. Get items. Microsoft describes it as "Gets items from a SharePoint list." Choose the site address and the live list. In the Filter Query field, which takes an ODATA filter, enter:\
Status eq '3 Closed'

In practice, Get items returns only 100 items unless you set Top Count or turn on Pagination in the action's Settings. For a first run, set Top Count to 100 so it moves a small batch. For bigger batches later, turn on Pagination and set Threshold to the most items you want, such as 5000.

The name in a filter is the column's internal name. It can be the same as the display name, but it can differ, especially if you renamed a column or used spaces. Exact names may differ on your screen. If a filter finds nothing, check the column name first.

This filter sits inside the flow. It is not a list view, so you do not need the classic view editor here. If you build a list view to look at closed items yourself, remember this: Microsoft says filters with \[Today\] or \[Me\] need the classic view editor (Edit current view, then Filters). Our advice, not a Microsoft rule: use the classic view editor for blank and "is not equal to" filters too.

Action 2. Create item. Microsoft describes it as "Creates a new item in a SharePoint list." Point it at the archive list and map each column from the Get items output. Power Automate puts it inside a loop, once per item.

Action 3. Delete item. Microsoft describes it as "Deletes an item from a SharePoint list." It needs the site address, the list name and an Id. Use the Id of the item from Get items, and point it at the live list.

## Copy the attachments too

Create item does not carry attachments. Microsoft's connector page lists the actions for them: Get attachments, which it describes as "Returns the list of attachments for the specified list item", Get attachment content, and Add attachment, which it describes as "Adds a new attachment to the specified list item." Inside the loop, after Create item:

1.  Add Get attachments. Choose the source list and use the Id of the current item.
2.  Add Get attachment content. It runs once for each file in a second loop. Choose the source list, use the Id of the current item, and use the File identifier from Get attachments.
3.  Add Add attachment. Choose the archive list, set Id to the Id that Create item returned, set File Name to the name from Get attachments, and set File Content to the output of Get attachment content.

The connector page says it "supports list item attachment sizes up to 90 MB." Run Delete item only after the attachments are copied.

Order matters. Put Delete item after Create item, in the same loop. If Create item fails, the flow should not delete that row. Build and test the flow so that Delete item never runs when Create item has failed. This is the most important rule in the whole flow.

## Step 5. Only archive older items

One way to start is to keep items in the live list for 30 days after they close, so people can still reopen one. Join a second test to the Filter Query with "and":\
Status eq '3 Closed' and ClosedDate lt '@{formatDateTime(addDays(utcNow(),-30),'yyyy-MM-dd')}'\
Test it on the copy list first.

Do not use a calculated column for this. A calculated column cannot use today's date, because SharePoint blocks \[Today\] in formulas.

## Step 6. Know what Microsoft's limits mean for the flow

Microsoft's limits page for Power Automate lists several numbers that matter here:

- An "apply to each" loop can process up to 5,000 array items for flows at the Low performance level, and up to 100,000 for all others.
- A cloud flow can have up to 500 actions.
- A cloud flow that fails continuously is turned off after 14 days.
- A flow that is consistently throttled is turned off after 14 days.

A weekly flow that moves a few hundred rows is far under these. A first run on a list with many thousands of closed rows is not. Use Top Count to move a batch at a time, and run the flow several times until the backlog is gone. Check your plan with your admin.

## Step 7. Keep a recycle bin note

When Delete item removes a row, Microsoft's page on the recycle bin says deleted items are kept for 93 days, counted from the day the item was deleted from its original place. After that they are deleted for good. That gives you a short window to restore a row if the flow removed something by mistake. It is a safety net, not the plan. The archive list is the plan.

To restore, open the site, select Recycle bin, tick the items and select Restore. Try it once on a test row so you know where it is.

## Step 8. Protect the archive list

Views are not security. A hidden view or a filtered view does not stop anyone from opening the archive list. If closed items hold private details, set permissions on the archive list itself. Break inheritance for that list only, and give read access to the people who need it. Check with your admin before you change permissions.

## When NOT to archive

Do not move items out of the live list if:

- A report needs the full history in one place. A chart of requests per month for three years needs all three years in one list, or in a second source you join with it.
- People search old items by number or name. They will not know to look in a second list.
- Items link to other lists through lookup columns. A moved item can break the link.
- The list is small. A list with a few hundred rows does not need this. Archive when the list is slow or near the threshold, not before.
- You need a record of who changed what. Version history stays with the item, and a copy made by Create item starts with a new history. See "[See who changed a row: SharePoint version history](/guides/who-changed-this-row/)".

## What to avoid

- Deleting before the copy exists. Run Delete item only after Create item succeeded.
- Skipping the test. Run the flow on a copy of the list first.
- Changing a choice name. The filter looks for the exact text, such as '3 Closed'. A rename makes the flow find nothing.
- A flow with one owner. A flow can stop when its owner leaves. Name a second owner. See "[The person who built your flows left: what happens and what to do](/guides/power-automate-flow-owner-left-company/)".
- Never checking. Once a month, compare counts: how many items the flow moved and how many are in the archive.
- Treating the archive as a backup. It sits on the same site. For protection against mistakes, see "[How to back up a SharePoint list before someone wrecks it](/guides/back-up-sharepoint-list/)".

## Honest limits

This flow moves rows one at a time, so it is slow for very large lists. Person columns and lookup columns may not copy the way you expect. Licensing and flow features differ by plan, so check with your admin. For a reminder flow that is simpler to start with, see "[Recurring task reminders for a team](/guides/recurring-task-reminders/)".

## When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: \$5,000 for one, built in 2 weeks. See "[What a SharePoint tracker costs to build](/guides/what-a-sharepoint-tracker-costs/)". Bring one example of the problem to a free call.

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: [Tools I built](/portfolio/)

## FAQ

### How many items can a list view show?

Microsoft says that when a list view shows more than 5,000 items, you might run into a list view threshold error. It also says the number can vary depending on your site. Archiving keeps the live list well under it.

### How do I copy a list item with its attachments?

Inside the loop, after Create item, use Get attachments, Get attachment content and Add attachment. The connector page lists a 90 MB limit for list item attachments.

### How do I copy every new item to another list?

Use the trigger When an item is created, then Create item in the target list with each column mapped. No schedule is needed.

### Can I get a deleted row back?

Yes, for a limited time. Microsoft's page gives 93 days from the day the item was deleted. The archive copy is the better source, because it does not expire.

### Does the flow keep the old version history?

No. Create item makes a new item in the archive, and it starts with a new history. If you need the old history, do not archive that list this way.

## Sources

- [SharePoint connector](https://learn.microsoft.com/en-us/connectors/sharepointonline/)
- [Manage large lists and libraries in SharePoint](https://support.microsoft.com/en-us/office/manage-large-lists-and-libraries-in-sharepoint-b8588dae-9387-48c2-9248-c24122f07c59)
- [Limits of automated, scheduled, and instant flows](https://learn.microsoft.com/en-us/power-automate/limits-and-config)
- [Restore items in the recycle bin of a SharePoint site](https://support.microsoft.com/en-us/office/restore-items-in-the-recycle-bin-of-a-sharepoint-site-6df466b6-55f2-4898-8d6e-c0dff851a0be)
- [Run a cloud flow on a schedule in Power Automate](https://learn.microsoft.com/en-us/power-automate/run-scheduled-tasks)
- [Microsoft Support, Use filtering to modify a SharePoint view](https://support.microsoft.com/en-us/office/use-filtering-to-modify-a-sharepoint-view-3d8efc52-0808-4731-8f9b-3dfaeacea3d4)

## Related guides

- [Copy a SharePoint file to another site with Power Automate](/guides/power-automate-copy-file-to-another-sharepoint-site/)
- [Copy a SharePoint list to another site with its data](/guides/copy-sharepoint-list-to-another-site-with-data/)
- [Move a Planner task to another plan](/guides/planner-move-task-to-another-plan/)
- [Manufacturing defects reported but never closed](/guides/non-conformance-log-sharepoint/)

Source: https://250highstreet.com/guides/archive-closed-items-to-another-list/
