Custom Fields
Add your own fields to the records you already use — what a custom field is, what it is made of, how it is scoped, and where to find the rest of the documentation.
Custom fields let you add your own information to the records you already work with — a nationality on a person, a preferred foot on a player, a purchase-order number on a booking — without waiting for a release and without anybody writing code. You define the field once on the Custom Fields screen, and from that moment every create and edit form for that kind of record shows it, the record list gains a column for it, and the value you type is stored against that specific record.
What you get
Custom fields are not a free-text notes box bolted onto the side of a record. Each one is a real, typed, named field with its own validation rules, its own place in the form, its own column in the list, and its own audit trail.
Defined once, used everywhere
Add the field on the Custom Fields screen and every create and edit form for that record type picks it up, along with an extra column in the record list. No release, no code, no waiting.
Checked on the way in
Each value type has its own rules — a real email address, a hex colour, a rating from 1 to 5 — so a wrong value is refused with a specific message rather than quietly stored and discovered six months later.
Twenty-two value types
Text and long text, formatted rich text, single and multiple choice, numbers, percentages, ratings, money, durations, dates, date-and-time with a real time zone, times, email, web addresses, phone numbers, yes/no and colour — plus a file and an image, and two that store no text at all and point at a record in another part of the product instead.
Yours, or the whole platform's
A field you create belongs to your workspace only. Platform administrators can create global fields that every workspace inherits and no workspace can edit or delete.
Restrictable field by field
A role or a user group can hide a specific field from the people holding it, and the product will not let somebody who cannot see a value erase it by editing the record around it.
Accountable
Every definition change is recorded with who and when, a usage report tells you how many answers a field holds before you delete it, and the whole set of definitions exports to a spreadsheet.
What a field is made of
This is the complete set of things a field definition carries. Three of them are permanent once saved, because answers already recorded against them would stop making sense if they moved. Control names are shown as they appear in the English interface.
| Setting | What it is | Changeable later? |
|---|---|---|
| Entity Type | The kind of record the field belongs to — people, staff members, bookings, and so on. | No — permanent once saved |
| Key | The machine name, used in error messages and exports. Lower case, starts with a letter, letters, digits and underscores only. | No — permanent once saved |
| Value Type | One of the twenty-two types, deciding what can be entered and how it is checked. | No — permanent once saved |
| Label (English) | The English label people see above the input. | Yes, at any time |
| Label (Arabic) | The Arabic label, optional. Falls back to the English one when blank. | Yes, at any time |
| Placeholder (English / Arabic) | Optional greyed-out hint text shown inside the empty input, in each language. | Yes, at any time |
| Required | Whether a record can be saved with this field left blank. | Yes, unless a role or group restricts the field |
| Sort Order | Where the field sits relative to the other custom fields on the form. | Yes, at any time |
| Field Group | The optional heading the field is gathered under. | Yes, at any time |
| Options | The list of allowed answers. Select and MultiSelect only. | Yes, but read the warnings first |
| Validator / Validator Parameter | An optional extra format check, plus its setting. Text fields only. | Yes, but read the warnings first |
| Target Entity Type | The one kind of record this field's values may point at, or nothing to let each value choose its own. Entity Reference fields only. | Yes, but read the warnings first |
| Sensitivity | A classification label — Unclassified, Internal, Confidential or Restricted — for reporting and export handling. | Yes, at any time |
| Include in exports | A marker saying whether this field's values should be included in exports. It does not affect the definitions export, which always lists the field and reports the flag. | Yes, at any time |
| Active | Whether the field is still offered on forms. An inactive field keeps its stored answers. | Yes, at any time |
| Scope | Whether the field belongs to your workspace or to the whole platform. Decided by who creates it. | No — permanent once saved |
A worked example, start to finish
Suppose the academy needs to record each player's nationality, and the product has no such field. Nothing here needs a developer.
Decide what you are asking
The question is "what nationality is this player?". The answer is a short piece of text with no fixed list of choices, so the value type is Text. If you did want a fixed list, Select would be the right choice instead — and that decision is permanent, so it is worth a moment's thought.Define the field
On the Custom Fields screen, choose Add. Pick the record type for people, set the key to nationality, the English label to Nationality, the value type to Text, and leave Required off for now. Save.Fill it in
Open any player record. A Custom Fields section now shows a Nationality input, empty. Type a value and save the record. No error means the value was accepted and stored against that player.Read it back
Reopen the record and the value is there. The record list also has a Nationality column now, so you can see the answer for every player at once without opening any of them.Tighten it up
Later you decide the field must always be filled in. Edit the definition and turn Required on. From then on a player cannot be saved with Nationality blank — but note that players saved earlier with it blank stay as they are until somebody edits them.
Your workspace, or the whole platform
A field created by an administrator inside a workspace belongs to that workspace. Nobody in another workspace sees it, and its answers are never visible outside it. This is the normal case and needs no thought.
A platform administrator working with no workspace selected creates a global field instead, and the form shows a Global (all tenants) switch when that applies. A global field is inherited by every workspace: everybody can fill it in, and nobody but a platform administrator can edit, reorder or delete it. Global fields also skip the per-workspace field quota.
What custom fields are not
A few things people reasonably expect of them, that they deliberately do not do.
- They are not a substitute for a real feature. A custom field stores and displays an answer; it does not calculate anything, trigger anything, or appear in a report you have not built.
- They are not an access-control mechanism. The Sensitivity setting is a label. Field-level security, configured on roles and user groups, is the thing that actually hides a field.
- They are not a full document library. File and Image each hold one managed reference, not a version history or a gallery — broader attachment workflows belong to the record's own attachment features. Attaching a new File or Image value isn't available from this screen yet; both types can be defined and an existing value can be viewed or cleared.
- They are not free-form. Every field has exactly one value type, chosen up front and permanent, and every value is checked against it on the way in.
- They are not retroactive. Tightening a field — making it required, or attaching a format check — never goes back and re-checks answers that were already saved.
Where to go next
The rest of this section covers each part in full.
| Page | What it covers |
|---|---|
| Value Types | All twenty-two types, one at a time: what each one stores, what it accepts, what it rejects, and worked example inputs with the error code the product returns. |
| Reference Fields | The two types that point at a record in another part of the product: which of them to use, what is actually stored, why a name is never stored with it, pinning a target, what may be referenced, and the workspace rules. |
| Reference Lookups | The three lookups behind a reference field, what every answer means, the five failure states and whose problem each one is, what happens when the referenced record is deleted, and how the picker behaves. |
| Defining a Field | The definition form control by control, the full walkthrough, key naming rules, creating a field from inside a record, and every rejection you can hit. |
| Field Groups | Gathering a record type's fields under headings, the stable key, ordering, deleting, global groups, and what groups do and do not affect. |
| Options | Writing the allowed answers for Select and MultiSelect, the bilingual option editor, how a submitted value is matched, and what changing the list later does to existing records. |
| Validators | All 13 built-in format checks with valid and invalid example inputs, the six that need a setting, the seven supported postal-code countries, and what a rejection looks like. |
| Field-Level Security | Restricting a field on a role or user group, what a restricted person sees, why their saves do not destroy hidden values, and why required and restricted cannot be combined. |
| Managing Fields | Editing, deactivating, the definition history dialog, the usage and impact report, deleting without destroying data, the spreadsheet export, and the two read-only reference screens. |
| Limits and Behaviours | Every fixed cap, every deliberate limitation, and the reason for each — so you do not spend an afternoon looking for a setting that is not there. |
Permissions
Working with definitions needs permissions of its own. Filling in a field somebody else defined needs nothing beyond access to the record itself.
| Permission | What it allows |
|---|---|
| custom-fields.view | See the Custom Fields screen, the definition list, the History and Usage dialogs, and the two read-only reference screens. |
| custom-fields.create | Create a definition, including through the Add custom field link inside a record form. |
| custom-fields.update | Edit an existing definition. |
| custom-fields.delete | Delete a definition, including confirming a destructive delete. |
| custom-field-groups.view / .create / .update / .delete / .reorder | The field-groups feature, gated separately. A role holding every custom-fields permission above does not automatically hold these. |