• n8n
  • Google Sheets
  • Gmail

PaidOnTime: automatic invoice reminders for EU freelancers (n8n + Google Sheets + Gmail)

Stop chasing clients by hand. One sheet, five polite reminders, a Monday cash digest.

One-off payment · Ready-to-import n8n workflow · Test mode on by default

PaidOnTime: a spreadsheet of invoices with green paid ticks and a paper plane sending a reminder. Works with n8n, Google Sheets and Gmail.
The problem

Late payment is the norm. Chasing it shouldn't be your job.

Writing "just a friendly reminder…" emails is awkward, and it's easy to forget who you already nudged and when. Meanwhile the invoice gets older.

85% of freelancers said they get paid late at least sometimes.

2025 State of Freelance Work survey

PaidOnTime reads the invoice list you already keep in Google Sheets and sends each unpaid client a short, friendly reminder at the right moment, from your own Gmail.

How it works

Five polite reminders, each at the right moment

Every weekday at 09:00 it checks your sheet. Each unpaid invoice gets one reminder when it reaches the next stage, and never more than one a day.

  1. 3 days beforeA friendly heads-up
  2. 1 day lateA gentle nudge
  3. 7 days lateOptional B2B legal note from here
  4. 14 days lateA firmer follow-up
  5. 30 days lateFinal notice, and you get an alert

Reads your sheet

It uses the Invoices tab you already keep. Set a row to Paid, or Pause to yes, and reminders stop.

Sends from your Gmail

In the client's language (English, Romanian or German), with your payment details and sign-off.

Logs every email

It writes RemindersSent, LastStageSent and LastReminderDate back to the sheet, so nothing goes out twice.

Why freelancers like it

Set it up once, then forget it

Runs by itself

Every weekday at 09:00, in your timezone.

Polite by design

Five escalating messages, never more than one a day per invoice.

Your data stays yours

Your n8n, your Google Sheet, your Gmail. No new SaaS subscription.

Monday cash digest

An aging report: not yet due, 1–30, 31–60, 61–90 and 90+ days late, with overdue totals per currency.

EU-ready

EUR, RON or any currency, EU date and number formats, and an optional B2B late-payment note.

Safe to try

Test mode sends everything to you first, marked [TEST], and leaves your sheet untouched.

What's in the zip

Everything you need to go live

  • paidontime-workflow.json

    The n8n workflow. Import it into n8n Cloud or self-hosted n8n 1.x or 2.x (tested on 2.8.4). Ships with no credentials.

  • Invoices-sample.csv

    The sample sheet with the exact column headers.

  • README.md

    A step-by-step setup guide, about 10 minutes from import to first test email.

Also included

  • Email copy in 3 languages, editable in one place
  • Optional EU late-payment note for B2B invoices (Directive 2011/7/EU), easy to switch off
  • An alert when a final notice goes out, so you can call the client
  • An alert if Gmail refuses an email, and the row is retried next run
  • Rows with a bad email, a duplicate InvoiceID or an unreadable date are listed in the digest
  • Free updates to v1.x
About 10 minutes

From import to your first test email

No coding needed. Changing the wording means editing plain text.

  1. Create the sheet

    Import the sample CSV into Google Sheets and name the tab Invoices.

  2. Import the workflow

    In n8n: Workflows → Import from file.

  3. Connect & configure

    Add your Google Sheets and Gmail credentials, your sheet ID, sign-off and timezone.

  4. Test, then go live

    Run it in test mode, check your inbox, then switch test mode off and activate.

Pricing

One payment. No subscription.

Launch price, one-off

€5
  • Ready-to-import n8n workflow
  • Sample sheet with the exact headers
  • Step-by-step setup guide
  • Email copy in English, Romanian and German
  • Free updates to v1.x
I want this!

Refund within 14 days if it doesn't import or run on n8n 1.x/2.x and it can't be fixed.

Made for

  • EU freelancers, designers, developers, translators, consultants and small studios who invoice 5–100 clients a month
  • People who already use n8n, or are willing to start the free n8n trial or self-host it

Not for

  • Automatic payment matching from your bank or accounting tool. Not in v1: you mark invoices as Paid yourself
  • Sending more than a few hundred emails a day (Gmail's limits apply)
FAQ

Questions, answered honestly

What do I need to run it?

n8n 1.x or 2.x, either Cloud or self-hosted, and a Google account with Gmail and Google Sheets. The workflow was tested on self-hosted n8n 2.8.4.

Can I try it without emailing my clients?

Yes. Test mode is on by default: every email goes to you, marked [TEST], and your sheet is left untouched, so you can run it as often as you like. Switch it off when you're happy.

Does it detect when a client pays?

Not in v1. It doesn't read your bank or replies. Set Status to Paid (or Pause to yes) in the sheet and reminders stop for that invoice.

Could a client get the same reminder twice?

No. Every email is logged back to the sheet, and each invoice gets at most one reminder per stage, never more than one a day.

Which languages does it write in?

English, Romanian or German, set per row with the Language column. Anything else falls back to English. You can edit all the wording in one place.

Does it send legal threats?

No. The optional line only states what EU law allows for B2B invoices (Directive 2011/7/EU: statutory interest and a fixed €40 compensation). It's only added to rows marked B2B, from the 7-days-late reminder on, and you can switch it off. It is not legal advice.

Does it work with Outlook?

Not out of the box. You can swap the four Gmail nodes for n8n's Outlook node.

What about invoices that are already overdue?

An invoice that is already well overdue when you add it gets the reminder for the stage it has reached, not every earlier one. If you'd rather start gently, set LastStageSent yourself or pause it.

Refunds?

Within 14 days if it doesn't import or run on n8n 1.x/2.x and it can't be fixed.

Get paid on time, without the awkward emails

Import it, test it on yourself, and let it do the chasing from Monday.

Works with n8n Cloud or self-hosted · Google Sheets · Gmail