Skip to main content

Send PDF renewal invoices for expiring domains with CraftMyPDF, Gmail, and Google Sheets

Workflow preview

Workflow preview
100%
Send PDF renewal invoices for expiring domains with CraftMyPDF, Gmail, and Google Sheets preview
Open on n8n.io

1. Workflow Overview

This workflow automates the management of expiring domains and invoice generation . The workflow checks whether a domain is expiring on the current date. If so, it automatically generates a PDF inv...

Best for

  • Invoice Processing automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.manualtrigger, n8n-nodes-base.if, n8n-nodes-base.scheduletrigger, n8n-nodes-base.httprequest, n8n-nodes-base.googlesheets, n8n-nodes-base.gmail, n8n-nodes-base.stickynote

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Davide Boizza.

Original n8n.io source

1.1 Workflow description

Title
Send PDF renewal invoices for expiring domains with CraftMyPDF, Gmail, and Google Sheets
Workflow name
Send PDF renewal invoices for expiring domains with CraftMyPDF, Gmail, and Google Sheets

This workflow automates the management of expiring domains and invoice generation.

The workflow checks whether a domain is expiring on the current date. If so, it automatically generates a PDF invoice using an external API, downloads the invoice, and emails it to the client.

After sending the invoice, the workflow updates the Google Sheet to mark the invoice as sent and adds a new expiration date for the next year, ensuring continuous tracking of domain renewals.


Key Advantages

1. ✅ Full Automation of Billing Process

The workflow eliminates manual work by automatically:

  • Detecting expiring domains
  • Generating invoices
  • Sending emails to clients

This reduces administrative effort and human error.

2. ✅ Time-Saving and Scalable

Once set up, the system can handle any number of domains without additional effort, making it ideal for scaling domain management operations.

3. ✅ Accurate and Timely Notifications

By comparing expiration dates with the current date, invoices are sent exactly when needed, avoiding missed renewals or delays.

4. ✅ Seamless Integration

The workflow integrates multiple services:

  • Google Sheets (data source and tracking)
  • CraftMyPDF API (invoice generation)
  • Gmail (email delivery)

This creates a smooth, end-to-end automation pipeline.

5. ✅ Data Consistency and Tracking

After processing:

  • The sheet is updated to mark invoices as sent
  • A new expiration date is added automatically

This ensures your data remains always up-to-date and reliable.

6. ✅ Improved Cash Flow Management

Automatic invoice delivery helps ensure clients receive renewal requests promptly, increasing the likelihood of on-time payments.

7. ✅ Customizable and Extendable

The workflow can easily be expanded (e.g., adding reminders, payment tracking, or CRM integration) thanks to n8n’s modular structure.


How it works

  1. Trigger The workflow can be triggered manually or on a schedule (e.g., daily) to check for domains expiring.

  2. Fetch domain data It reads a Google Sheets document (Expiring domains) containing rows with domain names, renewal prices, client emails, expiration dates, and an INVOICE SENT flag.

  3. Check expiration condition The If node compares the row’s EXPIRING date with the current date. Only rows where the expiration date equals today proceed.

  4. Generate PDF invoice For each matching domain, it calls the CraftMyPDF API to generate an invoice using a predefined template. The invoice includes the domain name, renewal price, and grand total.

  5. Download the PDF A second HTTP request fetches the generated PDF from the URL returned by CraftMyPDF.

  6. Send email with attachment Gmail sends the invoice as an attachment to the client’s email address, with a custom message regarding domain renewal.

  7. Update the sheet The INVOICE SENT column is marked with "x" for the processed row.

  8. Add next expiration date A new row is appended to the same sheet with the same domain, renewal price, client email, and a new expiration date set to one year from today.


Set up steps

  1. Google Sheets setup
  • Create a Google Sheet with columns: EXPIRING, DOMAIN, RENEW, CLIENT EMAIL, INVOICE SENT.
  • Share the sheet with the Google account used in n8n.
  1. Credentials
  • Google Sheets OAuth2 – authenticate with access to the spreadsheet.
  • Gmail OAuth2 – authenticate the email account used to send invoices.
  • HTTP Header Auth – create a credential for CraftMyPDF with the appropriate API key.
  1. CraftMyPDF template
  • Design an invoice template in CraftMyPDF.
  • Copy the template ID and replace "xxxxxxxx" in the HTTP request node’s JSON body.
  1. Adjust date format Ensure the date format (dd/LL/yyyy) in the If node and Add next expire date node matches your sheet’s date format.

👉 Subscribe to my new YouTube channel. Here I’ll share videos and Shorts with practical tutorials and FREE templates for n8n.


Need help customizing?

Contact me for consulting and support or add me on Linkedin.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - When clicking ‘Execute workflow’

Type / Role
n8n-nodes-base.manualTrigger - manualTrigger
Config choices
Version 1

Block 2 - If

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.3

Block 3 - Schedule Trigger

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.3

Block 4 - Create PDF Invoice

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 5 - Get PDF Invoice

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.4

Block 6 - Update Sheet

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 7 - Add next expire date

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 8 - Send invoice

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.2

Block 9 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 10 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 11 - Get domains

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 12 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 13 - Sticky Note3

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 14 - Sticky Note4

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Send PDF renewal invoices for expiring domains with CraftMyPDF, Gmail, and Google Sheets
Complexity intermediate
Nodes 14
Categories Invoice Processing
Author Davide Boizza
Published 05 May 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/15494/15494.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Send PDF renewal invoices for expiring domains with CraftMyPDF, Gmail, and Google Sheets do?

This workflow automates the management of expiring domains and invoice generation . The workflow checks whether a domain is expiring on the current date. If so, it automatically generates a PDF inv...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Invoice Processing use case.