Viva Engage Top Posts Weekly Digest
Each week the flow identifies the most-engaged Viva Engage posts (by reactions, replies, views) across key communities, builds a 'best of the week' digest, posts it to a Teams channel, and emails it to those who don't check Viva often. Lifts visibility of great content and drives community engagement.
Provided as-is, without warranty of any kind. Review and test each pattern in a non-production environment before deploying it to live automations. See our Terms.
Overview
This flow spotlights the best of Viva Engage every week. On a weekly schedule it reads recent posts from a configured Viva Engage community, keeps only the most-engaged ones (by reaction count), builds a "best of the week" HTML digest, posts it to a Teams channel, and emails it to people who don't check Viva Engage often.
Why it matters: Great internal content gets buried in the feed. A weekly highlight reel lifts visibility, rewards contributors, and pulls more people into the community.
Build status: Built and verified - Flow Checker 0 errors / 0 warnings. Ships Off (a demo/reference flow); going live requires only authorizing the three connections and setting the environment variable values.
Use Case
A communications or community team wants the week's standout Viva Engage posts surfaced to a wider audience - both inside Teams (where people already work) and over email (for those who rarely open Viva Engage).
Flow Architecture
Weekly_Recurrence
RecurrenceRuns weekly (Monday 8:00 AM Eastern).
Initialize_* (7 actions)
Initialize VariableLoad each environment variable into a working variable (community id, min reactions, scan limit, top count, Teams group id, Teams channel id, recipient email).
Get_Recent_Community_Posts
Viva Engage GetMessagesInGroupV3Retrieve recent thread-starter posts from the community (threaded=true = top-level posts only).
Filter_Most_Engaged_Posts
Filter array (Query)Keep only genuine posts whose reaction count meets the minimum-reactions threshold.
Select_Digest_Rows
SelectCap qualifying posts at the top-count and project each into an HTML table row (reaction count + linked excerpt + posted date).
Compose_Digest_Rows_Html
ComposeUnwrap the Select array into a single HTML rows string.
Compose_Digest_Html
ComposeAssemble the full HTML digest (heading, intro, table, footer).
Check_If_Any_Top_Posts
Condition (If)If any post qualified -> post digest to Teams and email it; else -> post a brief quiet-week note to Teams.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_VivaEngageCommunityId | String | REPLACE_WITH_VIVA_COMMUNITY_ID | Numeric Viva Engage community (group) id to scan. |
| flowlibs_VivaEngageMinReactions | String | 3 | Minimum reactions for a post to qualify as most-engaged. |
| flowlibs_VivaEngageScanLimit | String | 50 | Max recent thread-starter posts to retrieve. |
| flowlibs_DigestTopCount | String | 5 | Max number of top posts highlighted in the digest. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Target Teams team (group) id. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Target Teams channel id. |
| flowlibs_DigestRecipientEmail | String | you@yourcompany.com | Email recipient(s) for the digest. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Viva Engage | shared_yammer | GetMessagesInGroupV3 |
| Microsoft Teams | shared_teams | PostMessageToConversation |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
Note — All connections are referenced as solution connection references; the flow is portable between environments as long as a connection is mapped at import time.
Customization Guide
Almost every realistic variant of this flow can be implemented by changing environment variable values. A few cases require small edits inside the flow definition — those are called out explicitly below.
- Multiple communities
- Duplicate the Get/Filter/Select block per community id, or loop over a comma-separated list of community ids, and concatenate the row strings.
- Contributor shout-outs
- Call Viva Engage GetUserDetailsById with each post's sender_id to add the author's name to each row.
- Different cadence
- Change the Weekly_Recurrence trigger (e.g. daily, or a different day/time/timezone).
- Lower/raise the bar
- Adjust flowlibs_VivaEngageMinReactions (engagement threshold) and flowlibs_DigestTopCount (digest size) without touching flow logic.
- Channels vs. email
- Remove either the Teams post or the email if only one distribution channel is needed.
Key Expressions
The flow is intentionally light on Power Fx / WDL gymnastics — the heaviest expressions are the branch-name concatenation and the approval outcome check. They are listed below in the order they appear in the flow.
EXPR.01Engagement filter
Keeps genuine posts meeting the reaction threshold.
EXPR.02Top-N cap
Caps the digest at the configured top-count.
EXPR.03Reaction count
Reaction count per post.
EXPR.04Unwrap Select rows
Unwraps the Select array into a single HTML string.
EXPR.05Branch test
True when at least one post qualified.
Customize & download
Generate a ready-to-import copy of this solution with your environment-variable values baked in — available on Base, Pro, or Team.
Upgrade to customize
Comments
Sign in to join the conversation.
Sign inNo comments yet. Be the first to share your experience with this flow.