
This workflow demonstrates how to automatically generate and host dynamic interactive forms from Google Sheets using CustomJS.
Instead of manually building HTML forms or relying on rigid form builders, the workflow fetches form configurations (fields, labels, dropdown options) from a spreadsheet, transforms them into JSON, and instantly generates a beautiful Tailwind CSS form. The hosted HTML page can be connected to a custom domain with one click.
The result is a fully responsive, production-ready feedback form that updates dynamically whenever you change your Google Sheet.
Building custom forms manually and setting up backend webhooks is:
This workflow automates the entire process by using your Google Sheet as a CMS. It converts sheet rows into structured JSON and feeds it directly into a CustomJS HTML template, generating the UI elements instantly. It even provides a dedicated submission handler to catch the form data and save it right back to your spreadsheet!
All without writing a single line of backend server code.
Automated Form Generation
Generate text fields, date pickers, and dropdowns instantly from Google Sheets data.
Static HTML Hosting
Live forms are instantly deployable and accessible anywhere.
Custom Domains
Connect your own domain with a single click via CustomJS.
Tailwind CSS & Alpine.js
Premium aesthetics and smooth, dynamic client-side interactions out of the box.
Automated Submission Handling
A built-in webhook automatically captures form data and appends timestamps before saving.
QR Code Ready
Easily convert the form URL into a PDF/QR code for physical sharing (e.g., in-store feedback).
Manual or Scheduled Trigger
Run the workflow on demand to deploy the form, or on a schedule to keep it synced.
Load Configuration from Google Sheets
Pull form metadata and field structures from the spreadsheet.
Prepare Structured JSON
Format sheet rows into a structured JSON payload for the UI.
Generate HTML Form
Feed the JSON into a CustomJS HTML template node to automatically build the form UI.
Host Static HTML
Handle Submissions
A dedicated Webhook (POST) node catches form submissions, appends a server timestamp, and logs them to a "Responses" Google Sheet tab.
To use this template, you need to create a Google Sheet with two specific tabs.
Form_ConfigThis tab defines how your form looks and what fields it has. Create these exact column headers in the first row:
Setting_Type | Key | Value | Label | Options | Required
Example Configuration Data:
| Setting_Type | Key | Value | Label | Options | Required |
|---|---|---|---|---|---|
| Meta | title | Customer Feedback | |||
| Meta | description | We value your thoughts! | |||
| Field | name | text | Full Name | true | |
| Field | Email Address | true | |||
| Field | department | select | Department | HR, IT, Sales | true |
| Field | comments | textarea | Your Comments | false |
Form_ResponsesThis tab will automatically collect the data submitted by users. Create column headers that match the Key values you defined in the Config tab, plus a column for the timestamp:
Example Response Headers:
| name | department | comments | timestamp |
|---|