Hourly
Get a Slack alert when an Asana task goes overdue
The first time a task passes its due date, your team hears about it once.
- Runs
- Hourly
- Apps
- Asana
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every hour, check my Asana Website Launch project and post to #launch in Slack when a task passes its due date without being completed. Only alert once per task.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A project manager in Asana tracks launch work across several teams. A designer's task slips past its due date on a Thursday and nobody mentions it, because everyone assumes someone else saw the red date. By the following Tuesday the delay has pushed back two dependent tasks, and what could have been a one-day fix becomes a rescheduled launch.
Every hour, ClickRuntime lists incomplete tasks in your chosen Asana project and finds those with a due date before today that it has not reported yet. It posts each one to Slack with the task name, assignee and due date, and then remembers its ID, so the same task is announced only once.
It works best for projects with firm deadlines and several assignees. It can also run for several projects, each posting to its own channel.
What you get out of it
Slips surface on day one
An alert in the first hour after a due date passes turns a small delay into a short conversation. Waiting until a weekly review lets the delay grow into a missed milestone.
Dependent work gets protected
When you know the upstream task is late, you can move the downstream dates before people begin waiting on it. Fewer knock-on delays means fewer surprise reschedules. The project plan stays realistic.
Managers stop acting as human reminders
Nobody has to open the project each morning to look for red dates. The channel does the noticing, and the PM spends the time on removing blockers instead. Blockers get removed sooner.
One alert per task avoids fatigue
Because IDs are remembered, a task that stays overdue for a week produces a single message. People keep reading the channel rather than muting it. Alerts stay trustworthy and noticed.
A shared record of lateness
Over a quarter, the channel shows which kinds of tasks go late and who tends to be overloaded. That evidence supports honest conversations about capacity. Workloads can be rebalanced early.
Assignees get a prompt before a client does
Tasks that touch customers, such as a promised report or an onboarding step, are often the ones that slip. The alert reaches the team before the customer asks where it is, which keeps trust intact.
How it works
What happens, step by step
Every hour, ClickRuntime checks the unfinished tasks in your Asana project.
It picks out tasks whose due date has passed.
It skips tasks it has already alerted on, so each one is flagged once.
A message goes to your Slack channel with the task name, due date, owner and a link.
Before it runs live
- Connect Asana
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Asana steps into one automation
Under the hood
The code that runs this automation
from datetime import date
from clickruntime import on_trigger, http, credentials, notify, state, report_fetched
PROJECT = "WEBSITE_LAUNCH_PROJECT_GID"
def asana(method, path, body=None, **params):
r = http.request(method, f"https://app.asana.com/api/1.0{path}", params=params,
json={"data": body} if body else None,
headers={"Authorization": f"Bearer {credentials.secret('ASANA_TOKEN')}"})
r.raise_for_status()
return r.json().get("data")
@on_trigger
def run(event):
today = date.today().isoformat()
alerted = set(state.get("alerted") or [])
tasks = asana("GET", f"/projects/{PROJECT}/tasks", completed_since="now",
opt_fields="name,due_on,assignee.name,permalink_url")
late = [t for t in tasks if t["due_on"] and t["due_on"] < today and t["gid"] not in alerted]
report_fetched(len(late))
if not late:
return {"overdue": 0}
for t in late:
who = (t.get("assignee") or {}).get("name", "unassigned")
notify.slack(f"Overdue: {t['name']} (due {t['due_on']}, {who})\n{t['permalink_url']}", channel="#launch")
alerted.add(t["gid"])
state.set("alerted", list(alerted))
return {"overdue": len(late)}FAQ
Common questions
What if I change a due date after the alert?
Does it include tasks without a due date?
Can the alert go to the assignee directly?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Create Asana tasks from anything you send
Text sent to your link becomes a task in your Asana inbox project, ready to sort later.
See how it worksMove overdue Asana tasks to today
Each morning your overdue tasks are due today again, old completed tasks are cleared out, and you get a summary.
See how it worksGet a daily email of overdue Asana tasks
Each morning you see every overdue task in your workspace, grouped by who owns it.
See how it worksKeep exploring
Set up “Get a Slack alert when an Asana task goes overdue” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.