---
title: "Forms"
description: "Agent-native form builder — describe the form you want in chat, fine-tune it visually, publish a public link, and watch responses roll in."
---

# Forms

Forms is a form builder for anyone who needs to collect information — signups, feedback, registrations, surveys — without writing code. Describe the form you want to the agent, fine-tune it visually when you want direct control, and publish a link anyone can fill out.

<WireframeBlock id="doc-block-forms1">
  <Screen
    surface="desktop"
    html={
      "<div style='min-height:560px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:56px 40px'><div style='display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;width:min(700px,92%);min-height:420px'><div style='text-align:center'><h1 style='margin:0'>Ask Forms</h1><p class='wf-muted' style='margin:10px 0 0'>Describe the form you want. Fine-tune it visually once it exists.</p></div><div class='wf-card' style='width:100%;min-height:140px;display:flex;flex-direction:column;gap:18px'><span class='wf-muted'>Create a beta signup form with role, team size, and priority use case</span><div style='flex:1'></div><div style='display:flex;align-items:center;gap:10px'><div style='flex:1'></div><button class='primary'>↑</button></div></div><div style='display:flex;gap:8px;flex-wrap:wrap;justify-content:center'><span class='wf-pill'>Post responses to Slack</span><span class='wf-pill'>Summarize this week's submissions</span><span class='wf-pill'>Make this form shorter</span></div></div></div>"
    }
  />
</WireframeBlock>

Every new session opens on **Ask Forms**, a chat where you describe what you want. The agent creates the form, and you move into the visual editor whenever you want to adjust fields, validation, or publishing settings by hand — both paths edit the same SQL-backed form definition, so nothing gets out of sync.

<Diagram id="doc-block-forms2" title="Build, publish, collect" summary={"The agent and the visual editor edit one SQL-backed form definition. The public fill page is unauthenticated, and submissions route server-side to your destinations."}>

```html
<div class="diagram-flow">
  <div class="diagram-col">
    <div class="diagram-node">
      Ask Forms chat<br /><small class="diagram-muted"
        >"add an NPS question"</small
      >
    </div>
    <div class="diagram-node">
      Visual editor<br /><small class="diagram-muted"
        >labels, validation, order</small
      >
    </div>
  </div>
  <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
  <div class="diagram-panel center">
    <span class="diagram-pill accent">create-form · patch-form-fields</span
    ><small class="diagram-muted">fields JSON, settings JSON</small>
  </div>
  <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
  <div class="diagram-box">
    forms table<br /><small class="diagram-muted">SQL via Drizzle</small>
  </div>
  <div class="diagram-arrow diagram-muted" aria-hidden="true">&rarr;</div>
  <div class="diagram-col">
    <div class="diagram-box">
      Public fill page<br /><small class="diagram-muted">unauthenticated</small>
    </div>
    <div class="diagram-box">
      responses<br /><small class="diagram-muted"
        >+ Slack / webhook / Sheets</small
      >
    </div>
  </div>
</div>
```

```css
.diagram-flow {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.diagram-flow .diagram-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.diagram-flow .diagram-arrow {
  font-size: 22px;
  line-height: 1;
}
.diagram-flow .center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
```

</Diagram>

## What you can do with it

- **Build forms conversationally.** "Create a contact form," "add an NPS score question," "make the email field required." See [field types and JSON schema](/docs/template-forms-building-publishing#field-types).
- **Fine-tune visually.** Edit labels, placeholders, required state, options, and field order from the builder UI when you want direct control.
- **Publish and protect a public form.** Share a public link, and turn on captcha protection or fully anonymous responses when you need them — see [Building and publishing a form](/docs/template-forms-building-publishing).
- **Review responses and ask for insights.** "Summarize this week's submissions," "chart submissions by day" — see [Responses, insights, and destinations](/docs/template-forms-responses).
- **Route submissions automatically.** Send new responses to Slack, Discord, Google Sheets, or a webhook the moment they arrive.

## Getting started

Live demo: [forms.agent-native.com](https://forms.agent-native.com).

1. **Ask for the form you want.** Ask Forms is the landing chat — describe the audience and what should happen after submission.
2. **Refine in the editor.** Adjust labels, validation, choices, and order in the visual builder when direct editing is faster.
3. **Publish and share.** Use the public form URL for respondents, then watch results arrive in the Responses view.
4. **Connect destinations.** Route new submissions to Slack, Discord, Google Sheets, webhooks, or your own extension point.

### Useful prompts

- "Create a beta signup form with role, team size, and priority use case."
- "Add a required NPS question and a free-text follow-up."
- "Create an anonymous customer feedback form and give me the public link."
- "Post every new response to the product Slack channel."
- "What's the setup for my beta signup form?"
- "Summarize this week's submissions and group them by customer segment."
- "Make this form shorter without losing the fields we need for routing."

## What's next

- [**Building and publishing a form**](/docs/template-forms-building-publishing) — field types, conditional logic, and public-form protections
- [**Responses, insights, and destinations**](/docs/template-forms-responses) — analyzing, exporting, and routing submissions
- [**Forms — data model and actions**](/docs/template-forms-developers) — the SQL schema and action reference, for developers
- [**Templates**](/docs/cloneable-saas) — the Cloneable SaaS model
- [**Actions**](/docs/actions) — the action system powering the builder
- [**Messaging**](/docs/messaging) — Slack and other submission destinations
