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.2Automatic CRM field extraction

Built in the POC
No.
20.2
DMA's reference
Decision Book p.36
Phase
Phase 1
Autonomy
L2 · Prepare, then wait for approval
DMA's decision
Yes

★ Marked "non-negotiable, build first" in the book. ◆ Amended in v3 of the book.

What DMA asked for · Decision Book p.36

Pull budget, services, timeline, incumbent agency, decision maker and objections out of the call into CRM fields.

Why it matters to DMA: These are the facts that decide a deal, and they are the ones reps least often type in.

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

How we do it

  • The model fills six named fields from the call: budget, services, timeline, incumbent agency, decision maker and objection. Each must come with the prospect's exact words.
  • Code keeps only what it can prove: the quote must be in the transcript, an amount must match the words, and a date is worked out from the meeting date, not guessed. A value with no quote is dropped.
  • Kept facts are stored on the account with their quote; the Nutshell fields they map to are written only through the batch approval.

The flow

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

The prospect's words"decide by October 15"Readsix named fieldsProofquote found, value matchesFactwith its quoteNutshell fieldafter approval
Step 1 of 5

Said on the call

Greg says they'll decide by October 15.

  • Person
  • AI
  • Rule in code
  • Stored data
  • Nutshell

Where the data goes

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

  1. 1Call transcript

    Source

    A call transcript: pasted, or a Zoom .vtt / .txt file dropped on the account (text only, 512 KB at most).

  2. 2Sync

    Copies Nutshell changes into the bridge database

    Reads the account, people and open deals from the mirror, to match the call to the right company.

  3. 3Bridge database

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

    The run, the facts with their quotes and the e-mail draft are stored; the transcript is kept encrypted.

  4. 4AI

    Claude models, only through DMA's own gateway

    The fast model reads the call and copies exact words; code checks every quote, date and amount. The conversation model drafts the follow-up.

  5. 5Write gate

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

    Every change waits as one batch for one approval, then leaves through the write gate with 30 seconds to undo.

  6. 6Nutshell

    The system of record

    The note, the tasks and the fields appear on the deal, marked as written by DMA AI.

The tables behind it

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

ai.extracted_factsPKiduuidfact_keytextvaluejsonbconfidencenumericevidence_quotetextobserved_attimestampstatustextIDprompt_iduuid+ 7 more columnsai.scribe_runsPKiduuidtitletextmeeting_datedateFKconversation_iduuidstatustextaccount_iduuidFKapproval_iduuidfollow_up_draft_iduuid+ 16 more columnsctrl.outboxPKiduuidoperationtextbefore_imagejsonbautonomy_leveltextFKapproval_iduuidapproved_bytextstatetext+ 21 more columns

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

TableWhat it holdsColumns
ai.extracted_factsFacts the AI found, each with the exact quote it came from and a confidence.15
ai.scribe_runsOne row per logged call: the transcript's fingerprint, the account it matched, the extraction and the approval batch it produced.24
ctrl.outboxThe write gate: each proposed Nutshell change, its approval and what it replaced.28
How the tables connect (4)
ColumnPoints toKept by
ai.extracted_facts.prompt_idagent.promptsThe application (by id)
ai.scribe_runs.conversation_idconv.conversationsThe database (foreign key)
ai.scribe_runs.approval_idctrl.approvalsThe database (foreign key)
ctrl.outbox.approval_idctrl.approvalsThe database (foreign key)

Worked example

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

The facts kept from the Summit HVAC call.

What the call said, each with its quote

FactValueWhat the prospect said
Budget$6,000 a month"We can do about six thousand a month now across the three shops."
ServicesPaid search and Google Business listings"If we took over paid search and your Google Business listings, what budget are you thinking?"
TimelineDecide by October 15"I want to decide by October 15 so we're running before the winter rush."
IncumbentNephew runs Google Ads"My nephew runs our Google Ads in his spare time."
Decision makerGreg Hollis owns all three shops"Just me. I own all three shops, so it's my call."
ObjectionWon't sign longer than month to month"I won't sign anything longer than month to month."

In the running POC

localhost:13301/approvals
The CRM updates from one logged call, waiting for one-click approval (a real run on synthetic data).

The CRM updates from one logged call, waiting for one-click approval (a real run on synthetic data).

  1. 1The note and tasks at the top; the kept facts are listed under "Kept as facts on the account".
  2. 2The follow-up e-mail, drafted and claim-checked; approving saves it, it never sends.
  3. 3One click approves the whole batch; each line can also be edited or dropped.

Dashboard · Approvals, the CRM updates from one call transcript. 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
Accounts → Log a callDMA AI dashboardOpen an account and paste or drop a Zoom transcript.
Approvals → CRM updatesDMA AI dashboardThe changes from a logged call, each with the quote it came from.

Status

Built in the POC

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

20.2 Automatic CRM field extraction · DMA AI proof