Section 7 · Next Best Action for Every Lead
7.1One simple instruction per record
Built in the POC- No.
- 7.1
- DMA's reference
- Decision Book p.18
- Phase
- Phase 1
- Autonomy
- L1 · Recommend
- DMA's decision
- Yes
★ Marked "non-negotiable, build first" in the book.
What DMA asked for · Decision Book p.18
For every record, the AI gives one plain instruction: call today, email, wait, monitor, send a case study, find a new contact, or no action.
Why it matters to DMA: It turns 30,000 records into a list someone can work through each day, instead of a database nobody can face.
In our words, from DMA's Product Decision Book v3, page 18.
How we do it
- Each night every account is scored from 0 to 100 by code, from the facts the AI found in DMA's notes and the CRM history. The AI never outputs a number.
- Eight ordered rules then pick one next best action from exactly DMA's list: call today, email, wait, monitor, send case study, find new contact or no action. The first rule that matches wins. The rules are data in DMA's scoring settings and change only through an approved version.
- Each action is written in words with the contact's name ("Win-back email to Dana") and a one-line reason that only restates the facts, plus a "could be wrong if" line code always fills in.
- Calls and new contacts go to a person; emails are drafted for approval. The action and the reason are written onto the Nutshell account (AI Next Best Action, AI Reason) through the write gate.
The flow
It plays on its own while it's on screen; hover or use the controls to pause or step through.
The record is read
Notes, deals, contacts and activity from the Nutshell mirror.
- Nutshell
- AI
- Rule in code
- Screen
Where the data goes
The same six stages on every page. Nothing reaches Nutshell except through the write gate.
- 1Nutshell
Source
Every account, deal, contact and note.
- 2Sync
Copies Nutshell changes into the bridge database
Keeps the mirror current; changed records are re-scored.
- 3Bridge database
A copy of the CRM data, plus what the AI works out
Stores facts, scores, the chosen action and the rule that picked it.
- 4AI
Claude models, only through DMA's own gateway
Finds facts and writes the one-line reason; code does the rest.
- 5Write gate
The only way back into Nutshell: checked, approved when needed, sent once
Writes AI Score, AI Tier, AI Next Best Action and AI Reason onto the account.
- 6Nutshell
The system of record
Reps see the instruction on the record they already use.
The tables behind it
Drawn from the POC's database catalogue: structure only, no data.
PK primary keyFK reference the database enforces (solid line)ID reference kept by id (dashed line)
| Table | What it holds | Columns |
|---|---|---|
| ai.scores | One current score per account: tier, reason codes, the next best action, who does it, and until when. | 20 |
| ai.account_twin | The account's current picture, including the action in words. | 16 |
| ctrl.outbox | The write gate: each field change for Nutshell, approved before it is written. | 28 |
How the tables connect (3)
| Column | Points to | Kept by |
|---|---|---|
| ai.scores.prompt_id | agent.prompts | The application (by id) |
| ai.account_twin.prompt_id | agent.prompts | The application (by id) |
| ctrl.outbox.approval_id | ctrl.approvals | The database (foreign key) |
Worked example
Synthetic demo data: every name, business and number is made up.
One instruction, on the screen and in the system
What you see
1.Every row carries one instruction
Today lists the revivable accounts, each with its reason and one next best action.

What happens in the system
- Bridge database
ai.scoresThe action is stored with the rule number that chose it and whether a person or the AI carries it out.
- Rule engine
scoring config v1Eight ordered rules, kept as data; a new version needs a person's approval.
The rules as they stand in the POC's scoring settings, and what they chose across the 292 synthetic accounts.
The eight rules, in order (first match wins)
| # | When | Action | Who does it |
|---|---|---|---|
| 1 | Junk, suppressed, do-not-contact, a current client, or held out for measurement | No action | — |
| 2 | Tier A or B, and the main contact has left or their email bounced | Find new contact | A person confirms |
| 3 | Tier A with a buying reply, a meeting request or timing now, and a named owner | Call today | The owner |
| 4 | Lost to an incumbent or competitor, and their contract end is known | Wait | Until 60 days before the end |
| 5 | Tier A or B, email allowed, no touch for 90 days or more | AI drafts, a person approves | |
| 6 | Tier B with a "wants guarantees" or "bad past experience" objection | Send case study | AI drafts |
| 7 | Tier B or C that said "not now", or has too little data | Monitor | — |
| 8 | Anything else | No action | — |
What the rules chose (synthetic data, one run)
| Next best action | Accounts |
|---|---|
| 99 | |
| Find new contact | 9 |
| Monitor | 7 |
| Call today | 2 |
| No action | 175 |
In the running POC

1 / 2Today: the revivable accounts, each with its reason and one next best action.
- 1The reason, in words, with the note it came from.
- 2The one instruction for this record.
Dashboard · Today. 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.
Status
Built in the POC. This capability runs in the POC today, on synthetic data, end to end.