---
id: FAS-CRM-DQ-01
feature: FEAT-CRM-DQ-01
product_area: crm
module: data-quality
revision: 1
status: proposed
product_intent: proposed
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  rhythm-v2-docs: 61315bb0538e230286687677da2b04b1d33f162b
capabilities:
  - CAP-CRM-DQ-001
  - CAP-CRM-DQ-002
  - CAP-CRM-DQ-003
  - CAP-CRM-DQ-004
  - CAP-CRM-DQ-005
  - CAP-CRM-DQ-006
scenarios:
  - id: FAS-CRM-DQ-01-01
    title: Changed contact evidence reaches an explained suggestion
    kind: behaviour
    exercises:
      - CAP-CRM-DQ-001
      - CAP-CRM-DQ-002
    relies_on:
      - ATS-CRM-DQ-001-06
      - ATS-CRM-DQ-002-08
    preconditions: Two run-owned contacts have comparable details and no existing pair.
    steps: >-
      Create both contacts, wait for detection, then inspect the score reasons
      and the visible suggestion.
    expected: The suggestion and its explanation agree with the capability checks.
    negative: false
    data_needs: >-
      Use an isolated workspace, run-owned records and the permission personas
      described by the scenario. Failures and changed dependent records must be
      supplied by fixtures owned by the run.
    bound_to: []
    provenance: proposed
    source: ATS-CRM-DQ-001-06; ATS-CRM-DQ-002-08
    execution_gap: FND-CRM-DQ-072
    note: >-
      The capability assertions define the component evidence. No executable
      binding is claimed for this complete feature sequence.
  - id: FAS-CRM-DQ-01-02
    title: Rule edits change draft refusal and later review
    kind: interaction
    exercises:
      - CAP-CRM-DQ-003
      - CAP-CRM-DQ-004
      - CAP-CRM-DQ-001
    relies_on:
      - ATS-CRM-DQ-003-09
      - ATS-CRM-DQ-004-04
      - ATS-CRM-DQ-001-08
    preconditions: >-
      A matching contact exists and an authorized administrator can change the
      duplicate rule.
    steps: >-
      Change the applicable rule, check a draft, attempt ordinary creation, then
      use an explained authorized exception and process detection.
    expected: >-
      Draft response, refusal, exception attribution and later review work agree
      with the referenced checks.
    negative: false
    data_needs: >-
      Use an isolated workspace, run-owned records and the permission personas
      described by the scenario. Failures and changed dependent records must be
      supplied by fixtures owned by the run.
    bound_to: []
    provenance: proposed
    source: ATS-CRM-DQ-003-09; ATS-CRM-DQ-004-04; ATS-CRM-DQ-001-08
    execution_gap: FND-CRM-DQ-072
    note: >-
      The capability assertions define the component evidence. No executable
      binding is claimed for this complete feature sequence.
  - id: FAS-CRM-DQ-01-03
    title: Evidence refresh preserves reviewed identity
    kind: lifecycle
    exercises:
      - CAP-CRM-DQ-001
      - CAP-CRM-DQ-005
    relies_on:
      - ATS-CRM-DQ-001-07
      - ATS-CRM-DQ-001-08
      - ATS-CRM-DQ-005-04
    preconditions: Detected and reviewed pairs exist before a re-check.
    steps: >-
      Edit matching evidence, start the authorized re-check, deliver a window
      twice and inspect pair identity and progress.
    expected: >-
      Only eligible suggestions retire; reviewed identities and completed
      progress remain consistent.
    negative: false
    data_needs: >-
      Use an isolated workspace, run-owned records and the permission personas
      described by the scenario. Failures and changed dependent records must be
      supplied by fixtures owned by the run.
    bound_to: []
    provenance: proposed
    source: ATS-CRM-DQ-001-07; ATS-CRM-DQ-001-08; ATS-CRM-DQ-005-04
    execution_gap: FND-CRM-DQ-072
    note: >-
      The capability assertions define the component evidence. No executable
      binding is claimed for this complete feature sequence.
  - id: FAS-CRM-DQ-01-04
    title: Readers cannot change configuration or start re-checks
    kind: permission
    exercises:
      - CAP-CRM-DQ-003
      - CAP-CRM-DQ-005
    relies_on:
      - ATS-CRM-DQ-003-08
      - ATS-CRM-DQ-005-01
    preconditions: >-
      A staff persona can read duplicate suggestions but lacks configuration
      authority.
    steps: >-
      Read suggestions, attempt a rule change and attempt a re-check start with
      that persona.
    expected: >-
      Reading succeeds and both administration requests are refused without
      saved changes.
    negative: true
    data_needs: >-
      Use an isolated workspace, run-owned records and the permission personas
      described by the scenario. Failures and changed dependent records must be
      supplied by fixtures owned by the run.
    bound_to: []
    provenance: proposed
    source: ATS-CRM-DQ-003-08; ATS-CRM-DQ-005-01
    execution_gap: FND-CRM-DQ-072
    note: >-
      The capability assertions define the component evidence. No executable
      binding is claimed for this complete feature sequence.
  - id: FAS-CRM-DQ-01-05
    title: Registration decline produces review work
    kind: regression
    exercises:
      - CAP-CRM-DQ-006
      - CAP-CRM-DQ-001
    relies_on:
      - ATS-CRM-DQ-006-03
      - ATS-CRM-DQ-001-06
    preconditions: Portal registration finds an eligible existing contact.
    steps: >-
      Decline that contact, create the new registration contact and inspect the
      resulting duplicate pair.
    expected: The new contact and declined suggestion are linked for later staff review.
    negative: false
    data_needs: >-
      Use an isolated workspace, run-owned records and the permission personas
      described by the scenario. Failures and changed dependent records must be
      supplied by fixtures owned by the run.
    bound_to: []
    provenance: proposed
    source: ATS-CRM-DQ-006-03; ATS-CRM-DQ-001-06
    execution_gap: FND-CRM-DQ-072
    note: >-
      The capability assertions define the component evidence. No executable
      binding is claimed for this complete feature sequence.
  - id: FAS-CRM-DQ-01-06
    title: Imports produce bounded review work without delaying saves
    kind: interaction
    exercises:
      - CAP-CRM-DQ-001
      - CAP-CRM-DQ-005
    relies_on:
      - ATS-CRM-DQ-001-11
      - ATS-CRM-DQ-005-03
    preconditions: An isolated import population contains known duplicate pairs.
    steps: >-
      Import the population, observe completion and inspect the resulting review
      groups.
    expected: >-
      Saved records and group counts agree with the fixture; timing claims
      remain conditional where the source test makes them conditional.
    negative: false
    data_needs: >-
      Use an isolated workspace, run-owned records and the permission personas
      described by the scenario. Failures and changed dependent records must be
      supplied by fixtures owned by the run.
    bound_to: []
    provenance: proposed
    source: ATS-CRM-DQ-001-11; ATS-CRM-DQ-005-03
    execution_gap: FND-CRM-DQ-072
    note: >-
      The capability assertions define the component evidence. No executable
      binding is claimed for this complete feature sequence.
