Form Builder

Field settings

Click any field in the builder to open its settings panel on the right. Every field has the same set of controls.

Label

The text shown above the input. Defaults to the Attio attribute name. Override it with anything that makes sense for your audience — "Work email" instead of "Email address", for example.

Labels support answer piping — you can reference previous answers using {{field_slug}} syntax. See the Answer piping article for details.

Help text

Optional text shown beneath the field input in a smaller, muted style. Use it to give respondents context: format hints ("Include country code"), examples ("e.g. Acme Corp"), or reasons why you are asking.

Help text also supports answer piping tokens.

Required

Toggle to make the field mandatory. Respondents cannot submit the form without filling in required fields. Required fields display a red asterisk next to their label.

You can also make fields conditionally required using Require rules in the conditional logic panel.

Placeholder

The grey hint text shown inside the input before the respondent types. Keep it short — one or two words. Do not repeat the label.

Hidden default

A value injected server-side that is never shown to the respondent. Useful for:

  • Source tracking — set source to "Website contact form"
  • Campaign data — set utm_campaign to the current marketing campaign
  • Internal categorisation — tag every submission with a team or department

Hidden defaults are set at form-build time. They cannot be overridden by a respondent or by any client-side manipulation.

Dynamic variables

In addition to fixed values, hidden defaults support the following dynamic variables that are resolved at submission time:

VariableValue
{{current_date}}Today's date in YYYY-MM-DD format
{{current_timestamp}}Current date and time as an ISO 8601 timestamp
For example, set a hidden submitted_at field to {{current_timestamp}} and each submission will record the exact time it was received.

Hiding fields at runtime

Fields can also be hidden dynamically at the URL level using the _hide query parameter:

?_hide=field_slug_1,field_slug_2

This lets you share the same form with different fields visible for different audiences without creating multiple forms. Hidden fields are still submitted with their configured default values. See the URL prefill & hiding fields article for full details.

Refresh schema

If you add or rename attributes in Attio after building a form, click Refresh schema in the builder toolbar. The field list updates to reflect the current Attio schema. Existing field configurations are preserved.