Skip to main content

Forms

Forms collect input from end users and write it back to your database or POST it to an API. They're the core of most internal tools — creating records, editing them, and capturing submissions.

Form vs Form Block

  • Form Block — a pre-assembled form wired to a data source. Choose a table and an action type (Create, Update, or View) and it generates the fields for you. This is the quickest way to build a form.
  • Form — a lower-level container you fill with individual field components for full control over layout and behaviour.

For multi-page input, use the Multi-step Form Block, which splits a form into sequential steps.

Field components

Inside a form you place field components, each bound to a column in your table:

FieldUse for
Text Field / Long Form FieldShort and multi-line text.
Number Field / BigInt FieldNumeric input.
CheckboxBoolean values.
Date Picker / Date RangeDates and date ranges.
Options PickerA single choice from a list.
Multi-select PickerMultiple choices from a list.
Relationship PickerLink to rows in another table.
User Field / User List FieldReference one or more workspace users.
Email / URL / Password FieldsSpecialised text input with validation.
JSON FieldStructured JSON input.
Rating FieldA star-style rating.
File UploadUpload files — see File uploads.

Form action type

A form operates in one of three modes:

  • Create — submits a new row.
  • Update — edits an existing row (bound to a selected record).
  • View — displays a row read-only.

Validation

Fields can require a value and enforce rules (such as min/max, length, or pattern). Validation runs before submission, and invalid fields show inline errors. Constraints defined on the underlying column are respected automatically.

On submit

Configure what happens when the form is submitted using actions — for example save the row, show a notification, close a side panel, or navigate to another screen.