cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Kudo Kingpin
Kudo Kingpin

how to extract email address from a sharepoint person or group column that allows multiple selection

Hi, I have a SharePoint list named 'Systems' it has a Titlle field and a field called 'SustemMaintainer'.  'SystemMaintaiiner is  a 'Person Or Group' columns that allows multiple selections and people only.

 

In my flow I got the correct row by calling getItems and filtering based on the title column. so I have an array with one row, and that row has an a  column that contains an array of people columns:

[
    {
        "Claims": "i:0#.f|membership|russell.gove@xx.com",
        "DisplayName": "Gove, Russell",
        "Email": "Russell.xx@xx.com",
        "Picture": "https://xx.sharepoint.com/sites/GLMasterData/_layouts/15/UserPhoto.aspx?Size=L&AccountName=Russell.Gove@tronox.com",
        "Department": "Infrastructure Services",
        "JobTitle": "Sr SharePoint Architect"
    },
    {
        "Claims": "i:0#.f|membership|xx.xx@xx.com",
        "DisplayName": "xx, xx",
        "Email": "John.xx@xx.com",
        "Picture": "https://xx.sharepoint.com/sites/GLMasterData/_layouts/15/UserPhoto.aspx?Size=L&AccountName=John.Njoroge@tronox.com",
        "Department": "CFO Staff",
        "JobTitle": "Manager Accounting Analysis"
    }
]

How do I go about sending an email to the  Email addresses in that array.

The expression 

 

body('getItems')?['Value']?[0]?['SystemMaintainer']]

gets me the list of objects,  But how do i extract the email addresses from thos objects in a format thats sutable for sending an email?

3 ACCEPTED SOLUTIONS

Accepted Solutions
Highlighted
Memorable Member
Memorable Member

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Hi @RussellGove

 

This is the approach I took to get the Email property from the SharePoint People field:

 

  1. For the trigger, I'm using the Manually trigger a flow
  2. In the next step, I'm using the SharePoint - Get items action and I set the Filter Query to retrieve the specific item I need
  3. In the next step, I'm using the Data Operations - Select action. In the From field, add the expression below.
    first(body('Get_items')?['Value'])?['SystemMaintainer']

    The expression above is similar to the expression you're using to retrieve the SystemMaintainer. The difference is your expression has the first item from the array hard coded ([0]). The expression above uses the first() function to do the same thing. I find this approach a little cleaner.
    For the Map field, switch to text mode by clicking on the T located on the lower-right corner, and then add the expression 

    item()?['Email']

    This will retrieve the email address for each System Maintainer.

  4. In the next step, I'm using the Data Operations - Join action. In the From field, select the Output from the Select step and for the Join with field, enter a semicolon (;). This will build a string of all the email addresses, each one separated by the semicolon.
  5. And for the last step, add a Send an email action. In the To field, select the Output from the Join step. And for the Subject and Body fields, enter the information you need.

Try and let me know. Also, I added a screenshot of my Flow below so you can see all the steps.

Extract-4.JPG

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!

View solution in original post

Highlighted
Community Support
Community Support

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Hi @RussellGove,

 

Have your problem be solved?

 

I have made a test on my side, @faustocapellanj's solution is works on my side.

 

You could refer to screenshot below to create the flow:

Capture.PNG

 

Note:

1.Please notice that the Get items action name on your side,

if the Get items action name is getItems,

 

You could enter expression in the From field as below:

body('getItems')?['Value']?[0]?['SustemMaintainer']

Also you could enter expression as below:

first(body('getItems')?['Value'])?['SystemMaintainer']

 

if the Get items action name is Get items,

 

You could enter expression in the From field as below:

body('Get_items')?['Value']?[0]?['SustemMaintainer']

Also you could enter expression as below:

 

first(body('Get_items')?['Value'])?['SystemMaintainer']

 

 

2.Please make sure you have switch the Map in select action to text mode by click the symbol below:

 

