Starter · Level 1 of 3
You can flag an overdue client invoice and send a polite reminder automatically, without a collections app or a line of code. A no-code workflow in Zapier or Make watches an invoice list, or a plain spreadsheet, for a due date that has passed, then sends a pre-written email on your behalf, tone included, before you have to think about it. Below: what you need before you start, the exact steps to build the trigger, how to word the reminder so it stays polite, how to test it safely, and when this build is more than a small client list actually needs.
Why does manual invoice follow-up break down?
Manual invoice follow-up breaks down for a simple reason: nobody wants to be the person nagging a client for money, so the reminder gets pushed to tomorrow, then next week, then forgotten until the client asks why the balance is still open. Someone juggling five or six open invoices at a time cannot reliably hold every due date in their head, and a follow-up sent a week late reads as far more awkward than one sent the day after the due date. The fix is not more willpower. It is removing the moment where a person has to decide, again, to send an uncomfortable email. Once the decision is made once, at setup, the same reminder goes out the same way every time, whether the week was busy or not.
What do you need before you start?
Either automation platform works for this build. Zapier’s free plan includes 100 tasks a month, more than enough for the handful of reminders a small client list generates in a given month; Make’s free plan runs on a monthly credit budget of 1,000 credits, which a once-a-day overdue check comfortably fits inside. Pick whichever one you already have an account with — nothing in this build depends on a paid feature.
- An invoicing tool export or a plain spreadsheet with a column each for client name, invoice number, amount, and due date.
- A free Zapier or Make account.
- A way to send the reminder automatically — Gmail or the automation platform’s own built-in email step for most cases; an SMS step (Zapier’s built-in SMS action, or a Twilio connection in either platform) if a client is more likely to actually see a text than another email.
- About 20 minutes, and one real (or realistic test) overdue invoice to try it against before it touches a client.
How do you build the automation that flags an overdue invoice?
This version uses a Google Sheet as the source of truth, since it works no matter which invoicing tool you use, and Zapier as the automation platform. The same logic carries over to Make: a daily schedule module in place of Schedule by Zapier, a Google Sheets search module in place of the lookup step, a filter module with the same condition, and an email or SMS module at the end. Neither platform requires a paid plan for this build.
- Build a tracking sheet with five columns: Client, Invoice #, Amount, Due Date, and Status (values
UnpaidorPaid). Add one helper column, Overdue Flag, with this formula in row 2 (adjust the column letters to match your sheet):=IF(AND(TODAY()>D2, E2="Unpaid"), "OVERDUE", ""), then fill it down every row. - In Zapier, create a new Zap with the trigger Schedule by Zapier → Every Day, set to run once each morning.
- Add a second step: Google Sheets → Lookup Spreadsheet Row(s), pointed at the tracking sheet, searching the Overdue Flag column for the exact text
OVERDUE. - Add a Filter by Zapier step directly after it, set to only continue if Overdue Flag (Text) Exactly matches
OVERDUE. This is what stops the Zap from sending an email on a normal day with nothing overdue. - Add a final action step — Gmail → Send Email, or the built-in Email by Zapier action — and map the client name, invoice number, amount, and due date from the lookup step into the message using Zapier’s field-insert menu, so each email fills in automatically.
How do you write a reminder message that stays polite?
The wording matters more than the automation. A reminder that reads like a threat costs more goodwill than the late payment itself. Two templates, spaced a few days apart, cover most situations — a first nudge around four days past the due date, and a firmer follow-up around ten days past it if the first one goes unanswered. Copy them directly into the email step and swap in the mapped fields.
Subject: Quick nudge — invoice [invoice #] is a few days overdue
Hi [client name],
Hope things are going well. Just a quick note that invoice [invoice #] for [amount] was due on [due date] and it looks like it’s still open on my end. If it’s already been sent, feel free to ignore this — otherwise, here’s the payment link again: [payment link].
Thanks,
[your name]
If a first reminder goes unanswered for another week, a second message can mention a late fee, but only if your contract or agreement already states one — this is not the moment to invent a penalty on the spot, and late-fee enforceability can depend on what you agreed to in writing and on local rules, so check your own agreement (and, if you are unsure, a professional) before relying on it.
Subject: Following up — invoice [invoice #] ([amount])
Hi [client name],
Following up again on invoice [invoice #], due [due date] and still showing unpaid. If there’s an issue with the invoice or the amount, let me know and I will sort it out. Otherwise, per our agreement, a late fee may apply to balances open more than [X] days — happy to work with you if timing is tight, just want to flag it before it applies.
Thanks,
[your name]
How do you test the workflow before it runs on real clients?
- Point the email step at your own inbox first, not a client’s, for every test run.
- Add one test row to the sheet with a due date set to yesterday and status set to
Unpaid, confirm the Overdue Flag formula showsOVERDUE, then use Zapier’s Test trigger button on each step to run the Zap once manually. - Read the email that lands in your own inbox exactly as a client would — check the mapped name, invoice number, amount, and due date are all correct, and that the tone still reads as polite rather than automated.
- Only after a clean test run, delete the test row, point the email step at real client addresses, and turn the Zap on to run on its daily schedule.
What can go wrong with this automation?
- False triggers. An invoice that gets paid but never gets marked
Paidin the sheet still fires a reminder. Build marking an invoice paid into whatever process already exists (updating the sheet the moment a payment lands), or trigger the status change from a payment processor’s own notification if one is available. - Client disputes. The automation has no way to know an invoice is genuinely disputed. Add a
Holdvalue to the Status column and update the Overdue Flag formula to also checkStatus<>"Hold", so a disputed invoice never triggers a reminder while it is being sorted out. - Tone missteps. An automated reminder that reads as a threat damages a client relationship faster than a late invoice does. Keep the wording close to the templates above, and cap it at two automated reminders before switching to an actual conversation.
Do you need this, or does your invoicing tool already handle it?
A number of invoicing platforms already include some version of automatic payment reminders, and the exact schedule, wording, and plan requirements vary by tool, so it is worth checking your specific invoicing tool’s current settings before building anything from scratch. When a tool already reminds reliably on its own, the workflow above is redundant — the case for building it yourself is control over timing and wording, or a spreadsheet-based setup with no invoicing tool behind it at all. If money admin like this is already worth automating, automating quarterly estimated tax reminders and set-asides is the same instinct applied to a different recurring deadline.
When should you skip this build?
- Invoice volume is low enough — one or two invoices a quarter — that checking a calendar manually is genuinely less effort than building and maintaining an automation.
- The invoicing tool already sends adequate reminders on its own.
- The client roster is small enough that a personal, manual check-in is actually the better relationship move than an automated one.
Once a reminder loop like this is running quietly in the background, the next thing worth automating in a service business is the ask that usually gets skipped entirely: requesting a testimonial once a project wraps. How to Automate Client Testimonial Requests After a Project Wraps covers exactly that, using the same kind of small, no-code trigger.