evidence:
  - provenance: documented
    source: FEAT-CRM-DQ-01
  - provenance: proposed
    source:
      - ATS-CRM-DQ-001-06
      - ATS-CRM-DQ-002-08
      - ATS-CRM-DQ-003-09
      - ATS-CRM-DQ-004-04
      - ATS-CRM-DQ-001-08
      - ATS-CRM-DQ-001-07
      - ATS-CRM-DQ-001-08
      - ATS-CRM-DQ-005-04
      - ATS-CRM-DQ-003-08
      - ATS-CRM-DQ-005-01
      - ATS-CRM-DQ-006-03
      - ATS-CRM-DQ-001-06
      - ATS-CRM-DQ-001-11
      - ATS-CRM-DQ-005-03
---

# Locate and Prevent Duplicate Records: Feature Acceptance Suite

## What the Feature Must Do as a Whole

Detection, scoring and configurable responses form a single intake process. Staff need the suggestion to match the saved evidence, while creation refusals and authorized exceptions remain accountable.

## Interactions Between Capabilities

The important handoffs join rule configuration to draft checking, and committed changes to detection and re-check processing. Portal decline and bulk imports also feed staff review, but their complete caller sequence needs its own executable proof. Every sequence remains proposed until one executable selection asserts its full outcome. Existing capability assertions supply evidence for parts of the sequence.

## Regression Record

| Revision | Change | Scenario | Why |
|---|---|---|---|
| 1 | initial | all | Establish feature-level handoffs from the landed capability checks. |
