Appearance
Collections & Fields
Open a collection's Fields tab and click Add Field to add a column. Every field has a Key (its internal name, can't be changed later), a Label (what people see), and a Type, plus type-specific options.
Field types
| Type | Use for | Notable options |
|---|---|---|
| Text / Long Text | Short or multi-line text | min/max length, placeholder, optional QR/barcode scan button |
| Number | Plain numbers | min, max, step, prefix/suffix, decimal places |
| Price | Currency-formatted numbers | currency code, decimal places |
| Boolean | A true/false toggle | — |
| Date / Date & Time / Time | Date and time values | — |
| Enum | A dropdown of fixed, labeled, colour-coded options — pick one | add/remove options |
| Multi-Enum | The same fixed options, but pick several ("tick all that apply") | add/remove options |
| Reference | A link to one record in another collection | target collection, which field to display, search field, an optional barcode-scan search, "distinct" (each record can be picked only once) |
| Multi-Reference | Links to several records in another collection | same options as Reference (including "distinct") |
| Image / File | Uploaded media | accepted file types, max size, allow multiple |
| Geolocation | A GPS coordinate, captured from the device | — |
| Address | A postal address | — |
| Phone Number | A phone number, with a searchable country-code picker | default country code |
| List (virtual) | A live, computed list of related records | source collection, display field, sort |
| Complete List | An embedded mini-table of related records, rows are clickable | source collection, which columns to show, sort |
| Drawing / Signature | A signature or sketch pad, stored as an image | stroke colour/width, background colour, max size |
| Barcode / QR | Displays a barcode or QR code rendered from the field's value | format (QR, CODE128, EAN-13, UPC), render size |
| Table | An embedded mini-table for structured sub-data you type in yourself | columns (key + header) |
For the exact JSON behind every type and its options, see the Schema Reference.
Computed fields
Turn on Computed and a field's value is calculated from a formula instead of typed in — it recalculates every time it's shown, and whatever's typed into the underlying field (if anything) is ignored. A computed field can:
- Reference other fields on the same record —
MULTIPLY({quantity}, {unit_price}) - Follow a reference field —
{product.name} - Look at other records live —
COUNT(COLLECTIONSELECT("orders", 'EQUAL({customer},{_THISRECORD.id})'))
See Expressions for the full formula reference.
Initial value
A field can have an initial value — a formula that runs once when the create form opens, to pre-fill it. Common examples: NOW() for a created-at timestamp, 0 for a starting quantity, or UNIQUECHAR("alphanumeric", 6) for a short random reference code.
Description
A field's optional description is help text. In a questionnaire view, the description is shown as the question itself (falling back to the label when there's none), so write the full question there and keep the label short.
Show and validate
Two more optional, formula-driven behaviours live on every field:
- Show field only if — hides the field (and clears its value, unless it's computed) when the formula is false. Good for "only show this if the record is in a certain state."
- Valid if — marks the field invalid on submit if the formula is false, with an optional custom error message.
Flags
- Required — can't be left blank.
- Read only — shown, but can't be edited on the form.
- Is label field — one per collection. Its value is used whenever the record needs a short, recognizable name — in a reference picker's dropdown, for instance. Usually a name or title field.
