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

Section 6 · The 'Why Now?' Engine

6.3Expansion trigger

Designed for Phase 2
No.
6.3
DMA's reference
Decision Book p.17
Phase
Phase 2
Autonomy
L1 · Recommend
DMA's decision
Yes

What DMA asked for · Decision Book p.17

Notice when a prospect opens new offices, stores, franchises or markets, which usually brings new SEO and paid-ads needs.

Why it matters to DMA: Each new location needs to be found locally, so expansion maps directly to more marketing budget.

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

How we do it

  • DMA's book schedules this for Phase 2, with a company news, business listings and job posts feed. The POC already has everything the trigger feeds into; the feed itself is the Phase 2 work.
  • Designed flow: the feed reports an event (a dormant prospect opened two new locations). New listings and announcements are matched to the Nutshell account by domain, brand name and address.
  • The event becomes a dated signal on the account, like a contract end from a note. DMA's rules decide whether it changes the next best action, and the message angle is local search for the new locations.
  • Nothing reaches the prospect without the consent gate and the send limits, and new message angles are approved before use.

Already in place

  • The score already rewards multi-location and larger businesses ("multi-location / large") from what DMA's notes say about size.
  • The why-now slot on every account, with dated signals, their status and where they came from (6.1).
  • Scoring and next-best-action rules kept as versioned data: a new trigger is a rule change a person approves, not new code paths.
  • Consent, suppression, verified addresses and send limits on every message, whatever started it.

What the later phase adds

  • A feed of new locations and market launches, matched to accounts.
  • An expansion signal that lifts the size factor and adds a dated why-now.
  • A local-launch message angle approved by DMA.

The flow

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

low confidenceEvent feedcompany news, businesslistings and job postsMatch to an accountwith a confidenceUnsure matcha person confirmsDated signalon the accountDMA's rulesnext best actionDraft or alertlocal SEO and paid ads
Step 1 of 5

An event arrives

A dormant prospect opened two new locations

  • Stored data
  • Rule in code
  • Person
  • Screen

Where the data goes

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

  1. 1Event feed

    Source

    A company news, business listings and job posts feed (Phase 2).

  2. 2Sync

    Copies Nutshell changes into the bridge database

    Nutshell history is already mirrored; the event is matched against it.

  3. 3Bridge database

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

    Stores the event, the match and its confidence, with an expiry.

  4. 4AI

    Claude models, only through DMA's own gateway

    Reads the event and writes the angle; code decides the score and the action.

  5. 5Write gate

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

    Carries the reason and next action onto the account.

  6. 6Nutshell

    The system of record

    The rep sees the event as the why-now.

The tables behind it

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

ai.enrichmentPKiduuidsubject_typetextprovidertextfieldsjsonbmatch_confidencenumericcost_usdnumericexpires_attimestamp+ 2 more columnsai.scoresPKiduuidscoresmallinttiertextnbatextreason_codesjsonbIDprompt_iduuid+ 14 more columnsctrl.decision_logPKiduuidPKoccurred_attimestampIDagent_version_iduuidIDrun_iduuidtooltextdecision_typetextIDconversation_iduuidpolicy_resulttextreason_codesjsonb+ 19 more columns

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

TableWhat it holdsColumns
ai.enrichmentWhere bought-in data lands: provider, the fields returned, match confidence, cost and expiry.9
ai.scoresThe score, reason codes and next best action the event would feed.20
ctrl.decision_logEvery trigger decision, with its inputs and the rule that fired.28
How the tables connect (4)
ColumnPoints toKept by
ai.scores.prompt_idagent.promptsThe application (by id)
ctrl.decision_log.agent_version_idagent.agent_versionsThe application (by id)
ctrl.decision_log.run_idagent.runsThe application (by id)
ctrl.decision_log.conversation_idconv.conversationsThe application (by id)

Worked example

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

Designed behaviour for one synthetic dormant account.

Two new locations

Event
Crescent Physical Therapy opened clinics in Round Rock and Cedar Park, August 2026
Match
Crescent Physical Therapy (brand and domain), confidence high
What changes
Size factor rises; why now: two new clinics opened last month
Next best action
Email about local search for the new clinics, for approval

In the running POC

There is no screen for this one yet: it is designed for Phase 2, as DMA's book decides. The parts listed under “Already in place” run in the POC today.

See it live

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

OpenWhereWhat to try
TodayDMA AI dashboardWhere the event would show as the why-now; today it shows the why-now from DMA's notes.

Status

Designed for Phase 2

Designed for Phase 2. DMA's book schedules this for Phase 2. The design is ready and builds on parts that already run in the POC.

6.3 Expansion trigger · DMA AI proof