Field Groups
Gathering a record type's custom fields under headings you order by hand: creating a group, the permanent stable key, ordering, deleting, global groups, and what a group does not affect.
A field group gathers several of one record type's custom fields under a heading, in an order you set by hand. Without groups, custom fields simply appear in Sort Order under a single Custom Fields heading; with them, you can separate contact details from medical details from kit preferences on the same form. Groups are managed on the Field Groups screen, reached from a link in the Custom Fields page header.
What a group is made of
Groups belong to exactly one record type, so the screen shows nothing until you pick one — and the empty state says so rather than looking broken.
| Setting | What it is | Changeable later? |
|---|---|---|
| Entity Type | The record type whose fields this group can gather. | No — permanent once saved |
| Stable Key | A machine name for the group, unique within the record type. Lower case, starts with a letter, letters, digits and underscores only. | No — permanent once saved |
| Label (English) | The English heading shown above the group's fields. | Yes, at any time |
| Label (Arabic) | The Arabic heading. | Yes, at any time |
| Sort Order | Where the group sits relative to the record type's other groups. | Yes, at any time |
| Scope | Whether the group belongs to your workspace or to the whole platform. | No — permanent once saved |
Creating a group
Four steps, on the Field Groups screen.
Pick the record type
Nothing is listed before you do. A group is only ever valid for one record type, so there is no all-record-types view to start from.Give it a stable key
The form requires one. It lowercases as you type and refuses characters outside the grammar. Choose carefully — this one is permanent.Give it labels and an order
An English heading, an Arabic heading, and a number deciding where the group sits among the record type's other groups.Save, then assign fields to it
The group appears in the list. Open any custom field definition for the same record type and a Field Group picker now offers it, alongside a no group entry.
The stable key
The stable key is the group's machine name. It follows the same grammar as a field key — lower case, starting with a letter, letters, digits and underscores — and it must be unique among that record type's groups.
| Stable key | What happens |
|---|---|
| contact_details | Accepted. |
| Contact_Details | Accepted, and lowercased as you type. You will see it become contact_details. |
| contact-details | Refused as you type. The input rejects characters outside the grammar. |
| 1st_section | Refused. A stable key must start with a letter. |
| A key already used by another group on the same record type | Refused, naming the key: a field group with that key already exists for this record type. |
Once the group is saved, the stable key is visible but greyed out and cannot be changed by anybody. That is deliberate rather than an oversight: exported schema names a group by this key, so renaming it would silently turn a future re-import from an update into a create, against a bundle that has already shipped. Being able to see the key still matters — you need it to match an exported bundle to the group it refers to — which is why it is shown rather than hidden.
Assigning a field to a group
Assignment happens on the field, not on the group. There is no drag-fields-into-a-group screen.
- Open a custom field definition for the same record type. A Field Group picker offers every group on that record type, plus a no group entry.
- Choosing no group is the only way to ungroup a field. There is no separate unset control anywhere else.
- Changing the record type on a create form clears any group already chosen, because a group from one record type is never valid for another.
- A field can belong to at most one group. There is no way to show one field under two headings.
Ordering groups
Groups are ordered on the Field Groups screen, by dragging a row or by using its Move up and Move down buttons. Both do the same thing and both persist.
The buttons are not a convenience feature. A keyboard-only user has no drag gesture, so the buttons are the accessible path and are expected to work identically — if a row moves by dragging but not by button, that is a defect.
Deleting a group
Deleting a group never deletes fields. The confirmation says so explicitly, and afterwards the fields still exist and are simply ungrouped, appearing under the default Custom Fields heading again.
One edge worth knowing: if you start editing a group and then delete that same group from its row while the edit panel is still open, the panel closes and no new group is created. Saving at that point does not resurrect the group under a new identity.
Global groups
A platform administrator with no workspace selected creates a global group, and a notice on the screen explains that. The scope switch appears on create and never on edit, because a group's scope is permanent in the same way a field's is.
Inside a workspace, a global group shows a Global badge and offers no edit, delete or move controls at all. That is not the interface hiding something arbitrarily — the server would refuse those operations, so the controls are not offered.
What a group does and does not affect
A group does
- Put related fields together under one heading on the record form
- Let you order groups by hand, by dragging or with Move up and Move down
- Carry its own English and Arabic heading, translated like everything else
- Survive a field being deleted, and let a field leave it via the no group entry
A group does not
- Control who can see a field — that is field-level security, which is unrelated
- Delete its fields when the group itself is deleted
- Carry across record types, or apply to more than one record type at once
- Change how a value is validated, stored, exported or displayed
Group errors you may see
| Situation | What you see |
|---|---|
| A stable key already used on that record type | Refused, naming the key: a field group with that key already exists for this entity type. |
| Assigning a field to a group from another record type | Refused: the selected field group belongs to a different entity type. |
| Reordering more than 100 groups at once | Refused, naming the maximum: more than that many groups cannot be reordered in one request. |
| The same group listed twice in one reorder | Refused: the same field group appears more than once in the reorder list. |
| Groups from two record types in one reorder | Refused: all field groups in one reorder request must belong to the same entity type. |
| Creating a global group without being a platform Super Admin | Refused: only a platform Super Admin can create a global field group. |
| Assigning a group to a field with no definition record yet | Refused, explaining that the field has no definition record and that the definitions backfill has to be run first. This only happens in an environment upgraded from an older version. |