Showing results for 
Search instead for 
Did you mean: 

Send a summary email of Microsoft Team Channel conversations/posts to all members on a schedule

Step 1:

Create a Flow using the blank template and select "Recurrence" as the Trigger 









Step 2:

Define the schedule for the Flow trigger to send the summary email for MS Team conversations/posts.

In my scenario I have selected a weekly schedule for sending the summary email (every Monday at 8 am)


Step 3:

Add the Get Messages (Preview) action from the Microsoft Teams connector and select the MS Team and Channel for retrieving the messages



Step 4:

Filter the messages to only retrieve the latest messages (based on the Created Date of the message) .

Use the "Filter array" action to retrieve messages created in last 7 days (weekly).

This can be customized based on your schedule requirements.

Utilize the ticks function to compare dates  as shown in figure below



Filter array From - "Message List" from the "Get messages" action

Filter condition - "@greater(ticks(item()?['CreatedDateTime']), ticks(addDays(utcNow(), -7)))" checks if the message created date time is greater than 7 days from today

Step 5:

List all MS Team (Office 365 group) members using the "List group members" action from the "Office 365 Groups" connector.

Select the Office 365 group related to the Microsoft Team



Step 6:

Create comma separated list of email addresses for each group member retrieved

Use Select action to retrieve only the Mail property from the list of group members

Then utilize the Join action to Join the mail addresses obtained from Select statement with ";" 


Step 7:

Create email message body from filtered array of MS Teams messages

Use Select action to fetch only the required attributes from the filtered array of Messages

Utilize the "Switch to text mode" to create your own email message summary from the "Body" output of the "Filter array" action of the Message list obtained



Map attribute : "Posted By <b> @{item()?['from']?['user']?['displayName']} </b>on @{formatDateTime(item()?['createdDateTime'],'MM-dd-yyyy')}</br></br>@{item()?['body']?['content']}"


The above mapped attribute renders the display name of the user creating the message along with the created date & time and the message body content


Create Join action to combine each message (utilize the Output from the previous select statement)

This creates a string of messages to be sent to the email body


Step 8:

Send the email to the group members

Email to - Output from Join statement of group members list

Body - Output from Join statement of message body


Complete Flow looks like below


And the weekly summary email looks like the followingUntitled.pngThanks for reading!!


I went through your instructions and somewhere along the way, I ended up in a "Apply to each" where I have my other Select and Join statements with my Send Email.  What are the Select and Join before the List Group Members in your image above after Filter Array (Step 4)?


I was able to get it to work, but my steps look a little different than yours, after Get Messages, my steps are:



Hi, under the select (filter array) i dont see the Map option - Can you help ?





Is it possible to get a weekly summary of all the channels within a Team?

I love this post! I am having one issue with the Filter Array to narrow down the number of days I want emailed to me. No matter what input for the number of days I always get the same results sent to me. I change -7 to any number I get the same results. 

Here is the code I am using:


Is Greater THAN
ticks(addDays(utcNow(), -7))

Solved my own issue! I copied and pasted the exact content "@greater(ticks(item()?['CreatedDateTime']), ticks(addDays(utcNow(), -7)))" into the advanced mode of my filter array and that worked. 

Hi @RezaDorrani


Is it possible to submit your flow as a template? I have 2 issues I'm running into.


1. I get an error saying one or more recipients are invalid for my flow. The emails show up like this (see blue font below), but unsure what is invalid about them. (email addresses are changed for privacy, but this is what the formatting looks like). 



I wasn't able to find the exact "send an email" function, but found "Send an email v2" if that makes a difference.


2. When I change the email address to send to just me, it works, however there's no content in the email despite posting something to the channel today.


Flow page 1Flow page 1Flow page 2Flow page 2


Update: I updated my email body text, but this is my output... no actual post content



@areimer14  Maybe check your 2nd select statement. I think you need to switch to text mode and copy and paste this exact statement.


"Posted By <b> @{item()?['from']?['user']?['displayName']} </b>on @{formatDateTime(item()?['createdDateTime'],'MM-dd-yyyy')}</br></br>@{item()?['body']?['content']}"

Hi @RezaDorrani


Great post! Many thanks! 


I have one issue, though, which is that only part of my conversation posts is showing. If I create a post in Format mode and it has a title, this doesn't show. It only shows the lower case text. So in the example, 'Email Test 5' is missing and the email only shows 'content content content'


How do I get all of the post to show? 


Awesome Post and Documentation, Much Thanks @RezaDorrani 

Images from the Teams Posts doesn't work when using this recipe. I think it might be because the images in the emails are embedded with reference to the Graph API of Teams, in which you don't have a valid access token directly from Outlook

So, any ideas on how to fix this?


Annotation 2020-05-28 115659.pngAnnotation 2020-05-28 115924.png

Thanks @RezaDorrani for this! I am also interested if there's any solutions for what @he-man has posted regarding fixing the display of Teams images in the summary email. It would be a great, added feature to be able to see the images that accompany the text. 

Meet Our Blog Authors
  • Experienced Consultant with a demonstrated history of working in the information technology and services industry. Skilled in Office 365, Azure, SharePoint Online, PowerShell, Nintex, K2, SharePoint Designer workflow automation, PowerApps, Microsoft Flow, PowerShell, Active Directory, Operating Systems, Networking, and JavaScript. Strong consulting professional with a Bachelor of Engineering (B.E.) focused in Information Technology from Mumbai University.
  • Encodian Owner / Founder - Ex Microsoft Consulting Services - Architect / Developer - 20 years in SharePoint - PowerPlatform Fan
  • Cambridge UK Power Platform User Group Leader, Technical evangelist and speaker. Always says yes to coffee! #LetsGetCoffee
  • Passionate #Programmer #SharePoint #SPFx #Office365 #MSFlow | C-sharpCorner MVP | SharePoint StackOverflow, Github, PnP contributor
  • I am building business processes and applications that are easy for users' to stick to, so they can follow and understand them. In overall I transform processes to be more reliable and effortless. I am a proud co-organizer of SharePoint Saturday Warsaw and active community member, blogger and international speaker.