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 followingThanks for reading!!