---
id: SCR-CRM-ACT-006
title: Task drawer
route: '/console/{tenantId}/tasks?task={id}'
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: >-
  Inspect full task context, save permitted field changes and perform supported routing or
  lifecycle actions without leaving the task list.
supports:
  - JNY-CRM-ACT-002
  - JNY-CRM-ACT-003
  - CAP-CRM-ACT-010
  - CAP-CRM-ACT-011
  - CAP-CRM-ACT-012
  - CAP-CRM-ACT-014
  - CAP-CRM-ACT-019
permission: crm.tasks.read (view); crm.tasks.update (every change)
entry_from:
  - A task selected in the workspace explorer.
  - A task link from a related-record timeline.
exits_to:
  - The workspace task list after closing the drawer.
displays:
  - field: 'Work heading, context, category, progress, urgency and work and due days.'
    source: getTask
  - field: 'Holder, queue and related contact and organization choices.'
    source: getTask with the console's user and record pickers
  - field: >-
      Creation, assignment, queue arrival and closing attribution; no modification
      attribution display.
    source: getTask
actions:
  - label: Change a field (saves as changed)
    operation_id: patchTask
    permission: crm.tasks.update
    confirm: false
  - label: Change assignee
    operation_id: patchTask
    permission: crm.tasks.update
    confirm: false
  - label: Complete
    operation_id: completeTask
    permission: crm.tasks.update
    confirm: false
  - label: Reopen
    operation_id: reopenTask
    permission: crm.tasks.update
    confirm: false
  - label: Cancel Task
    operation_id: cancelTask
    permission: crm.tasks.update
    confirm: false
  - label: Claim
    operation_id: claimTask
    permission: crm.tasks.update
    confirm: false
  - label: Release
    operation_id: releaseTask
    permission: crm.tasks.update
    confirm: false
states:
  - loading
  - error
  - read-only
  - inactive
validation:
  - BR-CAP-CRM-ACT-011-01
  - BR-CAP-CRM-ACT-011-08
  - BR-CAP-CRM-ACT-011-12
  - BR-CAP-CRM-ACT-012-13
  - BR-CAP-CRM-ACT-014-06
  - BR-CAP-CRM-ACT-014-07
patterns:
  - Side drawer (sheet) with inline-saving fields
  - 'Action menu limited to the person''s permissions, items enabled by task state'
  - User combobox searching console users; contact selector and organization record picker
component: components/tasks/task-detail-sheet.tsx
evidence:
  - >-
    react-console at baf6dae3: components/tasks/task-detail-sheet.tsx (taskMenuItems,
    closed tasks disable every field), task-assignee-field.tsx, task-complete-toggle.tsx,
    use-task.ts; lib/api/tasks.ts (editTask, assignTask, transitions with the version
    read); app/(console)/console/[tenantId]/tasks/page.tsx (drawer rereads the task).
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-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004]
---

# Task drawer

## What the Screen Is For

Task detail stays in a side drawer over the work list. Opening it retrieves the complete task rather than treating the selected row projection as its full record.

## What It Shows and Lets People Do

Each field change uses an ordinary version-checked patch, including an assignee change. The action menu and completion control combine user authority with current task standing. Closed work disables fields and offers reopening. Queue eligibility controls the console’s claim and release actions.

## States and Errors

Detail retrieval has waiting and failure states. Missing edit authority and closed standing disable fields. Mutation errors remain visible, but failed edits and claims do not universally reread manually held detail. Closing commands revalidate shared query keys even after refusal. Task deletion is unavailable here.

## Patterns It Must Respect

The sheet uses inline-save fields, user and record pickers, and state-sensitive action controls. Read versions protect supported writes. Current refresh behavior is described as observed and does not assert guaranteed drawer recovery.
