web
You’re offline. This is a read only version of the page.
close
Skip to main content

Notifications

Announcements

Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Automate / how to extract email a...
Power Automate
Unanswered

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

(2) ShareShare
ReportReport
Posted on by

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?

Categories:
I have the same question (0)
  • Verified answer
    faustocapellanj Profile Picture
    1,662 on at

    Hi @Anonymous

     

    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

  • Verified answer
    v-yuazh-msft Profile Picture
    on at

    Hi @Anonymous,

     

    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

     

  • Community Power Platform Member Profile Picture
    on at

    Works like a champ! Thanks!

     

  • Community Power Platform Member Profile Picture
    on at

    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

  • faustocapellanj Profile Picture
    1,662 on at

    Hi @Talis 

     

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

  • CarlHRVA Profile Picture
    601 on at

    @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!

  • faustocapellanj Profile Picture
    1,662 on at

    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])

  • CarlHRVA Profile Picture
    601 on at

    @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!

  • faustocapellanj Profile Picture
    1,662 on at

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

    Thanks!

  • Verified answer
    CarlHRVA Profile Picture
    601 on at

    Of course!

     

    Capture.PNG

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Forum hierarchy changes are complete!

In our never-ending quest to improve we are simplifying the forum hierarchy…

Ajay Kumar Gannamaneni – Community Spotlight

We are honored to recognize Ajay Kumar Gannamaneni as our Community Spotlight for December…

Leaderboard > Power Automate

#1
Michael E. Gernaey Profile Picture

Michael E. Gernaey 522 Super User 2025 Season 2

#2
Tomac Profile Picture

Tomac 364 Moderator

#3
abm abm Profile Picture

abm abm 243 Most Valuable Professional

Last 30 days Overall leaderboard