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 / 3Section headings rendered with semantic <h1>/<h2>/<h3> tags.
  • Static ContentRead-only markdown — instructions, disclaimers, embedded notes.

Input

  • Text InputSingle-line text. Validation: regex, min/max length, required.
  • Multi-Line InputTextarea. Same validation as Text Input.
  • Number InputNumeric only. Optional min/max and step.
  • EmailEmail format validation built in.
  • URLURL format validation built in.
  • PhonePhone format with country code support.
  • Date / TimeNative date and time pickers.
  • File UploadSingle or multiple files. Configurable max size and allowed extensions.
  • PasswordMasked input.
  • TableInline 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

  • DropdownSingle-select. Static options or dynamic from a webhook.
  • Multi-SelectPick many options. Static or dynamic.
  • Radio ButtonsSingle-select rendered as buttons.
  • CheckboxMulti-select rendered as checkboxes.

Survey

  • CSATPurpose-built customer satisfaction score with 3- or 5-point labels.
  • Star Rating1–5 (configurable) star scale.
  • NPS Score0–10 Net Promoter Score scale.
  • Linear ScaleNumeric scale with min/max labels.
  • Likert ScaleAgree/disagree across multiple statements.
  • SliderContinuous numeric slider with min/max/step.
  • RankingDrag-to-rank a list of options.

Structure

  • Page BreakSplits a long form into multiple pages with a Next/Back navigator. Validation runs at each boundary.

Dynamic

  • Info CardA 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 CardRenders the approval's context payload as a clean summary card for the approver. Used inside approval-shaped forms.
  • Decision ButtonsApprove / Reject buttons. The exactly-one decision field that an approval form must have.
  • Decision TablePer-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.com

The 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.

Hidden values require an explicit system fieldHidden fields are not submitted just because a URL contains their name. For trusted operational values such as ticket IDs, company IDs, contact IDs, or pod context, mark the hidden field as System field and add the same key to URL prefill allowed keys. This keeps normal hidden fields from becoming client-controlled submission data.

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 initialValueWebhookUrl so 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.