Field types
Every field type: what each one collects, how it validates, and when to use it.
These are the twenty field types a respondent can be asked for, plus five that ask nothing: heading is a section title, image shows a picture, page-break splits the form into steps, hidden records a value from the link rather than from the respondent, and calculation works out a number from the other answers. Payment fields are their own thing and are set up in the builder rather than listed here. Each field carries a label, an optional placeholder and help text, and a required flag.
| Type | Shown as | When to use it |
|---|---|---|
text | Short text | One line of free text: names, job titles, reference numbers. |
textarea | Long text | A multi-line box for anything open ended: feedback, descriptions, questions. |
email | Validated as an email address before the form will submit. Use this rather than a text field if you plan to reply. | |
phone | Phone | Digits, formatted as the respondent types. |
url | Website | A link, validated as one. A bare example.com is accepted; anything that isn't http or https is rejected. |
name | Full name | A first name and last name box instead of one free text line, so your exports get two clean columns you can sort and mail merge. |
address | Address | A grouped street / city / region / postcode block instead of one free-text line. |
number | Number | Numeric input only: quantities, ages, budgets. |
select | Dropdown | One answer from a list, collapsed. Best above roughly six options. |
radio | Single choice | One answer from a list, all options visible. Best for two to six options. |
checkbox | Multiple choice | Any number of answers from a list. |
ranking | Ranking | The respondent puts every option in order. The answer is the order itself, not a pick. |
rating | Star rating | One to five stars: satisfaction, quality, how it went. Set a different ceiling if five is wrong. |
scale | Opinion scale | A numbered scale with a caption at each end. The 0–10 default is the standard NPS question. |
date | Date | A native date picker: no format ambiguity between regions. |
time | Time | A native time picker, for appointments and slots. Pair it with a date field. |
file | File link | A URL pointing at a file the respondent already hosts. |
upload | File upload | The respondent uploads the file itself; it is stored with the response. |
signature | Signature | A drawn signature, for consent and acknowledgement forms. |
appointment | Appointment | The respondent picks a real open slot from your recurring availability, not just a date or time, an actual booking that can't be double booked. |
heading | Section heading | Display only, collects no answer. Use it to break a long form into named sections. Add help text to it and it becomes a statement: a paragraph the respondent reads before answering. |
image | Image | Display only, collects no answer. Shows a picture in the form: a product photo, a floor plan, a diagram the question refers to. Its label is the alt text. |
page-break | Page break | Display only, collects no answer. Splits the form into steps with a progress bar, one page per break. |
hidden | Hidden field | Renders nothing. Captures a query parameter from the link the respondent arrived on: ?utm_source=newsletter lands in the export. |
calculation | Calculation | Shows a number worked out from other answers as the respondent types: an order total, a price with tax, a quiz score. Nothing to fill in. |
Quoting an earlier answer
A label or help text can quote something the respondent already told the form. Write {{<field id>}}and it is replaced, as they type, with that field’s answer, so a form that asks for a name can follow it with “Thanks Ada, what is your email?” In the builder there is an Insert an earlier answer menu under each of those inputs, so you never type an id by hand, and a preview line shows how the sentence will read.
The reference is the other field’s id, never its label, that is what lets you rename a question afterwards without breaking every sentence quoting it. Only fields earlier in the form can be quoted, since later ones have no answer yet.
Add a fallback after a pipe for the case where they skipped it: {{q1|there}}reads “Hi there” rather than “Hi ”. Without one, an unanswered reference simply renders as nothing. A hidden field can be quoted too, so ?name=Ada on the end of your link greets people before they have typed anything.
Calculations: totals, prices and scores
A calculation field shows a number worked out from other answers, and it updates as the respondent types. Use it for an order total, a price with tax, a quote, or a score. Add one from the Calculation card in the builder, then write its formula in the panel on the right.
A formula uses +, -, * and /, brackets, and three helpers: round, min and max. Pick the questions it reads from the Insert an earlier answer menu, the same one answer quoting uses, and a preview line shows it with question names, for example {Seats} * {Ticket type}. Something like round(({{subtotal}} + {{addons}}) * 1.1, 2) adds 10% tax and rounds to cents.
Any answer counts as the first number written in it. That lets you price choices without a separate price list: an option called VIP ($90) counts as 90, and a multiple choice answer adds up everything picked. An empty answer counts as 0, so the total works while the form is half filled. A calculation can read another calculation above it, which is how you build a subtotal and then a total.
The total is worked out again on our server when the form is submitted, so the number in your responses and exports is always the real one, never something a respondent typed or edited in their browser.
Choice fields
select, radio, checkbox, and ranking all take an options array of strings. radio and select both accept exactly one answer, the difference is whether the options are visible up front. Show them when there are few, collapse them when there are many.
ranking is the odd one: the respondent does not pick an option, they put all of them in order, and the stored answer is that order. Mark it required and every option has to be placed.
Ratings and scales
rating and scale are the same question, pick one number from a short range, drawn two ways, and they share the same settings. scaleMax is how many stars a rating offers (five by default) or where a scale tops out. A scale also takes scaleMin (0 or 1) and a caption for each end, scaleMinLabel and scaleMaxLabel.
The default scale is the standard Net Promoter question: 0 to 10, “Not likely” to “Very likely”. Set the captions on any scale you change, a bare row of numbers does not tell the respondent which end is the good one. Either type accepts at most eleven points; past that they stop being tappable on a phone, which is where most forms get answered.
Required fields and validation
Set required: true and the form will not submit without an answer. Type level validation runs on top of that: email must look like an address, number rejects text, date and time use native pickers, url must be an http or https link, and a rating or scale answer has to be a number that was actually on the scale. Validation runs in the browser and again on the server, so a crafted request cannot slip past it.
Requiring everything is the most common mistake. Every required field is another reason to abandon the form. Mark only what you genuinely cannot act without.
Sections
A heading field renders as a section title in the flow of the form. Use them once a form covers more than one topic, Contact details, Your project, Consent. Do not open a form with a heading that repeats its title; the title already renders above the fields.
Save and continue later
Long forms lose people who run out of time. Any form with more than one page, or one that asks a question at a time, shows a Save and continue later link under the Next button. There is nothing to turn on.
The respondent gets a private link that reopens the form on the same step with their answers filled in, and can have it emailed to themselves. The link works for 30 days from their last save. Files and signatures are not saved, so they add those again when they come back. Once the form is submitted, the saved copy is deleted.
Anyone holding the link can see those answers, so respondents are told to keep it to themselves. You never see a saved draft in your responses; only a submitted form shows up there.
Ordering
Every field has an order number, which is what the renderer sorts on. In the studio you drag; over MCP you set it explicitly, and since update_form replaces the whole array, send fields back with their orders already correct.