Building forms
Creating and designing forms requires the Modeler, Admin, or Owner role.
Create a form
Go to Forms in the sidebar and click New form. Give it a title and a slug — the slug becomes part of the form's public address, so keep it short and readable.
The designer
The Designer is a drag-and-drop canvas where you place fields onto a free-form grid. You can:
- Drag fields into position and set their column and row spans
- Insert section headers and sub-headers to break the form into readable blocks
- Watch a live preview beside the canvas that shows exactly how the public form will look, updating as you type
The layout you build is what visitors see on the public form.
Field types
| Type | Use it for |
|---|---|
| Text | Free-text answers |
| Number | Numeric answers |
| Date | Dates |
| Radio | Pick exactly one option |
| Checkbox | Tick one or more options |
| Dropdown | Pick one option from a list |
Field properties
Each field has:
- A label (what the user reads) and a key (the column name your data is stored under)
- Required — whether the field must be filled in
- Form key — marks the field that identifies a row in this form
- Validation rules
- Options for radio, checkbox, and dropdown fields — either a fixed list you type in, or values pulled from another form
Linked and cascading dropdowns
A dropdown can take its options from another form rather than a fixed list. For example, a Governorate form can populate its options from a Region form.
You can also make one dropdown depend on another: choose a parent field, and the child dropdown only offers the values that match the parent's current selection. This is how you build cascading choices like Country → Region → City.
Multi-step forms
Long forms can be split into named steps. In the builder, assign fields to steps from a collapsible panel. The public form then renders a progress bar, the step title, Back / Next / Submit navigation, and validates the required fields of each step before moving on.
Preview
While you build, the live preview column mirrors the public form in real time — so you can check wording, order, and layout without publishing anything.
Export and import a form definition
You can move a form's definition between teams as a signed .skeyeform.json file.
Exports are cryptographically signed with your personal API key, so you must generate one first (see API key). Regenerating your key invalidates every file you exported previously.
To export: open Forms, find the form, and click Export JSON in the actions column. Your
browser downloads <form-slug>.skeyeform.json containing the title, description, slug, and every
field with its type, options, and link rules.
To import: open Forms, click Import JSON, choose your file, and click Import.
A few things worth knowing:
- Importing always creates a brand-new form — it never overwrites or edits an existing one.
- If the slug is already taken in the target team, a numeric suffix is added (
region→region-2). - Linked dropdowns are stored by slug, so they stay portable. If the linked form doesn't exist in the target team, the link is left empty and you can reconnect it in the editor.
- Because the signature is tied to your own API key, a file exported by another user cannot be imported by you.
Purging submissions
Purge submissions deletes all collected data for a form while keeping the form itself.
Purging is irreversible. The form definition survives, but every submission is permanently deleted.