Skip to content

CAP-CRM-ACT-018Retain interactions and work through record deletion and merge

Markdown

CAP-CRM-ACT-018

Retain interactions and work through record deletion and merge

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationPartially observed

KindCapabilityProduct areaCRMModuleActivities, Follow-ups and Task WorkRevision2

Read atservices-crm a8d1364freact-console baf6dae3

The Formal Contract

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

Outcomes
Shared activity links retained where possibleTasks moved to the merged survivorUnlinked activity retention made visible as a gap
Surfaces
apijob
Intent sources
services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-44services-crm:docs/milestones/CRM-M4-duplicates-and-merge.md#D-20

Controls

27 controls apply, from the corpus control catalogue.

TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-005 TC-AZ-006 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-DAT-004 TC-IAM-001 TC-IAM-005 TC-IAM-006 TC-LOG-004 TC-LOG-005 TC-MON-001 TC-MON-002 TC-PI-001 TC-PI-003 TC-PI-004 TC-PI-005 TC-PRV-001 TC-PRV-002 TC-PRV-003 TC-TEN-001 TC-TEN-002 TC-TEN-003

Permissions

KeyChecked atScope
crm.contacts.mergeservicetenant
crm.organizations.mergeservicetenant
crm.contacts.deleteservicetenant

Business Rules

8 rules, 8 to be proved before approval. A rule's product intent is derived from its origin: 3 confirmed by a product decision, the rest inheriting this capability's proposed.

IdRuleKindEnforced atProvenance
01must prove
Proposed
Deleting a related record removes its activity links only, preserving the activity on other linked records’ timelines.
no proof recorded yet
lifecycledatabasetest
services-crm:modules/activities/tests/integration/services/persistence/activities.integration.spec.js#leaves the activity on the other records’ timelines when one linked contact is deleted
02must prove
Proposed
An activity left without links retains direct and authorized dataset access but has no timeline and cannot open through its console record link.
no proof recorded yet
lifecycledatabaseobserved
03must prove
Confirmed
Loss of the final related record neither deletes the activity nor automatically transfers it to an organization.
no proof recorded yet
policydatabasetest
04must prove
Proposed
The deletion journey checks for removed activity links in the audit and records an absent section as a gap, without proving the same gap in every deployment.
no proof recorded yet
policyservicetest
05must prove
Proposed
Merging transfers activity links to the survivor, collapses duplicate links and preserves a primary flag on the retained link.
no proof recorded yet
calculationservicetest
06must prove
Confirmed
Merge preview evidence includes activity versions, allowing later activity changes to invalidate the plan.
no proof recorded yet
invariantserviceobserved
07must prove
Proposed
Merge transfers related task references to the surviving record.
no proof recorded yet
calculationservicetest
08must prove
Confirmed
Reading a merged-away record’s timeline returns Gone with the surviving record reference.
no proof recorded yet
validationapitest

Scenarios

IdGivenWhenThenProvenance
01Two contacts share a meeting and one also has a separate call.Merge the duplicate into the survivor.The survivor receives both activities without duplicate meeting links and retains the primary designation.test

Edge Cases

IdGivenWhenThenProvenance
02One contact is an activity’s only link and a task’s related person.Delete that contact.The activity has no links and the task remains with its contact reference cleared.test

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.