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.26Bad-data detection

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

What DMA asked for · Decision Book p.41

Spot bad data: dead e-mails, role addresses, records owned by people who left.

Why it matters to DMA: Bad data quietly breaks outreach, routing and reports.

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

How we do it

  • Rules flag bad or role e-mails, records owned by a disabled Nutshell user, and likely duplicates, each with what the rule saw.
  • Every address is verified before any send (20.10).
  • Flags don't change Nutshell; people fix the record there and the flag closes on the next run.

The flow

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

RecordsmirroredRulese-mail, owner, duplicateFlagwith what it sawFixed in Nutshellflag closes
Step 1 of 4

The records

Contacts, deals, companies.

  • 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.hygiene_flagsPKiduuidsubject_typetextflag_codetextseveritytextdetailsjsonbrule_versiontextdetected_attimestampresolved_attimestamp+ 2 more columnsai.email_verificationsPKcontact_iduuidPKvalue_hashbyteastatustextreasonstext[]IDrun_iduuidchecked_attimestampoverride_bytext+ 3 more columns

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

TableWhat it holdsColumns
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
ai.email_verificationsEach contact address's check result (valid, risky, invalid) and why.10
How the tables connect (1)
ColumnPoints toKept by
ai.email_verifications.run_idagent.runsThe application (by id)

Worked example

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

Live counts, synthetic data.

Open flags

FlagOpen
Former owner70
Possible duplicate50
Left or bounced28

In the running POC

localhost:13301/hygiene?hyg_flag=former_owner
Pipeline hygiene, filtered to records owned by people who left.

Pipeline hygiene, filtered to records owned by people who left.

  1. 1The flag filters, with counts.
  2. 2What the rule saw.
  3. 3The owner who has left.

Dashboard · Pipeline hygiene, records owned by people who left. 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: former ownersDMA AI dashboardRecords owned by people who left.

Status

Built in the POC

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

20.26 Bad-data detection · DMA AI proof