Overdue invoice reminders (Day 7 / 14 / 30)
Get paid faster without awkward chase emails.
The problem
Unpaid invoices sit in a spreadsheet or QuickBooks while you avoid the awkward chase. Cash flow stalls, and by day 30 it's even harder to ask.
What it does
Every morning it pulls open invoices, works out how many days each is overdue, and sends the right reminder once: polite at day 7, firmer at day 14, and a final notice plus an owner alert at day 30. Mark an invoice paid and the chase stops.
- Import
overdue-invoice-reminders.n8n.json. - Set INVOICES_URL to an endpoint returning a JSON array [{id, customer_name, email, amount, due_date, status, payment_url, reminder_stage}]. A Google Sheet via Apps Script, QuickBooks Invoices API, or Stripe Invoices all work. Swap the HTTP node for a native node if one exists.
- Attach a Resend (or SMTP) credential on the email nodes and a Twilio credential on the Day-30 owner SMS. Set BUSINESS_NAME, OWNER_PHONE, and FROM_EMAIL env vars.
- After each send, write
reminder_stageback to your source (Sheet update / QBO custom field / Stripe metadata). Without that, the same stage can fire again tomorrow. - Activate; it runs daily at 9am. Test with one unpaid row first.
Credentials: each HTTP node uses a generic credential (Twilio = HTTP Basic Auth with Account SID/Auth Token; Resend = Header Auth Authorization: Bearer <key>). Values like $env.BUSINESS_NAME read environment variables. On n8n Cloud, replace them with literal text or n8n Variables ($vars).
Make / Zapier notes
Make and Zapier both work well if your invoices live in Google Sheets or you can hit a JSON URL. QuickBooks Online and Stripe have built-in reminder toggles — turn those on first if you only need a simple due/overdue email. Use this recipe when you want staged escalation, an owner alert at day 30, or reminders QBO/Stripe won't do (grouped invoices, "already contacted" state, custom copy).
If you already invoice inside HighLevel, its payment-reminder workflows can cover the email side; keep this recipe for Sheet/QBO/Stripe sources or for the Day-30 owner SMS.
Compliance notes
Transactional email is fine for unpaid invoices the customer already owes (not a promo). Still: use a real From address on your domain, include your business name and a way to reply, and stop the sequence the moment status flips to paid. Don't mix marketing offers into reminder copy. If you also text about invoices, treat SMS under TCPA / A2P 10DLC the same as other transactional texts (consent for that number, business name, STOP/HELP, 8am–9pm local).
Expected result
Most overdue balances clear after the day-7 or day-14 nudge. Day 30 flags the ones that need a human call — without you remembering to check the aging report.
Workflow file: overdue-invoice-reminders.n8n.json