---
id: SCR-CRM-DQ-011
title: Duplicate warning and block at record creation
route: >-
  The contact and organization create forms
  (/console/{tenantId}/crm/contacts/new,
  /console/{tenantId}/crm/organizations/new)
surface: console
product_area: crm
module: data-quality
revision: 1
status: draft
design_intent: proposed
implementation_evidence: partially-observed
inference: []
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
purpose: >-
  Present draft matches and an accountable creation exception when matching
  rules refuse a new record.
supports:
  - JNY-CRM-DQ-005
  - CAP-CRM-DQ-004
permission: >-
  crm.duplicates.read for the draft check;
  crm.contacts.create-despite-duplicate-block or
  crm.organizations.create-despite-duplicate-block for Create Anyway
entry_from:
  - An ordinary new contact or organization form
exits_to:
  - The created record page
  - An existing matched record page
displays:
  - field: >-
      At most five draft suggestions with public record summaries, score and
      readable evidence.
    source: checkForDuplicates (DOM-CRM-DQ-001)
  - field: Blocking context and the service’s exception-availability indication.
    source: The Entities create refusal produced by the duplicates block guard
actions:
  - label: Open a matched record
    operation_id: 'none: navigation'
    permission: crm.duplicates.read
    confirm: false
  - label: Create Anyway with a reason
    operation_id: >-
      createContact or createOrganization with confirmed not duplicate and
      reason (Entities)
    permission: crm.contacts.create-despite-duplicate-block or the organization key
    confirm: true
states:
  - empty
  - loading
  - error
validation:
  - BR-CAP-CRM-DQ-004-02
  - BR-CAP-CRM-DQ-004-07
  - BR-CAP-CRM-DQ-004-11
patterns:
  - DuplicateBlockRefusal
  - Alert
  - Dialog
  - Textarea
component: >-
  components/records/create/duplicate-block-refusal.tsx with
  lib/duplicates/checks.ts and create-block.ts
evidence:
  - >-
    react-console at baf6dae3:
    components/records/create/duplicate-block-refusal.tsx;
    lib/duplicates/checks.ts, create-block.ts;
    components/contact-editor/contact-editor.tsx;
    components/organization-editor/organization-editor.tsx.
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]
---

# Duplicate Warning And Block At Record Creation

## What the Screen Is For

Duplicate assistance belongs inside the Entities creation flow. It helps staff inspect possible existing records and explains a blocking refusal without turning advisory hints into enforcement.

## What It Shows and Lets People Do

An exception button requires both the service’s availability indication and the console’s override permission. Its dialog requires a trimmed explanation within the length limit and resubmits creation with that reason; the API decides whether creation commits.

## States and Errors

Failed draft matching removes unavailable hints. A blocking refusal remains inspectable, and a failed exception submission leaves its dialog available with an error.

## Patterns It Must Respect

The built refusal uses Alert, Dialog and Textarea. Create-form mounts and ordinary form authority remain outside fully verified module page scope.
