Custom & Computed Fields

Custom fields add data to a record without changing the application. Three kinds exist, and the difference between them is who fills them in:

KindWho fills itExample
Standarda person, on the record"Preferred contact method"
Calculatedthe system, from a formula over this record's own fieldsscore * 10 + cf_bonus
Rollupthe system, by aggregating linked child rows"Number of open requests"

Calculated and rollup fields are read-only on the record and recalculate automatically whenever the data they depend on changes.

Where to find it

ScreenWhere it livesWhat you need
Custom Fields — /admin/custom-fieldsSettings → Data model → Custom FieldsPermission to read custom fields; each target table has its own manage permission for writing

Pick the table you are designing for at the top — the catalogue is per table.

Creating a standard field

Press + Add field:

  • Label — what people read.
  • Key — the technical name. Locked after creation.
  • Field kind — Standard, Calculated or Rollup. Locked after creation.
  • Data type — the kind of value it holds.
  • Options — for a choice field, one per line.
  • Required — the record cannot be saved without it.
  • Encrypted (sensitive) — see below. Locked after creation.
  • Enabled — untick and the field stops being offered without losing its data.
Warning
Key, field kind and encryption cannot be changed after the field is created. Those three decide how values are stored, so changing one later would make the stored values mean something different. Everything else — label, data type details, required, enabled, who it applies to — stays editable.

Encrypted fields

An encrypted field stores its values encrypted and shows them masked to anyone without the reveal permission. It must be declared at creation and cannot be turned on later.

Who a field applies to

By default a custom field applies to every contact. The Applies to section narrows it: attach one or more roles, and the field only shows on contacts holding one of them — client-only fields, staff-only fields, and so on.

Detaching every role puts it back to all contacts, and no data is deleted when you do. Roles managed at the global layer show as chips you cannot detach here.

Calculated fields

A calculated field carries a Formula. You reference this table's own columns by name, and sibling custom fields as cf_<key> — for example score * 10 + cf_bonus.

If the formula does not parse, the error tells you where — the parse position comes back from the server verbatim rather than as a generic "invalid formula".

Rollup fields

A rollup aggregates linked child rows onto this record. Its configuration is a short, fixed vocabulary:

SettingWhat it means
Source tablethe child table, schema-qualified
Link fieldthe child column that points at this record
Record idalways the record being recalculated — filled in for you
Aggregatehow to combine the rows (count, sum, and so on)
Fieldthe child column being aggregated. Optional with count — set it and only non-empty values are counted
Filteroptional; a structured filter, so a rollup can count only some of the child rows

The child table must be event-enabled and linked to this table by the link field — otherwise the recalculation would have nothing to notice.

Which tables may have computed fields

Calculated and rollup kinds are offered for Contacts only at the moment. The kind picker disables them elsewhere and gives the reason: a table earns computed support once its editors prove that every change triggers a recalculation. A rollup that is only sometimes right is worse than no rollup.

When a stored configuration goes bad

If a formula or rollup configuration fails validation, the field comes back disabled with the stored error shown in the editor — not silently broken, and not silently dropped. Fix it and save; a valid save brings the field back through the normal lifecycle.

Cycles and dependents

Two computed fields cannot depend on each other. If a change would create a cycle, the save is refused and the message explains the cycle in plain English.

Deleting a field that other computed fields read is refused too, and the refusal names the dependent fields — you are told what to fix, not just that you cannot proceed.

Deleting a field

Deleting is soft: stored values are kept. The field stops being offered; nothing is destroyed.

Tip
If you want extra fields that come and go with a role and can hold many rows per record, that is an extension table rather than a custom field — see Roles & Extension Fields. To show a computed field in a table, add it as a column in the view designer; it will carry a read-only badge.