---
id: CAP-CRM-ACT-006
title: Review activity changes and their attribution
feature: FEAT-CRM-ACT-01
product_area: crm
module: activities-tasks
revision: 2
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - react-console acceptance inventory CAP-CRM-ACT-005
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - 'services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-49'
purpose: Staff inspect how an interaction record changes over time.
outcomes:
  - Readable revisions with actor attribution
  - Revision access after deletion
concepts:
  - CON-CRM-ACT-001
actors:
  - ACT-CRM-001
  - ACT-CRM-002
surfaces:
  - console
  - api
preconditions: []
postconditions: []
permissions:
  - key: crm.activities.read
    where_checked: api
    scope: tenant
  - key: crm.activities.history
    where_checked: api
    scope: tenant
  - key: crm.activities.history
    where_checked: console
    scope: tenant
rules:
  - id: BR-CAP-CRM-ACT-006-01
    proved_by: [ATS-CRM-ACT-006-01, TST-CRM-ACT-002, TST-CRM-ACT-070]
    statement: >-
      Viewing activity revisions requires activity read and activity history
      permission.
    kind: permission
    enforced_at:
      - api
      - console
    must_prove: true
    provenance: test
    source: >-
      services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#refuses
      the history to a caller without crm.activities.history: 403
    origin: none
  - id: BR-CAP-CRM-ACT-006-02
    proved_by: [ATS-CRM-ACT-003-09, ATS-CRM-ACT-006-02, ATS-CRM-ACT-006-04, TST-CRM-ACT-002, TST-CRM-ACT-007]
    statement: >-
      Creating, changing or deleting an activity records a revision attributed
      to the execution caller, with service and historical-import attribution
      supported.
    kind: invariant
    enforced_at:
      - database
      - service
    must_prove: true
    provenance: observed
    source: >-
      services-crm:modules/activities/services/persistence/activities.ts:recordedStampsOf
    origin: none
  - id: BR-CAP-CRM-ACT-006-03
    proved_by: [ATS-CRM-ACT-006-02, TST-CRM-ACT-002, TST-CRM-ACT-007]
    statement: >-
      Revision lists run newest first and remain available after activity
      deletion.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#answers
      its history, newest first: the update and the create
    origin: none
  - id: BR-CAP-CRM-ACT-006-04
    proved_by: [ATS-CRM-ACT-006-03, ATS-CRM-ACT-006-04, TST-CRM-ACT-002, TST-CRM-ACT-005, TST-CRM-ACT-046]
    statement: >-
      Revision details separate the activity, linked records and attachments,
      resolving record, type and outcome labels from current names.
    kind: calculation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-crm:modules/activities/tests/e2e/activities.e2e.spec.js#shows the
      creation section by section, the linked records named as they are called
    origin: none
  - id: BR-CAP-CRM-ACT-006-05
    proved_by: []
    statement: >-
      An outcome label comes from its activity type’s outcome list, falling back
      to the outcome reference when that entry no longer exists.
    kind: calculation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-crm:modules/activities/tests/integration/services/history/activity-history.integration.spec.js#presents
      a change of outcome by the two outcomes’ names
    origin: none
  - id: BR-CAP-CRM-ACT-006-06
    proved_by: []
    statement: >-
      The activity editor exposes Version History only to users with the history
      permission.
    kind: policy
    enforced_at:
      - console
    must_prove: false
    provenance: test
    source: >-
      react-console:components/activities/__tests__/activities-explorer-and-history.test.ts#refuses
      a reader who does not hold crm.activities.history, as CRM does
    origin: 'services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-49'
scenarios:
  - id: SC-CAP-CRM-ACT-006-01
    given: A saved call has one subsequent correction.
    when: Open its revision list.
    then: The correction precedes creation and both revisions carry attribution.
    provenance: test
    source: >-
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0702.spec.ts#CRM-ACC-0702
edge_cases: []
constraints: []
depends_on:
  - CAP-CRM-ACT-003
related: []
journeys: []
open_questions:
  - OQ-CRM-ACT-001
evidence:
  - >-
    services-crm at a8d1364f1dd44b723bb5f9acba12f983e9ec8d69: Independently
    reviewed declarations, behavior and assertions identified in this
    capability’s row citations.
  - >-
    react-console at baf6dae382d6f41dce976c7f848667ccc37e076f: Independently
    reviewed declarations, behavior and assertions identified in this
    capability’s row citations.
controls: [TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-006, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003]
exercised_by: [FAS-CRM-ACT-01-03, FAS-CRM-ACT-01-04, FAS-CRM-ACT-01-06]
suites: [TST-CRM-ACT-002, TST-CRM-ACT-005, TST-CRM-ACT-007, TST-CRM-ACT-046, TST-CRM-ACT-070]
---

# Review activity changes and their attribution

## Purpose

Staff inspect how an interaction record changes over time.

## How It Works

A staff member with history access opens Version History from the activity editor. Rhythm lists saved revisions from newest to oldest. Opening a revision separates the activity details, links and files. Current record names help the reader recognize related information. Historical values can fall back to their references when a label no longer exists. Creation, modification and deletion all contribute revisions. Service executions and historical imports can carry attribution other than the person currently reading. Deletion of the activity does not remove the available revision list.

## Relationships

- Activity correction produces the revisions staff inspect.
- Access controls determine who can read the activity and its history.
