As you know, Approval Process can be implemented using Power Automate where we can get the response with comments. In a standard approval process, we can send approval emails to licensed users. There are the following options to send an email to external users:
1. Create contacts (who are approvers) as guest users and it does not need any license.
2. Use Send Email with options action to send an email to the contacts which are not part of licensed users/guest users.
In this article, I am going to share a trick to dynamically identify the approver (whether user or Contact) and then route it to an appropriate step to send an approval email.
External Contacts as Guest users
In order to allow External Users to approve the request they must be in Azure AD as a guest user. Please check the following link which describes various methods to add external contacts as guest users for managing UI approvals.
https://arpitmscrmhunt.blogspot.com/2020/05/add-guest-users-in-azure-active.html
Send Email with Options
As we can’t add all the contacts as guest users, we should have an alternate method to send approval emails to external contacts. Send Email with Options action in Power Automate enables this functionality. When you add this action, the following screen appears where To field will be an email address of Contact you want an Approval from.
Please follow the following link to configure rest of the details.
https://powerusers.microsoft.com/t5/General-Power-Automate/Send-an-email-with-options-how-to-format-the-body/td-p/803410
UI Approvals and External Approvals – under one roof
If the user defines an Approval Process which involves internal as well as external users, we need to define UI Approvals as well as a way to handle external approvals. Check the following steps to configure the functionality:
1. Check if the user with this email address exists in User table.
2. Check the Count of rows by adding a condition to the resolute of the above step. If Yes, then proceed with the standard Approval Process which is UI Approval process. Else check if Contact exists with the above email address.
3. If Contact is found, call “Send Email with Options” action to send Approval email to external user.
To check the length of the result, please use the following expression:
length(outputs('Step_Name')?['body/value'])
Summary
Cloud flows can be used to get a response/approval from internal as well as external users with various options available. Using internal approvals, approvers can share the comments which can be stored at each approval process step in the system.