Skip to content

JNY-CRM-ENT-004Configure an affiliation type and use it on a contact

Markdown

JNY-CRM-ENT-004

Configure an affiliation type and use it on a contact

Markdown
  • DocumentApproved
  • Product intentProposed
  • ImplementationObserved

KindJourneyProduct areaCRMModuleEntitiesRevision1End-to-endRequiredApproved byAndrewApproved at2026-10-22

Read atreact-console da630758services-crm 7ea48a41

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Goal
Define a relationship type and its shared-detail defaults, select it as the workspace default and retire it without altering existing affiliations.
Screens
/console/{tenantId}/configuration/crm/types/affiliationTypes/console/{tenantId}/configuration/crm/types/affiliationTypes/{id}/edit/console/{tenantId}/crm/contacts/{id}/edit

Steps

#SurfaceActionCapabilityExpectedProvenance
1/console/{tenantId}/configuration/crm/types/affiliationTypesCreate Member Firm with a description and billing-address-to-work and main-phone-to-work defaults.CAP-CRM-ENT-017The configuration list contains the new type with its derived id and mappings.test
2/console/{tenantId}/configuration/crm/types/affiliationTypesSelect Member Firm in the Default Affiliation Type setting.CAP-CRM-ENT-017The workspace stores Member Firm as its default.test
3updateContactSet a contact’s Organization through the API without specifying an affiliation type.CAP-CRM-ENT-009The resulting primary affiliation uses Member Firm.test
4/console/{tenantId}/crm/contacts/{id}/editOpen the new-affiliation type selector in the contact editor.CAP-CRM-ENT-006Member Firm is available with its Link When Added options.observed
5/console/{tenantId}/configuration/crm/types/affiliationTypes/{id}/editAttempt to delete Member Firm while it is default and referenced.CAP-CRM-ENT-017The delete attempt is rejected.test
6/console/{tenantId}/configuration/crm/types/affiliationTypesReset the workspace default and deactivate Member Firm.CAP-CRM-ENT-017Existing affiliations retain the type, while new selections exclude it.test

Alternate and Failure Paths

PathFrom stepConditionPath takenOutcomeProvenance
alternate1The administrator works on the contact-role catalogue instead.Create, describe, reorder and deactivate a role.Its ordered choice is available until deactivated.test
alternate6A selected contact type is deactivated before creation completes.The contact still saves with that type.The next chooser visit excludes the inactive choice.test
failure2A standard user attempts to change the default affiliation type.The request lacks set-default authority and is rejected.The prior default remains selected.test
services-crm:modules/entities/tests/e2e/affiliation-types.e2e.spec.js#refuses a caller who may only read affiliation types the change of the default (403)
failure1Two mappings target the same destination type.Validation identifies the duplicate destination and rejects saving.No new affiliation type is created.test

Assertions

IdStatementProvenance
01The Organization command uses the workspace’s configured default affiliation type.test
02A default or referenced affiliation type resists deletion.test
services-crm:modules/entities/tests/e2e/affiliation-types.e2e.spec.js#refuses the delete of the type that is the default (409)
03Deactivation preserves existing affiliations of that type.test

End-to-end policy: required: Browser proof checks configuration controls and the contact editor’s use of their choices.

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.