On a schedule
Get a weekday email of overdue to-dos
Every weekday morning you see the open to-dos that are past due, with who they belong to.
- Runs
- On a schedule
- Apps
- Basecamp
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every weekday at 8am email me the open to-dos in my 'Launch' Basecamp project that are past their due date, with assignees and due dates.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Basecamp to-dos have due dates, and past-due ones show a small red label that is easy to ignore. In a project with sixty open to-dos and five contributors, a few quietly turn overdue each day. The project manager does not find out until a client asks about a deliverable, and the task, which was assigned two weeks ago, has no comment history. By then, people have forgotten the context and the delay has cost trust.
Every morning, ClickRuntime goes through the to-do lists of your Basecamp project, collects the open to-dos, keeps those whose due date is before today and emails the title, assignees, due date and a link for each. You can see what has slipped, and who owns it, before the day begins.
It is especially useful for agencies that report to clients and need to catch slipping deliverables early. It can also be sent to a client lead.
What you get out of it
Slipping deliverables are caught early
A task that is one day late is easy to fix, and one that is two weeks late is a crisis. Daily visibility keeps small slips from growing. Daily visibility keeps small slips from becoming serious ones.
Assignees are named plainly
The email lists who owns each overdue to-do, so a follow-up message is easy to send. Nobody can wonder whether someone else is handling it. Nobody wonders whether someone else is handling it.
Clients hear from you first
Learning about a delay before a client asks lets you explain and offer a new date. Proactive communication preserves trust far better than a late reply. Proactive updates preserve trust much better than late replies.
Project managers save a daily search
Looking through each to-do list takes ten minutes a day. Over a month, that is hours returned to managing the work itself. Those hours return to managing the actual work.
Repeated lateness becomes visible
If the same person's tasks appear overdue every week, you can talk about workload instead of guessing. The emails are a factual starting point for that conversation. Workload becomes a topic backed by facts.
How it works
What happens, step by step
Every weekday at 8am, ClickRuntime goes through each to-do list in your Basecamp project.
It keeps the open to-dos whose due date has already passed.
You get one email listing each overdue to-do with who it is assigned to, its due date and a link.
Before it runs live
- Connect Basecamp
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 Basecamp steps into one automation
Under the hood
The code that runs this automation
from datetime import date
from clickruntime import on_trigger, notify, http, credentials
BASE = "https://3.basecampapi.com/4400000" # your account id
PROJECT, TODOSET = 2700000, 3100000 # 'Launch' project and its to-do set
@on_trigger
def run(event):
headers = {"Authorization": "Bearer " + credentials.connection("basecamp", "main"), "User-Agent": "ClickRuntime (team@example.com)"}
lists = http.get(f"{BASE}/buckets/{PROJECT}/todosets/{TODOSET}/todolists.json", headers=headers).json()
today = date.today().isoformat()
overdue = []
for todolist in lists:
for todo in http.get(todolist["todos_url"], headers=headers).json():
if todo.get("due_on") and todo["due_on"] < today:
who = ", ".join(a["name"] for a in todo["assignees"]) or "unassigned"
overdue.append(f"{todo['title']} | {who} | due {todo['due_on']}\n{todo['app_url']}")
if overdue:
notify.email_me(f"{len(overdue)} overdue to-dos in Launch", "\n\n".join(overdue))
return {"overdue": len(overdue)}FAQ
Common questions
Does it include completed to-dos?
What about to-dos that have no due date?
Can I cover several Basecamp projects?
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
See the next three days of your Basecamp schedule
Each morning an email lists the project's schedule entries coming up in the next few days.
See how it worksPost new Basecamp to-dos to Slack
As soon as a to-do lands on your chosen list, the channel sees its title, assignee and link.
See how it worksGet one evening email of new to-dos
Instead of separate notices, you get one email each evening with every to-do added that day.
See how it worksKeep exploring
Set up “Get a weekday email of overdue to-dos” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.