---
id: ADR-CRM-ENT-007
title: Only Contacts and Organizations Carry Custom Fields
product_area: crm
module: entities
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  services-crm: 7ea48a414c42eade10d60753b8bcc323b1dd726f
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
decision: >-
  Contact and organization registrations enable custom fields, configurable
  forms and page layouts; affiliations, roles and classification catalogues
  declare no custom-field capability and reject custom-value payloads.
constrains:
  - DOM-CRM-ENT-001
  - DOM-CRM-ENT-002
  - DOM-CRM-ENT-003
  - DOM-CRM-ENT-033
  - SCR-CRM-ENT-002
  - SCR-CRM-ENT-003
  - SCR-CRM-ENT-004
  - SCR-CRM-ENT-006
origin: 'R2-ARCH-001 v1.0 (Andrew, 2026-10-19) §2'
alternatives:
  - option: Extend custom fields to affiliations or roles.
    why_not: >-
      The approved capability standard excludes them unless Andrew designates an
      additional owner.
  - option: Create a bespoke CRM custom-value mechanism.
    why_not: >-
      The standard requires shared definitions and value storage instead of an
      entity-specific parallel system.
consequences:
  - >-
    Person and organization presentation uses shared form and layout
    capabilities; catalogue editing uses configuration resources.
  - >-
    Affiliation, role and classification writes reject an unknown custom-value
    property.
evidence:
  - >-
    services-crm at 7ea48a41: modules/entities/metadata/contacts.object.ts and
    organizations.object.ts (capabilities);
    modules/entities/db/contact-custom-field-values.table.ts
  - 'services-platform at ad3f6a65: docs/standards/custom-field-capability.md'
---
# Only Contacts and Organizations Carry Custom Fields

## Context

The approved custom-field standard determines ownership, and the pinned registrations match it. Contacts and organizations explicitly advertise their presentation and custom-value capabilities.

## Decision

Contact and organization registrations enable custom fields, configurable forms and page layouts; affiliations, roles and classification catalogues declare no custom-field capability and reject custom-value payloads.

## Alternatives Considered

Extend custom fields to affiliations or roles. The approved capability standard excludes them unless Andrew designates an additional owner.

Create a bespoke CRM custom-value mechanism. The standard requires shared definitions and value storage instead of an entity-specific parallel system.

## Consequences

Catalogue and relationship models remain facets without their own custom-value storage. Further extensibility must follow an explicit designation rather than arise from adding an undocumented payload property.

Person and organization presentation uses shared form and layout capabilities; catalogue editing uses configuration resources. Affiliation, role and classification writes reject an unknown custom-value property.
