Collects as they arrive, acts daily
Get one evening email of new to-dos
Instead of separate notices, you get one email each evening with every to-do added that day.
- Runs
- Collects as they arrive, acts daily
- Apps
- Basecamp
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: collect every new to-do in my Basecamp projects during the day and email me one list at 6pm.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
When a busy Basecamp project has a dozen contributors, every new to-do triggers a notification. Someone who is subscribed to the project gets a stream of small emails, dozens a day, and learns to ignore them. Real assignments get lost among minor additions, so a to-do assigned to a person on Tuesday is not seen until Friday, because it was one of thirty notifications that morning.
ClickRuntime collects each new to-do as Basecamp reports it and stores it in memory. At the time you choose, it sends one email listing everything that was added, then clears the memory and begins again. You get a single readable summary, not a stream of interruptions.
It suits project leads who want to stay informed without the cost of constant notifications. You pick the rhythm, daily for fast launches or weekly for quiet projects.
What you get out of it
Attention is protected during the day
One digest replaces many pings. You can focus on your own work and still know what was added, without a constant stream of small interruptions. You can focus on your own work and still stay informed.
Real assignments stop getting lost
In a single list, to-dos assigned to you stand out more than they do among thirty separate emails. You are less likely to miss something that needs your action. You are less likely to miss something that needs your action.
Leads get an overview of project growth
Seeing everything added in a day shows how the scope is changing. A lead can spot to-dos that duplicate each other or that belong in a different list. Duplicates and misplaced items become easy to spot.
Fewer mutes and unsubscribes
People who are overwhelmed by notifications eventually mute the project. A manageable digest means they stay subscribed and keep the visibility the team needs. The visibility the team needs is kept alive.
A daily or weekly rhythm fits your pace
Choosing how often the digest is sent lets you match the project. Fast-moving launches might want daily, while a slow client project can use a weekly summary. Fast launches get daily summaries and slow projects get weekly ones.
How it works
What happens, step by step
Each time a to-do is added in your Basecamp project, ClickRuntime notes it down.
Every evening at 6, it sends you one email listing all the new to-dos from the day, with who added them and links.
The list is then cleared, so tomorrow's email only has new to-dos.
Before it runs live
- Connect Basecamp
- Paste your automation's link into the other app's webhook settings
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 Basecamp steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, on_trigger, state, notify
@on_event
def remember(event):
body = event.json or {}
if body.get("kind") != "todo_created":
return {"stored": False}
todo = body["recording"]
pending = state.get("todos") or []
pending.append(f"{todo['bucket']['name']}: {todo['title']} (by {body['creator']['name']})\n{todo['app_url']}")
state.set("todos", pending)
return {"stored": True}
@on_trigger
def send(event):
todos = state.get("todos") or []
if todos:
notify.email_me(f"{len(todos)} new Basecamp to-dos today", "\n\n".join(todos))
state.delete("todos")
return {"sent": len(todos)}FAQ
Common questions
What does the digest list for each to-do?
What happens if nothing was added?
Is anything missed between sending and clearing?
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
Post 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 an email when a to-do is completed
When someone ticks off a to-do, you hear who finished it, with a link back to it.
See how it worksGet 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.
See how it worksKeep exploring
Set up “Get one evening email of new to-dos” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.