formbasedocs
Go to appApp

Building Forms

Answer piping

Type @ to reference any field's answer — in question titles, content blocks, thank-you pages, email notifications, and integration messages. Values update dynamically so each respondent sees personalized content.


How it works

Type @ in any text that supports it (see below). A mention menu appears listing your form’s fields grouped by type: Hidden Fields, Answers, Repeating groups, Calculated Fields, and Metadata. Pick a field and formbase inserts a variable chip at your cursor.

In the editor, piped values show as a chip (e.g. @First name). When a respondent fills out the form, formbase replaces each chip with their actual answer.

To type a plain @ instead — an email address or a handle — press Esc to close the menu and keep typing. The menu also closes on its own when nothing matches what you typed after the @.

Where piping works

  • Question titles — a question never offers its own answer, which would be circular
  • Content blocks: paragraphs, headings, list items, table cells, links, and image captions
  • Thank-you page content
  • Translations of any of the above, where the mention carries into each language
  • Email notification subjects and bodies: self-notification, respondent confirmation, and abandoned-form reminder emails, plus the request invitation

  • Integration templates: Slack and Discord messages, GitHub and Linear issue titles and descriptions, and Notion and Airtable field mappings

Choice option labels and matrix row and column labels take mentions too, but a narrower menu: only Hidden Fields, Calculated Fields, and Metadata — the values that exist before anyone answers. An option label is how the option reads in the summary, in exports, and in the logic picker, so it cannot depend on another answer.

Button labels and repeating group titles take no mentions. Two related features work differently: redirect query parameters pick a field from a dropdown for each parameter, and input defaults put a value inside a field instead of in text.

Pre-filling an editable field

A mention shows a value as text the respondent can’t change. To put a value inside a field so the respondent can confirm or edit it, use a field reference as the field’s default instead: type @ at the start of a Text Input, Text Area, Email, Phone Number, Website URL, or Number field. That menu lists only Hidden Fields and Calculated Fields, because those have a value before the respondent starts answering. See Default values from other fields.

That is the technique for a share link, where a value can only arrive through a URL parameter and so needs a hidden field to land in. On a request you don’t need any of it: the caller pre-fills a visible question directly when they create the request, using prefill, and can mark a key readonly so the recipient sees it but cannot change it. Build a hidden field when you want to carry data the respondent should never see, not just to pre-fill an answer. See Requests don’t need a hidden field to pre-fill.

What you can pipe

In body text the @ menu lists five groups, in this order:

GroupWhat it includes
Hidden FieldsValues seeded from URL parameters or a request’s context.
AnswersAny question on the form — text, email, number, choices, ratings, and so on.
Repeating groupsEvery entry of a repeating group at once. See Referencing repeating groups below.
Calculated FieldsComputed scores, totals, or concatenated text.
MetadataRuntime values such as the form ID, a per-submission PIN or code, and the locale.

A field that a chip points at but that no longer exists shows the tooltip “Referenced field was deleted” and renders as empty at fill time. If you delete a hidden or calculated field and add another with the same name, existing chips reconnect to it on their own. Question references never reconnect that way — titles change and collide, so they stay broken until you re-insert them.

Metadata variables

Beyond field answers, the Metadata group carries runtime values. Some are available everywhere; others only in email templates. The name below is what the chip reads.

Available in both form content and email templates

VariableWhat it shows
Form IDUnique ID for the form itself.
4 Digit PIN / 6 Digit PINA numeric PIN, unique per submission.
4 Char Code / 6 Char CodeAn alphanumeric code, unique per submission.

Form content only

VariableWhat it shows
LocaleLanguage code the respondent is reading the form in.

Email templates only

VariableWhat it shows
Form NameThe form's name from your workspace.
Submitted AtDate and time the response was submitted.
Submission IDUnique ID for the submission.
Submission Type"New", "Updated", or "Partial".
Submission LanguageBCP 47 code for the language the respondent used, for example en or nb-NO.
PDF LinkPermanent download link for the submission PDF.
Authorized E-mailThe signed-in respondent's email. Offered only while Require authentication is on.

PINs as reference numbers

Drop a 6 Digit PIN into the respondent confirmation email as a reference number. Respondents can quote it in follow-up conversations, and you can search for it in the submissions table.

Examples

  • Personalized question — “Thanks @First name! How would you rate your experience with @Company?”

  • Dynamic thank-you — “Your total is @Price. We’ll send a confirmation to @Email within 24 hours.”

  • Conditional email — “Hi @First name, your lead score is @Lead score. Our team will be in touch.”

  • Redirect with context — in redirect settings, add a name parameter mapped to the Name question and a plan parameter mapped to Plan. The preview shows the URL respondents are sent to:

https://yoursite.com/confirm?name={Name}&plan={Plan}

Referencing repeating groups

Repeating groups let respondents add as many entries as they need, so a single reference can pull in more than one value. How the @ mention resolves depends on what you point it at.

  • A single member field — formbase joins that field’s values across every entry with · . Mentioning the Name field of three guests shows “Jane Appleseed · Marcus Lee · Priya Patel”.

  • The whole group — every entry appears inline. Member values within an entry join with · , and entries are separated by commas. A group with Name and Age shows “Jane Appleseed · 34, Marcus Lee · 29”.

In an integration column the whole group appears as numbered, labeled rows instead, so each entry stays readable: “1. Full name: Jane Appleseed, Age: 34, 2. Full name: Marcus Lee, Age: 29”.

Deleting a piped field

A mention left pointing at a deleted field is a publish error, not a warning: the issue indicator in the toolbar flags every stale reference — in form content, email templates, translated emails, and integration message templates — and publishing stops until each one is fixed. Open the flagged location, remove the broken chip, and re-insert the correct field.

Next steps