Interaction type
An interaction and its participants. Each participant carries a role drawn from the type's bound list.
| Setting | Purpose |
|---|
| Name | Identifies the type in configuration |
| Display name | What people read |
| Description | Free text |
| Participant role list | A lookup type constraining participant roles |
Types carry no per-type attribute schema. Interactions record what happened,
who was involved, and when — richer per-type structure is not currently
available, and is worth raising as a gap rather than worked around with
free-text conventions.
Interaction
| Field | Notes |
|---|
| Type | Required |
| Status | From the platform's status catalog |
| Occurred at | When it happened, not when it was recorded |
| Entity | The subject |
| Participants | Additional entities, each in a role |
Participants
| Rule | Behaviour |
|---|
| Role not in the type's bound list | Rejected |
| Type has no role list bound | Rejected — bind one first |
| The same entity in the same role twice | Rejected as a duplicate |
Merge behaviour
| Event | Effect |
|---|
| Merge | Interactions move to the survivor |
| Both records participated in one interaction | The duplicate participation collapses |
| Unmerge | The original arrangement is restored |
Soft delete
Interactions and their types are soft-deleted and restorable. A type's name is
freed on deletion, so a type can be recreated under the same name without
colliding with the deleted one.
Interactions versus relationships
| Represents | Time |
|---|
| Relationship | A standing link | Holds over a period |
| Interaction | A discrete event | Happens at a point |
Next
Last verified against commit 74cecd91 (2026-08-03)