The behavior layer
for an AI-native ERP
v1.0 defined how NxSync looks. v1.1 defines how it behaves — the data grids, AI-trust framework, approvals, lifecycle, permissions, and governance that decide whether an ERP is actually usable. In an AI-native ERP, trust is the product; this layer is where it is earned.
What this adds
v1.0 is the visual & interactive component prototype. This companion adds the enterprise behavior the previous version only hinted at — closing the ERP-domain, AI-workflow, admin, accessibility, and handoff gaps so the system is engineering-ready, not just demo-ready.
| Layer | v1.0 | v1.1 (this) |
|---|---|---|
| Visual & components | ✓ defined | inherits |
| Financial data grid | basic table | editable, bulk, views, locks, reconcile |
| AI trust framework | agent card | autonomy, suggest/draft/act, confidence, source, diff, rollback |
| Approvals & lifecycle | kanban | inbox, chains, SLA, draft→post→reverse |
| Admin / permissions / tenancy | — | roles, matrix, tenant, env |
| Accessibility / i18n / governance | partial | documented specs |
Financial-grade data grid
The single most-used surface in any ERP. It must do far more than sort and hover — it edits, validates, batches, groups, locks, and reconciles, all while staying legible at hundreds of rows.
| Entry | Account | Status | Recon | Amount | |
|---|---|---|---|---|---|
| June 2026 · Operating account | |||||
| JE-002841 | Accounts Receivable | Posted | ✓ matched | 12,450.00 | |
| JE-002842 | Bank · Operating | Pending | — unmatched | 8,900.00 | |
| JE-002843 | Sales Revenue | AI draft | ✓ matched | 2,100.00 | |
| JE-002799 | Payroll · May | Locked period | ✓ matched | 44,300.00 | |
| Subtotal | 67,750.00 | ||||
- Inline edit — click an Amount cell to edit; validates on blur
- Bulk actions — select rows → contextual action bar
- Saved views — named filter+column presets per user
- Grouping & subtotals — collapsible group rows with running totals
- Locked-period rows — non-editable, lock icon, audit-safe
- Reconciliation indicators — matched / unmatched per row
- Density toggle — comfortable ↔ compact for power users
- Column manager — pin, resize, show/hide; sticky header
- Virtualized rows — render windowing for 10k+ rows
- Export & import-correction — CSV/XLSX/PDF + fix-on-import
- Permission-aware — actions disabled by role
- Drilldown — row → source document / sub-ledger
Reporting & analytics
Reports are grids with intent — period comparison, variance, drilldown, and auditability. Built on the same grid, with a report toolbar on top.
| Profit & Loss | Actual | Budget | Variance | Forecast |
|---|---|---|---|---|
| Revenue | ||||
| Product sales | 412,000 | 390,000 | +5.6% | 430,000 |
| Services | 128,400 | 140,000 | −8.3% | 132,000 |
| Gross profit | 540,400 | 530,000 | +2.0% | 562,000 |
Every figure is a drilldown target — click to expand to the contributing transactions, with a report-note trail for auditors.
Autonomy levels
Trust is earned by giving the human the dial. Every AI capability in NxSync declares one of four autonomy levels — set globally, per module, or per action — and the UI changes accordingly.
Trust patterns
A complete vocabulary for AI touching records: what it suggests, what it drafts, what it did, how sure it is, where it got the data, and how to undo it.
Sensitive actions
Payments, payroll, tax filings, deletions, and role changes get extra friction by design — confirmation, typed intent, and a visible audit promise. The system never lets AI or a stray click move money quietly.
Document lifecycle
Every financial document moves through one canonical state machine. The state is always visible, transitions are permission-gated, and posting is irreversible except via a correcting reversal.
| State | Who can act | Reversible? |
|---|---|---|
| Draft | Creator | Freely editable / deletable |
| Submitted | Creator (recall) · Approver | Recall to draft |
| Approved | Approver · Poster | Send back with comment |
| Posted | System / ledger | Only via reversal entry |
| Reversed | — | Terminal · audit-linked to original |
Financial-grade forms
ERP forms aren't SaaS forms. They balance, they carry currency and tax, they auto-number, they attach source documents, and they refuse to post when they don't add up.
| Account | Description | Debit | Credit |
|---|---|---|---|
| Bank · Operating | Customer payment | 12,450.00 | — |
| Accounts Receivable | INV-2840 settled | — | 12,450.00 |
Post is disabled until debits equal credits and the period is open. A period-lock warning replaces the action bar when the target period is closed.
Approvals
An inbox, a visible chain, amount-based limits, SLAs, delegation, and the AI-confirmed-by-human pattern that lets agents do the work while a person stays accountable.
Import & reconciliation
Getting data in and matching it is where ERPs are won or lost. A guided import that maps, validates, and lets you fix errors before anything commits — and a reconciliation surface that pairs bank lines to ledger entries with AI-assisted matching.
| Your column | Maps to | Status |
|---|---|---|
| txn_date | Date | matched |
| memo | Description | matched |
| amt | Amount | 2 rows need a fix |
Audit log
Every change — human or AI — is recorded with actor, action, before/after, source, and time. The audit browser is filterable and every row expands to the full diff. This is the spine of trust.
| When | Actor | Action | Record | Source |
|---|---|---|---|---|
| 14:22:08 | agent | Matched transaction | JE-002841 | bank feed |
| 14:02:55 | M. Chen | Approved invoice | INV-2840 | approval |
| 09:14:31 | D. Ruiz | Created PO | PO-1182 | manual |
Admin, roles & tenancy
The governance UI an ERP SaaS can't ship without: who you are, which entity and environment you're in, and exactly what each role may do.
| Capability | Viewer | Clerk | Approver | Admin |
|---|---|---|---|---|
| View ledgers | ✓ | ✓ | ✓ | ✓ |
| Create entries | — | ✓ | ✓ | ✓ |
| Approve & post | — | — | ✓ | ✓ |
| Release payments | — | — | up to limit | ✓ |
| Manage roles & keys | — | — | — | ✓ |
| Set agent autonomy | — | — | — | ✓ |
Permissions are the same vocabulary the data grid, forms, and agents read from — an action a role can't perform is disabled everywhere, not just hidden in one screen.
Module blueprints
Canonical screen anatomy for each ERP module, so every team builds the same shapes. Each module reuses the grid, forms, lifecycle, approvals, and AI patterns above — only the domain changes.
💰 Finance
🧾 Sales
📦 Purchase
🏭 Inventory
👥 HR
📊 Reports
Layout & responsive
ERP is desktop-first but approvers live on phones. One app shell, a master-detail pattern, a sticky action bar, and defined mobile behavior.
| Breakpoint | Shell behavior |
|---|---|
| Desktop ≥1200 | Full sidebar + content + optional right detail pane (master-detail) |
| Tablet 768–1199 | Collapsed icon sidebar; detail becomes an overlay drawer |
| Mobile <768 | Bottom nav; lists → cards; actions in a sticky bottom sheet; Command Bar full-screen |
Accessibility spec
Documented, testable behavior for every custom control — because ERP users spend whole days in dense screens, and enterprise procurement audits for it.
| Component | Role | Keyboard | Announce |
|---|---|---|---|
| Data grid | grid / row / gridcell | Arrows move cell · Enter edits · Space selects · Esc cancels | row x of n, edit committed |
| Combobox | combobox + listbox | ↑↓ options · Enter select · Esc close | n results, option selected |
| Modal / drawer | dialog (modal) | Focus trapped · Esc closes · returns focus | title on open |
| Tabs | tablist / tab / tabpanel | ← → switch · Home/End | selected tab |
| Agent activity | status / log | focusable steps | live: "matched 142 of 148" |
| Toast | status (polite) | dismissible | message read once |
Rules everywhere: WCAG 2.2 AA contrast in both themes · visible Iris focus ring (never removed) · status never conveyed by color alone (badge always carries a label/icon) · reduced-motion respected · tabular numerals so columns align for low-vision users.
Internationalization
NxSync's markets are multi-currency and multi-script. Formatting, RTL, and translation expansion are system rules, not per-screen fixes.
| Locale | Currency | Number | Date |
|---|---|---|---|
| en-IN | ₹ 12,45,000.00 | lakh grouping | 13 Jun 2026 |
| en-US | $ 1,245,000.00 | 1,234.56 | Jun 13, 2026 |
| ar-AE | د.إ 1,245,000.00 | RTL layout | ١٣ يونيو ٢٠٢٦ |
| fr-MA | 1 245 000,00 MAD | space + comma | 13 juin 2026 |
Rules: never concatenate translated strings · reserve +35% width for expansion · mirror layout & icons for RTL · money is locale-formatted for display but stored in minor units · tax labels (GST/VAT/TVA) come from the entity, not the UI.
Tokens & developer handoff
The bridge to code: semantic tokens (not raw hex), a state matrix every component must satisfy, and a props contract so design and engineering stay in sync.
| Token | Purpose | Dark | Light |
|---|---|---|---|
| color.action | Primary actions, focus | #6A5CFF | #5A4FE8 |
| color.live | AI / synced state | #2EE6C5 | #13B89C |
| color.surface.1 | Cards, panels | #11131F | #FFFFFF |
| color.financial.pos | Credit / gain | #33C088 | #1FA774 |
| radius.m · space.4 | Cards · grid gutter | 12px · 16px | 12px · 16px |
| Prop | Type | Notes |
|---|---|---|
| columns | Column[] | id, header, type, editable, pinned, align |
| rows | Row[] | supports group & tree |
| selection | "none"|"single"|"multi" | drives bulk bar |
| onEdit / onBulk | (payload)=>void | validated before commit |
| canEdit | (row,col)=>boolean | permission + period-lock aware |
Governance
A system stays whole only if it's maintained. Maturity levels, a change process, and the test gates every component clears before it ships.
| Component | Maturity | Owner |
|---|---|---|
| Buttons, inputs, badges (v1.0) | stable | Design Systems |
| Financial data grid | beta | Design Systems × Finance |
| AI trust patterns | beta | Design Systems × AI |
| Module blueprints | draft | Per-domain squads |
| Gate | Required before "stable" |
|---|---|
| Accessibility | Keyboard + screen-reader pass; AA contrast both themes |
| Visual regression | Snapshot tests in dark & light |
| States | All nine states in the matrix implemented |
| Docs | Usage rules, props, do/don't, Figma parity |
| Versioning | SemVer; breaking changes need migration notes |
Maintained by Brand & Design Systems · v1.1 · companion to v1.0 · everything in sync.