How to Send Quarterly Power Automate Emails with Unique SharePoint Recipients
Question details
The user needs to create a quarterly Power Automate flow that groups SharePoint list items by unique stakeholder email addresses to send a single consolidated message per person without duplicates.

- Product
- Power Automate
- Device & OS
- not provided
- Scenario
- Automating quarterly email reports to stakeholders based on pending SharePoint list items.
- Observed behavior
- Using nested 'Apply to each' actions currently results in duplicate emails being sent to the same stakeholder, and pending items require proper filtering to carry over correctly.
Ensure you have active permissions to both the SharePoint list and Microsoft Power Automate, and verify that your list contains a dedicated column for stakeholder email addresses.
Use the Union Expression to Group Unique Recipients
By extracting unique email addresses before running your email loop, you can ensure each stakeholder receives only one consolidated message.
To solve the issue of duplicate emails, the flow must first identify a unique list of stakeholders. This is done by selecting all email addresses from the SharePoint list and using the union() expression to remove duplicates.
Once you have the unique array, you can loop through it, filtering the original SharePoint items for each specific email address and appending them to an HTML table for the message body.
Add a 'Get items' action for your SharePoint list. Under advanced options, use the OData filter query (e.g., Status eq 'Pending') to retrieve only the relevant quarterly items.
Add a 'Select' action. In the 'From' field, choose the value list from the 'Get items' action. In the 'Map' field, select the stakeholder email dynamic content.
Add a 'Compose' action. Use the expression "union(body('Select'), body('Select'))" to create an array of strictly unique email addresses.
Add an 'Apply to each' loop using the output from the 'Compose' action. Inside the loop, add a 'Filter array' action to match the SharePoint items to the current unique email.
Create an HTML table from the 'Filter array' output and use the 'Send an email (V2)' action to send the final consolidated message to the stakeholder.

Manage Stakeholder Data Easily with WPS Office
While Power Automate handles automated Microsoft 365 workflows, WPS Office is a highly efficient, free alternative for organizing stakeholder data, managing tracking spreadsheets, and generating beautiful offline reports.
- 1. Open WPS Spreadsheet: Launch WPS Office and open your exported stakeholder tracking spreadsheet.
- 2. Filter Pending Items: Use the built-in Data Filter tool from the top ribbon to easily isolate items marked as 'Pending' for the current quarter.
- 3. Export to PDF: Consolidate your filtered data and export it directly as a PDF to send as a professional report.

Frequently Asked Questions
Why does my Power Automate flow send duplicate emails?
Duplicate emails usually occur when a 'Send an email' action is placed inside an 'Apply to each' loop that iterates over every single SharePoint item. To fix this, you must first create an array of unique recipient emails and loop through that array instead.
How do I filter SharePoint items for pending status only?
In the 'Get items' action, click on 'Show advanced options' and enter an OData filter query, such as "Status eq 'Pending'". This ensures the flow only processes items that are waiting for the quarterly update.
How can I format the grouped SharePoint items in the email body?
Inside your unique recipient loop, use the 'Create HTML table' action and pass the output of your 'Filter array' action. You can then insert the output of the HTML table directly into the body of your 'Send an email (V2)' action.




