Power Automate Get Member Email Addresses of a SharePoint Online Group

on Michael Harley's blog

Updated:

2 min read

Sending email to the members of a SharePoint Online group is something I do on just about every Power Automate project but not often enough to memorize the steps. This is a note to myself so I can reference it next time. If you stumble upon this post, hopefully you'll get some value from a clear explanation without the bouncing ads that infect most SharePoint/Power Platform guides.

Scenario #

There are many reasons a Power Platform developer may need to send emails to all members of a SharePoint Online group. Power Automate does not have any native hooks to do this so we must tap into the SharePoint REST API to get all members of a group. I use Solutions so I can call child flows as I generally have several different flows where I need to perform this functionality. Solutions and child flows are pretty close to PowerShell functions. Build it once then call the functionality from whichever flow you need.

Solution #

We're going to use the Send an HTTP request to SharePoint action in Power Automate to access the SharePoint Online REST API.

Overview of the Power Automate flow showing all actions.

Trigger #

Since I'm building a child flow to use as a function for multiple other flows, my trigger is Manually trigger a flow with the group name as the only input.

Send an HTTP request to SharePoint #

Next, let's use add a Send an HTTP request to SharePoint action.

Uri: _api/web/sitegroups/getbyname('YOUR-GROUP-NAME-HERE')/users

Headers:

{
  "accept": "application/json;odata=verbose",
  "content-type": "application/json;odata=verbose"
}
Send an HTTP request to SharePoint action configuration.

Select #

Next, add a Select action.

From: body('GetUsersFromSharePointGroupREST')?['d']?['results']

Map: item()?['Email']

Join #

Now let's add a Join action.

From: body('SelectEmailAddressField')

Join with: ,

(Note: the separator is a comma followed by a space.)

Respond to a PowerApp or flow #

Finally, we Respond to a PowerApp or flow and return the email addresses back to the parent flow.

The complete flow with all actions from trigger to response.
The full flow!

Conclusion #

Now I have a flow that I can call as a child flow and serves the same functionality of a PowerShell function in that we can reuse it across multiple other flows in our solution.

Future me, you're welcome.

Change Log

  • 2026-02-14 - Fixed REST API URI (missing closing parenthesis), fixed trailing space in accept header, improved image alt texts, and general copy editing.
Filed under: Power Automate
Michael Harley

About the author

Hello, I'm Mike. I care about the IndieWeb, digital sovereignty, and the open web. I'm a developer and team lead based in Richmond, VA, and this site is my corner of the internet.

Directory: /home · /about · /contact · /posts · /sitemap