> ## Documentation Index
> Fetch the complete documentation index at: https://filla.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a form with AI

> Describe the form you need in plain English. Filla drafts the tables, fields, and form, then asks for approval before writing anything to Airtable.

## What this is

The AI form builder lets you describe what you want to collect — "a job application form with resume upload, LinkedIn URL, and a cover letter" — and Filla drafts the matching Airtable tables, fields, and form layout for you. You review the plan before anything is written to your base.

Nothing is created until you click **Build it** in the confirmation step. The AI never modifies your Airtable schema or Filla data on its own.

## When to use it

* You're starting a new form and the table doesn't exist yet.
* You want fields suggested for a form type you've described in words.
* You want to extend an existing table with a few new fields and a fresh form on top, without picking each one manually.

If you already know exactly which table and fields you want, **Start from scratch** is faster — see [Creating a form](/docs/forms/creating-a-form).

## Opening the builder

There are two entry points:

* From the **Forms** page when you have no forms yet — the main hero says "Let's build your first form" with the prompt input front and center.
* From the **New Form** button (top right of the Forms page or anywhere else it appears) — open the dropdown and pick **Ask AI to build it**.

In both cases the builder opens as a full-screen dialog with the chat on the left and a live form preview on the right.

## How a session works

<Steps>
  <Step title="Pick a destination base">
    A small **Destination** chip at the top-left of the prompt card shows where the form will live. Pick the Airtable base before sending your first message — the builder needs it to know what tables and fields already exist.
  </Step>

  <Step title="Describe the form">
    Type a description into the prompt box. Be specific about what you collect, who fills it out, and any special behavior you need ("payment status only visible to staff," "weekly volunteer roster").

    Press **Cmd/Ctrl+Enter** to send, or click **Generate form**.

    The placeholder rotates through example prompts so you can see the shape of a good brief.
  </Step>

  <Step title="Watch the agent inspect and draft">
    The agent runs three tools you'll see callouts for in the chat:

    * **Reading your Airtable base** — looks at existing tables and fields so it can reuse what's already there.
    * **Checking the docs** — when your request touches a Filla feature it isn't sure about (edit mode, conditional logic, etc.).
    * **Saving the plan** — writes the draft spec to memory and refreshes the live preview on the right.

    The right pane updates as the spec evolves. Switch pages in the preview using the page tabs above the canvas.
  </Step>

  <Step title="Iterate by chatting">
    The plan is a draft. Ask for changes in the same chat: "make Email required," "add a Newsletter signup checkbox," "move Notes to a second page." Each change re-runs `save_spec` and updates the preview.
  </Step>

  <Step title="Review the plan">
    When the form looks right, click **Apply** in the bottom-right. A confirmation dialog summarizes exactly what will happen:

    > Adding 1 new table and 3 new fields to your Airtable base (Customer Feedback).
    > Building Customer Feedback Survey — responses go into Customer Feedback.

    Hit **Build it** to confirm or **Not yet** to keep iterating.
  </Step>

  <Step title="Apply">
    Filla creates the missing tables and fields in Airtable, then creates the form. When it's done, the bottom bar turns green with **Open form** — clicking it opens the new form in the editor where you can keep tuning by hand.
  </Step>
</Steps>

## What the AI can and can't do

| ✅ Can                                                                | ❌ Can't                                                                 |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| Create new Airtable tables and fields                                | Delete or rename existing tables / fields                               |
| Reuse an existing field by name (matches against the inspected base) | Modify Airtable record data                                             |
| Pick the right field type and display style for what you described   | Configure automations, webhooks, or workflows                           |
| Draft multi-page forms with sections                                 | Set up conditional logic on its own (you can ask for it after applying) |
| Suggest theme colors and button style                                | Connect external services or send emails                                |

For everything in the right column, build the form first then make those edits in the editor — see [Building your form](/docs/forms/the-form-editor) and [Automations](/docs/automations/overview).

## Reused fields keep their real options

When the AI marks a field as **already exists** in your base, the live preview hydrates that field with its real Airtable schema — single-select fields show your real choices with their real colors, linked-record fields point at the real linked table, and so on. If you don't see real options for a reused select, the field hasn't actually been matched against an existing one — it's still a draft.

## The confirmation summary

Before anything is written, the dialog shows you:

* **What's being added to Airtable** — counts of new tables and new fields, plus the table names so you know which base areas grow.
* **The form** — its name, the destination table, and the page/field counts.

If the spec only adds form fields to an existing table without creating new ones, the line collapses to "Your Airtable base stays as is — we're only building the form."

## Common questions

<AccordionGroup>
  <Accordion title="Will the AI overwrite existing fields with the same name?">
    No. When a field with the same name already exists, the agent marks it as "already exists" and uses the real Airtable field as-is. New fields are added alongside it. Names are matched case-insensitively after trimming whitespace.
  </Accordion>

  <Accordion title="What if Apply fails halfway through?">
    Filla rolls back the form-extension save if any Airtable step failed, so you don't end up with a half-built orphan in your workspace. You'll see the errors in the chat and can ask the agent to fix the spec and try again. Tables and fields that were successfully created stay in Airtable — retries skip them automatically.
  </Accordion>

  <Accordion title="Can I edit the form after it's built?">
    Yes — that's the expected next step. The builder hands you off to the regular editor with everything pre-filled. You can rename, reorder, restyle, add automations, and so on.
  </Accordion>

  <Accordion title="Does this count toward my plan limit?">
    No. Drafting the spec and creating the form structure don't count. Only **submissions** to the live form (and other writes Filla makes on your behalf) count toward your monthly records limit. See [Billing](/docs/billing) for what counts.
  </Accordion>

  <Accordion title="Can I build a form for a workspace with no bases?">
    No. The builder needs a destination base. If your authorized scope returned no bases, you'll see a "no bases came through" hero on the Forms page — re-open Airtable's consent screen and include a base. See [Connecting Airtable](/docs/connecting-airtable).
  </Accordion>
</AccordionGroup>
