Weekly
Send overdue invoice reminders from Xero
Customers more than 14 days overdue get their invoice again from Xero, and you get the list of who was reminded.
- Runs
- Weekly
- Apps
- Xero
- AI
- Not needed
- Access
- accounting.transactions
Send this to your assistant
Create a ClickRuntime automation: every Tuesday at 10am, resend by email any approved Xero sales invoice more than 14 days overdue, add a note to its history, and email me who received one.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Reminding customers about overdue invoices is a task everyone agrees is necessary and nobody wants to do. Someone has to open Xero, filter for overdue, click into each invoice, send it again and write down that a reminder went out. When the month gets busy this stops, and the invoices that most need a nudge are the ones that never get it.
Every week, overdue sales invoices are found in Xero, and each customer is emailed the invoice again through Xero itself, so the message comes from your usual sending address with the invoice attached. A history note is added to each invoice, and you receive a summary of who was reminded.
Small businesses with many customers and no credit controller are the best fit, particularly when most overdue invoices are simply forgotten rather than disputed.
What you get out of it
Forgotten invoices get paid
Many late invoices are not disputes. They are overlooked, and a weekly reminder with the invoice attached is often all it takes for the customer to pay. A routine nudge often recovers money that would otherwise have taken months to arrive.
A consistent process, not a mood
Every overdue customer is treated the same way each week, so reminders do not depend on whether the owner was in a good mood to chase that week. Consistency is also fairer, because no customer is chased harder or less than another.
Each reminder is documented
The history note on each invoice records the date a reminder was sent, which helps if a dispute comes up and you need to show you followed up. A dated note is solid evidence of your collection efforts in any later dispute.
The send comes from Xero
Because the reminder goes out through Xero, it carries your branding and your invoice template, and the customer can pay using the same link they received before. Customers recognize the email and already know how to pay from it.
You still see the whole picture
The summary email lists who was reminded, so you can phone the larger accounts yourself and avoid an automated nudge sitting alone on a sensitive relationship. Personal calls to big accounts then build the relationship while routine chasing runs on its own.
How it works
What happens, step by step
Every week ClickRuntime finds the sales invoices in Xero that are more than 14 days overdue.
It has Xero email each of those invoices to the customer again.
It adds a note to each invoice's history in Xero so your team can see a reminder went out.
You get a summary email listing who was reminded, the amount and how many days late each invoice is.
Before it runs live
- Connect Xero
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 Xero 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
API = "https://api.xero.com/api.xro/2.0"
def xero_headers():
token = credentials.connection("xero", "work")
tenant = http.get("https://api.xero.com/connections", headers={"Authorization": f"Bearer {token}"}).json()[0]["tenantId"]
return {"Authorization": f"Bearer {token}", "xero-tenant-id": tenant, "Accept": "application/json"}
@on_trigger
def run(event):
headers = xero_headers()
params = {"Statuses": "AUTHORISED", "where": 'Type=="ACCREC" AND AmountDue>0'}
sent = []
for inv in http.get(f"{API}/Invoices", headers=headers, params=params).json()["Invoices"]:
late = (date.today() - date.fromisoformat(inv["DueDateString"][:10])).days
if late <= 14:
continue
http.post(f"{API}/Invoices/{inv['InvoiceID']}/Email", headers=headers, json={}).raise_for_status()
http.put(f"{API}/Invoices/{inv['InvoiceID']}/History", headers=headers,
json={"HistoryRecords": [{"Details": f"Overdue reminder sent ({late} days late)"}]})
sent.append(f"{inv['InvoiceNumber']} {inv['Contact']['Name']}: {inv['AmountDue']:,.2f}, {late} days late")
if sent:
notify.email_me(f"Sent {len(sent)} overdue reminders", "\n".join(sent))
return {"sent": len(sent)}FAQ
Common questions
Will it remind customers who are already disputing an invoice?
How often will the same customer be reminded?
What does the customer actually receive?
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 overdue invoices in Slack by age
Each morning Slack lists invoices overdue by 7, 14 and 30 days, without repeating ones already flagged at that stage.
See how it worksSee the week's payments every Friday
A Friday email lists the payments Xero recorded this week and their total.
See how it worksGet a Monday list of bills falling due
You start the week knowing which supplier bills need paying in the next seven days.
See how it worksKeep exploring
Set up “Send overdue invoice reminders from Xero” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.