Approvals offer an excellent method for improving digital workflows and, in certain scenarios, even substituting traditional signed documents. However, instances arise where individuals neglect to provide responses. In this comprehensive guide, I will demonstrate an approach to gently prompt individuals for responses without introducing an additional reminder within any workflow utilizing the Approval feature.
Understand Approvals
Approvals are stored within Dataverse, organized across three distinct tables: „Approvals,“ „Approval Responses,“ and „Approval Requests.“ Both responses and requests maintain relationships with the main „Approval“ table, creating a structured and interconnected system.

Tutorial
First: Get running Approvals
The first step would be to get all approvals which has the statuscode „Pending“. (List Rows Action)
statuscode eq 192350001

Step 2: Get Approval Requests and Approval Responses
Moving forward, the subsequent task involves retrieving the „Requests“ and „Responses“ associated with each specific Approval. To delve even deeper into categorizing the recipients and respondents, the „owner“ property within both tables becomes crucial. It’s possible to streamline the data retrieval process by focusing solely on the „owner“ column. However, it’s worth noting that in the current instance, this optimization has not been implemented.
Step 2.1: Get the corresponding rows
Inside a Apply to each for all Approvals we retrieve we use the List Rows to get the corresponding responses…
_msdyn_flow_approvalresponse_approval_value eq '@{items('Apply_to_each')?['msdyn_flow_approvalid']}'

… and the corresponding Requests.
_msdyn_flow_approvalrequest_approval_value eq '@{items('Apply_to_each')?['msdyn_flow_approvalid']}'

Step 2.2: Select only the necessary information
As previously discussed, our primary interest lies within the „Owner“ column as it contains the key data required for our purpose. Whether you opt for selecting specific columns or utilize the „Select“ action within the Data operation in Power Automate, the emphasis remains on the „Owner“ column. The method of selection doesn’t significantly impact the outcome.
We use the Select Action to get equal Arrays.


Step 3: Get Difference of both Arrays
For developers, set theory serves as a fundamental concept. In this particular scenario, we’re concerned with the difference set rather than the intersection. This set helps us identify all recipients of the approval who haven’t submitted their responses yet.
To accomplish this, we utilize the „Apply to each“ action nested within another „Apply to each“ action, using the values from the „Select – Inactives“ or Requests.
Within this nested „Apply to each,“ a condition is employed. We make use of the „contains“ option to circumvent the need for an additional nested „Apply to each.“
The condition compares the output of the responder on the left side with the current item on the right side.

To recognize the user not listed as a responder, we must collect them in an array. Begin by creating a new variable at the start of the workflow. You can leave the initial value empty.
Within the „No“ branch of the condition, utilize an „Append to array variable“ action with the value:
@{items('Apply_to_each_2')?['user']}

Step 4: Correct errors
To ensure the effectiveness of the variable technique, you should adjust the settings of both „Apply to each“ actions. Enable Concurrency Control and configure the „Degree of Parallelism“ to be set at One.

You than have to add a „Set Value“ before any action in the Apply to each and empty the Array.

Step 5: Mail it
The final step preceding the email sending is to acquire the users‘ email addresses.
For this purpose, you’ll require another nested „Apply to each“ action, following the previous one. Within this „Apply to each,“ iterate through the variable we established earlier.
Next, employ the „Get Row by ID“ action using the value from the Current Item.
Subsequently, employ the „Send an email (v2)“ action, utilizing the Primary email and any desired values.

Conclusion
And that’s how you effectively inform and prompt recipients within approval workflows. By leveraging the power of set theory, data manipulation, and the capabilities of Power Automate, you’ve learned to streamline the process of gathering responses and sending timely notifications. This approach ensures that individuals stay engaged and responsive, ultimately enhancing the efficiency of your digital workflows.
Down here you find all screenshots to create the flow by yourselve.
Worflow