Capture.PNG  

 

The expression in the Map field in the select action as below:

item()['Email']

 

The flow would run successfully as below:

Capture.PNG

 

Please let me know if your problem could be solved.

 

 

Best regards,

Alice

 

View solution in original post

Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

21 REPLIES 21
Highlighted
Memorable Member
Memorable Member

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Hi @RussellGove

 

This is the approach I took to get the Email property from the SharePoint People field:

 

  1. For the trigger, I'm using the Manually trigger a flow
  2. In the next step, I'm using the SharePoint - Get items action and I set the Filter Query to retrieve the specific item I need
  3. In the next step, I'm using the Data Operations - Select action. In the From field, add the expression below.
    first(body('Get_items')?['Value'])?['SystemMaintainer']

    The expression above is similar to the expression you're using to retrieve the SystemMaintainer. The difference is your expression has the first item from the array hard coded ([0]). The expression above uses the first() function to do the same thing. I find this approach a little cleaner.
    For the Map field, switch to text mode by clicking on the T located on the lower-right corner, and then add the expression 

    item()?['Email']

    This will retrieve the email address for each System Maintainer.

  4. In the next step, I'm using the Data Operations - Join action. In the From field, select the Output from the Select step and for the Join with field, enter a semicolon (;). This will build a string of all the email addresses, each one separated by the semicolon.
  5. And for the last step, add a Send an email action. In the To field, select the Output from the Join step. And for the Subject and Body fields, enter the information you need.

Try and let me know. Also, I added a screenshot of my Flow below so you can see all the steps.

Extract-4.JPG

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!

View solution in original post

Highlighted
Community Support
Community Support

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Hi @RussellGove,

 

Have your problem be solved?

 

I have made a test on my side, @faustocapellanj's solution is works on my side.

 

You could refer to screenshot below to create the flow:

Capture.PNG

 

Note:

1.Please notice that the Get items action name on your side,

if the Get items action name is getItems,

 

You could enter expression in the From field as below:

body('getItems')?['Value']?[0]?['SustemMaintainer']

Also you could enter expression as below:

first(body('getItems')?['Value'])?['SystemMaintainer']

 

if the Get items action name is Get items,

 

You could enter expression in the From field as below:

body('Get_items')?['Value']?[0]?['SustemMaintainer']

Also you could enter expression as below:

 

first(body('Get_items')?['Value'])?['SystemMaintainer']

 

 

2.Please make sure you have switch the Map in select action to text mode by click the symbol below:

 

Capture.PNG  

 

The expression in the Map field in the select action as below:

item()['Email']

 

The flow would run successfully as below:

Capture.PNG

 

Please let me know if your problem could be solved.

 

 

Best regards,

Alice

 

View solution in original post

Highlighted
Kudo Kingpin
Kudo Kingpin

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Works like a champ! Thanks!

 

Highlighted
Regular Visitor

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Hi @faustocapellanj 

I tried to do as in your instructions, but I can’t add the expression in Map in Text-Mode because of "add valid json".
Could you help me with it?

 

ThanksScreenshot_1.png

Highlighted
Memorable Member
Memorable Member

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Hi @Talis 

 

For this to work, you need to do it in the Expression tab, you can't paste it directly in the box.

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!
Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@faustocapellanj could you explain what you mean by this? I have tried entering it as an expression in the "From" field and copying and pasting it into the Map field but it ends up as just the expression as text. If I enter it as an expression in map and then convert it over to text, it looks like the below which allows me to save but errors when I run the flow. 

 

 

Enter and then converting to text looks like this.                       

Capture.PNG

Copying and pasting expression from "From" field looks like this

Capture.PNG

 

Any help would be greatly appreciated!

Highlighted
Memorable Member
Memorable Member

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Hi @CarlHRVA 

 

