The n8n Form Trigger node lets you build a web form inside n8n — no external form tool, no third-party service, no code. When someone submits the form, your workflow runs with the submitted data as its input. This guide covers every configuration option, common gotchas, and three copy-paste workflow patterns with free JSON.
What the Form Trigger Node Does
The Form Trigger node exposes a public URL that renders an HTML form. Visitors fill it out and hit Submit; n8n receives the response as a workflow trigger, with each form field mapped to a JSON property. No webhook configuration, no payload parsing — the form and the trigger are the same node.
Use it to collect contact requests, intake questionnaires, internal approval requests, support tickets, event registrations, or any structured input that would otherwise require a separate form tool.
Node Configuration
Form Title — displayed at the top of the rendered form.
Form Description — optional subtitle shown below the title.
Form Fields — define each field:
- Label — the visible field label
- Field Type — Text, Multiline Text, Number, Password, Dropdown, Multi-Select, Date, Email, File
- Placeholder — hint text shown inside the input
- Required — mark fields that must be filled before submission
- Options (Dropdown / Multi-Select) — comma-separated values
Button Label — customize the submit button text (default: "Submit").
Response Mode — what the submitter sees after clicking Submit:
-
Respond with Redirect URL— sends them to another page -
Respond with Text— shows a confirmation message
Form URL — available in the node output as $execution.resumeFormUrl (for Wait node patterns) or visible in the node panel.
How the Form URL Works
When you activate a workflow containing a Form Trigger:
- n8n generates a stable public URL (e.g.,
https://your-n8n.com/form/your-unique-path) - That URL is live as long as the workflow is active
- Each submission creates a new execution
For self-hosted n8n, the form is accessible at your configured WEBHOOK_URL. For n8n Cloud, it uses your cloud subdomain.
Supported Field Types
| Type | Output | Notes |
|---|---|---|
| Text | string | Single-line input |
| Multiline Text | string | Textarea; preserves line breaks |
| Number | number | Validates numeric input |
| Password | string | Masked input; stored as plain text in execution data |
| Dropdown | string | Single selection from options list |
| Multi-Select | array | Multiple selections; returned as array of strings |
| Date | string | ISO 8601 format (YYYY-MM-DD) |
| string | Validates email format | |
| File | binary | File upload; available as binary data in workflow |
Common Gotchas
1. Workflow must be Active for the URL to work
The Form Trigger URL only functions when the workflow is set to Active. Testing in "Test Workflow" mode opens a test form that captures one submission — switch to Active for real traffic.
2. Each submission is a separate execution
The Form Trigger does not aggregate submissions. Every form submit creates its own execution run. To aggregate, pipe submissions into a Google Sheet or database.
3. File uploads require self-hosted or Cloud with file upload enabled
File field output is binary data in the execution. Wire a Move Binary Data or Write File node to persist it. File size limits apply based on your n8n configuration (N8N_PAYLOAD_SIZE_MAX).
4. Multi-Select returns an array, not a string
If you process a Multi-Select field with a node expecting a string, use an expression like {{ $json.fieldName.join(', ') }} to convert.
5. Password fields are not encrypted in execution data
Avoid using Password fields for real credentials. Use them for simple PIN-style inputs where data sensitivity is low.
6. Form URL changes if you rename the trigger node path
The URL path is derived from the workflow ID and node name by default. Renaming the node regenerates the path; update any bookmarks or embeds.
Three Workflow Patterns
Pattern 1: Contact / Lead Capture Form
Form Trigger: Name, Email (required), Company, Message (multiline)
Google Sheets: Append submission to a leads sheet
Gmail: Send acknowledgement email to submitter + notification to you
This replaces a Typeform or Google Form + Zapier stack entirely within n8n. Every lead lands in a Sheet row and triggers an instant email reply.
{
"name": "Lead Capture Form",
"nodes": [
{"type": "n8n-nodes-base.formTrigger", "name": "Lead Form", "parameters": {"formTitle": "Contact Us", "formDescription": "We'll get back to you within 1 business day.", "formFields": {"values": [{"fieldLabel": "Name", "requiredField": true}, {"fieldLabel": "Email", "fieldType": "email", "requiredField": true}, {"fieldLabel": "Company"}, {"fieldLabel": "Message", "fieldType": "textarea"}]}, "responseMode": "responseText", "responseText": "Thanks! We'll be in touch soon."}},
{"type": "n8n-nodes-base.googleSheets", "name": "Log to Sheet", "parameters": {"operation": "append", "sheetId": "YOUR_SHEET_ID"}},
{"type": "n8n-nodes-base.gmail", "name": "Send Confirmation", "parameters": {"operation": "send", "toList": "={{ $json.Email }}", "subject": "Got your message!", "message": "Hi {{ $json.Name }}, thanks for reaching out."}}
]
}
Pattern 2: Internal Approval Request
Form Trigger: Requester Name, Request Type (Dropdown: Hardware / Software / Access), Justification (multiline), Urgency (Dropdown: Low / Medium / High)
Slack: Post formatted approval request to #it-approvals channel with all field values
Wait (Webhook): Pause execution until an approver clicks Approve or Deny in Slack
IF: Route on approval outcome → send confirmation or rejection email
This turns a chaotic email thread into a structured, auditable approval workflow. Requesters get a form URL; approvers get a Slack message with one-click approve/deny.
Pattern 3: Event Registration with Confirmation Email
Form Trigger: Full Name, Email, Company, Dietary Requirements (Dropdown), T-Shirt Size (Dropdown)
Google Sheets: Append registration row
Convert to File: Generate a CSV of all registrants (via separate scheduled workflow)
Gmail: Send personalised confirmation email with event details
For small events where a full ticketing platform is overkill, this handles registration, tracking, and confirmation in one workflow with zero third-party cost.
Free Workflow JSON
Download a ready-to-import workflow covering all three patterns above:
👉 n8n Workflow Starter Pack — pirateprentice.gumroad.com/l/sxcoe
Import via n8n → Settings → Import Workflow. Credentials not included — wire your own after import.
Related Articles
- n8n Webhook Node — for raw HTTP triggers without a UI form
- n8n Wait Node — pause a form workflow for approval or scheduling
- n8n Gmail Node — send confirmation emails after form submission
- n8n Google Sheets Node — log every form submission to a spreadsheet
What are you using the Form Trigger for — lead capture, internal requests, event sign-ups? Drop your use case in the comments.
Top comments (1)
Are you using the Form Trigger to build lead capture forms, internal approval flows, or event registrations? Drop your use case in the comments — curious what workflows people are wiring up behind their forms.