Smartsheet Deadline and SLA Escalation
A scheduled flow scans Smartsheet sheets for rows due soon, due today, or overdue (by a date column and status), reminds owners in Teams/email, and escalates overdue items past a threshold to the manager with a row link. Keeps Smartsheet deliverables on track without manual chasing.
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 enforces deadlines on Smartsheet. On a daily schedule it reads every row of a configured Smartsheet sheet, and for each open task that is due soon, due today, or overdue it reminds the owner in Teams and by email. Tasks that are overdue beyond an SLA threshold are escalated to a manager with a link to the sheet.
Why it matters: Smartsheet's built-in reminders are per-sheet and easy to miss. A single governed flow gives consolidated, escalating deadline management so deliverables stay on track without manual chasing.
Use Case
A project/operations team that tracks deliverables in a Smartsheet sheet wants automatic deadline reminders to task owners and automatic escalation to a manager when an item is overdue past an agreed SLA. The sheet is expected to contain (at minimum) the columns Task Name, Owner Email, Due Date, and Status.
Flow Architecture
Scan Smartsheet Daily
Recurrence (Daily, 8:00 AM Eastern)Runs every morning to scan the sheet.
Initialize varToday
Initialize Variable (string)Today as yyyy-MM-dd, baseline for comparisons.
Initialize varDueSoonCutoff
Initialize Variable (string)today + DueSoonDays — tasks due on/before this get a reminder.
Initialize varEscalationCutoff
Initialize Variable (string)today - EscalationDays — tasks due on/before this are escalated.
Initialize varDoneStatus
Initialize Variable (string)The Status value meaning complete (skipped).
Get Sheet Rows
Smartsheet — GetSheetDataReads all rows of the configured sheet.
Apply to each Row
Foreach (sequential)Iterates body('Get_Sheet_Rows')?['value'].
Compose Due Date Normalized
ComposeNormalizes the row's Due Date to yyyy-MM-dd (empty if none).
Check If Row Is Open With Due Date
ConditionStatus not done and Due Date not empty.
Check If Overdue Past SLA
Condition (nested)DueDate <= varEscalationCutoff escalate; else check due-soon.
Send Escalation Email
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_SmartsheetSheetId | String | <configure> | Numeric ID of the sheet to scan. |
| flowlibs_SmartsheetSheetUrl | String | https://app.smartsheet.com/sheets/... | Sheet permalink included in messages. |
| flowlibs_DueSoonDays | String | 3 | Days ahead a task counts as due soon. |
| flowlibs_EscalationDays | String | 2 | Days overdue before escalating. |
| flowlibs_StatusDoneValue | String | Complete | Status value meaning the task is done (skipped). |
| flowlibs_ManagerEmail | String | manager@contoso.com | Escalation recipient (reused env var). |
| flowlibs_TeamsGroupId | String | <your-team-id> | Target Teams team/group ID (reused env var). |
| flowlibs_TeamsChannelId | String | <your-channel-id> | Target Teams channel ID (reused env var). |
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.
- Tiered SLA
- Read a Priority column and use different DueSoonDays/EscalationDays per priority by adding a Switch before the reminder/escalation branches.
- Contact-column owner
- If the owner is stored in a Smartsheet contact column, read the email from that column instead of Owner Email.
- De-duplicate reminders
- Write a Last Reminded date back to the row to avoid repeat reminders on the same day.
- Multiple sheets
- Wrap Get Sheet Rows in a loop over a comma-separated list of sheet IDs.
- Direct row links
- Append the row ID to the sheet URL for a deep link to each row.
- Channel routing
- Post reminders and escalations to different Teams channels by adding a second channel env var.
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.01Normalize due date
Normalizes the Due Date to yyyy-MM-dd.
EXPR.02Due-soon cutoff
Computes the due-soon cutoff date.
EXPR.03Escalation cutoff
Computes the escalation cutoff date.
EXPR.04Open-row test
Row is open and has a due date.
EXPR.05Overdue-past-SLA test
Tests whether the row is overdue past SLA.
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.