“I want to update a multi-selection people picker field with the results of a different SharePoint list using Power Automate.”
‘Person or Group’ SharePoint column is one of the complicated ones to update using Power automate. When it’s just one user, it works fine. But once you try to update multiple people, it gets more complicated. You can’t use simply the dynamic from another item, or list of email addresses of the users either. The ‘Update item’ action requires an array with email addresses in the following format.
[
{ "Claims": "user1@company.com" },
{ "Claims": "user2@company.com" }
]
It’s just one of the user properties available, so how to extract it?
‘Select’ action
The easiest way is to use ‘Select’ action. This action expects an array, e.g. the dynamic content with multiple users. By default, the dynamic content contains multiple users with multiple properties. You can see an example below.
[
{
"@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
"Claims": "i:0#.f|membership|user1@company.com",
"DisplayName": "User One",
"Email": "user1@company.com",
"Picture": "https://..."
},
{
"@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
"Claims": "i:0#.f|membership|user2@company.com",
"DisplayName": "User Two",
"Email": "user2@company.com",
"Picture": "https://..."
}
],
Using the ‘Select’ action, you can select only the properties you need and skip the rest. Here you’re interested only in the ‘Claims’ property. You’ll tell the action: “take the whole array of ‘Approvers’, and select only ‘Approver email’ for each of them. And map the property to ‘Claims’ key”. Output of the action can be then used to update the column.
Update: if you’d like to update only one, person or group column, you can do that with an HTTP request.
Summary
Taking users from multiple people picker column is the easy way to update another multiple people picker. You already got all the data you need in an array, you just need to reduce it. Keep only the email with proper key, and that’s it.
It’s one of the basic functionalities when building approval processes based on configuration lists, updating users for scheduled task reminders, or just keeping lists synchronized.
Thank you!!!!
I’ve checked multiple sites for this and your method is BY FAR the easiest and cleanest. Just Select. Others try to loop and add to arrays and then use select on those arrays. Here its much easier just to use what Power Automate already provides. Well done.
This is great when you want to update a list, but I need a solution to update a file property that is a people or group column for the approvers that a create an approval went to. Any ideas?
Hello Becca,
it doesn’t matter if it’s a SharePoint list or a document library, the update is the same, it just uses a different action: Update item vs. Update file properties.
Thank you !!
This post gave the inspiration to solve a big problem
Kisses
Andy
Thank you very much indeed Tom for your help. Your advice helped me fix my problem – How to collect multiple email addresses on MS Form and Update SharePoint List via Power Automate?
With the very best wishes…
I have 10 single-person People columns that I want to combine into one mulitple-person People column. The trigger should be if any one of the 10 source columns get updated. I see lots of search results on how to use Select with multi-person columns, but Select returns an error if used with a single-person column. How would I go about doing the combining of the single-person columns?
Thanks.
Hello Eric,
you can’t use ‘Select’ on a single people picker column, you’ll have to manually build the array of objects using the columns one by one, e.g. in a ‘Compose action’:
[
{ “Claims”: “column1 email” },
{ “Claims”: “column2 email” },
…
{ “Claims”: “column10 email” }
]
Hi! thanks so much for this, your tutorials are so good, even for beginners like me!
Just a QUICK QUESTION – Is this whole thing wrapped in an apply to each, or are the step standalone? Just trying to get an invoice approvals sorted, Any help appreciated 🙂
Thanks
Hello Emma,
it’s a standalone action – 1 item -> Select -> Update item. The only situation when it should be inside ‘Apply to each’ is if you’re processing multiple items at once – 2+ items -> Apply to each -> (Select -> Update item)
Assume I have an array of objects like :
Testdata : [
{ name : A , ID : 1} ,
{name : B , ID : 2},
{name : C , ID : 3} .
]
I want na output to be column : 1,2,3 (only the id part)
getting error
“The specified user [{“Claims”:”i:0#.XXXX”}] could not be found.