cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Resolver I
Resolver I

Counting SharePoint Lists based on unique filter to trigger email

Hi,

I was wondering if it is possible to trigger an email when the number unique SharePoint entries equals 3.

 

For example, lets say I had a SharePoint list with the following details.

 

NameDateDetention Date
Donna Pope2/11/20194/11/2019
Gerald Young2/11/20194/11/2019
Gerald Young3/11/20195/11/2019
Donna Pope3/11/20195/11/2019

 

There are two unique entries - Donna Pope and Gerald Young.

 

I would like to trigger an email when the number of unique entries is equal to three. For example, if Donna received one more detention:

NameDateDetention Date
Donna Pope2/11/20194/11/2019
Gerald Young2/11/20194/11/2019
Gerald Young3/11/20195/11/2019
Donna Pope3/11/20195/11/2019
Donna Pope5/11/20197/11/2019

 

As she now has three, I would like an automatic email to be sent.

 

I would appreciated any advice on achieving this.

 

Cheers.

14 REPLIES 14
Highlighted
Super User II
Super User II

Hey,

 

To achieve this you could tackle it from many different angles.

 

The easiest is likely a counter. You could create a separate list and each time a item is added to the list you mention, increment the value in the separate list (adding it if it does not exist).

 

This separate list would have the name field that matches is queried and then a number 0 then 1 then 2 and so on. You could reset this to one if the value equals 3 for example.

 

Then on this second list you would create a flow than ran when item is created or modified, and in the settings configure a conditional trigger.  Something similar to:

 

@equals(triggerBody()?['DetentionCount'],3)

 

There is a few other ways you could do this of course, but this will likely be the most reliable and easy to manage

Highlighted

Hey @Gristy 

Thanks for your reply. I am a little confused as to how I would set this up. The SharePoint list normally contains up to 600 different names of students.

 

Basically teachers at my school are issuing detentions all day using PowerApps. When a student has 3 detentions this is escalated to a weekend. At the moment we are manually checking the list to see when a student has 3 detentions each day.

 

When you mention having another list, do you mean a separate list for each name?

 

Sorry for the stupid question. My SharePoint knowledge is limited.

 

I appreciate your help thus far.

 

Cheers.

Highlighted

Hey @Newbie2019 

 

You can list all items based on the filters and start creating arrays. Now count the number of elements in the array and then send emails accordingly. Earlier, I published this post to detect and delete duplicate records using flow and this will give you an understanding of how to play around with arrays: https://powerusers.microsoft.com/t5/Power-Automate-Community-Blog/Delete-duplicate-records-items-fro... 

 

So now your flow will be like:  (assuming you are running the flow on recurrence): 

Trigger-> Action: Get items from SP --> Initialize array variable-> apply to each list item, condition check if the array contains the name of the person and if yes then do nothing and if no then append the name to the array -> apply to each on the array -> get items with previous filters and this time another filter to check name is equal to current item -> condition to check the length of the returned list and if greater than 3, send an email. 

 

Hope this Helps!

 

If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!

Highlighted

Hey @yashag2255 

Thank you so much for your reply. I am slow to pick things up.

 

So far I have:

 

test 45.JPG

 

I am confused as to the next step. Sorry 😫

 

Any further assistance would be greatly appreciated.

 

Cheers.

 

 

Highlighted

Hey @Newbie2019 

 

Perfect! Now you have an array of distinct elements. Now come outside of the apply to each loop and add another apply to each loop and this time select the array for the loop. Within the loop, add the action to get items from the sharepoint list and also the filter query that you had earlier. Now to the filter query add another statement for the studentname eq 'current item' this will return with the items for the current student only and then add the condition action where on the left side type length and select the value list of the get items action above and check if it is greater than or equal to 3 and if yes send email and if no then leave it as is. 

 

Hope this Helps!

 

If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!

Highlighted

Hi @yashag2255 

 

Again, I really appreciate this!

 

I came outside of the apply to each loop and added another apply to each loop.

 

Within the loop I added an action to get items from the SharePoint list.

 

However, when I went to add the filter query, it came up with an error as below.

 

test 46.JPG

 

So I then tried adding it to the outside of apply to each 2.

 

It looks like:

test 47.JPG

 

If this is right, I am not sure from here where I put:

 

"Now to the filter query add another statement for the studentname eq 'current item' this will return with the items for the current student only and then add the condition action where on the left side type length and select the value list of the get items action above and check if it is greater than or equal to 3 and if yes send email and if no then leave it as is. "

 

Any further advice would be appreciated. I've been trying to solve this for 6 months.

 

Thank you so much.

 

Cheers.

 

 

 

 

Highlighted

Hey @Newbie2019 

 

You do not have to initialize a variable there. You can use a compose action or directly add a condition control (within the apply to each itself)

 

ddw.PNG

Expression: 

length(body('Get_items')?['value'])

Hope this Helps!

 

If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!

 

 

Highlighted

Hi @yashag2255 

 

I have created the following..Not sure if that's right.

 

test 48.JPG

 

????

 

Cheers

Highlighted

Hey @Newbie2019 

 

Assuming that the filter queries in the get items are as you want them to be, you need to change the equal to to either greater than or greater than or equal to in the condition for checking the 3 items. 

 

Hope this Helps!

 

If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!

Highlighted

Hi @yashag2255 

 

Thank you for all the help which you have provided today.

 

Unfortunately, it didn't work. I ended up receiving 40 emails.

 

Thanks for trying to help. I appreciate it.

 

Cheers.

 

Highlighted

Hey @Newbie2019 

 

Can you share screenshots of the get items actions? What are the filter queries you are using over there? Unless that data is filtered, the setup will not work as expected. 

 

Hope this Helps!

 

If this reply has answered your question or solved your issue, please mark this question as answered. Answered questions helps users in the future who may have the same issue or question quickly find a resolution via search. If you liked my response, please consider giving it a thumbs up. THANKS!

Highlighted

Hi @yashag2255 

 

I'll share each of the steps I've used..

 

Capture0001.JPGCapture0002.JPGCapture0004.JPGCapture005.JPG

 

I hope this helps.

 

Kind regards,

 

Highlighted
Community Support
Community Support

 

Hi @Newbie2019 ,

 

Please tell us more details about SharePoint List so that we can provide a proper workaround.

 

Key field names and field types. For example, the field type of Student, is it a person field or a single line of text? In which field is the email address stored, or do we need to obtain it from other places?

 

Please provide more details.

 

Best Regards,

Community Support Team _ Barry
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Highlighted

Hi @v-bacao-msft 
Thanks for your reply.

The field is called Student and the field type is single line of text.

The email is in a field called StudentEmail and this is also a single line of text.

Both of these fields are populated from a PowerApp which issues student detentions.

The data - names, email addresses etc is stored in an excel file in OneDrive link to the PowerApp.

I hope this helps.

Thanks for your assistance.

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

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.

Top Solution Authors
Top Kudoed Authors
Users online (8,285)