The product is the control plane.
Models never speak to NetSuite, email or Slack directly. Every request is classified, minimised, routed and logged. If it would change a record, it waits for a named human.
Where you work
- Slack. Outlook or Gmail. A web approval queue.
- The agent can be invoked by a message, by an inbound invoice, or on a schedule — nightly master-data scan, weekly controller pack.
- Users sign in with your SSO and MFA.
What sits between you and the model
- A policy gateway. One customer, one logical tenant.
- PII, bank details and national IDs are redacted before any model call.
- Only accounting tasks on the approved list run.
- You name the allowed models and pin the region. If residency cannot be verified, the call does not go out.
- Action classes L0 to L3: observe, draft, post, prohibited.
- An immutable audit log you can export to Internal Audit or your SIEM.
How NetSuite is reached
- Oracle’s official AI Connector Service. Model Context Protocol. OAuth 2.0. User-delegated.
- A custom least-privilege role. Administrator cannot use the connector. Oracle already blocks that.
- Write tools refuse unless they carry an approval token issued by our control plane.
- NetSuite remains the book of record. We do not become a second ledger.
How email, Slack and documents are reached
- Microsoft 365 and Google Workspace through their APIs, with user-delegated OAuth.
- Slack limited to allow-listed channels.
- Mailbox, site and channel allow-lists.
- Tenant-wide application permissions are not the default.
Action classes
L0 to L3: observe, draft, post, prohibited.
Aging, trial balance Q&A, saved searches, controller pack.
Read and summarise, with citations. Review at leisure.
Journal pack, invoice or bill draft, rec worksheet, vendor exception.
Lands in the pending queue only. A human decides before anything posts.
The approved payload only.
The identity that drafted cannot be the identity that approved.
Payments, bank-file release, tax filing, period close, delete master data.
Blocked at the gateway. Not a setting.
What the accountant actually prepares
Journals
Balanced draft from source documents or last month’s pattern. Period open. Debit equals credit.You approve, edit or reject.
Invoices and bills
Ingest PDF or email. Extract header and lines. Match vendor or item. Duplicate check. Code to the chart of accounts.You confirm vendor, tax and coding.
Reconciliations
Unmatched bank lines versus unmatched NetSuite transactions. Proposed matches with evidence. Exception list. Draft clearing journals.You accept matches and finish the rec in NetSuite.
Master data
Nightly scan for duplicates, missing fields, bank-detail changes, inactive records on open transactions.You approve any change. Bank-detail changes always dual-control.
Insights
Weekly controller brief and ad-hoc questions. Every figure cited to a NetSuite report, saved search or record ID.Official numbers run through NetSuite reports. We will not ship a P&L that is valid SQL and wrong accounting.
Inbox and Slack
Watches allow-listed mailboxes and channels. Classifies. Opens a ticket with a source link.You only see items that need a decision.
SuiteQL is the right tool for operational lists — overdue invoices, material journals, dormant vendors. It is the wrong tool for statutory financial statements.
Eliminations, consolidation, accounting-book and period rules live in NetSuite reports. Official numbers always go through those reports.