Asana Task Deadline Escalation
Daily flow queries Asana for tasks due today or overdue in a project, notifies each assignee in Teams, emails the project owner a digest of at-risk and overdue tasks, and adds an escalation comment on tasks overdue by more than a configurable number of days. Keeps delivery 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 Asana tasks. Every morning it queries a monitored Asana project for tasks that are due today or overdue, posts a per-task reminder into a Microsoft Teams channel, escalates any task overdue beyond a configurable threshold by adding a comment directly on the Asana task, and emails the project owner a consolidated digest of all at-risk and overdue work.
Why it matters: Asana sends individual reminders but no single, escalating, owner-facing view of deadline risk. This flow delivers a daily picture to the owner and nudges assignees where they already work (Teams), while flagging genuinely stale items in Asana itself.
Status: Built and deployed Off (demo). Going live requires only authorizing the three connections and setting the six environment-variable values — no logic changes.
Use Case
A delivery team runs work in Asana and wants automatic daily deadline chasing — assignee nudges, an owner digest, and escalation on stale overdue tasks — without a manual standup review. Project Managers and Operations get a reliable morning sweep that keeps delivery on track.
Flow Architecture
Daily 0800
Recurrence (Day/1, 08:00 UTC)Runs each morning
Init varAsanaWorkspace … Init varDigestRows
Initialize VariableBind the six env vars to variables, plus varToday (yyyy-MM-dd) and varDigestRows (HTML accumulator)
Get Tasks
Asana ListTasks (workspace, project)Reads open tasks with full fields (due_on, completed, assignee)
Filter Due Or Overdue
Filter Array (Query)Keeps not-completed tasks whose due_on ≤ today
Apply To Each Task
Foreach (sequential)Iterates each due/overdue task
Notify Assignee Teams
Teams PostMessageToConversationPosts a reminder to the configured channel, naming the assignee + due date
Append To Digest
Append to string variableAdds a row (task, assignee, due, days overdue) to the digest table
Condition Stale Overdue
If (days overdue > threshold)Gates the escalation
Add Escalation Comment
Asana AddCommentPosts an escalation comment on the Asana task (condition True branch)
Email Owner Digest
Outlook SendEmailV2Emails the owner the full at-risk + overdue table
Environment Variables
| Schema name | Type | Default | Description |
|---|---|---|---|
| flowlibs_AsanaWorkspaceGid | String | (workspace gid) | Asana workspace that scopes the task query |
| flowlibs_AsanaProjectGid | String | (project gid) | Asana project to monitor |
| flowlibs_AsanaProjectOwnerEmail | String | (owner email) | Recipient of the daily digest |
| flowlibs_OverdueEscalationDays | String | 3 | Days overdue before an escalation comment is added |
| flowlibs_AdminTeamsGroupId | String | <your-team-id> | Teams team where assignee reminders post |
| flowlibs_AdminTeamsChannelId | String | <your-channel-id> | Teams channel where assignee reminders post |
Connectors & Connections
| Connector | API name | Actions used |
|---|---|---|
| Asana | shared_asana | ListTasks AddComment |
| Office 365 Outlook | shared_office365 | SendEmailV2 |
| Microsoft Teams | shared_teams | PostMessageToConversation |
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.
- Custom fields
- Use an Asana custom field (priority/risk) to weight which tasks escalate first, or to filter the loop.
- Section scope
- Limit to specific sections (e.g. "In Progress") to avoid nagging backlog items.
- Per-assignee Teams DM
- Map the Asana assignee to a Teams user and post a 1:1 chat instead of a channel message.
- Portfolio view
- Loop multiple projects (store a comma-separated list of project gids) for a program-level digest.
- Idempotent escalation
- Add a small Dataverse ledger to avoid re-commenting on the same task every day.
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.01Due/overdue filter
Keeps not-completed tasks with a due date on or before today.
EXPR.02Days overdue
Computes whole days a task is past its due date.
EXPR.03Assignee name (safe)
Falls back to Unassigned when no assignee is set.
EXPR.04Escalation gate
True when a task is overdue beyond the configured threshold.
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.