Resolve the forms and layouts used for CRM records
Purpose
Staff need the appropriate record presentation without each CRM screen inventing its own selection logic. This capability resolves Platform-owned forms and layouts from record-type overrides and workspace defaults, and controls administration of those assignments. It distinguishes an unset presentation from a section the caller has no authority to inspect.
How It Works
Settings reads expose only authorized sections; a forbidden section is omitted. An update checks every requested section's authority and the read settings version before writing, preserving unnamed sections. Unauthorized combined changes make no partial update, and unsupported properties are refused.
Assignments must refer to workspace definitions with the correct record purpose and presentation slot. Contact or organization type overrides take precedence over workspace defaults for each layout or form; a slot without either remains unconfigured. Create and edit forms are resolved separately, and callers can request console-only results. Type replacements preserve omitted assignments, while a targeted patch can clear an individual slot.
Record readers can retrieve effective definitions for their work without acquiring authority to administer the workspace defaults. CRM stores the assignment and resolution policy; Platform metadata owns the forms and layouts themselves.
Example
An association assigns a default contact page layout and gives the Member contact type a different edit form. A coordinator opens a Member record and receives the type-specific edit form with the default page layout for the slot the type leaves unset. Clearing only the edit-form override falls back to the workspace choice without disturbing other assignments. A reader cannot use this retrieval permission to change those defaults.
The administrator checks the effective result after clearing the override, rather than assuming that clearing it means no form will be used. The returned choice identifies whether the type or workspace default supplies it; a slot with no candidate is unconfigured. This lets staff distinguish inheritance from an absent assignment before investigating the presentation itself.
If two administrators read the same settings and one saves first, the other's older settings version conflicts. She rereads before deciding which remaining change to submit. A request combining an authorized contact section with an unauthorized organization section is refused as a whole, preserving both prior defaults. Naming an unknown record type is also refused instead of silently returning the workspace's untyped answer. These cases are covered by the capability test specification and keep configuration mistakes distinct from ordinary empty slots.
Why It Works This Way
Our reading is that per-slot fallback lets a type customize only what differs without duplicating every workspace assignment. Separating create and edit supports different entry tasks, and validating purpose and kind prevents a plausible-looking definition from being used in the wrong context. An unconfigured result is more honest than inventing a form.
Omitting unauthorized sections keeps forbidden information distinct from a genuinely unset default. All-section authorization before mutation prevents a combined settings request from succeeding halfway. Version checks protect concurrent administrators, and preservation of omitted type assignments prevents an older classification client from wiping presentation it does not understand. Effective-definition read authority supports everyday record work without giving readers configuration authority.
Relationships
CRM Settings holds defaults, and Contact Type and Organization Type hold overrides. Platform metadata owns definition identity, purpose, and content through its contract. Record creation and record pages consume effective results. Classification administration preserves these assignments during ordinary type replacement, while Platform security evaluates each named section's authority rather than treating settings as one unrestricted record.