Form Fields
Fields are the questions a form asks. Every field has a type, a name (internal), a label (visible), validation rules, and an optional visible-when condition. The builder screen (Forms → edit → Fields) supports creating, re-sorting, editing, and deleting fields; field names are unique within a form.
Field types
The palette covers:
- Text, textarea — free text (the usual contact fields).
- Email, tel — format-validated single-line fields.
- Select / dropdown, radio buttons, checkbox list — option-based fields; you supply the options one per line. Checkboxes-type controller fields can drive conditional display of other fields.
- Single checkbox and consent checkbox — a single opt-in. The consent type is intended for policy-agreement lines.
- Address — a structured composite (line 1/line 2, city, state, postal, country) that is gathered and stored as one unit.
- File upload — see below.
- Number, date — validated numerically and regionally by your pattern.
Validation
- Required — enforced server-side; conditionally hidden fields are skipped (a field hidden because its controlling condition isn’t met is never demanded).
- Length / value / pattern rules — per-field minimum and maximum length, minimum/maximum numeric or date values, and a regular-expression format (“does not match the required format” error otherwise).
- Names follow a single rule: lowercase letters, numbers, and underscores (they’re the machine names echoed in webhooks, emails, and CSV exports).
Editing behavior
- Re-rendering after a validation error keeps visitors’ answers filled in, including across checkbox groups.
- Forms pre-fill from URL query parameters on first load (e.g. linking to the form with
?email=…fills the email field for the named fields) — handy for personalized campaign links. - Field edits save as part of the form; a field’s history rides along with the form’s version counter — deleting a field only affects future submissions, not stored ones (which snapshot the answers as data at submit time).
File uploads
- Uploads are checked by actual content type (magic bytes), not by extension; the stored filename’s extension always matches the content type.
- SVG is deliberately not accepted for safety (it can carry active content).
- Each form has a total upload quota setting; uploads must therefore fit the form’s quota.
- Uploads are stored on the CMS server. Whether uploaded files are publicly accessible or admin-only is a per-form switch (prv internet-accessible or admin-only download). Deleting a submission deletes its uploaded files too.
Conditional display
Any field can be set to show only when another field carries a particular value — e.g. a “Company name” field that appears only when “Organization = yes” is ticked. The controller field can be any field type including a checkbox; the matched value(s) for checkbox-list controllers compare after clicking. Hidden-by-condition fields aren’t validated on submit, since they were never shown.