What you'll build
A workflow that runs every morning, reads your invoices from a Google Sheet, finds the ones that are unpaid and overdue, emails each client a reminder with your payment link, and logs the date so nobody gets the same email twice in a row.
- Days 1 to 7 overdue: a friendly nudge.
- Days 8 to 21: a firmer note asking when payment will be made.
- Day 22 and after: a final reminder that offers a payment plan.
What you need
- n8n (n8n Cloud or the free self-hosted Community Edition)
- A Google account for Sheets and Gmail
- About 20 minutes
Step 1: Set up the invoice sheet
Create a Google Sheet with a tab called Invoices and these column headers:
Invoice ID | Client Name | Client Email | Amount | Currency | Due Date | Status | Payment Link | Last Reminder | Reminder Count
Write dates as YYYY-MM-DD. When a client pays, set Status to Paid and the reminders stop.
Step 2: Trigger it every morning
Add a Schedule Trigger node set to run daily at 9:00. Add a Set node after it for your settings: business name, sheet ID and how many days to wait between reminders (3 is a good default).
Step 3: Read the invoices
Add a Google Sheets node with the Get rows operation, point it at your sheet and the Invoices tab, and connect your Google account.
Step 4: Find overdue invoices and write the emails
Add a Code node. For each row it skips paid invoices, works out how many days overdue it is, skips anything reminded within the last few days, and picks the right tone:
const overdue = Math.floor((today - due) / dayMs);
if (overdue < 1) continue; // not due yet
if (status === 'paid') continue; // already paid
if (overdue <= 7) subject = `Friendly reminder: invoice ${id}`;
else if (overdue <= 21) subject = `Invoice ${id} is now ${overdue} days overdue`;
else subject = `Final reminder: invoice ${id} (${overdue} days overdue)`;
Step 5: Send the reminder and log it
Add a Gmail node (Send) using the email, subject and body from the Code node. Then add a Google Sheets node (Update row, matched on Invoice ID) that writes today's date to Last Reminder and adds one to Reminder Count.
Step 6: Test, then publish
Add a test invoice with a due date a few days ago and your own email address, click Execute workflow and check your inbox. When it looks right, click Publish and it runs on its own every morning.
Tips that get you paid faster
- Always include a payment link: Paystack, PayPal.me, Stripe or your bank details.
- Keep the first reminder warm. Most late payments are forgotten, not refused.
- Get a copy of each reminder by adding yourself in BCC, so you always know what was sent.
Want it ready-made? The AI Automation Kit includes this Invoice Chaser workflow, already built and tested, plus four AI workflows for leads, email, content and reviews.