What are Definitions?
Definitions are the building blocks of your data schema in Qik. A definition describes a type of content — its name, fields, validation rules, and behaviour. When you create a definition, you're creating a new content type that your organisation can create instances of.
For example, you might define a 'Project' type with fields for title, status, deadline, and assigned team member. Once defined, your team can create individual Project items that follow that structure.
Built-in vs Custom Types
Qik includes several built-in base types:
- article — General-purpose content (the default)
- submission — Form submissions (creates a form)
- event — Calendar events with scheduling
- profile — People/contacts
- scope — Organisational units/groups
- workflowcard — Workflow items (creates a workflow)
- email — Email message templates
You create custom definitions that extend these base types. For instance, a 'Workshop' definition might extend the event base type, inheriting event features like dates and attendance while adding custom fields specific to workshops.
Creating a New Definition
To create a definition:
- Navigate to Content in the sidebar
- In the content types area, create a new definition
- Enter the title (singular name, e.g. 'Project'), plural (e.g. 'Projects'), and database key
- Select the base type this definition extends
- Optionally assign a category to group related types together
- Select which scopes this definition belongs to
The Field Editor
After creating a definition, use the field editor to define what data the type stores. The field editor has three panels:
- Field Tree (left) — Shows all fields in a draggable tree structure. Add, remove, duplicate, and reorder fields here.
- Preview (centre) — A live preview of how the fields render as form inputs. Test the form as you build it.
- Field Settings (right) — Configuration options for the selected field, including type, validation, expressions, and display settings.
Field Types
Common field types include:
- String — Text input (single line or textarea)
- Number — Numeric input
- Boolean — True/false toggle
- Date — Date or datetime picker
- Array — Multiple values (e.g. multi-select)
- Object — Nested group of fields
- Reference — Link to another content item
- Key — Auto-generated unique identifier
Field Configuration
Each field can be configured with:
- Title — Display label
- Key — Database field name
- Type — Data type
- Widget — How the input renders (input, textarea, select, radio, etc.)
- Minimum / Maximum — Validation rules (set minimum to 1 to make required)
- Options — Predefined choices for select/radio fields
- Expressions — Dynamic logic for default values, visibility, or computed values
- Description — Help text for users
Definition Settings
Beyond fields, definitions can be configured with:
- Default scopes — Which scopes new items of this type are created in
- Restrict scopes — Limit which scopes this type can be used in
- Default sort — How list views sort items by default
- Category — Group definitions by category in the Content section
- Automation — Set up notifications, actions, workflows, and confirmations that trigger on create/update/delete