---
id: SCR-CRM-DQ-005
title: Recently merged
route: '/console/{tenantId}/crm/dataQuality/merges'
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: >-
  Inspect workspace merge attempts with captured participants, requester
  attribution and completion standing.
supports:
  - JNY-CRM-DQ-006
  - CAP-CRM-DQ-019
permission: crm.merges.read (the console crm.merges.view alias)
entry_from:
  - The overview’s merge-history entry
exits_to:
  - '/console/{tenantId}/crm/dataQuality/merges/{mergeId}'
  - The survivor record page
displays:
  - field: >-
      Captured survivor and absorbed labels, requester, timing and queued,
      merging, completed or failed standing.
    source: listRecordMerges (DOM-CRM-DQ-004)
actions:
  - label: Open a merge
    operation_id: getRecordMergeDetails (through SCR-CRM-DQ-006)
    permission: crm.merges.read
    confirm: false
states:
  - loading
  - empty
  - error
validation:
  - BR-CAP-CRM-DQ-019-01
  - BR-CAP-CRM-DQ-019-03
patterns:
  - PageLayout
  - RequirePermission
  - DataQualityAdapter
  - DataQualityHeader
  - RecentlyMergedList
  - Table
component: >-
  components/console/duplicates/recently-merged-screen.tsx
  (RecentlyMergedScreen)
evidence:
  - >-
    react-console at baf6dae3:
    app/(console)/console/[tenantId]/crm/dataQuality/merges/page.tsx;
    components/console/duplicates/recently-merged-screen.tsx;
    components/duplicates/history/recently-merged-list.tsx,
    use-merge-history.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-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003]
---

# Recently Merged

## What the Screen Is For

Recently Merged provides a paged account of combinations and outstanding or failed attempts. The adapter requests all statuses rather than inheriting the API’s success-only default.

## What It Shows and Lets People Do

Rows identify the survivor, absorbed participants, requester and available timing. They open management details and can link to the surviving business record.

## States and Errors

Empty and loading states are explicit. A failed page does not masquerade as the preceding page, and retained previous cursors allow backward navigation.

## Patterns It Must Respect

The existing history table, record chips and status badges render captured labels with readable fallbacks. Paging follows service cursors.
