Use Power Automate to copy multi-select Person values between Microsoft Lists

In this blog post I will show how to copy multi-select Person values from one list to another. This post is a supplement to: Use Power Automate to move Microsoft Lists items to another list.

I am using two lists called Source and Destination. Both lists have a Person column called “Person” that allows multiple selections.

Person column that allows multiple selections

Create a new Flow from the Source list by clicking Automate > Power Automate > See your Flows > Create new > Automated from blank. Provide a Flow name, i.e., “Source to Destination”, select the SharePoint “When an item is created” trigger and click “Create”.

Automated cloud flow for when an item is created

Set the Site Address and List Name to your source site and list.

When an item is created

Create a new Initialize variable action and set:

  • Name to “varUser”
  • Type to “Array”
Initialize variable varUser

Insert a new Apply to each action and set:

  • Select an output from previous steps to “Person” from the When an item is created action

Add a new Append to array variable action to the Apply to each loop and set:

  • Name to “varUser”
  • Value to: { "Claims": "Person Claims" } where “Person Claims” comes from the When an item is created action
Apply to each and Append to array variable

Insert a new SharePoint – Create item action and set:

  • Set the “Site Address” and “List Name” to your destination site and list.
  • Title to “Title” from the Create item step
  • Person to “varUser”
SharePoint Create item action

My completed Flow looks like the image below.

My completed Flow

Save and test your Flow by creating a new item in the source list with multiple people selected in the Person column. If all goes well your destination list will have the same values including the multi-select users.

Source test item
Destination item

Moving and manipulating data is an important component in many “information” based solutions and as tools like Microsoft Lists and the Power Platform become more widely adopted, citizen developers can use Flow patterns like the described above to reduce their dependence on traditional IT for these activities.

Thanks for reading!

NY

8 thoughts on “Use Power Automate to copy multi-select Person values between Microsoft Lists

  1. Hi, this is really helpful for a single list item. But I wondered how you do it when you get multiple list items and use apply to each. When I ran it, it seemed to append the string from the first item to the second item and so on, so that each item had a longer string.

    Like

    1. Hi Laura,

      I’m not sure how that is possible. The trigger will only fire for a single item being created. If multiple items are created Flow execute in a one to one fashion. If you are using a different trigger I would reset the variable after the new row has been created. The reset should sit in the loop.

      Let me know if I am not understanding the issue. Thanks for reading!

      NY

      Like

      1. Hi Norm,
        Thanks for gettting back to me. Yes I am using a different trigger as I wanted to run the flow against multiple items. I managed to figure it out with a colleague in the meantime. We did clear the variable at the end of the for each item and that worked a treat. Thanks again for you reply.
        Laura

        Like

  2. Hi Norm,
    I’m working on a source list to bring over 9 columns (one being ‘Identifier) plus the multi-choice person column. I am using a Condition set up so that if an entry hasn’t been copied over yet, its created while if it has been created, its updated.

    When I use the steps you have above, my flow does not see the ‘varUser’ to be able to plug into the column field.
    Do you have any thoughts I could try?

    Like

    1. Hi Erin,

      Are you setting the variable inside of the Apply to each loop? Is the person column populated at the time of item creation?

      Thanks for reading!

      NY

      Like

  3. Thanks!

    Been loosing my mind as to how to do this.

    I’m surprised the append-array is needed when copying between two columns with the same data type.
    (I’m still learning, so I’m sure I’ll understand why one day.)

    Like

    1. If you don’t do it this way, then for each multi-select person field you copy over it will create an Apply to Each.
      If you don’t require entry on one of those fields and someone creates a row that specify any persons, then the Flow >will not copy anything across< (a loop over nothing doesn't do anything).
      This way will copy the row across even if there's nothing in the Person field(s).

      Like

Leave a comment