Weekly
See overdue invoices every week
Each Monday you get open invoices past their due date, oldest first.
- Runs
- Weekly
- Apps
- Stripe
- AI
- Not needed
- Access
- read
Send this to your assistant
Create a ClickRuntime automation: every Monday at 8am, email me all open Stripe invoices past their due date with the customer, amount and days overdue, oldest first.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
An agency invoices clients on net-30 terms and then forgets about them. Some pay on time, some a few days late, and a few drift to 60 or 90 days because nobody chased. Stripe shows each open invoice but nothing pulls the late ones together, so the owner discovers on the 28th that 9,000 dollars is outstanding and the payroll account looks thin.
Every week, ClickRuntime lists open invoices in Stripe, keeps the ones whose due_date has passed, sorts them with the oldest first and emails you the list with customer, amount and days overdue. It gives you a single page to work through on Monday morning, starting with the accounts that matter most.
It suits businesses that bill by invoice rather than automatic card charge, where collecting is a manual task.
What you get out of it
Late payments get chased in order
Oldest first puts the most urgent accounts at the top. You start with the 75-day-old invoice rather than the one that went overdue yesterday, which is how collections work best, and is what most credit control routines recommend.
Cash flow surprises shrink
Seeing the total outstanding every week lets you predict what will arrive this month. You can decide whether to delay a purchase or ask a client for a deposit before a gap appears in the account balance.
Small amounts stop slipping away
Invoices of a few hundred dollars are the ones most likely to be forgotten, and they add up. A weekly list keeps them in view, so those amounts are collected instead of written off after a year.
Client relationships stay professional
A short, polite reminder sent on day five lands very differently from an angry email on day ninety. Regular visibility lets you chase early and in a friendly tone, which protects the relationship while still getting paid.
Bad debt gets spotted before it is too late
An account that appears on the list week after week becomes a clear signal. You can pause new work, call the client or escalate while there is still leverage, rather than after the company has stopped responding.
How it works
What happens, step by step
Every Monday, ClickRuntime lists your open Stripe invoices.
It keeps the ones that are past their due date and sorts them oldest first.
You get an email with each invoice's days overdue, customer, amount and link, plus the total.
Before it runs live
- Connect Stripe
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 Stripe steps into one automation
Under the hood
The code that runs this automation
import time
import stripe
from clickruntime import on_trigger, credentials, notify
@on_trigger
def run(event):
stripe.api_key = credentials.secret("STRIPE_API_KEY")
now = time.time()
overdue = [i for i in stripe.Invoice.list(status="open", limit=100).auto_paging_iter()
if i.due_date and i.due_date < now]
if not overdue:
return {"overdue": 0}
overdue.sort(key=lambda i: i.due_date)
lines = [f"{int((now - i.due_date) // 86400):>3} days {i.customer_name or i.customer_email} "
f"{i.amount_remaining / 100:,.2f} {i.currency.upper()} {i.hosted_invoice_url}" for i in overdue]
total = sum(i.amount_remaining for i in overdue) / 100
notify.email_me(f"{len(overdue)} overdue invoices (${total:,.2f})", "\n".join(lines))
return {"overdue": len(overdue)}FAQ
Common questions
Does it include invoices that are still within their payment terms?
What about invoices set to charge automatically?
Can the email show the customer's contact details?
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 yesterday's revenue every morning
Each morning you see yesterday's charges, refunds and new subscriptions in one message.
See how it worksGet a monthly revenue report
On the 1st you get last month's gross, refunds, net and new vs cancelled subscriptions, compared with the month before.
See how it worksGet warned when payments look unusual
You're told when today's payments drop sharply or refunds spike compared with a normal day.
See how it worksKeep exploring
Set up “See overdue invoices every week” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.