Cornelius Uni

Home / Guides / How to Automate Invoice Reminders with n8n and Google Sheets

n8n automation guide

How to Automate Invoice Reminders with n8n and Google Sheets

Chasing payments is awkward, so it slips. Here's how to set up polite, automatic invoice reminders in n8n that get firmer the longer an invoice is overdue, and stop the moment it's paid.

By Cornelius Oni · Updated 2026-10-24

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.

Want this running in your business?

Tell me what you repeat every week. You'll get a reply within 24 hours with a plan and a quote.