Daily
Archive old cards in your Done list
Cards that have sat in Done for two weeks are archived each night, and you get the list by email.
- Runs
- Daily
- Apps
- Trello
- AI
- Not needed
- Access
- read+write
Send this to your assistant
Create a ClickRuntime automation: every night, archive any card that has been in the Done list on my Sprint board for more than 14 days, and email me which cards were archived.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
The Done list on a busy Trello board keeps growing. After a few months it holds hundreds of cards, the board takes longer to load, and the actual work in progress is pushed off to the side. Teams either spend an afternoon archiving by hand every quarter, or leave the clutter because no single person owns the cleanup.
Every day, this lists the cards in your Done list, checks each one's last activity against a cutoff you choose, such as 30 days, archives the ones that are older and emails you the names of what it archived. Cards are archived, not deleted, so they can be restored from Trello's archive.
It is a good fit for sprint boards and content calendars with a steady flow of finished work. A steady daily trim beats a yearly purge, because nobody has to remember to do it.
What you get out of it
A board that stays fast and readable
Removing finished cards after the cutoff keeps the board small. People can see work in progress at a glance, without scrolling past months of completed items to find the active ones.
Nothing is permanently lost
Archived cards remain searchable and can be restored with their comments and checklists. You get the tidy board without the risk that comes with deleting someone's finished work. Restoring one takes a click in the board menu.
Cleanup stops depending on one person
Housekeeping tasks without an owner never happen. A daily run means the Done list is trimmed steadily, instead of in a painful quarterly sweep that someone resents. The board stays tidy without anyone volunteering.
A list of what was archived
The email names every archived card, so a teammate who is looking for a finished item knows when it left the board. It also lets you spot a card archived too early.
Grace period for late edits
The cutoff is based on last activity, so a card that gets a comment last week stays on the board. Items are only cleared after they have truly been quiet for the whole period.
How it works
What happens, step by step
Every day, ClickRuntime looks at the cards in your Trello Done list.
It checks when each card was last moved or changed and picks out those older than your cutoff.
Those cards are archived, so the Done list stays short.
You get an email listing the cards it archived.
Before it runs live
- 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
- 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 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, http, credentials, notify
DONE_LIST_ID = "SPRINT_DONE_LIST_ID"
def trello(method, path, **params):
params.update(key=credentials.secret("TRELLO_API_KEY"), token=credentials.secret("TRELLO_TOKEN"))
r = http.request(method, f"https://api.trello.com/1{path}", params=params)
r.raise_for_status()
return r.json()
@on_trigger
def run(event):
cutoff = datetime.now(timezone.utc) - timedelta(days=14)
archived = []
for c in trello("GET", f"/lists/{DONE_LIST_ID}/cards", fields="name"):
moves = trello("GET", f"/cards/{c['id']}/actions", filter="updateCard:idList,createCard", limit=1)
moved_at = datetime.fromisoformat(moves[0]["date"].replace("Z", "+00:00")) if moves else None
if moved_at and moved_at < cutoff:
trello("PUT", f"/cards/{c['id']}", closed="true")
archived.append(c["name"])
if archived:
notify.email_me(f"Archived {len(archived)} done cards", "\n".join(archived))
return {"archived": len(archived)}FAQ
Common questions
Can I set a different number of days?
How do I get an archived card back?
Does it touch cards in other lists?
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
Clear out cards labelled for removal
Each night cards with your removal label are archived, and you get a count by email.
See how it worksGet a daily email of overdue and upcoming cards
Each morning one email lists overdue cards and cards due this week, board by board.
See how it worksGet a weekly list of cards nobody has touched
Each Monday you see the open cards with no activity in two weeks, grouped by list.
See how it worksKeep exploring
Set up “Archive old cards in your Done list” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.