Weekly
Get a weekly list of overdue FreshBooks invoices
Every Monday you see which clients are late and the total still owed, without running a report.
- Runs
- Weekly
- Apps
- FreshBooks
- AI
- Not needed
- Access
- user:invoices:read
Send this to your assistant
Create a ClickRuntime automation: every Monday at 8am, email me all overdue FreshBooks invoices with the client, invoice number, days overdue and amount, plus the total outstanding.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Late payment is one of the biggest cash flow problems for small businesses. A client owes money, a reminder was meant to go out last week, and the invoice slides further into the past because nobody has looked at the overdue list. Each week of delay makes the payment less likely, and the owner who is busy delivering work only notices the gap when the bank balance looks thin.
Every week, ClickRuntime lists the invoices in FreshBooks with an overdue status, adds up the outstanding amount, and emails you the list with client names, invoice numbers, due dates and the total. It turns a vague worry about who owes us into a short, concrete list. Nothing falls through the cracks.
It is particularly useful for freelancers and agencies who chase payments themselves.
What you get out of it
Chase payments before they go stale
A weekly list puts every overdue invoice in front of you while the client still remembers the work. Early follow-up gets paid more often than reminders sent after months. Quick follow-up keeps the relationship polite.
See the total owed at a glance
The email adds up the outstanding amount, so you know how much cash is waiting. That figure helps decide whether to wait on a purchase or hire. It makes the cost of slow payers easy to see.
Know which clients are repeat offenders
Seeing the same name every week reveals clients who pay late as a habit. You can change terms, ask for a deposit or stop taking on new work for them.
Make follow-up a routine
A fixed weekly email creates a rhythm for collections. Calling or emailing overdue clients becomes a regular task rather than a guilty afterthought. Habits stick when they take only a few minutes each week.
Support better forecasting
Knowing what is overdue and for how long helps estimate when cash will actually arrive. Plans based on realistic dates are safer than plans based on invoice due dates. Cash planning feels less like guesswork.
How it works
What happens, step by step
Every Monday ClickRuntime gets the FreshBooks invoices marked as overdue.
It lists each client, invoice number, amount outstanding and how many days late it is.
It adds up the total still owed.
The list and total arrive in your inbox as one email.
Before it runs live
- Connect FreshBooks
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 FreshBooks steps into one automation
Under the hood
The code that runs this automation
from datetime import date
from clickruntime import on_trigger, credentials, http, notify
FB = "https://api.freshbooks.com"
def fb():
token = credentials.connection("freshbooks", "work")
headers = {"Authorization": f"Bearer {token}"}
me = http.get(f"{FB}/auth/api/v1/users/me", headers=headers).json()["response"]
return headers, me["business_memberships"][0]["business"]["account_id"]
@on_trigger
def run(event):
headers, account = fb()
invoices = http.get(f"{FB}/accounting/account/{account}/invoices/invoices", headers=headers,
params={"search[v3_status]": "overdue", "per_page": 100}).json()["response"]["result"]["invoices"]
lines, total = [], 0.0
for inv in sorted(invoices, key=lambda i: i["due_date"]):
owed = float(inv["outstanding"]["amount"])
days = (date.today() - date.fromisoformat(inv["due_date"])).days
lines.append(f"{inv['organization']} #{inv['invoice_number']}: {owed:,.2f}, {days} days overdue")
total += owed
notify.email_me(f"Overdue FreshBooks invoices: {total:,.2f}", "\n".join(lines) or "Nothing overdue.")
return {"count": len(lines), "total": total}FAQ
Common questions
What counts as overdue?
Does it send reminders to the clients?
Can I see the days overdue?
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 in Slack when a client pays
As soon as a FreshBooks payment is recorded, your team sees the client, invoice and amount in Slack.
See how it worksGet emailed about large new expenses
Any expense over your limit reaches your inbox the moment it is logged, so nothing big slips by.
See how it worksAnnounce new FreshBooks clients in Slack
Each time someone adds a client, the team gets the name and company in a channel so onboarding can start.
See how it worksKeep exploring
Set up “Get a weekly list of overdue FreshBooks invoices” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.
