I'm trying to set up an approval process for our compliance manager. He often needs to send out forms or surveys or just documents to be read and approved by various different people. I'd like it so that when he uploads the document to a sharepoint library or list and then specifies the approvers/reviewers, the approvers/reviewers will receive an approval email telling them to "Please Review this Document and click approve once fully reviewed." There might be some other things I'd like to capture like comments, but really the core functionality is just so that my compliance manager can easily specify multiple people to review a single document individually and record/notify their approval responses back to my compliance manager.
Here is a screenshot of the Sharepoint list my compliance manager would start the flow from using a trigger of "For a selected item"
The biggest issue I'm having is when specifying the approvers/reviewers it captures many attributes of the people specified. I just need to isolate their email and maybe put them all in an array, so then when I'm going through the apply to each control for the approval process it will loop through each email for the "Assigned to" field in the start an approval action. Please see code pulled from the outputs of "Get file properties" one of my failed flows calling the column: 'Current Reviewers' to view the attributes of the approvers/reviewers.
[
{
"@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
"Claims": "i:0#.f|membership|fakeemailaddress@gmail.com",
"DisplayName": "Braeden Hanney",
"Email": "fakeemailaddress@gmail.com",
"Picture": "https://sitename.sharepoint.com/sites/Quality/_layouts/15/UserPhoto.aspx?Size=L&AccountName=fakeemailaddress@gmail.com",
"Department": "IT",
"JobTitle": "Tech"
},
{
"@odata.type": "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
"Claims": "i:0#.f|membership|fakeemailaddress2@gmail.com",
"DisplayName": "IT Department",
"Email": "fakeemailaddress2@gmail.com",
"Picture": "https://sitename.sharepoint.com/sites/Quality/_layouts/15/UserPhoto.aspx?Size=L&AccountName=fakeemailaddress2@gmail.com",
"Department": null,
"JobTitle": null
}
]
Here is also a couple screenshots of one of the many different failed versions of the flow that i have tried:
Hope this makes sense, let me know if there's anything else that would provide more clarification
This worked, I had to change some things, for the send an email condition after the approval, but nothing crazy. Thank you so much!
Hi thank you for the reply, I can try this but I’m not sure if it will work because the being reviewed by column is actually of type ‘Person or group’ with the option to select multiple persons or groups.
Hi again!
One final recommendation... if you need to use a WDL function to add an expression, as you tried with split(), you need to follow the steps detailed in this post. If you just type the expression in the input text box as you did in the flow design you just shared, Power Automate will consider it a string, not a expression; and it will not work as expected
https://flow.microsoft.com/es-es/blog/use-expressions-in-actions/
Hope this helps
Hi!
THe target reviewers are stored in a column called 'Being Review...' of type multichoice, right? And you wanna add all their emails to your 'Start an approval' 'Assigned to' input, right?
If so I would get rid of all 'Apply to each' and do the following instead:
1.- Just after 'Get file properties' add a 'Select' action block, assign as its input 'Being Review...' from the dynamic content menu
2.- Inside 'Select' action block switch 'Map' into 'TExt mode', then from dynamic content menu select 'Being review... Email'
Now you can assign 'Select' output to 'Start an approval' 'Assigned to' input from the dynamic content menu
The tricky part is swithing to 'Text mode', you can follow the steps explained in this post:
Hope this helps
Michael E. Gernaey
566
Super User 2025 Season 1
David_MA
516
Super User 2025 Season 1
stampcoin
492