---
id: SCR-CRM-DQ-007
title: Start a merge
route: '/console/{tenantId}/crm/merges/new'
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: >-
  Select same-type participants for a new merge and transfer to the created plan
  workspace.
supports:
  - JNY-CRM-DQ-002
  - JNY-CRM-DQ-004
  - CAP-CRM-DQ-012
  - CAP-CRM-DQ-010
permission: >-
  Any of crm.contacts.merge, crm.organizations.merge or crm.duplicates.read
  admits the page; creating the plan needs the record type merge and read keys
entry_from:
  - An ordinary record’s merge command
  - A selected set of record duplicate suggestions
exits_to:
  - '/console/{tenantId}/crm/merges/plans/{planId}'
displays:
  - field: >-
      The starting record, offered comparisons and selectable additional
      records.
    source: listRecordDuplicateCandidates (DOM-CRM-DQ-001)
  - field: Available minimum and maximum participant counts.
    source: getMergeLimits (useMergeLimits in ManualMergeStart)
actions:
  - label: Merge
    operation_id: createMergePlan
    permission: the record type merge and read keys
    confirm: false
states:
  - loading
  - error
  - empty
validation:
  - BR-CAP-CRM-DQ-012-01
  - BR-CAP-CRM-DQ-012-07
  - BR-CAP-CRM-DQ-012-12
patterns:
  - PageLayout
  - RequirePermission
  - DataQualityAdapter
  - DataQualityHeader
  - ManualMergeStart
  - RecordPicker
component: components/console/duplicates/new-merge-screen.tsx (NewMergeScreen)
evidence:
  - >-
    react-console at baf6dae3:
    app/(console)/console/[tenantId]/crm/merges/new/page.tsx;
    components/console/duplicates/new-merge-screen.tsx,
    console-record-picker.tsx;
    components/duplicates/start/manual-merge-start.tsx.
  - >-
    react-console:components/duplicates/start/manual-merge-start.tsx:ManualMergeStart;
    components/duplicates/use-limits.ts:useMergeLimits
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-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]
---

# Start A Merge

## What the Screen Is For

The launcher allows deliberate selection even when no stored comparison links the records. It includes the starting record and offers suggested duplicates without selecting them.

## What It Shows and Lets People Do

The manual panel uses the shared CRM-backed record picker and service-provided limits. Creating a plan replaces the launcher address with a resumable plan address and leaves survivor selection to the recommendation unless supplied.

## States and Errors

Missing selection, loading and request failure have explicit messages. The broad page guard can admit readers who are then denied planning by the service’s stricter type permission pair.

## Patterns It Must Respect

The existing ManualMergeStart and RecordPicker provide selection. Limits come through the mounted limits hook rather than a duplicated screen constant.
