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

Section 17 · Pipeline Hygiene — Stop Losing Money to Messy CRM

17.1Find dead or changed contacts

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

What DMA asked for · Decision Book p.31

Find people who have left their companies and, where possible, locate the new decision maker.

Why it matters to DMA: It stops outreach to dead contacts and points to the person who buys now.

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

How we do it

  • The audit reads each account's notes for signs that someone left or an email bounced ("Dana has moved on", "mail returned") and marks that contact, quoting the note as evidence.
  • Email addresses are checked too: the domain must accept mail, and role addresses such as info@ are marked, so a contact can be "not contactable" for a stated reason.
  • When the main contact of a tier-A or B account has left, the account's next best action becomes "find a new contact": the AI proposes, a person confirms. Outreach never goes to the old address.
  • The rules run with every audit of the CRM (and again after each sync). They only detect and explain; nothing is changed in Nutshell by a flag, so a person stays in charge of the fix.

The flow

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

Notes and emails"she has moved on"Auditreads the notesEmail checkdomain, role addressMarkedwith the quoteNext best actionfind a new contactAccount 360"not contactable"
Step 1 of 5

The notes

A 2025 note on Northside Dental says the marketing lead has left.

  • Nutshell
  • AI
  • Rule in code
  • Stored data
  • Routing
  • Screen

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_hashbyteadomaintextstatustextreasonstext[]IDrun_iduuidchecked_attimestampoverride_bytext+ 2 more columnscrm.contactsPKiduuidfull_nametexttitletextprimary_account_iduuid+ 16 more columnsai.scoresPKiduuidtiertextnbatextnba_executortextreason_codesjsonbIDprompt_iduuid+ 14 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_verificationsThe result of checking each contact's email address, and any person's override.10
crm.contactsContacts mirrored from Nutshell (email kept as a hash).20
ai.scoresThe account's next best action, which becomes "find a new contact".20
How the tables connect (2)
ColumnPoints toKept by
ai.email_verifications.run_idagent.runsThe application (by id)
ai.scores.prompt_idagent.promptsThe application (by id)

Worked example

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

A contact who left: the screen and the system

1 / 2

What you see

1.The account

The Account 360 for a tier-A account.

localhost:13301/accounts/…
Account 360: the people on an account, with who can't be contacted and why.
Callout 1

What happens in the system

  • Bridge databaseai.account_twin · ai.scores

    The account's profile and its next best action: find a new contact.

Contacts marked by the rules in the POC today, on the synthetic 30,000-record sample (live counts), and one worked contact.

What the rules found

FlagContactsWhat it means
Bad email28The notes say the person left or the email bounced (quoted)
Checked addresses376Email domain accepts mail

One contact

Account
Northside Dental Group (tier A)
Person
Dana Ortiz, former marketing lead
Evidence
"Dana has moved on; new contact TBD" (note, March 2025)
Next best action
Find a new contact (AI proposes, a person confirms)

In the running POC

localhost:13301/accounts/…
Account 360: the people on an account, with who can't be contacted and why.

1 / 2Account 360: the people on an account, with who can't be contacted and why.

  1. 1The account and its next best action.
  2. 2Each person's contactability, with the reason.

Dashboard · Account 360. 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: left or bouncedDMA AI dashboardEvery contact the notes say left or bounced.
AccountsDMA AI dashboardOpen an account to see each person's contactability.

Status

Built in the POC

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

17.1 Find dead or changed contacts · DMA AI proof