Skip to main content

Generate and host dynamic interactive forms from Google Sheets with CustomJS

Workflow preview

Workflow preview
100%
Generate and host dynamic interactive forms from Google Sheets with CustomJS preview
Open on n8n.io

1. Workflow Overview

Quick overview Host and deploy custom HTML lead forms for any CRM instantly with CustomJS. This workflow generates responsive Tailwind CSS webforms, hosts them on custom d...

Best for

  • Document Extraction automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.googlesheets, n8n-nodes-base.code, n8n-nodes-base.manualtrigger, @custom-js/n8n-nodes-pdf-toolkit-v2.pdftoolkit, n8n-nodes-base.webhook, n8n-nodes-base.stickynote, n8n-nodes-base.scheduletrigger

Source and attribution

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

Original n8n.io source

1.1 Workflow description

Title
Generate and host dynamic interactive forms from Google Sheets with CustomJS
Workflow name
Generate and host dynamic interactive forms from Google Sheets with CustomJS

Quick overview

Host and deploy custom HTML lead forms for any CRM instantly with CustomJS. This workflow generates responsive Tailwind CSS webforms, hosts them on custom domains, and routes submissions via an n8n webhook directly into HubSpot, Salesforce, Pipedrive, or databases.

How it works

  1. Trigger & Content Prep: The workflow triggers to compile your custom HTML form structure and any dynamic CRM fields or tracking tokens.
  2. Instant Deployment: The HTML (styled with Tailwind CSS) is sent to the CustomJS node, which instantly deploys and hosts the live page.
  3. Lead Capture: When a user submits the form, the data is securely sent to the built-in n8n Webhook node.
  4. CRM Syncing: n8n processes the payload and maps the fields directly into your preferred CRM, creating or updating contacts automatically.

Setup

  1. Customize the Form: Open the CustomJS HTML template node and adjust the input fields to match your CRM properties (e.g., First Name, Email).
  2. Link the Webhook: Ensure the n8n Webhook URL is set as the submission action in your form HTML.
  3. Connect Your CRM: Add your CRM node (e.g., HubSpot, Pipedrive, or Airtable) directly after the Webhook node to automatically map and save incoming leads.
  4. Go Live: Run the workflow to host the form on CustomJS, and optionally connect your custom brand domain.

Requirements

  • A CustomJS account to host the static HTML page and manage domains.
  • A CRM account (like HubSpot, Pipedrive, Salesforce) or a database connected to your n8n instance to store form submissions.

Customization

  • Tailwind & Alpine.js: The template includes a ready-to-use modern layout, but you can paste any custom HTML/CSS framework into the CustomJS node.
  • Dynamic Content: You can inject dynamic data from previous n8n nodes directly into the HTML code before it gets deployed.

Additional info

Custom Domains: CustomJS allows you to mask the hosted form URL with your own branded domain (e.g., forms.yourcompany.com) with just a single click. Security: Since submissions go straight from the client browser to your private n8n webhook, no lead data is stored on third-party form servers.

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 - Read Form Config

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

Block 2 - Format Config

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 3 - Generate HTML

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 4 - When clicking ‘Execute workflow’

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

Block 5 - Upsert HTML Page

Type / Role
@custom-js/n8n-nodes-pdf-toolkit-v2.pdfToolkit - pdfToolkit
Config choices
Version 1

Block 6 - Webhook (POST)

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

Block 7 - Add Timestamp

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 8 - Save Response

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

Block 9 - Convert HTML to PDF

Type / Role
@custom-js/n8n-nodes-pdf-toolkit-v2.pdfToolkit - pdfToolkit
Config choices
Version 1

Block 10 - Sticky Note

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

Block 11 - Sticky Note1

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

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 - Schedule Trigger

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

Block 15 - Sticky Note4

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

3. Summary Table

Workflow Generate and host dynamic interactive forms from Google Sheets with CustomJS
Complexity advanced
Nodes 15
Categories Document Extraction
Author CustomJS
Published 09 May 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/15575/15575.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 Generate and host dynamic interactive forms from Google Sheets with CustomJS do?

Quick overview Host and deploy custom HTML lead forms for any CRM instantly with CustomJS. This workflow generates responsive Tailwind CSS webforms, hosts them on custom d...

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 Document Extraction use case.