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

Part A · How DMA AI works

A.8Security, approvals and control

Built in the POC
No.
A.8
Relates to DMA's book
Decision Book p.5, p.7, p.8, p.34
Part
A · the foundation

What this part does · Decision Book p.5, p.7, p.8, p.34

DMA's book asks for approvals where DMA wants a person (with human override always available), consent and suppression policies before any customer-facing autonomy, safe deliverability, and governance over what the AI may write to the CRM.

Why DMA needs it: The AI touches DMA's customers and DMA's data. DMA needs to stop anything in one click, prove who approved what, and know that nobody can be contacted without a lawful basis.

How we do it

  • Approvals work wherever the person is: the dashboard's Approvals page, one-tap links in an email (single-use, expiring, tied to the approver and the exact version they saw), or the DMA AI team workspace. A whole batch is one click, with an undo window before anything goes out.
  • Four-eyes: whoever proposed a change can't approve it, and any change to the AI's rules or instructions needs a second person before it takes effect. Every decision is recorded with who, when and on which channel.
  • Kill switches stop everything at once, or one thing: all AI model calls, outbound email, CRM writes, reply handling, the website chat's autonomy, transactions, a channel, or writes to one kind of Nutshell record. A pause takes effect on the next action, without a restart.
  • Nobody is emailed without a lawful basis: a consent rule per country or region decides who can be contacted, opt-outs go on a suppression list that blocks sending in code, and in the prototype emails can only reach an allowlisted test inbox.
  • DMA's data is protected in the bridge: message bodies and contact details are encrypted, each part of the system has its own limited database role, reps see only their own accounts, and the website chat treats every visitor message as untrusted text, never as an instruction.

The flow

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

runningrunningallowedallowedAn actionemail · CRM change · replyKill switchespaused? stopConsent and opt-outslawful basis?Approvala different personUndo windowminutes to change your mindGoes outlogged with who and whenDashboard · email link · chatapprove anywhere
Step 1 of 5

An action is ready

A batch of reactivation emails is drafted.

  • AI
  • Routing
  • 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. 1Any action

    Source

    Emails, CRM changes, replies, rule changes.

  2. 2Sync

    Copies Nutshell changes into the bridge database

    Deletions and opt-outs in Nutshell are mirrored and honoured.

  3. 3Bridge database

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

    Approvals, signed links, kill switches, consent, the opt-out list and the audit log.

  4. 4AI

    Claude models, only through DMA's own gateway

    The AI never decides whether it may act; the controls do.

  5. 5Write gate

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

    The write gate checks the switches and approvals again before writing.

  6. 6Nutshell

    The system of record

    Only approved, allowed changes reach it.

The tables behind it

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

ctrl.approvalsPKiduuidkindtextstatetextrequested_bytextchanneltextdecided_bytextundo_untiltimestamp+ 15 more columnsctrl.action_linksPKiduuidactiontextapprovertextexpires_attimestampused_attimestampused_resulttext+ 11 more columnsctrl.kill_switchesPKkeytextscopetexttrippedbooleantripped_bytexttripped_reasontext+ 4 more columnsctrl.consentPKcontact_iduuidjurisdictiontextlawful_basis_codetextmatrix_versiontextstatustext+ 13 more columnsops.audit_logPKidbigintPKattimestampactor_typetextactiontextobject_typetext+ 7 more columns

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

TableWhat it holdsColumns
ctrl.approvalsEvery approval: what it covers, who asked, who decided, when, on which channel, and the undo window.22
ctrl.action_linksOne-tap email links: single-use, expiring, tied to one person and one version.17
ctrl.kill_switchesThe switches, who paused them and why.9
ctrl.consentWho may be contacted, under which country's rule, and why.18
ops.audit_logEvery sign-in and admin change, with before and after.12

Worked example

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

Approving, pausing and proving who did what

1 / 4

What you see

1.Everything waiting for a person

The Approvals page lists what waits; each item shows what it would do and why.

localhost:13301/approvals
Approvals: what waits for a person.
Callout 1

What happens in the system

  • Bridge databasectrl.approvals

    Each item records who asked; the person who asked can't approve it.

  • Rule enginefour-eyes

    Enforced in the database, not only on screen.

The switches in the prototype and what each one stops.

Kill switches

SwitchWhat it stops
EverythingEvery queued AI action is held; the chat falls back to taking contact details; nothing is dropped
AI model callsEvery call to the model, from every worker
Outbound emailAll sending; queued emails wait, nothing is dropped
CRM writesEvery write to Nutshell; approved changes wait in the write gate
Reply handlingAutomatic handling of replies to outreach
Website chat autonomyThe chat's own replies: visitors see "A DMA strategist will follow up" and a contact form
TransactionsE-signature and payment requests
A channel (email, web chat)Everything on that channel
A record type (account, contact, lead)Writes to that kind of Nutshell record

One approval, as recorded (synthetic)

What
8 reactivation emails, tier A
Proposed by
The outreach writer (AI)
Approved by
Jeev, from the email link
Undo until
10 minutes after approval
Blocked before approval
1 recipient: no lawful basis for their country

In the running POC

localhost:13301/approvals
Approvals: what waits for a person.

1 / 4Approvals: what waits for a person.

  1. 1The queue.
  2. 2Approve.
  3. 3Reject, with a reason.

Dashboard · Approvals. 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
ApprovalsDMA AI dashboardApprove a batch in one click; undo within the window.
ControlsDMA AI dashboardEvery kill switch and who last used it.
FieldsDMA AI dashboardWhat the AI may write to Nutshell.

Status

Built in the POC

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

A.8 Security, approvals and control · DMA AI proof