---
id: ADR-CRM-ACT-007
title: 'Workspace-wide lists are queries over datasets, not list routes'
product_area: crm
module: activities-tasks
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: >-
  Use registered datasets and Platform query execution for general workspace interaction
  and task views, counts and exports; retain local reads for record timelines and
  role-offered work.
constrains:
  - SVC-CRM-ACT-activities
  - SVC-CRM-ACT-tasks
  - SCR-CRM-ACT-001
  - SCR-CRM-ACT-005
  - DOM-CRM-ACT-005
origin: >-
  Andrew's ruling D-49 (CRM-M8, 2026-10-19: an activities dataset and recipe in Explorer)
  and Andrew 2026-10-15 (three shipped recipes, recorded in services-crm docs/attention.md
  §2); activities migration design D2.
alternatives:
  - option: Add general list and search APIs to both modules.
    why_not: >-
      Those APIs would duplicate shared filtering, view, sorting, count and export
      infrastructure.
  - option: Maintain a separate interaction search index.
    why_not: >-
      The cited CRM architecture excludes that index; record-local search is supplied by
      timeline reads.
consequences:
  - >-
    The two workspace explorers consume registered recipes and shared saved-view and
    export functions.
  - Query permissions and applicable Platform policies control broad list access.
  - Role-offered work keeps a dedicated task read that consults security assignments.
  - Query readiness depends on registration of the declared datasets and recipes.
supersedes: []
evidence:
  - >-
    services-crm at a8d1364f: modules/activities/aws/api/activities.routes.ts (header);
    modules/tasks/aws/api/tasks.routes.ts (header); queries/*.query.ts and recipes;
    docs/migrations/task-management/README.md §7 and §10.
  - >-
    react-console at baf6dae3: components/console/activities/activities-definition.tsx;
    components/console/tasks/tasks-definition.tsx.
---

# Workspace-wide lists are queries over datasets, not list routes

## Context

Staff need personal work, overdue work and selected interaction views over the same underlying records. Shared query infrastructure supplies those variations.

## Decision

The cited explorer and recipe decisions establish the broad-list boundary. General record lists are query-driven, while context-specific timeline and role-offer reads remain in CRM.

## Alternatives Considered

The structured alternatives describe concrete competing designs and their tradeoffs. Where the origin records an existing ruling, it remains the authority; an observed implementation does not establish Product’s rejection of every alternative.

## Consequences

The console reuses explorer behavior rather than duplicating general list routes. External registration and permission evaluation still need their own integration evidence.
