cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
RussellGove
Level 10

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
Super User
Super User

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!

Proud to be a Flownaut!


View solution in original post

Community Support Team
Community Support Team

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

CarlHRVA
Level 8

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

19 REPLIES 19
Super User
Super User

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!

Proud to be a Flownaut!


View solution in original post

Community Support Team
Community Support Team

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

RussellGove
Level 10

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

Works like a champ! Thanks!

 

Highlighted
Talis
Level: Powered On

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

Super User
Super User

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!

Proud to be a Flownaut!


CarlHRVA
Level 8

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!

Super User
Super User

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!

Proud to be a Flownaut!


CarlHRVA
Level 8

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!

Super User
Super User

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!

Proud to be a Flownaut!


CarlHRVA
Level 8

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

CarlHRVA
Level 8

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.

 

Super User
Super User

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!

Proud to be a Flownaut!


CarlHRVA
Level 8

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!
 
 
Super User
Super User

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
CarlHRVA
Level 8

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!

 

 

CarlHRVA
Level 8

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!

 

Super User
Super User

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
CarlHRVA
Level 8

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.

 

Capture.PNGColumn settings for "Activity Owner"Capture.PNGFlow in Edit modeCapture.PNGResults of running the Flow

 

 

CarlHRVA
Level 8

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
firstImage

New Ranks and Rank Icons in April

Read the announcement for more information!

firstImage

Better Together Contest Finalists Announced!

Congrats to the finalists of our ‘Better Together’-themed T-shirt design contest! Click for the top entries.

firstImage

New & Improved Power Automate Community Cookbook

We've updated and improved the layout and uploading format of the Power Automate Cookbook!

thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Community Summit North America

The top training and networking event across the globe for Microsoft Business Applications

Top Solution Authors
Top Kudoed Authors
Users online (10,110)