---
id: SCR-CRM-DQ-008
title: Merge workspace
route: '/console/{tenantId}/crm/merges/plans/{planId}'
surface: console
product_area: crm
module: data-quality
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
purpose: >-
  Review and decide a complete merge preview, confirm execution and follow its
  outcome.
supports:
  - JNY-CRM-DQ-002
  - JNY-CRM-DQ-003
  - JNY-CRM-DQ-004
  - CAP-CRM-DQ-012
  - CAP-CRM-DQ-013
  - CAP-CRM-DQ-014
  - CAP-CRM-DQ-015
  - CAP-CRM-DQ-016
  - CAP-CRM-DQ-017
permission: >-
  Any of crm.contacts.merge, crm.organizations.merge or crm.duplicates.read
  admits the page; every plan operation needs the plan record type merge and
  read keys
entry_from:
  - New-plan creation
  - An in-place queue merge
  - A resumable plan address
exits_to:
  - '/console/{tenantId}/crm/dataQuality/merges/{mergeId}'
  - The survivor record page
  - The next queue group
displays:
  - field: >-
      Selected participants, record summaries and survivor recommendation
      reasons.
    source: getMergePlan (DOM-CRM-DQ-003)
  - field: >-
      Field choices and defaults, automatic combinations, related actions,
      warnings, blockers, omissions and execution estimates.
    source: getMergePlan computed plan
  - field: Attempt standing and the workspace’s progress and outcome panels.
    source: getRecordMerge (DOM-CRM-DQ-004)
actions:
  - label: 'Choose survivor, add or remove records, answer or clear a question'
    operation_id: updateMergePlan
    permission: the plan record type merge and read keys
    confirm: false
  - label: Review before confirming
    operation_id: validateMergePlan
    permission: the plan record type merge and read keys
    confirm: false
  - label: Confirm Merge
    operation_id: executeMergePlan
    permission: the plan record type merge and read keys
    confirm: true
  - label: Follow progress
    operation_id: getRecordMerge
    permission: crm.merges.read
    confirm: false
states:
  - loading
  - error
  - read-only
  - inactive
validation:
  - BR-CAP-CRM-DQ-013-02
  - BR-CAP-CRM-DQ-013-06
  - BR-CAP-CRM-DQ-013-07
  - BR-CAP-CRM-DQ-014-14
  - BR-CAP-CRM-DQ-016-01
  - BR-CAP-CRM-DQ-016-02
  - BR-CAP-CRM-DQ-016-14
patterns:
  - PageLayout
  - RequirePermission
  - DataQualityAdapter
  - MergeWorkspace
  - RecordPicker
  - MergeProgress
  - MergeOutcome
component: >-
  components/console/duplicates/merge-plan-screen.tsx (MergePlanScreen) and
  merge-workspace-screen.tsx
evidence:
  - >-
    react-console at baf6dae3:
    app/(console)/console/[tenantId]/crm/merges/plans/[planId]/page.tsx;
    components/console/duplicates/merge-plan-screen.tsx,
    merge-workspace-screen.tsx; components/duplicates/merge/*.tsx,
    use-merge-plan.ts, use-merge-execution.ts.
controls: [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-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]
---

# Merge Workspace

## What the Screen Is For

The workspace connects review of a proposed combination with its execution result. The same component mounts for a direct plan address or an in-place queue merge.

## What It Shows and Lets People Do

Participants and field choices update the preview under version checks. Confirmation names the retained and absorbed records, discloses discarded values and requires acceptance of defaults. Progress polls frequently at first and more slowly after thirty seconds; leaving does not cancel the job.

## States and Errors

Stale changes refresh the preview for renewed review, blockers disable execution and settled plans prevent editing. A failed attempt retains decisions on an eligible reopened plan, but expiry races can prevent that reopening.

## Patterns It Must Respect

The built workspace uses comparison, confirmation, progress and outcome components with the host’s picker and permission booleans. Its progress panel derives broad phases from attempt standing rather than displaying the four durable-job steps.
