# Collect data with forms

_Turn a database into a form anyone can submit — inside or outside your workspace._

Canonical: https://snoze.dev/help/collect-data-with-forms/

A form is a database wearing a friendlier face: every submission becomes a
record, with the fields you chose, in the shape you defined. Intake requests,
bug reports, applications, RSVPs — anything you'd otherwise collect by email.

1. **Create the form**

   Click **New** in the sidebar and choose **Form**, then pick the database
   it should feed (or create one as you go).

2. **Choose and arrange fields**

   Each form field maps to a database field, and the field's type shapes the
   input — selects become choices, dates become pickers, and Number questions
   can use scales, sliders, stars, or rating symbols. Reorder by dragging;
   mark what's required.

3. **Share it**

   Send the form to teammates, or publish it with a public link so anyone
   can submit without an account.

4. **Work the submissions**

   Every submission lands as a record in the database, immediately. Build a
   [view](https://snoze.dev/help/views-and-filters/) over them — new submissions this week,
   grouped by type — and handle them like any other data.

> [!TIP]
> New database fields default to visible on an existing form. Hide internal
> fields explicitly before publishing. Schema-required fields cannot be hidden,
> and a public form cannot collect internal User, File, Place, or JSON values. A
> Relation question offers the linked database's records to pick from. See [Public form question types](https://snoze.dev/help/form-question-types/) for the
> complete rules.