A reference to another record must be stored as a lookup
- Risk
- Moderate
- Evidence
- metadata
- Section
- Naming
- Fix shape
- entity · Object
Defence in depth — other controls still give coverage if this one fails.
Decidable from the instance’s own configuration.
Whether the model reads as anything but code names.
One task per non-compliant object.
Control Statement: A field that identifies another record must be a lookup, not free text.
Description: Where a field is named as an identifier of something else but holds text, nothing connects it to the record it names. This control requires such fields to be lookups so the reference is real.
Rationale: A text reference is a promise the database does not keep. Nothing stops a typo, nothing updates it when the target is renamed, and nothing notices when the target is deleted — so the data quietly rots, and every report built on it inherits the rot. It is also invisible: the field looks like a reference in every screen that shows it.
Audit Procedure:
- Enumerate the fields on objects the organisation added or extended.
- Record every text field whose name indicates it identifies another record.
- For each, establish which object it is meant to point at, and whether the values still resolve.
Remediation:
- Add a lookup field pointing at the correct object.
- Migrate the existing values, recording the ones that do not resolve rather than discarding them.
- Repoint processes, rules and reports at the new field, then remove the text field.
Default Value: Creatio permits any column type for any purpose and applies no naming convention or referential check to a text column.
Cite this control as CIB-NAME-002, Implementation Benchmark v0.1.0. Verified against
Creatio 8.x. Published by ctx10; not
affiliated with or endorsed by Creatio.