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?
Solved! Go to Solution.
Hi @RussellGove
This is the approach I took to get the Email property from the SharePoint People field:
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.
Try and let me know. Also, I added a screenshot of my Flow below so you can see all the steps.
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:
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:
The expression in the Map field in the select action as below:
item()['Email']
The flow would run successfully as below:
Please let me know if your problem could be solved.
Best regards,
Alice
Hi @RussellGove
This is the approach I took to get the Email property from the SharePoint People field:
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.
Try and let me know. Also, I added a screenshot of my Flow below so you can see all the steps.
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:
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:
The expression in the Map field in the select action as below:
item()['Email']
The flow would run successfully as below:
Please let me know if your problem could be solved.
Best regards,
Alice
Works like a champ! Thanks!
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?
Thanks
Hi @Talis
For this to work, you need to do it in the Expression tab, you can't paste it directly in the box.
@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.
Copying and pasting expression from "From" field looks like this
Any help would be greatly appreciated!
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])
@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!
Can you please post screenshots of the entire flow so I can understand better?
Thanks!
Of course!
@faustocapellanj any insights into what I'm doing wrong here? Thanks in advance.
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']}.
@faustocapellanj The expression I am using in the "From" field is:
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.
What do you want to do with the email address after you access it?
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!
@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.
Thank you for your help!
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.
@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"
Flow in Edit mode
Results of running the Flow
@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!
The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.
Learn to digitize and optimize business processes and connect all your applications to share data in real time.
User | Count |
---|---|
12 | |
9 | |
7 | |
7 | |
7 |
User | Count |
---|---|
19 | |
18 | |
17 | |
10 | |
7 |