AddThisFeature

Duplicate Detection on Create

Warn users before they create something that probably already exists.

moderate Data & Content

What it adds

A check on create that surfaces likely existing matches and lets the user reuse one instead of adding another copy.

What your agent is told to do

5
  1. 1

    Pick the fields that actually identify a record — name, email, phone, domain — and match on those rather than on everything.

  2. 2

    Normalize before comparing: trim and collapse whitespace, fold case, strip punctuation, canonicalize phone numbers, and handle email plus-addressing and dots consistently.

  3. 3

    Show possible matches inline before the user commits, with enough detail to tell them apart, and offer to open the existing record instead.

  4. 4

    Recheck on the server at write time. A client-side check loses the race when two people submit at once.

  5. 5

    Do NOT hard-block on a fuzzy match. Similar names are often different people. Let the user override, and record who overrode and why.

Edge cases it handles

6
  • Matching must respect tenant and permission boundaries — never reveal a record the user cannot otherwise see.
  • A near-match the user cannot view must be silently ignored, not shown as a redacted teaser.
  • Editing an existing record must not flag that record as a duplicate of itself.
  • The scan must stay fast on large tables; index the normalized comparison values rather than scanning raw text.
  • Genuinely identical names are common in some datasets. If duplicates are legitimate for an object type, do not check it at all.
  • An override must be auditable, so someone can later ask why two records exist.

Definition of done

8
  • Likely duplicates are shown before the record is created.
  • Comparison values are normalized consistently on read and write.
  • The server rechecks at write time and prevents concurrent duplicates.
  • Matches are scoped to what the user is permitted to see.
  • Users can override the warning and the override is recorded.
  • Editing a record never flags it against itself.
  • The feature matches the existing design system.
  • No existing functionality is broken.

Related features

How it works

  1. 1

    Copy the link

    Grab the Markdown instruction URL for this feature.

  2. 2

    Give it to your AI

    Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.

  3. 3

    It inspects, then implements

    Your agent reads your existing app first, then adds the feature to fit it.

Works with your stack

These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.

Need it tighter than that? Customize the feature and tell it exactly what you're running.