Short answer: Automate invoice creation with n8n by connecting Google Sheets (invoice data) to PDF.co (PDF generation) to Gmail (sending). Add an IF node for overdue days to trigger a 3-stage reminder sequence at 3, 7, and 14 days — no manual follow-up needed. Setup takes under 45 minutes and costs under $2/month to run.
Sending invoices manually is one of the biggest hidden time drains for small businesses. You format a PDF, send it by email, wait, chase it, send a follow-up, forget, send another, lose track of who owes what — and meanwhile $5,000 or more quietly sits unpaid in accounts receivable. In 2026, there is no reason to do any of this by hand. This tutorial shows Peak Automations' recommended approach: a fully automated invoice workflow using n8n, Google Sheets, PDF.co, and Gmail.
Why manual invoicing is hurting your cash flow
The numbers from 2026 make a strong case for automation. Manual invoicing is not just slow — it is genuinely expensive and error-prone at a scale most business owners underestimate.
More striking: 61% of all late payments are caused by invoice errors — wrong amounts, missing references, wrong email addresses. Automating invoice creation from a clean Google Sheets source eliminates that error vector entirely, because the same data that tracks the client and amount is what populates the invoice.
What does the automated workflow do?
The workflow runs on a Schedule trigger in n8n, polling your Google Sheets invoice tracker every hour. On each run it does three things automatically:
- Creates and sends new invoices. Any row with Status = "pending" triggers PDF generation via PDF.co and an email send via Gmail. Status is updated to "sent" with the date.
- Sends escalating payment reminders. Rows with Status = "sent" and a past due date trigger reminder emails based on how many days overdue: 3-day nudge, 7-day follow-up, 14-day final notice. The Last Reminded column prevents duplicates.
- Alerts you on seriously overdue invoices. Any invoice unpaid after 14 days triggers a personal email alert to you (the owner) listing which client owes what — your cue to call rather than email.
The workflow handles any number of clients simultaneously. Each row in Google Sheets is processed independently, so 10 clients can be at different reminder stages at the same time.
What tools do you need?
Total running cost for 50 invoices/month: under $2. No subscription required beyond your VPS hosting. If you already run n8n for other automations, the incremental cost is essentially zero.
Skip building this yourself — get the ready-to-import template
Peak Automations' Invoice Processing Automation ($89, one-time) is a pre-built, tested n8n and Make.com workflow that covers invoice creation, Gmail sending, 3-stage reminders, and owner alerts. Import in under 5 minutes.
Get the Invoice Automation TemplateHow to build the workflow: step by step
This section walks through building the workflow from scratch in n8n. If you have not set up n8n yet, read our n8n free setup guide first — it takes about 20 minutes.
Step 1 — Set up your Google Sheets invoice tracker
Create a new Google Sheet with these column headers:
| Column | Purpose | Example value |
|---|---|---|
| Client Name | Who you are invoicing | Acme Plumbing |
| Where to send the invoice | owner@acmeplumbing.com | |
| Invoice Number | Unique ID for each invoice | INV-2026-047 |
| Amount | Total due in dollars | 1250.00 |
| Due Date | Payment deadline (YYYY-MM-DD) | 2026-06-22 |
| Status | Workflow tracks state here | pending / sent / paid |
| Invoice Sent Date | When the invoice was sent | 2026-06-15 |
| Last Reminded | Date of most recent reminder | 2026-06-18 |
| Reminder Stage | Which reminder was sent last | 3-day / 7-day / 14-day |
Every new invoice you add gets Status = "pending". The workflow handles everything from there — you never need to touch the row again unless the client marks it paid.
Step 2 — Connect Google Sheets using a Service Account
Do not use standard OAuth for this workflow. Standard OAuth tokens expire and break when passwords change. Use a Google Service Account instead:
- Go to Google Cloud Console and create a new project (or use an existing one).
- Enable the Google Sheets API and Gmail API.
- Create a Service Account under IAM & Admin. Download the JSON key file.
- Share your invoice Google Sheet with the Service Account email address (ending in
@[project].iam.gserviceaccount.com). - In n8n, add a Google Sheets credential using "Service Account" auth. Paste the JSON key contents. This credential never expires.
This is the same pattern used in reliable billing automations at scale. One password change at your company will never silently break your invoicing workflow again.
Step 3 — Add the Schedule Trigger
In n8n, add a Schedule Trigger node set to run every 1 hour. This is the heartbeat of the workflow — every hour it wakes up and checks your sheet for new invoices and overdue reminders.
Step 4 — Read the sheet and filter by status
Add a Google Sheets node to read all rows from your invoice tracker. Then add an IF node with two output branches:
- Branch A (New invoice): Status = "pending"
- Branch B (Overdue reminder): Status = "sent" AND Due Date is in the past
Step 5 — Generate the PDF invoice
For Branch A (new invoices), add an HTTP Request node calling the PDF.co API at https://api.pdf.co/v1/pdf/convert/from/html. In the request body, pass your invoice HTML template with n8n expressions to merge in the client name, invoice number, amount, due date, and your business details. PDF.co returns a temporary download URL.
A minimal invoice HTML template typically includes your logo, business address, client address block, line items table, subtotal, tax, and total. The template is reused for every invoice — only the data values change.
Step 6 — Send the invoice email via Gmail
Add a Gmail node to send the invoice. Set the recipient to the Email column from your sheet. In the email body, include a clear payment link (a Stripe payment link or a "Pay by bank transfer" note). Attach the PDF by downloading it from the PDF.co URL using an HTTP Request node before the Gmail node.
After sending, update the row in Google Sheets: set Status to "sent" and log today's date in Invoice Sent Date.
Invoices that include embedded payment links (Stripe, PayPal, or ACH) are paid 174% faster on average — 7 days to payment vs. 18 days for invoices with no payment link. Always include one.
Step 7 — Set up the 3-stage payment reminder sequence
Branch B handles overdue invoices. Add a Code node to calculate the days since the invoice was due: Math.floor((Date.now() - new Date(dueDate)) / 86400000). Then add IF nodes for each reminder stage:
Subject: "Quick reminder: Invoice [INV-2026-047] is due." Tone: friendly and assuming the client forgot. Include a payment link and your bank details. Update Reminder Stage to "3-day".
Subject: "Invoice [INV-2026-047] is now 7 days overdue — please advise." Tone: professional and direct. Ask if there is an issue with the invoice. Reattach the PDF and payment link. Update Reminder Stage to "7-day".
Subject: "Final notice: Invoice [INV-2026-047] requires immediate payment." Set a strict deadline (e.g., "Payment is required by [date + 5 days] or this matter will be escalated"). Update Reminder Stage to "14-day". Also trigger the owner alert Gmail node.
Each IF branch checks both the days overdue AND the Reminder Stage column — so a client who has already received the 7-day email does not get the 3-day email again on the next hourly run. Update Last Reminded and Reminder Stage after every email.
Step 8 — Test the workflow end to end
Add a test row to your Google Sheet with Status = "pending" and a due date three days in the past. Run the workflow manually in n8n. Verify: (1) a PDF invoice was generated, (2) the Gmail was sent to the correct address, (3) the row Status updated to "sent", and (4) the overdue branch triggers and sends the Day 3 reminder on the next run.
Manual vs automated invoicing: the comparison
| Metric | Manual invoicing | Automated with n8n |
|---|---|---|
| Cost per invoice | $12.88–$22.00 (labor + time) | Under $1.00–$2.78 |
| Time spent on reminders | 14 hours/week average | 0 hours — fully automated |
| Invoice error rate | 39% contain errors | Near 0% (data from Sheets) |
| On-time payment rate | 6% paid within 30 days | 33–42% paid within 30 days |
| Average days to payment | 18 days (no payment link) | 7 days (with payment link) |
| Reminder follow-through | Inconsistent — depends on memory | 100% — every invoice, every time |
| Cash collected after 14 days | 15% success rate (late follow-up) | 65% success rate (within 48h) |
The case for automation is not marginal. For a business sending 50 invoices per month at $22 manual processing cost, that is $1,100/month in labor cost saved — before counting the improvement in cash flow from faster payment collection.
What about Make.com instead of n8n?
This tutorial uses n8n because it is free to self-host with unlimited runs, which is ideal for hourly invoice polling. Make.com works equally well for the same workflow — the logic is identical, just in Make's visual scenario builder. Make.com's free tier allows 1,000 operations per month, which covers roughly 30 invoices per month if you count each workflow step. For higher volumes, n8n's self-hosted model is more cost-effective. For a detailed comparison of both platforms, read our full Make.com vs n8n guide.
Related: automate the full billing cycle
Invoice creation is one piece of the billing cycle. Two other workflows that pair well with this one:
- Stripe payment recovery — when a client pays by card and the charge fails (expired card, insufficient funds), an automated dunning sequence recovers 20–40% of failed Stripe payments without any manual effort.
- Lead follow-up automation — once a lead converts to a paying client, an automated onboarding email sequence handles the first 10 days of client communication automatically — so your invoice workflow has a client to bill in the first place.
Frequently asked questions
Yes. n8n is free to self-host on a $5/month VPS using Docker, giving you unlimited workflow executions. The only paid component in this invoice workflow is PDF.co, which costs from $0.01 per PDF on pay-as-you-go. For a small business sending 20–50 invoices per month, total running cost is well under $2/month.
The core stack is: n8n (workflow automation), Google Sheets (invoice database), PDF.co or similar (PDF generation), and Gmail (sending). All four connect inside a single n8n workflow. Make.com works equally well as the automation platform if you prefer a visual no-code approach.
2026 data shows automated reminder sequences collect payments 12 to 18 days faster than manual follow-up. Following up within 48 hours of a missed payment achieves a 65% collection success rate — waiting 14 days drops that to just 15%. Businesses sending invoices with embedded payment links get paid 174% faster, with average payment time dropping from 18 days to 7 days.
Standard OAuth tokens expire and break if the user's password changes or their account is deleted. A Google Service Account creates permanent credentials independent of any human user. For billing automations that handle real money, this is critical — a broken credential means invoices silently stop sending.
Best practice in 2026 is a 3-stage sequence: Day 3 (polite nudge assuming the client forgot), Day 7 (firm follow-up asking if there is an issue), Day 14 (final notice with a strict deadline). After Day 14, trigger an owner alert to follow up personally — automated emails alone have diminishing returns on invoices more than 14 days past due.
Yes. The workflow reads all rows in your Google Sheet on every hourly run, so it handles any number of clients simultaneously. Each row is processed independently — different clients can be at different reminder stages at the same time, and the Status and Last Reminded columns track each client's state individually.
2026 benchmarks put manual invoice processing at $12.88 to $22.00 per invoice, driven by labor for data entry, error correction, and reminder chasing. Automated processing drops this to under $1.00 to $2.78 per invoice. For a business sending 50 invoices per month, that is a saving of $500 to $1,000 per month in time and labor.