Form builder & field types
The builder has three regions: the palette on the left (every field type, grouped), the canvas in the middle (your form), and the settings panel that opens when you click a field. Click or drag from the palette to add a field.
Field types
FormNode ships with the field types below. Every choice field (Dropdown, Multi-Select, Radio, Checkbox) can be flipped to dynamic mode and pull options live from a webhook.
Layout
- Heading 1 / 2 / 3 — Section headings rendered with semantic <h1>/<h2>/<h3> tags.
- Static Content — Read-only markdown — instructions, disclaimers, embedded notes.
Input
- Text Input — Single-line text. Validation: regex, min/max length, required.
- Multi-Line Input — Textarea. Same validation as Text Input.
- Number Input — Numeric only. Optional min/max and step.
- Email — Email format validation built in.
- URL — URL format validation built in.
- Phone — Phone format with country code support.
- Date / Time — Native date and time pickers.
- File Upload — Single or multiple files. Configurable max size and allowed extensions.
- Password — Masked input.
- Table — Inline editable data table. Per-column type (text, number, dropdown). Configurable max rows.
- Matrix (Beta) — Workflow review grid for row-by-column data editing — skills by people, users by roles, clients by services, or any bulk assignment workflow.
Choice
- Dropdown — Single-select. Static options or dynamic from a webhook.
- Multi-Select — Pick many options. Static or dynamic.
- Radio Buttons — Single-select rendered as buttons.
- Checkbox — Multi-select rendered as checkboxes.
Survey
- CSAT — Purpose-built customer satisfaction score with 3- or 5-point labels.
- Star Rating — 1–5 (configurable) star scale.
- NPS Score — 0–10 Net Promoter Score scale.
- Linear Scale — Numeric scale with min/max labels.
- Likert Scale — Agree/disagree across multiple statements.
- Slider — Continuous numeric slider with min/max/step.
- Ranking — Drag-to-rank a list of options.
Structure
- Page Break — Splits a long form into multiple pages with a Next/Back navigator. Validation runs at each boundary.
Dynamic
- Info Card — A callout block that pulls live content from a webhook to show context to the submitter — e.g., the customer's CIPP tenant snapshot above the form.
Approval
- Context Card — Renders the approval's context payload as a clean summary card for the approver. Used inside approval-shaped forms.
- Decision Buttons — Approve / Reject buttons. The exactly-one decision field that an approval form must have.
- Decision Table — Per-row approve/reject with optional schedule per row. Used for batch approvals (firmware upgrades across N devices, license assignments, etc.).
The settings panel
Click any field on the canvas to open the settings panel. Every field has these core properties:
- Label — what the user sees above the input
- Name — the JSON key in the submission payload (use snake_case; this is what your n8n workflow will read)
- Description — helper text below the label
- Required — toggles whether the field blocks submission when empty
- Hidden — removes the field from the visible form and from normal submissions
- System field — allows an explicitly hidden operational value, such as a ConnectWise ticket ID, to stay in the submission when populated by URL prefill or pod context
Conditional logic
Any field can be shown or hidden based on the value of another field. In the settings panel, expand Conditionsand add rules like "show this field when license_type equals Microsoft 365 Business Standard."
Conditions are evaluated client-side as the user fills the form, and again server-side at submit time, so a hidden field cannot be filled in via DevTools.
API-created forms can also show or hide fields from the selected context record. Use source paths such as org.integrationMappings.aadc_server to show fields only for customers with a matching integration mapping. A Dropdown with contextSelector can provide that runtime context for public forms; ambiguous mapping values fail closed.
Prefill from URL parameters
Append ?field_name=value to a form URL and FormNode will prefill that field when the form loads. This is the cleanest way to ship pre-filled forms from email or PSA tickets:
https://yourcompany.formnode.io/f/onboarding?company_name=Acme&assigned_tech=tech@example.comThe Name (not the Label) is the URL parameter key. So a field with name company_name reads from ?company_name=....
For larger or more sensitive prefill data, such as customer contact tables, use the prefill token API from your automation. The API stores the payload encrypted and returns a short form URL containing only prefillToken.
Table fields support JSON row arrays and can submit an additive _diff payload for added, updated, and removed rows. Mark one table column as the diff key when a stable ID or email exists.
Matrix fields (Beta)
Matrix fields turn two lists into an editable review grid. Use them when a human needs to inspect or modify many related records at once before a workflow writes changes back to a source system.
Common examples include ConnectWise skills by member, users by roles, clients by services, devices by policies, and approvers by request rows. Internally, the field stores cells as [{ rowId, columnId, value }], which is easier for n8n and agents to diff than dozens of separate dropdown fields.
- Rows and columns can be static lists or dynamic webhook-backed axes.
- Cell type can be checkbox for assignments or single-select for values such as skill level.
- Initial values can be loaded through
initialValueWebhookUrlso the grid opens with current source-system state. - Review mode shows added, removed, and changed cells with human-readable row and column labels before submit.
On submission, FormNode includes the current cell list, a _rowMap helper, and a _diff payload with added, removed, and updated arrays. Treat Matrix as Beta while testing real workflows; the field is designed for desktop/admin use first.
Pages and navigation
Drop a Page Breakfield anywhere on the canvas to split the form into a multi-page wizard. Each page becomes a numbered step with Next and Back buttons. Validation runs at the boundary, so the user can't advance until the current page passes.
Focused survey presentation
Survey, CSAT, and NPS forms can use Focused survey presentation from Form settings > Theme. This keeps the same submission, webhook, dynamic field, prefill, Turnstile, and tenant enforcement paths as classic forms, but shows one answerable question at a time for a more polished respondent experience.
Agents can create the same experience through MCP or the API by setting purpose to csat and presentationMode to survey in the form configuration.
Validation
Each field type ships with sensible defaults (Email checks email format, URL checks URL format, etc.). For Text and Multi-Line Input you can add a custom regex pattern plus a custom error message in the settings panel.