cancel
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 

Capture.PNG

 

 

 

 

 

 

 

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)

Capture1.PNG

Step 3:

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

 

Untitled.png

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

 

Untitled2.png

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

 

Capture2.PNG

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 ";" 

3.png

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

 

5.png

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

Captur2222e.PNG

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

3.png

Complete Flow looks like below

Capture.PNG

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

Comments

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:

 

 WeeklyFlow.PNG

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

 

@kmw1130 

 

2.png

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:

 

ticks(item()?['createdDateTime']
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). 

{"Name@business.com":""};{"Name2@business.com":""};{"Name3@business.com":""}

 

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 1.JPGFlow page 1flow 2.JPGFlow page 2

 

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

Capture.JPGCapture2.JPG

 

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

Capture.JPG

How do I get all of the post to show? 

 

Awesome Post and Documentation, Much Thanks @RezaDorrani 

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.