NueForm

Types de questions avancés

Documentation for Legal/Terms, Payment, Date, Ranking, Matrix, Contact Info, and Address question types.

A terms and conditions acceptance question that presents a statement and requires the respondent to accept or decline.

Legal Question
A legal/terms acceptance question.

Type identifier: legal

Properties

PropertyTypeDescriptionDefault
buttonTextstringThe legal text or terms to display. This is the text of the legal agreement the respondent is accepting.None

Behavior

  • Displays the legal text from buttonText.
  • The respondent clicks "I accept" or "I don't accept".
  • Typically used for privacy policies, terms of service, consent forms, and data processing agreements.

Validation

If required is true, the respondent must accept the terms to proceed. Declining (selecting "I don't accept") when the question is required will show a validation error.

Logic Jump Operators

equals, not_equals, is_answered, is_not_answered

When using equals, compare against true (accepted) or false (declined).

Answer Format

The answer is stored as a boolean (true for accept, false for decline, or null if unanswered).

Quiz Mode Scoring

Legal is a scorable question type:

  • Knowledge Quiz: Set correctAnswers with "true" or "false".
  • Lead Qualification: Set choiceScores with keys "true" and "false".
  • Match Quiz: Set choiceOutcomes mapping acceptance/decline to end screens.

The Legal question type is functionally similar to Yes/No but is specifically designed for terms and conditions scenarios. The UI presents "I accept" / "I don't accept" buttons instead of "Yes" / "No".


Payment

Collect payments from respondents as part of the form flow using Stripe integration. Supports two payment modes, configurable currencies, and fixed or variable amounts.

Type identifier: payment

Payment Modes

ModePlansDescription
platformAll plansNueForm processes payments and transfers funds to you. 2.9% + $0.30 fee per transaction.
connectPro, EnterprisePayments go directly to your connected Stripe account. No NueForm fees.

Properties

PropertyTypeDescriptionDefault
pricenumberFixed payment amount in major units (e.g., 29.99). Leave empty for variable amounts.None
currencystringCurrency code (e.g., "USD", "EUR", "GBP")."usd"
paymentModestringPayment mode: "platform" or "connect"."platform"
paymentDescriptionstringDescription that appears on the Stripe charge.None
paymentButtonTextstringCustom text for the pay button."Pay $X.XX"
minAmountnumberMinimum allowed amount for variable payments (major units).None
maxAmountnumberMaximum allowed amount for variable payments (major units).None
stripeConnectionIdstringID of the connected Stripe account to use.None
enableTrackingbooleanTrack cumulative payment totals.false
paymentAccountIdstringPayment tracking account ID.None
accountTotalVariablestringVariable name to store the running account total.None

Behavior

  • If price is set, the respondent sees the fixed amount and provides card details.
  • If price is not set, the respondent enters their own amount (variable/donation mode).
  • The Stripe Payment Element is rendered for secure card collection.
  • On successful payment, the form auto-advances to the next question.

Validation

If required is true, the respondent must complete the payment to proceed.

Logic Jump Operators

equals, not_equals, is_answered, is_not_answered

Answer Format

The answer is stored as a PaymentResult object:

json
{
  "paymentIntentId": "pi_abc123",
  "amount": 2999,
  "currency": "usd",
  "status": "succeeded"
}

For setup instructions, see the Collect Payments how-to guide.


Date

A date picker that allows respondents to select a date. Supports configurable date formats.

Date Question
A date picker question.

Type identifier: date

Properties

PropertyTypeDescriptionDefault
dateFormatstringThe format in which the date is displayed and parsed (e.g., "MM/DD/YYYY", "DD/MM/YYYY", "YYYY-MM-DD").System default

Behavior

  • Displays a date picker interface.
  • The respondent can type a date manually or select from a calendar widget.
  • The date is stored in ISO format regardless of the display format.

Validation

If required is true, the respondent must select a date.

RuleDescription
minMinimum allowed date.
maxMaximum allowed date.
customMessageCustom error message for date validation.

Logic Jump Operators

equals, not_equals, is_answered, is_not_answered

Answer Format

The answer is stored as a string (the date value, typically in ISO format or the configured dateFormat).


Ranking

Present a list of items for the respondent to arrange in their preferred order by dragging and dropping.

Ranking Question
A drag-to-rank question.

Type identifier: ranking

Properties

PropertyTypeDescriptionDefault
choicesChoice[]Array of items to rank. Each has an id and label.[]

Behavior

  • Items are displayed in a list.
  • The respondent drags items to reorder them.
  • Drag handles indicate draggable items.
  • Touch and mouse interaction are both supported.

Validation

If required is true, the respondent must submit a ranking.

Logic Jump Operators

equals, not_equals, is_answered, is_not_answered

Answer Format

