Weekly
Get a Friday sales and cash summary
Every Friday you see what was invoiced, what was collected and what is still outstanding, compared with last week.
- Runs
- Weekly
- Apps
- QuickBooks
- AI
- Not needed
- Access
- accounting (read)
Send this to your assistant
Create a ClickRuntime automation: every Friday at 4pm, email me this week's QuickBooks totals for invoices created, payments received and open receivables, with last week's figures beside them.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Owners often feel good or bad about a week based on a couple of big events, not the actual numbers. Whether you invoiced more than last week, how much of it was collected, and how much is still outstanding sit in three different QuickBooks reports. Without a weekly view, a slow slide in collections can run for a month before it is noticed.
Every Friday, ClickRuntime totals the week's invoices and payments from QuickBooks, adds up the open balances, compares each figure with the previous week using a stored value, and emails you a short summary. You see invoiced, collected, outstanding and the change from last week in one place, ready to read before the weekend.
It works well as a standing agenda item for weekly owner and finance check-ins.
What you get out of it
A repeatable weekly rhythm
The same three numbers every Friday create a habit of looking at money weekly. Small changes become visible while there is still time to adjust, instead of showing up in a quarterly review.
Invoiced versus collected is clear
A busy week of invoicing with little collected is a warning that cash will be tight soon. Seeing both together makes that gap obvious, and it prompts a push on collections before bills come due.
Trend against last week is built in
The stored value from the previous Friday means each email shows the change, not just a figure. You immediately know if outstanding receivables are growing, flat or shrinking. Direction matters more than any single figure.
Meetings start from facts
A weekly check-in with partners or your bookkeeper is shorter when everyone has read the same summary. Discussion moves to what to do, not what the numbers are. People argue less about the numbers.
Problems are spotted before they compound
If outstanding balances grow for three weeks in a row, you see the pattern early. Responding with reminders, a payment plan or tighter terms is far easier at that stage than after the quarter closes.
How it works
What happens, step by step
Every Friday, ClickRuntime adds up this week's invoices and the payments received in QuickBooks.
It also totals what customers still owe.
It compares the numbers with last week's, which it saved last time.
You get an email with this week's invoiced amount, payments and open balance next to last week's figures.
Before it runs live
- Connect QuickBooks
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 QuickBooks steps into one automation
Under the hood
The code that runs this automation
from datetime import date, timedelta
from clickruntime import on_trigger, credentials, http, state, notify
REALM_ID = "1234567890"
API = f"https://quickbooks.api.intuit.com/v3/company/{REALM_ID}"
def qb(method, path, **kw):
headers = {"Authorization": f"Bearer {credentials.connection('quickbooks', 'company')}", "Accept": "application/json"}
resp = http.request(method, f"{API}{path}", headers=headers, params={"minorversion": 73, **kw.pop("params", {})}, **kw)
resp.raise_for_status()
return resp.json()
def query(sql):
return qb("GET", "/query", params={"query": sql})["QueryResponse"]
@on_trigger
def run(event):
monday = (date.today() - timedelta(days=date.today().weekday())).isoformat()
invoiced = sum(i["TotalAmt"] for i in query(
f"select * from Invoice where TxnDate >= '{monday}' maxresults 1000").get("Invoice", []))
received = sum(p["TotalAmt"] for p in query(
f"select * from Payment where TxnDate >= '{monday}' maxresults 1000").get("Payment", []))
open_ar = sum(i["Balance"] for i in query(
"select * from Invoice where Balance > '0' maxresults 1000").get("Invoice", []))
now = {"Invoiced": invoiced, "Payments received": received, "Open receivables": open_ar}
prev = state.get("last_week") or {}
lines = [f"{k}: ${v:,.2f}" + (f" (last week ${prev[k]:,.2f})" if k in prev else "") for k, v in now.items()]
notify.email_me(f"QuickBooks week of {monday}", "\n".join(lines))
state.set("last_week", now)
return nowFAQ
Common questions
How is outstanding balance calculated?
Which days count as the week?
Will the first email show a change from last week?
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
Hear when daily sales look unusual
You get an email on mornings when yesterday's sales were far above or below normal.
See how it worksGet last month's ledger as CSV
On the 1st, the general ledger and invoice list for the previous month arrive in your inbox ready for your accountant.
See how it worksCatch overdue invoices nobody emailed
A daily list of overdue invoices that were never sent to the customer, so they don't sit forgotten.
See how it worksKeep exploring
Set up “Get a Friday sales and cash summary” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.