QuickBooks to Gmail, cleaner overdue invoice reminders
Late invoices are annoying. The real problem is the follow-up: logging into QuickBooks, filtering, copying details into an email, and hoping you didn’t miss the one invoice that matters.
Bookkeepers feel it at month-end, and agency owners feel it every week. Even a solo operator ends up doing the same “QuickBooks Gmail reminders” routine over and over, which means reminders go out late or not at all.
This workflow pulls overdue invoices from QuickBooks Online, groups them by customer, builds one clean email per customer (with a tidy table and total due), and sends it through Gmail. You’ll see how it works, what you need, and what to watch out for.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: QuickBooks to Gmail, cleaner overdue invoice reminders
flowchart LR
subgraph sg0["Scheduled Run Flow"]
direction LR
n0["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/quickbooks.svg' width='40' height='40' /></div><br/>Fetch Outstanding Invoices"]
n1@{ icon: "mdi:message-outline", form: "rounded", label: "Dispatch Reminder Email", pos: "b", h: 48 }
n2["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Build Invoice Email HTML"]
n3["<div style='background:#f5f5f5;padding:10px;border-radius:8px;display:inline-block;border:1px solid #e0e0e0'><img src='https://flowpast.com/wp-content/uploads/n8n-workflow-icons/code.svg' width='40' height='40' /></div><br/>Group Invoices by Client"]
n4@{ icon: "mdi:play-circle", form: "rounded", label: "Scheduled Run Trigger", pos: "b", h: 48 }
n4 --> n0
n2 --> n1
n0 --> n3
n3 --> n2
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n4 trigger
class n2,n3 code
classDef customIcon fill:none,stroke:none
class n0,n2,n3 customIcon
The Problem: Overdue reminders turn into messy, repetitive work
Manually sending overdue invoice reminders sounds simple until you’re doing it under pressure. You check QuickBooks, filter unpaid invoices, open each customer, and then build an email that’s “professional enough” while still being direct. If a customer has three or four outstanding invoices, you either send multiple emails (which irritates them) or you stitch everything into one message (which is where mistakes happen). Meanwhile, you’re not doing the work that actually improves cash flow, like tightening terms or following up on the biggest balances first.
It adds up fast. And the friction compounds when you’re busy or you have more than a handful of customers.
- Building reminder emails by hand usually takes about 10 minutes per customer once you include checking amounts, dates, and invoice numbers.
- Customers with multiple overdue invoices often get multiple reminders, which creates confusion and “Which one do you mean?” replies.
- Copy-paste errors happen in the worst places, like the total due or an invoice number, and that can lead to awkward back-and-forth.
- When reminders aren’t consistent, you end up training customers that paying late has no real consequence.
The Solution: Consolidated QuickBooks reminders sent automatically
This n8n workflow runs on a schedule (daily, weekly, whatever fits your business), pulls every invoice in QuickBooks Online with an outstanding balance, and then organizes those invoices by customer. Instead of generating a bunch of separate reminders, it creates one email per customer with a clear, readable HTML table listing each overdue invoice and a total amount due at the bottom. The message is consistent, the formatting looks polished, and the “what do I owe?” question is answered immediately. Finally, the workflow sends the email using your connected email account, so the reminder lands exactly where you want it to: the customer’s billing address on file.
The workflow starts with a scheduled trigger. Then QuickBooks Online provides the unpaid invoice data, the workflow groups invoices customer-by-customer, and a templated HTML email is generated. Gmail (or another email credential in n8n) sends the finished reminder automatically.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say you follow up with 15 customers every Friday. Manually, if it takes about 10 minutes to check QuickBooks, copy invoice details, total them, and draft a decent email, that’s roughly 2.5 hours of repetitive work. With this workflow, the “time spent” becomes: a minute to glance at the sent emails and handle exceptions, plus whatever background processing n8n needs. Call it 10 minutes total. You just got about 2 hours back, and reminders still go out on time.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- QuickBooks Online for pulling unpaid invoice data
- Gmail (or SMTP email) to send reminder emails automatically
- QuickBooks API access (connect via the QuickBooks credential in n8n)
Skill level: Beginner. You’ll connect accounts, adjust a date filter, and paste your payment link into the email template.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
A scheduled run kicks things off. You choose when it runs (every morning, every Friday, end of month). n8n starts the process automatically in the background.
QuickBooks Online provides the invoice list. The workflow fetches invoices with a balance greater than zero within a configurable date window (the default setup typically looks back around 90 days).
Invoices get grouped by customer. Instead of treating each invoice like its own reminder, the workflow collects them into a single list per customer so the final message stays simple.
A clean HTML email is generated and sent. The workflow builds a personalized email with a table of overdue invoices and a total due, then sends it through your connected email credential (Gmail or another provider).
You can easily modify the schedule and the invoice date range to match your billing process based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Scheduled Trigger
Set the workflow’s run schedule so it checks for unpaid invoices automatically.
- Add and open Scheduled Run Trigger.
- Configure the Rule interval to your preferred schedule (e.g., daily or weekly).
- Ensure Scheduled Run Trigger connects to Fetch Outstanding Invoices.
Step 2: Connect QuickBooks
Retrieve all outstanding invoices from QuickBooks.
- Open Fetch Outstanding Invoices.
- Credential Required: Connect your quickBooksOAuth2Api credentials.
- Set Resource to
invoiceand Operation togetAll. - Enable Return All to
true.
Step 3: Set Up Invoice Grouping and HTML Builder
Group invoices by client and create the HTML body used in reminder emails.
- Open Group Invoices by Client and confirm the JavaScript Code groups invoices with
Balance > 0and outputscustomer,customerId, andinvoices. - Open Build Invoice Email HTML and confirm the JavaScript Code builds the HTML email and assigns it to
item.json.emailBody. - Verify the execution flow: Fetch Outstanding Invoices → Group Invoices by Client → Build Invoice Email HTML.
[YOUR_PAYMENT_LINK] and [YOUR_ADDRESS]) before sending real emails.Step 4: Configure the Reminder Email
Send the completed invoice reminder to each client.
- Open Dispatch Reminder Email.
- Credential Required: Connect your smtp credentials.
- Set HTML to
={{ $json.emailBody }}. - Set Subject to
=Unpaid Invoice Reminder for : {{$json.customer}}. - Set To Email to
={{ $json.invoices[0].json.BillEmail.Address }}and From Email to[YOUR_EMAIL]. - Ensure Build Invoice Email HTML connects to Dispatch Reminder Email.
BillEmail.Address, the email send will fail. Consider validating or defaulting missing addresses in Group Invoices by Client.Step 5: Test and Activate Your Workflow
Validate the full flow before enabling scheduled sends.
- Click Execute Workflow to run Scheduled Run Trigger manually.
- Confirm Fetch Outstanding Invoices returns invoice items from QuickBooks.
- Check Build Invoice Email HTML output includes
emailBodywith the rendered HTML. - Verify Dispatch Reminder Email sends an email to the expected recipient.
- When satisfied, toggle the workflow Active to enable scheduled runs.
Common Gotchas
- QuickBooks Online credentials can expire or need specific permissions. If things break, check the QuickBooks credential in n8n and re-authenticate first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 20 minutes if your QuickBooks and Gmail accounts are ready.
No. You’ll mostly connect credentials and edit a couple of template values.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in QuickBooks Online costs (your existing subscription) and your email provider.
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, and you should. Change the Scheduled Run Trigger to daily, weekly, or month-end. Then update the “Build Invoice Email HTML” code node to match your brand voice, your footer details, and your payment portal link. Many teams also tweak the QuickBooks date filter so only recent overdue invoices are included, which keeps emails shorter.
Usually it’s expired authorization in the QuickBooks credential inside n8n. Reconnect the account, then rerun the workflow once to confirm invoices are being fetched. If it still fails, check that the QuickBooks company you connected is the right one, and confirm the account has permission to read invoices.
A typical small business can run this daily without issues, even with hundreds of invoices.
It depends. n8n is a better fit when you need logic like “group invoices by customer” and generate a real HTML table, because you’re not fighting platform limits or paying extra for branching. You can also self-host, which keeps execution volume from becoming a monthly surprise. Zapier or Make can still work if your setup is very simple, but formatting a consolidated table and handling edge cases can get awkward fast. If you want someone to sanity-check the best approach for your billing process, Talk to an automation expert.
Once this is running, overdue follow-ups stop being a weekly chore. The workflow handles the repetitive stuff, and you can focus on getting paid.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.