The answer is stored as an array of strings (choice IDs in the respondent's ranked order).


Matrix

A grid-based question type where respondents rate multiple items across multiple categories.

Matrix Question
A matrix/grid question.

Type identifier: matrix

Properties

PropertyTypeDescriptionDefault
rowsstring[]Array of row labels (items being rated).[]
columnsstring[]Array of column labels (rating categories).[]
randomizeRowsbooleanRandomize the order of rows.false
randomizeColumnsbooleanRandomize the order of columns.false

Behavior

  • Displays as a grid with rows on the left and columns across the top.
  • The respondent selects one option per row.
  • On mobile, the grid adapts to a stacked format for better usability.

Validation

If required is true, the respondent must select an option for every row.

Logic Jump Operators

equals, not_equals, is_answered, is_not_answered

Answer Format

The answer is stored as an object mapping row labels to selected column labels:

json
{
  "Quality": "Excellent",
  "Speed": "Good",
  "Support": "Average"
}

Contact Info

Collect structured contact information including name, email address, and phone number in a single question.

Type identifier: contact_info

Properties

PropertyTypeDescriptionDefault
defaultCountryCodestringDefault country code for the phone field (e.g., "US", "GB").None

Behavior

  • Displays fields for First Name, Last Name, Email, and Phone Number.
  • The phone field includes a country code selector.
  • Each sub-field can be individually required or optional.

Validation

If required is true, all visible sub-fields must be completed.

Logic Jump Operators

equals, not_equals, is_answered, is_not_answered

Answer Format

The answer is stored as an object:

json
{
  "firstName": "Jane",
  "lastName": "Smith",
  "email": "jane@example.com",
  "phone": "+14155551234"
}

Address

Collect a full mailing address with optional autocomplete powered by Google Places.

Type identifier: address

Properties

PropertyTypeDescriptionDefault
enableAddressAutocompletebooleanEnable Google Places autocomplete for address lookup.false

Behavior

  • Displays fields for street address, city, state/province, postal code, and country.
  • When autocomplete is enabled, typing in the street field shows address suggestions.
  • Selecting a suggestion auto-fills all address fields.

Validation

If required is true, all address fields must be completed.

Logic Jump Operators

equals, not_equals, is_answered, is_not_answered

Answer Format

The answer is stored as an object:

json
{
  "street": "123 Main St",
  "city": "San Francisco",
  "state": "CA",
  "postalCode": "94105",
  "country": "US"
}

Data Node

An invisible question type that makes HTTP API calls during the form flow. Data Nodes are not rendered to respondents — they execute automatically and can fetch data, validate answers, or trigger external actions.

Type identifier: data_node

Properties

PropertyTypeDescriptionDefault
dataNodeUrlstringThe URL to call. Supports {variable} interpolation.None
dataNodeMethodstringHTTP method: "GET", "POST", "PUT", "DELETE"."GET"
dataNodeHeadersstringJSON string of request headers. Supports {variable} interpolation."{}"
dataNodeBodystringJSON string of request body. Supports {variable} interpolation.""
dataNodeResponseVariablestringVariable name to store the full JSON response.None
dataNodeTimeoutnumberRequest timeout in seconds.10
dataNodeSilentbooleanFire-and-forget mode — no loading screen shown.false
dataNodeDebugbooleanShow a debug panel with request/response details.false
dataNodeLoadingTextstringCustom loading text shown during the request."Loading..."
dataNodeValidationbooleanUse as a validation gate for the previous question.false

Behavior

  • Executes automatically when reached in the form flow.
  • All {variableName} tokens in URL, headers, and body are replaced with current variable values.
  • If dataNodeResponseVariable is set, the full JSON response is stored as a form variable.
  • In silent mode, the request fires in the background with no loading indicator.
  • In validation gate mode, a failing request blocks progression from the previous question.

Use Cases

  • Fetch external data: Look up product details, pricing, or user profiles during the form flow.
  • Validate answers: Check an email against your database, verify a coupon code, or validate an address.
  • Trigger actions: Send data to a webhook, create a record in your CRM, or start a workflow.

Data Nodes are invisible to respondents. They appear in the builder and workflow editor but are skipped in the live form — only the API call executes. See the Data Nodes how-to guide for examples.


Common Advanced Features

Rich Text in Titles and Descriptions

All advanced question types support rich text in their title and description fields. Rich text is entered through a Tiptap-based editor in the form builder and supports:

  • Bold, italic, underline, and strikethrough
  • Links (with href, target, rel attributes)
  • Ordered and unordered lists
  • Inline code
  • Subscript and superscript
  • Custom font families and colors via inline styles

The rich text is stored as HTML and sanitized before rendering using DOMPurify with a strict allowlist of tags and attributes.

Variable Substitution

All advanced question types support {variableName} substitution in their title and description fields. See the Variables guide.

Media Attachments

All advanced question types support media attachments (image, video, icon, QR code) with the full range of layout options. See the Creating Forms guide.

Dernière mise à jour : 6 avril 2026