Getting Started

Create your first form

Building a form takes three steps: choose a source, configure fields, and publish. Here is the full walkthrough.

Step 1 — Create a new form

From the dashboard, click New form. Give your form a name — this is internal only and never shown to respondents.

Step 2 — Choose a source

Every Attio Forms form is tied to a single source: either an Attio object (e.g. People, Companies) or a list (e.g. "Waitlist", "Inbound leads").

  • Object — each submission creates or updates a record on that object.
  • List — each submission creates a record and adds it as an entry to the list.

Select your source from the dropdown. Attio Forms fetches the schema immediately, including all attributes and their types.

Step 3 — Configure fields

The builder shows every attribute on your chosen object or list. For each field you can:

  • Toggle visibility — show or hide it from the form entirely.
  • Set required — mark the field mandatory so respondents cannot skip it.
  • Edit the label — override the Attio attribute name with friendlier copy.
  • Add help text — shown below the field input to guide respondents.
  • Set a hidden default — pre-fill the field with a fixed value that is never shown (useful for UTM parameters, source tracking, etc.).

Drag fields up and down to reorder them.

Step 4 — Preview

Click Preview in the top-right to see exactly what respondents will see. Preview runs in your browser with full conditional logic active — you can fill it out to test the experience.

Step 5 — Publish

When you are happy with the form, click Publish. The form gets a unique slug (e.g. /f/waitlist-signup) and is immediately live. Copy the link from the share panel and send it anywhere.

What happens on submission

  1. Attio Forms validates all fields server-side.
  2. For object sources: a new record is created, or an existing record is matched by email and updated.
  3. For list sources: a record is created and a list entry is added.
  4. The submission is recorded in the Attio Forms dashboard with a timestamp and status.