DEV Community

Pirate Prentice
Pirate Prentice

Posted on

n8n Form Trigger Node: Build Web Forms and Collect User Input in Your Workflows [Free Workflow JSON]

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)
Email 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."}}
  ]
}
Enter fullscreen mode Exit fullscreen mode

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

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)

Collapse
 
pirateprentice profile image
Pirate Prentice

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.