The From field in the Select actions requires the output or body of a previous Get action or trigger. Then in the Map fields, you can wrap the respective field similar to first(item()?['Email])

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!
Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@faustocapellanj Thanks for responding! I'm confused how to get the expressio, like shown in the screenshots above, into the map field. All of the instructions say to switch the Map field to text. In doing so, I don't have the option to add dynamic content so I can't enter the expression that way. If I paste it directly into the text box it tells me that I need to enter valid json. If I enter it as an expression in the "From" field and try to copy and paste it, it converts it to text and gives me the same json error. Thank you!

Highlighted
Memorable Member
Memorable Member

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Can you please post screenshots of the entire flow so I can understand better?

Thanks!

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!
Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@faustocapellanj any insights into what I'm doing wrong here? Thanks in advance.

 

Highlighted
Memorable Member
Memorable Member

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Looking at your screenshots, it looks like the email field is coming from your Get items action.  To use that in your Select action, add the output or body from your Get Items action to the From field, and then do the item()?['Email'] in the Map field. If you switch to array, you should do: {"email": item()?['Email']}.

Fausto Capellan, Jr
Did I answer your question? Mark my post as a solution! Did my response help? Please give it a thumbs up!
Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@faustocapellanj The expression I am using in the "From" field is:

 

first(body('Get_items')?['Value'])?['SystemMaintainer']
 
In the screenshots above, you are somehow inserting an expression into the text field:
Capture.PNG
 
When I try to do that, I get the error the json is not valid and there is no way for me add dynamic content after switching the "Map" field to text. I don't know how to get the expression that you say to use into that field....Maybe I am just misunderstanding a fundamental part of this but I cannot figure it out 😣
 
Capture.PNG
 
Capture.PNG
 
Thanks!
 
 
Highlighted
Super User III
Super User III

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@CarlHRVA 

You can simply loop through each email entry in the person or group column if you would like and take action on each loop.

In my example below, I have a multi-select person or group column called Multi PG.

MultiPG.png

MultiPG1.png

What do you want to do with the email address after you access it?

 

 

If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Scott
Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

Thanks for responding @ScottShearer ! I want to use the emails to send a request for approval to both people that are listed in the column with an "All Must Reply" condition.


Thanks!

 

 

Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@ScottShearer Morning Scott,

When I try to use the method you suggested mine looks like the below and when I run the flow I am unable to view the results of the action.

 

Capture.PNGCapture.PNG

 

Thank you for your help!

 

Highlighted
Super User III
Super User III

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@CarlHRVA 

Can you verify that you are referencing the Email from the person or group column when setting the variable?  If so, then please post additional screen shots of your Flow in edit mode.

 

 

 

 

If I have answered your question, please mark your post as Solved.
If you like my response, please give it a Thumbs Up.

Scott
Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@ScottShearer  sorry for the delay! Yesterday was a bit crazy. I am using the "Activity Owner" column from my "Get Items" action. Below are some screenshots of my column set up, my Flow in Edit mode and the results of running the flow. Thank you so much for your help with this.

 

Column settings for "Activity Owner"Column settings for "Activity Owner"Flow in Edit modeFlow in Edit modeResults of running the FlowResults of running the Flow

 

 

Highlighted
Post Partisan
Post Partisan

Re: how to extract email address from a sharepoint person or group column that allows multiple selec

@ScottShearer This works! I was running it on an item that had no value in the Activity Owner field so it was returning blank. Thank you so much for your help!

Helpful resources

Announcements
Power Platform ISV Studio

Power Platform ISV Studio

ISV Studio is designed to become the go-to Power Platform destination for ISV’s to monitor & manage published applications.

Upcoming Events

Experience what’s next for Power Automate

See the latest Power Automate innovations, updates, and demos from the Microsoft Business Applications Launch Event.

Community Conference

Power Platform Community Conference

Find your favorite faces from the community presenting at the Power Platform Community Conference!

Top Solution Authors
Users online (5,090)