Skip to content

A lead flagged duplicate_status: suspected looks clean on its record page, and Convert Lead never mentions it — the duplicate converts into a second account, contact and opportunity #1207

Description

@os-zhuang

A lead flagged duplicate_status: suspected looks exactly like a clean lead on its own record page, and Convert Lead never mentions it — the duplicate is converted into a second account, contact and opportunity

What happens

  1. crm_lead already holds Theo Park / Skyline Media / theo.park@skylinemedia.example.com (seed data).
  2. Create a new lead through the UI with the same email and company (Wei Zhang / Skyline Media / theo.park@skylinemedia.example.com). It is accepted with no warning.
  3. Open the new lead. The record page shows status, score, owner, email — and nothing else. Nothing indicates it is a suspected duplicate.
  4. Press Convert Lead → confirm → tick Create Opportunity → Submit. It converts.

The stored record after step 2 is not ambiguous — lead_duplicate_check did its job:

"duplicate_of_type": "crm_lead",
"duplicate_of_lead": "dfSlnObNu0oXwRk-",
"duplicate_status": "suspected"

and after step 4:

"converted_account":     "2y7-PvxbS1o08j7A",   // new account ACC-000010 "Skyline Media"
"converted_contact":     "5B0nItHGRr768EfD",
"converted_opportunity": "VLEnmZCSf7BkT1xA"

So the app detected the duplicate, wrote the flag, and then converted it anyway — creating a second account for a company it already had a lead for, plus a contact and a pipeline opportunity behind it. Two reps now work the same buyer, and the pipeline is double-counted.

Where the flag does and does not surface

src/views/lead.view.ts:446 ships a suspected_duplicates grid, and the comment above it is explicit about the intent: "Without a place to SEE that set, the flag would be a column nobody reads." That queue exists and drains — but it is one list view behind the view switcher. Nothing carries the flag to:

  • the lead record page — no banner, no field, no badge (src/pages/lead_detail.page.ts never mentions duplicate_status);
  • the conversion itself — Convert Lead asks one question ("create an opportunity?") and never looks at duplicate_status.

A reviewer working the queue is the slow path. The rep who is about to convert is the moment the flag is worth something, and it is silent there.

Suggested direction

Two independent pieces, either one useful alone:

  1. Show it on the record. A suspected-conditional banner (or at minimum the duplicate_of_lead link in the highlights) on lead_detail.page.ts, so a rep opening the lead sees "this repeats an existing lead" with a link to compare.
  2. Say it at conversion. The convert screen already collects input; a suspected duplicate should surface there — at minimum a warning line naming the record it repeats, so converting is a decision rather than an accident. Whether it should block is a product call worth deciding explicitly.

Found by driving the app as a seller in a browser against a fresh pnpm dev on 17.1.0.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingmetadataDeclarative metadata — schema, security posture, UI surfacespm:dispatchedDispatched to a dev agent by /pm-dispatchprio:p1Next in line once P0s clear

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions