Smartsheet Project Status Rollup Digest
Each week the flow reads project rows across Smartsheet sheets, computes percent complete, at-risk items, milestones due, and budget vs. actual, then posts a portfolio digest to a Teams channel and emails a leadership summary. Replaces manual status reporting with an automatic portfolio readout.
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 produces a weekly portfolio status rollup from a Smartsheet project sheet. Every Monday at 7:00 AM it reads all project rows, classifies them into at-risk, milestones due, and over-budget sets, builds an HTML digest, posts it to a Teams channel, and emails the same summary to leadership via Outlook.
Why it matters: Compiling cross-project status by hand is slow and inconsistent. This flow turns a Smartsheet project sheet into an automatic, repeatable portfolio readout for PMs and executives.
Use Case
A PMO maintains project rows in a Smartsheet sheet (Status, Percent Complete, Due Date / Milestone, Budget, Actual). Leadership wants a weekly cross-project status summary without each PM assembling slides. This flow replaces the manual status report with an automatic Teams post + email digest.
Flow Architecture
Weekly_Recurrence
RecurrenceRuns every Monday 07:00 (Eastern) to produce the weekly rollup.
Initialize_varAtRiskThreshold
Initialize Variable (Float = 0.7)Percent-complete fraction below which a project is at risk.
Initialize_varAtRiskStatusLabel
Initialize Variable (String = At Risk)Status cell value that explicitly flags risk.
Initialize_varMilestoneWindowDays
Initialize Variable (Integer = 14)Look-ahead window (days) for upcoming milestones.
Get_Project_Rows
Smartsheet — GetSheetDataReads all project rows from the configured sheet (rows keyed by column title).
Filter_At_Risk_Items
Query (Filter array)Rows behind schedule (percent < threshold) or flagged At Risk.
Filter_Milestones_Due
Query (Filter array)Rows whose Due Date falls within the milestone window.
Filter_Over_Budget_Items
Query (Filter array)Rows where Actual exceeds Budget.
Create_At_Risk_Table / Create_Milestones_Table / Create_Over_Budget_Table
Create HTML tableRenders each set as an HTML table.
Compose_Digest_Html
ComposeAssembles headline counts + the three tables into one digest body.
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_SmartsheetSheetId | String | <configure> | Sheet ID of the Smartsheet project sheet to read. |
| flowlibs_TeamsGroupId | String | <your-team-id> | Teams team (group) ID hosting the portfolio channel. |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Teams channel ID for the digest post. |
| flowlibs_LeadershipDigestEmail | String | leadership@yourcompany.com | Recipient of the leadership summary email. |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Smartsheet | shared_smartsheet | GetSheetData |
| 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.
- Risk sensitivity
- Adjust varAtRiskThreshold (0-1) to change how far behind a project must be to count as at risk.
- Risk label
- Set varAtRiskStatusLabel to match your sheet's Status value (e.g. Red, Off Track).
- Milestone window
- Change varMilestoneWindowDays to widen/narrow the upcoming-milestone horizon.
- Column names
- The filter/compose expressions reference column titles (Percent Complete, Status, Due Date, Budget, Actual); rename them to match your sheet.
- Distribution
- Point the Teams env vars and flowlibs_LeadershipDigestEmail at your team/channel/recipient. Add per-PM DMs or a RAG color scheme if desired.
- Multi-sheet
- Wrap Get_Project_Rows in an Apply-to-each over a list of sheet IDs to roll up a portfolio spanning several sheets.
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.01At-risk filter
Flags rows behind schedule or marked At Risk.
EXPR.02Milestones-due filter
Keeps milestones due within the window.
EXPR.03Over-budget filter
Flags rows where Actual exceeds Budget.
EXPR.04Headline count
Count for the digest headline (same pattern for milestones / over-budget / total).
EXPR.05Digest assembly
Assembles the HTML digest body.
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.