Confidential · © 2026 Space-O Technologies Inc. · Prepared exclusively for DMA. Please do not copy, save or share.

Section 20 · Sales Rep Work Elimination / Zero-Entry CRM

20.7Duplicate detection + smart merge

Built in the POC
No.
20.7
DMA's reference
Decision Book p.37
Phase
Phase 1
Autonomy
L1 · Recommend
DMA's decision
Yes

What DMA asked for · Decision Book p.37

Find duplicate companies and people, and suggest the merge.

Why it matters to DMA: Duplicates split a customer's history and send two reps after one buyer.

In our words, from DMA's Product Decision Book v3, page 37.

How we do it

  • A rule compares company names and web domains, and people's names, e-mails and phones. Each likely pair gets a score and what matched.
  • The book sets this at L1 (suggest). The pair is shown with its evidence; the merge itself is done by a person in Nutshell, which keeps Nutshell's own merge history.
  • A likely duplicate's score is capped until it is resolved, so the same buyer isn't worked twice.

The flow

It plays on its own while it's on screen; hover or use the controls to pause or step through.

Companies, peoplemirroredComparename, domain, e-mail, phoneLikely pairscore + what matchedA personmerges in Nutshell
Step 1 of 4

The records

Every company and person in the mirror.

  • Nutshell
  • Rule in code
  • Stored data
  • Person

Where the data goes

The same six stages on every page. Nothing reaches Nutshell except through the write gate.

  1. 1Nutshell

    Source

    Deals, contacts, tasks, activities, notes and users.

  2. 2Sync

    Copies Nutshell changes into the bridge database

    Keeps the mirror current, so the rules see today's state.

  3. 3Bridge database

    A copy of the CRM data, plus what the AI works out

    One open flag per record and problem, with its details and the rule version.

  4. 4AI

    Claude models, only through DMA's own gateway

    Not needed for most flags: they are rules. The audit adds what only the notes say.

  5. 5Write gate

    The only way back into Nutshell: checked, approved when needed, sent once

    Flags don't write to Nutshell; fixes happen there, by people (or through the write gate where a field rule allows it).

  6. 6Nutshell

    The system of record

    Reps fix the record; the flag closes on the next run.

The tables behind it

Drawn from the POC's database catalogue: structure only, no data.

ai.duplicate_candidatesPKiduuidentity_typetextscorenumericmatched_ontext[]statustextreviewed_bytext+ 4 more columnsai.hygiene_flagsPKiduuidsubject_typetextflag_codetextseveritytextdetailsjsonbrule_versiontextdetected_attimestampresolved_attimestamp+ 2 more columns

PK primary keyFK reference the database enforces (solid line)ID reference kept by id (dashed line)

TableWhat it holdsColumns
ai.duplicate_candidatesPairs of records that look like the same company or person, with the score and what matched.10
ai.hygiene_flagsOne open flag per record and problem (stuck deal, missing next step, former owner, bad email, duplicate), with severity, details and the rule version.10

Worked example

Synthetic demo data: every name, business and number is made up.

Likely duplicates in the POC today (live counts, synthetic data).

Open pairs

KindPairsTop matches on
Companies24Name, web domain and a shared contact
People7Name, e-mail or phone

In the running POC

localhost:13301/accounts
A likely duplicate: why its score is capped.

1 / 2A likely duplicate: why its score is capped.

  1. 1The reasons, including the duplicate.
  2. 2What could make this wrong.

Dashboard · Accounts, a likely duplicate, why the score is capped. Captured from the running POC on September 25, 2026; synthetic data.

See it live

Opens the exact screen in the running POC, in a new tab.

OpenWhereWhat to try
Pipeline hygiene: possible duplicatesDMA AI dashboardEvery likely pair, with what matched.

Status

Built in the POC

Built in the POC. This capability runs in the POC today, on synthetic data, end to end.

20.7 Duplicate detection + smart merge · DMA AI proof