Daily
Get a morning email of balances and new transactions
Each day starts with every linked account's balance and the transactions that posted since the last email.
- Runs
- Daily
- Apps
- Plaid
- AI
- Not needed
- Access
- Transactions + Balance products; Item access_token
Send this to your assistant
Create a ClickRuntime automation: every day at 7am, email me the current balance of each Plaid-linked account and all new transactions since yesterday, with date, merchant and amount.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Anyone who manages money across a couple of bank accounts, whether a founder separating business and personal spending or a household watching a shared budget, tends to check balances only when something feels wrong. By then a duplicate subscription charge has run for two months, a client payment never arrived, or the account is closer to overdrawn than anyone realized. Logging in to each bank every day is tedious, so it simply does not happen.
Each morning, new transactions are pulled from Plaid using a stored cursor, so only activity since the last email is included, and current balances are fetched for the linked accounts. Everything arrives in one email: yesterday's debits and credits by account, followed by the balance of each. Nothing is written back to your bank.
It suits small business owners, freelancers and couples who want a short daily look at their money without opening a banking app.
What you get out of it
Odd charges are caught within a day
A charge you do not recognize is far easier to dispute the morning after it posts. Banks and card issuers tend to be more helpful on fresh transactions, and you avoid paying for something twice. Fresh disputes are simpler.
Know your balance before spending
Seeing each account's balance next to the previous day's activity gives you an honest sense of what is available. That prevents overdraft fees and the awkward moment of a declined card at the till.
Expected income actually shows up
A client payment due on Tuesday should be visible by Wednesday. If it is missing from the email, you can chase the invoice while the conversation is current rather than weeks later.
No double counting, no gaps
Because a cursor marks where the last email ended, each transaction appears exactly once. You can trust that the daily emails add up to the full picture without repeated lines or missing days.
A running record by email
Each morning's message becomes a dated record of what happened in your accounts. When your bookkeeper asks about a particular week, you can search your inbox instead of downloading statements from several banks.
How it works
What happens, step by step
Every morning ClickRuntime checks your bank accounts linked through Plaid.
It picks up only the transactions that posted since yesterday's email, so nothing is listed twice.
It gets the current balance of each account.
You get one email with every balance and the new transactions underneath.
Before it runs live
- Connect Plaid
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 Plaid steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, notify, state
PLAID = "https://production.plaid.com"
def plaid(path, **body):
auth = {"client_id": credentials.secret("PLAID_CLIENT_ID"), "secret": credentials.secret("PLAID_SECRET"),
"access_token": credentials.secret("PLAID_ACCESS_TOKEN")}
resp = http.post(f"{PLAID}{path}", json={**auth, **body})
resp.raise_for_status()
return resp.json()
@on_trigger
def run(event):
cursor, added, more = state.get("cursor"), [], True
while more:
page = plaid("/transactions/sync", cursor=cursor) if cursor else plaid("/transactions/sync")
added += page["added"]
cursor, more = page["next_cursor"], page["has_more"]
accounts = plaid("/accounts/balance/get")["accounts"]
lines = [f"{a['name']}: {a['balances']['current']:,.2f} {a['balances']['iso_currency_code']}" for a in accounts]
lines += ["", "New transactions:"] + [f"{t['date']} {t.get('merchant_name') or t['name']}: {t['amount']:,.2f}" for t in added]
notify.email_me(f"Balances and {len(added)} new transactions", "\n".join(lines))
state.set("cursor", cursor)
return {"transactions": len(added)}FAQ
Common questions
How current is the data?
Can I include only some accounts?
Does it let anyone move my money?
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
Get warned when an account balance runs low
If a linked account drops under your floor, you get one Slack message, not a repeat every check.
See how it worksGet last month's spending by category
On the 1st you get totals per spending category and your top merchants, with transfers and card payments left out.
See how it worksGet alerted about transactions over $1,000
Large charges and deposits show up in Slack as soon as Plaid has them.
See how it worksKeep exploring
Set up “Get a morning email of balances and new transactions” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
