Auto-Generate and Email Recurring Invoices from a Google Sheet
An n8n workflow that reads a Google Sheet of recurring clients, generates each due invoice as a PDF with the right amount and line items, emails it, and marks it sent — so freelancers and agencies bill on time every month without touching invoicing software.
- 1
Run daily
A
Schedule Triggerruns each morning. AGoogle Sheetsread pulls all recurring clients. - 2
Keep only today's invoices
A
Filternode keeps rows whosebilling_dayequals today's day-of-month, so only clients due today proceed. - 3
Build the invoice PDF
A
Set/HTMLstep fills your invoice template with client name, line items, amount and the next invoice number, then anHTTP Requestrenders it to PDF. - 4
Email and mark sent
A
Gmailnode sends the PDF to the client, then aGoogle Sheetsupdate increments the invoice number and writes the sent date so nothing double-bills.
Frequently asked questions
How does it know which invoices are due?
Each client row has a billing day of the month and a next-invoice number. The daily run keeps only rows whose billing day matches today, so exactly the right clients are invoiced — no more, no less.
How is the PDF created?
An HTML invoice template is filled with the client's details and rendered to PDF via a converter (an HTML-to-PDF API or n8n's HTML node piped to a PDF service). The PDF is attached to the email; the sheet stores the invoice number so numbering stays sequential.