On a schedule
Get overdue Teamwork.com tasks every weekday
A morning email lists every late, unfinished task, grouped by project.
- Runs
- On a schedule
- Apps
- Teamwork.com
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every weekday at 8am, email me all incomplete Teamwork.com tasks whose due date has passed, grouped by project, with the assignee next to each one.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A team lead opens Teamwork on Monday and finds fourteen tasks past their due date across five projects. Some are a day late, some three weeks. Nobody noticed because each person only sees their own list, and the project views are sorted by project, not by how late things are. Deadlines slide without a conversation, and clients are the ones who point it out.
Each morning, ClickRuntime requests incomplete tasks with a due date before today, groups them by assignee and project and emails you one list. It shows who owns what, how many days late each item is and a link to open it, so you can bring the right people into the day's first conversation.
It suits managers, producers and team leads responsible for delivery across several projects.
What you get out of it
Late work is visible every morning
A daily list means a task is never more than one day late before somebody knows. Catching slips early gives you time to move deadlines or add help instead of explaining a miss afterward.
Accountability becomes factual
Seeing task owners and days overdue turns a vague worry into a specific conversation. People respond better to a concrete list than to a general reminder that things are behind.
Workload problems show up
When one person's name appears ten times, it suggests overload rather than laziness. You can rebalance assignments before burnout leads to more missed deadlines. A grouped list makes that pattern easy to see at once.
Stuck tasks get unblocked
A task that has been overdue for weeks is often waiting on something. Seeing it on the list prompts a question about what is blocking it, which is often easy to remove.
Client commitments are protected
Overdue client-facing tasks are the ones that cause the most damage. Having them in your inbox each morning gives you a chance to warn the client before they ask. A phone call beats an apology email after the date has passed.
How it works
What happens, step by step
Every weekday at 8 am, ClickRuntime looks in Teamwork.com for unfinished tasks whose due date has passed.
It groups them by project.
You get one email listing each overdue task with its due date and the person it is assigned to.
Before it runs live
- Connect Teamwork.com
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
- Run it at a different time, more or less often, or only on weekdays
- 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 Teamwork.com steps into one automation
Under the hood
The code that runs this automation
from collections import defaultdict
from clickruntime import on_trigger, credentials, http, notify
SITE = "yourcompany"
@on_trigger
def run(event):
resp = http.get(f"https://{SITE}.teamwork.com/tasks.json",
params={"filter": "overdue", "includeCompletedTasks": "false"},
auth=(credentials.secret("TEAMWORK_API_KEY"), "x"))
resp.raise_for_status()
by_project = defaultdict(list)
for t in resp.json().get("todo-items", []):
who = t.get("responsible-party-names") or "unassigned"
by_project[t["project-name"]].append(f" - {t['content']} (due {t['due-date']}, {who})")
if not by_project:
return {"overdue": 0}
lines = []
for project, tasks in sorted(by_project.items()):
lines += [project] + tasks
total = sum(len(t) for t in by_project.values())
notify.email_me(f"{total} overdue Teamwork.com tasks", "\n".join(lines))
return {"overdue": total}FAQ
Common questions
Does the digest include tasks without a due date?
Can I limit it to certain projects or people?
What time and time zone does it use?
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
Get a Friday summary of finished work
On Friday afternoon you get the tasks closed that week and a short written summary of what got done.
See how it worksAnnounce new Teamwork.com tasks in Slack
Each task added to your project shows up in Slack with its name, assignee and a link.
See how it worksShare completed Teamwork.com tasks in Slack
Your channel hears who finished which task, and in which project, as it happens.
See how it worksKeep exploring
Set up “Get overdue Teamwork.com tasks every weekday” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.