On a schedule
Post a daily Trello deadline digest to Slack
Each weekday morning your team sees what is overdue, what is due today and what moved yesterday, without opening the board.
- Runs
- On a schedule
- Apps
- Slack, Trello
- AI
- Optional
- Access
- Trello read; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: every weekday at 9, post a Slack summary of my Trello board: overdue cards, cards due today, and yesterday's activity.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A marketing team of five runs its campaigns on one Trello board. Due dates are set, but nobody opens the board every morning, so a blog post that was due Tuesday is still sitting in Review on Thursday. The weekly meeting is where missed deadlines are discovered, which is too late to do anything about them.
A short message in Slack at the start of each day puts the board's deadlines in front of everyone where they already are. Overdue work is noticed on day one, not day four.
What you get out of it
Missed deadlines surface the next morning
An overdue card appears in the digest the day after its due date. The owner can finish it, move the date or ask for help before it becomes a problem.
Everyone starts the day with the same picture
The whole team reads the same list of what is due today. It replaces several separate check-ins and avoids two people assuming the other has it.
Yesterday's progress is visible
Cards that moved yesterday show the team what got done. Quiet progress gets noticed without anyone writing a status update.
No need to open the board
The digest arrives in the channel people already read. Those who rarely visit Trello still know what needs their attention.
A summary that reads like a person wrote it
With AI turned on, the digest opens with a short plain summary of the day ahead. Without it, the same lists are posted in a clear grouped format.
How it works
What happens, step by step
Every weekday at 9, ClickRuntime reads all open cards and yesterday's activity from your Trello board.
It sorts cards into overdue and due today, and lists the cards that moved yesterday.
If AI is turned on, it adds a two-sentence summary of the day ahead at the top.
The digest is posted to your Slack channel for the whole team.
Before it runs live
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Connect Trello
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
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Google Sheets
- Combine it with other Slack and Trello steps into one automation
Under the hood
The code that runs this automation
from datetime import datetime, timedelta, timezone
from clickruntime import on_trigger, credentials, http, notify, ai
BOARD_ID = "your-board-id"
@on_trigger
def run(event):
auth = {"key": credentials.secret("TRELLO_API_KEY"), "token": credentials.secret("TRELLO_TOKEN")}
now = datetime.now(timezone.utc)
cards = http.get(f"https://api.trello.com/1/boards/{BOARD_ID}/cards/open", params=auth).json()
since = (now - timedelta(days=1)).isoformat()
moves = http.get(f"https://api.trello.com/1/boards/{BOARD_ID}/actions", params={**auth, "filter": "updateCard:idList", "since": since}).json()
due = [(c["name"], datetime.fromisoformat(c["due"].replace("Z", "+00:00"))) for c in cards if c.get("due") and not c.get("dueComplete")]
overdue = [n for n, d in due if d < now]
today = [n for n, d in due if d.date() == now.date() and d >= now]
moved = [f"{a['data']['card']['name']} → {a['data']['listAfter']['name']}" for a in moves]
text = "*Overdue*\n" + ("\n".join(overdue) or "None") + "\n*Due today*\n" + ("\n".join(today) or "None") + "\n*Moved yesterday*\n" + ("\n".join(moved) or "None")
try:
text = ai.generate(text, system="Write a two-sentence plain summary of this board for the team.", max_output_tokens=120).text + "\n\n" + text
except ai.AIError:
pass
notify.slack(text, channel="#marketing")
return {"overdue": len(overdue), "today": len(today), "moved": len(moved)}FAQ
Common questions
Does it post on weekends?
Which cards count as overdue?
Can it cover more than one board?
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
Turn complaints into Trello cards and share praise in Slack
Every form response is read for tone: complaints become Trello cards to act on, and praise is shared with the team in Slack.
See how it worksStart client onboarding in Trello when a contract is signed
When a contract is signed, the client gets a Trello onboarding card with a checklist and the team hears about it in Slack.
See how it worksTurn support emails into Trello cards and flag urgent ones in Slack
Each new support email becomes a Trello card labelled by priority, and urgent ones are posted to #support straight away.
See how it worksKeep exploring
Set up “Post a daily Trello deadline digest to Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.