Daily
Log a daily snapshot of your Trello board to Google Sheets
Every evening each card on your board is saved as a dated row with its list, due date and members, so you can see how work moved over weeks.
- Runs
- Daily
- Apps
- Google Sheets, Trello
- AI
- Optional
- Access
- Trello read; Sheets write
Send this to your assistant
Create a ClickRuntime automation: every evening, copy all cards on my Trello board with their list, due date and members into new rows in my Google Sheet.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
An agency project manager is asked at every monthly client review how long tasks sat in each stage and why delivery slipped. Trello only shows where cards are now. Reconstructing last month from the activity feed takes an afternoon, and the answers are still guesses.
A dated row for every card every evening builds a history the board itself does not keep. Questions about cycle time, bottlenecks and workload get answered with a filter or a chart instead of memory.
What you get out of it
History Trello does not keep
The board shows today. The sheet shows every day before it, so you can see where a card was last Tuesday and how long it stayed there.
Find bottlenecks with real numbers
Counting how many days cards spend in Review or Waiting on client shows exactly where work stalls. That turns a vague feeling into something you can fix.
Reports clients and managers trust
Charts built from daily snapshots show progress over a sprint or a month. They hold up in a client review far better than a recollection.
Workload by person at a glance
Because members are logged with each card, you can see who was carrying the most open work on any given day. It helps spread new work fairly.
An optional summary of what changed
With AI turned on, you also get a short email each evening describing what moved compared with the day before. It is a quick read for anyone who does not live in the board.
How it works
What happens, step by step
Every evening, ClickRuntime reads every open card and list on your Trello board.
It writes one row per card to your Google Sheet with today's date, the card name, its list, due date and members.
If AI is turned on, it compares today with yesterday and emails you a short summary of what moved.
Over time the sheet becomes a day-by-day history of your board.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- 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 Slack
- Combine it with other Google Sheets and Trello steps into one automation
Under the hood
The code that runs this automation
from datetime import date
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, state, ai, notify
BOARD_ID = "your-board-id"
SHEET_ID = "your-spreadsheet-id"
@on_trigger
def run(event):
auth = {"key": credentials.secret("TRELLO_API_KEY"), "token": credentials.secret("TRELLO_TOKEN")}
lists = {l["id"]: l["name"] for l in http.get(f"https://api.trello.com/1/boards/{BOARD_ID}/lists", params=auth).json()}
members = {m["id"]: m["fullName"] for m in http.get(f"https://api.trello.com/1/boards/{BOARD_ID}/members", params=auth).json()}
cards = http.get(f"https://api.trello.com/1/boards/{BOARD_ID}/cards", params=auth).json()
today = date.today().isoformat()
rows = [[today, c["name"], lists.get(c["idList"], ""), c.get("due") or "", ", ".join(members.get(m, "") for m in c["idMembers"])] for c in cards]
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
sheets.spreadsheets().values().append(spreadsheetId=SHEET_ID, range="Snapshots!A:E", valueInputOption="USER_ENTERED", body={"values": rows}).execute()
now = {r[1]: r[2] for r in rows}
before = state.get("last") or {}
changes = [f"{n}: {before[n]} → {l}" for n, l in now.items() if n in before and before[n] != l]
if changes:
try:
notify.email_me("Board changes today", ai.generate("\n".join(changes), system="Summarise these Trello moves in 3 sentences.", max_output_tokens=200).text)
except ai.AIError:
notify.email_me("Board changes today", "\n".join(changes))
state.set("last", now)
return {"rows": len(rows), "changes": len(changes)}FAQ
Common questions
Will the sheet get too big?
Are archived cards included?
Can I chart time in each list?
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 your daily sales sheet into Trello follow-ups
Each day your sales figures are reviewed and the follow-ups worth doing arrive as Trello cards.
See how it worksTurn new rows in a sheet into Trello cards
Each new lead or client added to your sheet becomes a Trello card, and the card link is written back to the row.
See how it worksLog every review to a sheet and send bad ones to Trello
Each new review is classified by AI and logged to your sheet, and negative ones become Trello cards for follow-up.
See how it worksKeep exploring
Set up “Log a daily snapshot of your Trello board to Google Sheets” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.