cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
seba1987
New Member

Get emails (V3) - count unread / bypass 25 limit

Hi,

 

I tried to do this myself but I cannot find any solution on the internet.

 

I have the following situation:

I want to monitor the actual number of unread e-mails of multiple inboxes. The total number from each user can be pushed to a Teams channel or updated inside a share point Excel file, but that is not my problem. The users usually have more than 25 unread so I have a problem with the "Get emails" limitation of 25.

 

I was thinking if there maybe is some function that I couldn't find that will just "read" the total number of unread mails in the inbox and provide this number.

If that is not possible my idea would be to create a flow which will "count" the individual message IDs of all unread mails in the inbox. But I don't know how to make a flow which will execute this action.

 

If you think there is a way to do it - please share it with me. Your help is very much appreciated.

@AKRogers I saw a different thread where you were working with message IDs in a somewhat related case, maybe you can help? 🙂

 

Thanks in advance,

Seba

1 ACCEPTED SOLUTION

Accepted Solutions
v-alzhan-msft
Community Support
Community Support

Hi @seba1987 ,

 

Sorry for there is no any way to achieve the requirement since there is a limitation of 25 for the "Get emails" action and there is no any alternative ways for the issue.

 

Best regards,

Alice       

 

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

View solution in original post

10 REPLIES 10
abm
Super User III
Super User III

Hi @seba1987 

 

You could use Get emails (V3) and set Fetch only unread message to No.

 

image.png

 

Then add a For Each Loop to iterate the results. Inside the loop add an IF condition to check whether IsRead property is true or false?

 

image.png

 

What I am not sure is how many records this will return?

 

https://docs.microsoft.com/en-us/connectors/office365/#known-issues-and-limitations

 

Thanks



Did I answer your question? Mark my post as a solution!

If you liked my response, please consider giving it a thumbs up


Proud to be a Flownaut!

Learn more from my blogPower Automate Video Tutorials
v-alzhan-msft
Community Support
Community Support

Hi @seba1987 ,

 

Sorry for there is no any way to achieve the requirement since there is a limitation of 25 for the "Get emails" action and there is no any alternative ways for the issue.

 

Best regards,

Alice       

 

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

View solution in original post

Hi,

 

thank you both for taking your time and looking into this. It is unfortunate but I will have to look for another way to achieve my goal.

 

Best regards,

Sebastian

AKRogers
Helper V
Helper V

Hey @seba1987! I know you've already marked this with a solution, but I do have one idea.  It's a workaround, but it may help.  

 

What if you create a SharePoint list with one item per mailbox you're monitoring, and create a column called "unread count"?  When an email comes in you could increment that number.  This is a bit hacky, so you'd probably need to manually clear out that number once those mailboxes are checked and the emails are read, or have a flow you can manually start to do the same thing.

 

Again, hacky, but you'd be able to surface that "unread count" number right in a Teams tab for visibility.  

 

Good luck!!

Ashley

 

 

fehann
New Member

Hello, hope I am not too late. The workaround I found is if you can mark all you emails as unread before you run the flow, you are able to retrieving all of them by unmarking them as you are getting the emails. The flow will continue running until there are no more unread emails, this is accomplished by creating the variable, updating it at each iteration and unmarking as read the emails you already got, the Do until action will stop when length(variable) reaches zero.Capturar.PNGCapturar1.PNG

AlanBourke
Helper I
Helper I

This 25 item limit is crazy. Way to decimate the possible use cases for this type of flow.

Shoutout to @fehann !!!

I used your suggestion to mark as Unread all the email messages I wanted to process (I'm turning hundreds of emails in a user's mailbox into PDFs), and then loop through them in batches of 25 as you described.

 

Thanks for sharing.  Saved me so much pain.

@DeeTronSEAM Glad to hear that it worked well! 😅👏👏

I respectfully disagree that this cannot be done as I have just done it!

 

I tackled it by repeatedly doing searches for unread emails in my inbox from [dawn-of-time] until [now], iterating over the top 25, replacing [now] with the earliest of the dates in the 25 emails and doing another search. With each search I increment a total of the email count. I stop doing searches when there are zero results, then output the total to Excel.

 

The steps are as follows in pseudocode:

 

 

Recurrence trigger to start it off
Initialize CheckedUntil variable
Initialize ResultsReturned variable = 1
Initialize ResultsTotal variable = 0
Do until ResultsReturned = 0
{
Get emails v3: folder inbox, fetch only unread=yes, search query=received:2000-01-01..formatDateTime(variables('CheckedUntil'), 'yyyy-MM-ddTHH:mm:ss')
Set ResultsReturned variable = length(body('Get_emails_(V3)')?['value'])
Increment ResultsTotal variable by ResultsReturned
Apply to each value from Get_emails_(V3)
  {
  if Get_emails_(V3)Receiveddatetime is less than CheckedUntil
    {
     set CheckedUntil variable = Get_emails_(V3)Receiveddatetime
    }
  }
}
Add row into Excel table including ResultsTotal (or whatever else you want to do with ResultsTotal)

 

 

 

DeeTronSEAM
Advocate V
Advocate V

FWIW, I gave up on the Get Mails (v3) action and am now using the HTTP with Azure AD connector and its Invoke an HTTP request to call the Microsoft Graph "List Messages" endpoint/function.  Yes, it is a Premium connector, but at this point in MSFT's licensing ever-changing attitude, it's getting **bleep** (really, we're censoring the word D@mN ?) near impossible to avoid Premium or 3rd-party connectors to get anything of substance done.  But I digress...

 

This method gives you granular control over which search criteria you want to specify, which fields you want returned, and full access to as many messages as you desire (using the paging function for resultsets greater than 100 messages).

 

Resources:

https://docs.microsoft.com/en-us/connectors/webcontents/

 

Overview of Microsoft Graph - Microsoft Graph | Microsoft Docs

 

List messages - Microsoft Graph v1.0 | Microsoft Docs

Helpful resources

Announcements
MPA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

V3_PVA CAmpaign Carousel.png

Community Challenge - Giveaways!

Participate in the Power Virtual Agents Community Challenge

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

PowerPlatform 768x460.png

Microsoft Learn

Check out our new Discover Your Career Path blog post series and get all the details.

Top Solution Authors
Users online (3,783)