---
id: SCR-CRM-ACT-003
title: Record activity timeline
route: >-
  /console/{tenantId}/crm/contacts/{id}?tab=activity (and
  /crm/organizations/{id}?tab=activity)
surface: console
product_area: crm
module: activities-tasks
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
purpose: >-
  Read upcoming and past relationship context for one record and launch permitted
  interaction logging, correction, removal or task detail.
supports:
  - JNY-CRM-ACT-001
  - JNY-CRM-ACT-006
  - CAP-CRM-ACT-005
  - CAP-CRM-ACT-003
  - CAP-CRM-ACT-018
  - CAP-CRM-ACT-019
permission: crm.activities.read and the record's own read permission
entry_from:
  - The Activity tab hosted by a contact or organization record screen.
  - An interaction link landing that selects this timeline entry.
exits_to:
  - The interaction logging or correction sheet.
  - The related task’s detail drawer.
  - Another related record selected through a link chip.
displays:
  - field: >-
      Scheduled interactions and unfinished work ordered from earliest to latest, with
      overdue markers.
    source: 'getContactTimeline or getOrganizationTimeline, section upcoming'
  - field: Finished or cancelled interactions and closed work in period-grouped history.
    source: 'getContactTimeline or getOrganizationTimeline, section history'
  - field: Timeline-wide category and status totals and available owner-filter choices.
    source: getContactTimelineSummary or getOrganizationTimelineSummary
  - field: >-
      Interaction classification, heading, discussion preview, result, ownership, instant
      and other relationships.
    source: DOM-CRM-ACT-001 through the timeline page
  - field: 'Task heading, progress, due day and holder when task reading is authorized.'
    source: 'DOM-CRM-ACT-003 through the timeline page, only for task readers'
actions:
  - label: Log Activity
    operation_id: none (opens the Log Activity sheet)
    permission: crm.activities.create
    confirm: false
  - label: Edit (an activity entry)
    operation_id: none (opens the Edit Activity sheet)
    permission: crm.activities.update (the entry's editable flag)
    confirm: false
  - label: Delete (an activity entry)
    operation_id: deleteActivity
    permission: crm.activities.delete
    confirm: true
  - label: 'Filter, search and load more'
    operation_id: getContactTimeline or getOrganizationTimeline
    permission: crm.activities.read
    confirm: false
  - label: Open a task entry
    operation_id: none (navigates to the Tasks drawer)
    permission: crm.tasks.read
    confirm: false
states:
  - empty
  - loading
  - error
  - read-only
validation:
  - BR-CAP-CRM-ACT-005-01
  - BR-CAP-CRM-ACT-005-04
  - BR-CAP-CRM-ACT-005-06
  - BR-CAP-CRM-ACT-005-08
  - BR-CAP-CRM-ACT-005-10
  - BR-CAP-CRM-ACT-005-12
  - BR-CAP-CRM-ACT-005-14
patterns:
  - Hosted record tab inside the Entities record screens
  - 'Timeline list with quick chips, filters and in-record search'
  - AlertDialog confirmation for delete
  - Compact limited timeline on the Overview tab
component: components/activities/record-activity-timeline.tsx
evidence:
  - >-
    react-console at baf6dae3: components/activities/record-activity-timeline.tsx,
    activity-timeline.tsx (filters persisted per browser, DeleteActivityDialog, summary
    chips), use-activities.ts (useActivityPermissions); lib/activities/api.ts
    (listTimeline, getTimelineSummary, deleteActivity).
  - >-
    services-crm at a8d1364f: modules/activities/aws/api/activities.routes.ts (timeline
    routes); services/persistence/timelines.ts.
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-004, TC-LOG-005, TC-PI-001, TC-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003]
---

# Record activity timeline

## What the Screen Is For

Staff use this record-hosted timeline to prepare for a relationship’s next interaction and inspect its earlier context. Entities supplies the hosting record screen.

## What It Shows and Lets People Do

The view combines interaction and authorized task context, with summary chips and filters over the full timeline. Search matches supported text without case or accent distinctions. Permitted users can log, correct or confirm removal of an interaction; task entries open the task drawer. Overview hosts a compact form of the timeline.

## States and Errors

Loading and empty states apply to each read. Readers without task authority receive interaction-only context. Absorbed-record responses identify the survivor. Editability reflects permission rather than locks, so an offered edit can still fail at save. Browser-stored filters fall back to temporary state when storage is unavailable.

## Patterns It Must Respect

The implementation uses a hosted record tab, timeline components, filter controls and a removal confirmation dialog. Rule references carry its validation contract; the layout itself is observed rather than approved by this examination.
