n8n Forms: Built-In Data Collection Without Typeform
- Create an n8n Form Trigger with custom fields, title, and submit button text
- Distinguish between the test URL and production URL and know when to use each
- Build a multi-step form by chaining Form nodes with Wait nodes
- Apply n8n Forms to practical use cases: lead intake, support triage, and approval workflows
Why Build Forms in n8n?
Third-party form tools (Typeform, Tally, JotForm) are useful, but they add cost, a separate integration layer, and a dependency on an external service. The n8n Form Trigger node builds and hosts the form directly inside your n8n instance — no external tools required. The form submission fires the workflow immediately, with all field data already structured and available as $json in the next node.
Creating Your First Form
Add an n8n Form Trigger node to a new workflow. In the node settings, you define the form:
- Form Title — shown at the top of the form page.
- Form Description — a subtitle or instructions for the respondent.
- Fields — add as many fields as needed. Each field has a label, field type, and optional placeholder. Available types: Text, Textarea, Number, Date, Email, Select (dropdown), Checkboxes, and File Upload.
- Submit Button Label — customise the submit button text.
The Form Trigger generates two URLs: a test URL for use while building and debugging (submissions appear in the editor), and a production URL to share with respondents when the workflow is active.
Building Multi-Step Forms
n8n supports multi-step forms by chaining Form nodes together with Wait nodes:
- First Form Trigger collects basic information (name, email, company).
- Wait node pauses until Step 1 is submitted.
- Second Form node (using the n8n Form node, not the trigger) presents the next set of fields, pre-populated with data from Step 1 if needed.
- The final submission triggers the rest of the workflow.
This pattern works well for onboarding flows, multi-stage intake forms, and quote calculators where early answers determine what questions appear next.
Embedding and Sharing Forms
The production URL can be:
- Shared directly as a link via Slack, email, or QR code.
- Embedded in a webpage using a standard
<iframe>. - Opened programmatically (for example, linked from a Slack message as the human review step in an approval workflow).
Practical Use Cases
- Lead intake — capture contact information and requirements, then trigger CRM sync automatically.
- Support triage — collect issue details before routing to the right team queue.
- Content brief submission — structured brief form that triggers the content drafting workflow from lesson 7.
- Internal request forms — expense requests, access requests, or IT support tickets that route to an approval workflow.
- Approval forms — the Wait node's Form resume mode uses an n8n form as the approval interface, allowing multi-field responses rather than simple yes/no buttons.
- n8n Form Trigger hosts and serves the form directly — no Typeform or external form tool needed
- The test URL shows submissions live in the editor; switch to the production URL when sharing with users
- Multi-step forms are built by chaining Form nodes with Wait nodes — no special configuration needed
- Form submissions arrive as structured JSON in the next node, ready for routing without any parsing