Entities at a glance
The shape
| Term | Is |
|---|---|
| Entity | One real-world thing |
| Crosswalk | The link to one source system's identifier for it |
| Golden record | The value each attribute settles on, chosen by survivorship |
| 360 view | The entity plus everything connected to it |
You may know the 360 view as a profile.
Crosswalk is not transcoding
A crosswalk links a record to a source system. Transcoding maps a code value to a canonical one. Some platforms use "crosswalk" for the second; this documentation does not.
Statuses
There are exactly two:
| Status | Meaning |
|---|---|
| Active | Current |
| Merged | Absorbed into another; resolves to the survivor |
Merged status and the survivor pointer are two representations of one fact, so the database enforces that they agree. Setting the status directly is refused.
Deletion is not a status. A deleted record is soft-deleted and restorable, but you find it with the show-deleted toggle on a list, not by filtering on a status value. Filtering for a deleted or archived status matches nothing and returns an empty result with no error.
Merged records stay resolvable
Requesting an absorbed record returns the survivor and says so, which keeps integrations holding an old identifier working. Unmerging restores what was absorbed.
Reading it
entity.read gates everything the 360 view returns — there is no per-section
permission within it. Interactions and consent records sit outside that
response and carry their own permissions.
ABAC policies and masking still apply to the contents, so individual records can be dropped and individual values masked.
An absent record is not proof of absence: it may exist and be hidden from you.
Next
Last verified against commit 1e1de1ad (2026-08-03)