Features
The platform every other module stands on
Multi-tenant isolation enforced by the database, 19 granular roles, per-tenant module entitlements, an installable offline field app and an audit trail written by the database itself.

Overview
Most dealer systems draw their boundaries in application code. One missed check in a query and a report reads the wrong branch, a technician sees the debtors ledger, or — in the worst case — one business sees another business's records. The same softness shows up everywhere else: an admin who can quietly switch on a module nobody paid for, a change to an invoice with nobody's name against it, and a field app that stops working the moment the van drops out of signal in the back paddock.
MDMS puts those boundaries in the database instead. Tenant data sits behind row-level security policies that scope every read and every write, so isolation holds even when the application asks the wrong question. Access is described by 19 roles — dealer principal to parts interpreter, field technician to payroll officer — and each user can hold more than one. Every surface is wrapped in a role guard, and the same role check is re-run inside the server-side function that actually does the work. Module entitlements are recorded per tenant, and paid modules cannot be self-granted. Money, stock and access changes write an audit trail from database triggers rather than from hopeful application code. And the field app is a real progressive web app: technicians install it, keep working through a blackspot, and their edits and photos replay once the signal returns.
What's included
- Row-level security — tenant isolation enforced by Postgres, not by app code
- 19 granular roles, guarded on every surface and re-checked inside every server-side function
- Per-tenant module entitlements — premium surfaces refuse tenants without them, and paid modules can't be self-granted
- Installable offline field app — cached jobs, queued edits and photos that replay on reconnect
- Audit trail written by database triggers on invoices, payments, work orders, parts, price book, roles and branches — filterable and exportable to CSV
- Admin console — branches, users and invites, document number sequences, branding, plus CSV import for 16 datasets and export for 37
How it works
- Set the business up once through an eight-step wizard — company details, modules, branches, departments, users, data import, integrations and go-live — and load a set of sample records to explore with, then clear them out before you go live.
- Give each person their roles. Navigation, surfaces and actions shape themselves to those roles, and the database enforces the same boundaries again on every query and every RPC, so the rules hold no matter how the request arrives.
- Work the business: technicians run the installed field app through blackspots and sync on reconnect, every material change lands in the audit trail, and admins can export any of 37 datasets to CSV whenever they want their data.
Inside Platform & Security
Real screens from MDMS — captured from the live application, not mock-ups.

Every person in the business against the role they hold — service advisor, parts manager, warranty clerk, warehouse user. The role decides what they can open, and the database re-checks it on every query and every server-side call.

The audit trail is written by database triggers, not by application code, so an invoice, work order or role change cannot be altered without leaving a record. Filter by action or entity, and export the lot to CSV.
Works with
Field Service
Dispatch field technicians, capture signatures, log travel and parts, and bill the customer without paperwork going home.
Reports & Dashboards
Pre-built dashboards for sales, service, parts and rental — plus exports for any custom analysis you need.
HR & Workforce
Keep employee records, team structure and the org chart in the same system that runs your sales, parts and service — with role-based access, encrypted payroll details, and no separate HR tool to keep in sync.