See every blocked Asana task and who is holding it up
Open one board before standup that lists every task stuck behind unfinished work, ranked by how long it has been waiting, and chase the owner in a click.
Build me a blocked work board I open before standup to see everything that is stuck waiting on something else. It works across a set of Asana projects I choose, and it answers two questions a normal task list cannot: what is blocked right now, and who is personally holding up the most work. I should be able to act on what I see without leaving the screen, using Asana and Slack.
Project picker and data loading. On first open, let me pick which Asana projects the board covers, listing the options with Get Multiple Projects, and remember my selection so the board loads the same way every morning. Load tasks with Get Multiple Tasks scoped by project, one call per selected project. For each incomplete task, call Get Task Dependencies to find the tasks blocking it, and use Get Task Dependents to work out how many other tasks a given blocker is holding up, including blocked tasks that live outside my selected projects. Use Get a Task for the detail on each blocking task, such as its assignee, due date, and completion state. Use Get Stories for a Task on each blocking task to find the timestamp of its most recent activity.
Important performance note: dependencies are read one task at a time, so the app must work from the chosen set of projects rather than the whole workspace. Respect Asana's rate limits of 150 requests per minute on free plans and 1500 on paid, with a maximum of 50 concurrent GET requests, so batch the dependency reads with a sensible concurrency cap and show a progress indicator while the graph builds. Do not use Search Tasks in a Workspace anywhere; it requires a premium Asana plan and returns a payment error otherwise, which is why the project-scoped path is the right one. Cache the built graph for the session so switching between the two views does not refetch everything.
View one, the blocked work board. A table listing every task in the selected projects that has at least one unfinished blocker, sorted by how long it has been stuck, longest first. Each row shows the blocked task and its owner on the left, then the blocking task, that blocker's owner, the blocker's due date, and how long the block has been sitting there. Flag rows where the blocker is already past its due date, and where the blocker has no owner at all, since an unowned blocker is the worst kind. If a task is blocked by more than one unfinished task, show a row per blocking relationship rather than collapsing them, because each one needs chasing separately. Let me filter by project and by blocker owner, and set a minimum stuck age so short waits stay off the board.
View two, the people view. Same underlying data, grouped the other way: list people by how much work they are personally holding up. Each person is a row showing how many other tasks are blocked behind their unfinished blockers, how many distinct projects those blocked tasks span, the oldest block they are sitting on, and how many of their blocking tasks are already overdue. Sort by the number of blocked tasks so the biggest bottleneck is at the top. Expanding a person shows their individual blocking tasks and what is waiting behind each one, with the same row actions available.
Row actions. First, chase the blocker's owner: post a comment on the blocking task with Create a Comment on a Task naming what is waiting behind it and how long it has been stuck, then send that person a Slack direct message with the Slack Bot Send a Message operation including a link to the blocking task. Map the Asana owner to their Slack account by matching on email with Look Up User by Email, and if there is no match, still post the Asana comment and tell me in the interface that the Slack side could not be delivered. Second, push the blocking task's due date with Update a Task, letting me pick the new date from the row. Third, clear the dependency outright with Remove Task Dependencies when the block is no longer real, removing the blocker from the blocked task so it stops showing as blocked for everyone. Every action should update the board in place rather than forcing a full reload.
Rules to bake in. Stuck time is measured from the last activity on the blocking task, taken from the most recent story on it, not from the task's creation date, because a blocker created months ago but commented on yesterday is not actually stalled. Only incomplete blockers count; the moment a blocking task is marked complete the row drops off the board. And the same person must not be chased twice about the same task within twenty four hours, so keep a record of every chase with who was chased, which blocking task it was about, and when, and enforce that cool-off by disabling the chase button on affected rows, showing when the last nudge went out instead. Keep that chase history so I can see at a glance what has already been pressed this week.
Every row should link straight through to the task in Asana. If nothing in the selected projects is blocked, say so plainly rather than showing an empty table, since that is genuinely good news worth stating.
What does this prompt do?
- Lists every task across the projects you pick that is waiting on something unfinished, showing the blocked task and its owner right next to the blocking task, that blocker's owner, and when the blocker is due.
- Ranks the list by how long each item has really been stuck, measured from the last time anything actually happened on the blocking task rather than the day it was created.
- Flips to a second view that ranks people by how much of everyone else's work they are personally holding up, which is the question a normal task list cannot answer.
- Lets you act straight from a row: chase the blocker's owner with a comment and a Slack direct message, push the blocker's due date, or clear the dependency when the block is no longer real.
What do I need to use this?
- An Asana login with access to the projects you want to watch
- A Slack workspace connected so the app can send the nudges
- Tasks that use Asana's blocked by and blocking links, since that is what the board reads
- Works on a free Asana plan; pick a focused set of projects rather than everything so the board stays fast
How can I customize it?
- Change which projects the board covers, and save that selection so it loads the same way every morning
- Set a minimum stuck age so short waits stay off the board and only genuinely stalled work shows up
- Reword the chase comment and the Slack message, and adjust the cool-off before the same person can be chased again about the same task
FAQs
Does this work on a free Asana plan?
How is the stuck time worked out?
Will it chase the same person over and over?
What counts as a blocker?
Can I clear a dependency that is no longer real?
Who is this for?
Related templates
See how your brand's news coverage and sentiment stack up against four competitors, then let an assistant write the weekly report for you.
One screen showing every social post waiting on approval, sorted by deadline, so reviewers can approve or reject without leaving the page.
Every Monday, find the past champions and closed-won contacts who changed jobs, update Attio, and get the moves worth chasing in Slack.
Staff submit what happened, your social manager edits the copy, picks the accounts and puts it on the calendar without a single spreadsheet.
Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.
A personal queue of every overdue Guru card, sorted by how late it is, with one-click verify, reassign, comment, and an agent that drafts the refresh for you.
Walk into standup already knowing what is stuck.
One board shows every blocked task across your projects, who is holding it up, and how long it has been waiting.