---
id: TST-CRM-DQ-176
title: CRM merging browser acceptance
kind: browser-lifecycle
product_area: crm
module: data-quality
revision: 1
status: draft
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  rhythm-v2-docs: 61315bb0538e230286687677da2b04b1d33f162b
repository: react-console
files:
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0230.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0231.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0232.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0233.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0234.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0235.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0236.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0237.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0238.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0239.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0240.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0241.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0242.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0243.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0244.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0245.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0246.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0247.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0248.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0249.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0250.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0251.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0252.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0253.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0254.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0255.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0256.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0257.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0258.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0259.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0260.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0261.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0262.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0263.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0264.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0265.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0266.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0267.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0268.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0269.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0270.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0271.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0272.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0273.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0274.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0275.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0276.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0277.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0278.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0279.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0280.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0281.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0282.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0283.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0284.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0285.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0286.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0287.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0288.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0289.spec.ts
implements:
  - ATS-CRM-DQ-001-11
  - ATS-CRM-DQ-002-08
  - ATS-CRM-DQ-003-09
  - ATS-CRM-DQ-004-07
  - ATS-CRM-DQ-007-08
  - ATS-CRM-DQ-008-08
  - ATS-CRM-DQ-010-05
  - ATS-CRM-DQ-010-06
  - ATS-CRM-DQ-012-07
  - ATS-CRM-DQ-013-10
  - ATS-CRM-DQ-014-14
  - ATS-CRM-DQ-015-04
  - ATS-CRM-DQ-015-09
  - ATS-CRM-DQ-018-08
  - ATS-CRM-DQ-019-07
environment: deployed-dev
command: node acceptance/crm/playwright/run.mjs --area merging --workers 3
gate: >-
  This is an on-demand acceptance boundary; it is not a corpus or ordinary pull-request
  gate. Serial and exclusive projects protect shared rule and security changes.
implementation_state: implemented
implementation_evidence: observed
latest_result: not-run
conformance: not-verified
estimated_minutes: 30
isolation: >-
  Use run-owned records; serialize changes to shared configuration and restore the
  original values.
retries: none
proves_controls: []
evidence:
  - provenance: test
    source:
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0230.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0231.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0232.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0233.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0234.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0235.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0236.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0237.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0238.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0239.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0240.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0241.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0242.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0243.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0244.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0245.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0246.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0247.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0248.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0249.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0250.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0251.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0252.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0253.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0254.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0255.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0256.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0257.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0258.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0259.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0260.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0261.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0262.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0263.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0264.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0265.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0266.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0267.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0268.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0269.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0270.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0271.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0272.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0273.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0274.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0275.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0276.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0277.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0278.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0279.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0280.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0281.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0282.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0283.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0284.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0285.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0286.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0287.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0288.spec.ts'
      - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0289.spec.ts'
  - provenance: documented
    source: 'rhythm-v2-docs:specs/CONVENTIONS.md#10.6 Executable Test Suite'
lifecycles:
  create: partial
  change: partial
  archive: not-applicable
  delete: partial
  merge: partial
  reconcile: not-applicable
lifecycle_gaps:
  - FND-CRM-DQ-074
lifecycle_notes:
  archive: >-
    Archiving ordinary CRM records belongs to Entities; these tests concern duplicate
    review and identity combination.
  reconcile: This runner does not establish deployed recovery.
blocked_files:
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0242.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0245.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0246.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0247.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0252.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0260.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0264.spec.ts
  - acceptance/crm/playwright/journeys/merging/CRM-ACC-0287.spec.ts
blocked_file_evidence:
  provenance: test
  source:
    - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0242.spec.ts'
    - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0245.spec.ts'
    - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0246.spec.ts'
    - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0247.spec.ts'
    - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0252.spec.ts'
    - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0260.spec.ts'
    - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0264.spec.ts'
    - 'react-console:acceptance/crm/playwright/journeys/merging/CRM-ACC-0287.spec.ts'
  note: >-
    These eight files contain a blocked-error placeholder. Catalog filtering prevents them
    from supplying an executable product assertion; none is used by the capability
    execution sources.
---

# CRM merging browser acceptance

## Verification Boundary

A production console build, dev CRM APIs, persona accounts and run-owned seeded records are real. Catalog-blocked journeys and tier-limited steps do not establish full proof.

## What This Suite Proves

Scored suggestions, review decisions, merge choices and survivor navigation are checked through a browser and independently read through CRM APIs. The scenario bindings identify the assertions inspected in this examination. No control claim is assigned without a check that fails when the control is removed.

## What It Does Not Prove

Eight registered files contain blocked placeholders rather than product assertions. Other journeys can be restricted to an API tier or require destructive opt-in. The file inventory preserves these source boundaries without assigning proof to skipped steps; the blocked files are listed in frontmatter.

## Level and Rationale

A browser is needed to check the visible controls, navigation and adapter requests. Lower-level service checks cannot establish those screen outcomes.

## Lifecycle Coverage

Create, change and cleanup receive partial credit because these tests select data-quality behavior rather than the complete ordinary record lifecycle. Merge receives partial credit where it appears: a test selection does not establish every contact, organization and external participant variant. Archive belongs to the ordinary record module; deployed reconciliation remains outside these browser and local API selections. The lifecycle finding records these limits.

## Real Dependencies and Test Doubles

A production console build, dev CRM APIs, persona accounts and run-owned seeded records are real. Catalog-blocked journeys and tier-limited steps do not establish full proof.

## Must Not Be Doubled

Keep the rendered components and request adapters real; replacing them would remove the console behavior under examination.

## Fixtures and Isolation

Use run-owned records; serialize changes to shared configuration and restore the original values. Acceptance journeys use run-specific names and registered cleanup; shared configuration changes require the runner’s isolation project.

## Determinism and Retries

The register records no new runtime result. Existing polling and fixture clocks remain part of the authored tests; polling for completion is not a retry of a failed case. Run with at most three workers and diagnose a failure before rerunning it.

## How It Runs

The frontmatter records the scoped command and its runner tier. Supply the configuration and fixtures required by that Playwright project.

## Coverage Gaps

Mapped scenarios retain their exact execution sources for review; combined multi-source scenarios can still leave an ordered handoff unproved. The capability gap records identify unbound obligations, and the grouped-suite finding records incomplete lifecycle and runtime coverage.
