Downloads
Download the n8n workflow (JSON)
invoice-payment-reminders-n8n-gemini.json · n8n workflow · 15 steps · starts with Every Morning at 10 · uses Google Sheets, Google Gemini, Gmail · 31 KB
Import into n8n: Create Workflow, then the menu, then Import from File.
How to import it into n8n
- In n8n, create a new workflow.
- Open the ⋯ menu at the top right and choose Import from File, then pick the downloaded .json. (Or open the file, copy everything and paste it on the canvas.)
- Open each node with a warning and connect your own account: the file carries no passwords or keys.
- Run it once with Test workflow, check the result, then switch it to Active.
What this workflow does
Every morning at 10 it reads every invoice marked Unpaid in your Google Sheet. For each one it works out the stage: upcoming, due today, overdue or final. It only picks invoices that are actually due a reminder today, so nobody gets chased too early or too often. Gemini writes a short, polite email in the right tone for that stage, with the amount, due date and your payment link or UPI ID. Gmail sends it, the sheet records it, and after the final reminder you get an email asking you to call the client.
Who it is for
Freelancers, agencies, consultants, wholesalers and small businesses that send invoices and lose hours (and cash flow) chasing late payers.
What you need
- n8n (Cloud or self-hosted)
- A Google account for Sheets and Gmail
- A Google AI Studio API key for Gemini (the free tier is enough)
The workflow, step by step
Step 1 · Load unpaid invoices
- Every Morning at 10 (Schedule) and Workflow Configuration (Set): your business name, sender, accounts email, currency, payment instructions, language and reminder timing.
- Get Unpaid Invoices (Google Sheets): reads rows where Status is Unpaid.
Step 2 · Pick today's reminders
- Work Out Reminder Stage (Set): days overdue and the stage.
- Keep Invoices Due a Reminder Today (Filter): not too early, not more often than your gap, never more than your maximum.
Step 3 · Write with Gemini
- Write Reminder with AI (Basic LLM Chain) with Google Gemini Chat Model and Reminder Email Parser: a 60 to 120 word email whose tone matches the stage.
- Use Standard Reminder Text (Set): if Gemini fails, a plain standard reminder is sent instead.
Step 4 · Send, log and escalate
- Send Reminder to Client (Gmail): replies go to your accounts email.
- Log Reminder on Invoice (Google Sheets): updates the count, date and stage.
- Was This the Final Reminder? and Ask Owner to Call Client: after the last reminder, you get asked to pick up the phone.
- Tell Owner a Reminder Failed (Gmail): if Gmail can't send, you are told and the count stays the same, so it retries tomorrow.
Setup
- Download the JSON below and import it in n8n (Create workflow > ⋯ > Import from File).
- Create a Google Sheet with a tab named
Invoicesand these headers: Invoice Number, Client Name, Client Email, Amount, Due Date, Status, Reminders Sent, Last Reminder At, Last Reminder Stage. Format Due Date as plain text,YYYY-MM-DD. - Add Google Sheets OAuth2, Gmail OAuth2 and Google Gemini (PaLM) API credentials, and select your spreadsheet in both sheet nodes.
- Fill in Workflow Configuration:
remindDaysBeforeDue(default 2),daysBetweenReminders(3) andmaxReminders(4), plus your names, email and payment details. - Set the workflow timezone in Workflow Settings.
- Test it with your own email in Client Email: add one row due in 2 days and one already 8 days late, then click Execute workflow. You should get an "upcoming" heads-up and an "overdue" reminder, and both rows should show Reminders Sent 1.
- Activate. When a client pays, change their Status to
Paid.
How to customise
- The prompt and emails are a starting point. Rewrite them for your business.
- Write Reminder with AI: tone and wording for each stage.
- Use Standard Reminder Text: the fallback email.
- Ask Owner to Call Client: the alert to you.
- Every Morning at 10 and the reminder day values: the timing.
- Read invoices from Airtable, Zoho Invoice or QuickBooks instead, or add a late fee line to the final reminder.
Why Gemini
Each reminder is a short email built from a few fields. Gemini Flash writes clean, polite text in English, Hindi or other languages and costs almost nothing per email.
Guardrails
- This emails real clients. Test with your own address in Client Email first.
- A client is never reminded more than
maxReminderstimes. After that it is your call.
Troubleshooting
- No invoices picked up: Status must be exactly
Unpaid, and Due Date must be text inYYYY-MM-DD. - Wrong stage: check the workflow timezone.
- Same client reminded every day: the Log Reminder node could not write. Check the Invoice Number column matches exactly.
Want the members-only resources too?
A free account unlocks them all, including the ones shared in DMs.

