Engineering Real-Time Self-Service on Top of Odoo
A self-service B2B portal built directly on top of Odoo 18 - giving enterprise clients real-time collection booking, status tracking, and compliance reporting, fully synchronised with the underlying Odoo ERP.
Outcome Snapshot
4
scoped access roles governing platform-wide permissions
2
Odoo and portal databases kept in sync in real time
1
self-service portal extending Odoo to enterprise clients
3
core capabilities delivered: booking, tracking, and compliance reporting
Client
A circular-economy company managing the secure collection, certified data erasure, and resale of IT assets for enterprise and public-sector clients. The company runs its operations on Odoo 18, but Odoo is an internal system - it had no client-facing layer, so every interaction between the company and its customers went through account managers manually.
Challenge
-
Odoo had no client-facing layer: customers couldn't book a collection, check status, or pull their own compliance reports without contacting an account manager directly.
-
No model for enterprise account structures: large clients have many sites and teams needing different access levels, but Odoo offered no concept of scoped, client-facing access - it was all-or-nothing, handled manually.
-
No self-serve compliance evidence: clients need auditable proof - chain-of-custody documentation, certified erasure reports, environmental impact data - but producing it on request from Odoo didn't scale with the client base.
-
An operational ceiling: account management effort scaled directly with client count, capping how many enterprise accounts could be supported without adding headcount.
Objectives
- Build a self-service, client-facing portal directly on top of the existing Odoo 18 ERP
- Keep the new portal and Odoo fully synchronised in real time
- Model real enterprise account structures - multiple sites, teams, and access levels - on top of Odoo's data
- Deliver real-time collection booking and status tracking, synchronised with Odoo
- Give clients self-serve access to compliance and impact reporting sourced from Odoo
What We Built
- A customer-facing self-service portal: built as a standalone layer on top of Odoo 18, with role-based access so users only see the locations and actions relevant to them.
- Real-time Odoo synchronisation: companies, users, and locations are fetched from Odoo to keep data consistent; collection creation is pushed back to Odoo through background jobs, with Odoo webhooks updating status in the portal as changes happen.
- A workspace and location model: mapping real enterprise account structures onto Odoo's underlying company and location data, without duplicating it.
- Four-tier role-based access control: from full administrative access down to read-only visibility, matched to each user's actual responsibilities.
- A document and report centre: compliance and reconciliation reports surface directly to each client against their own collections, ready for download.
- A dashboard with ESG-relevant analytics: giving clients visual insight into their own environmental impact metrics, drawn from underlying Odoo data.
- Security by design: token-based authentication, multi-factor authentication, and centralised secrets management, built in from day one.
Impact
Extended
Odoo into a client-facing product, without ERP changes.
Synchronised
Two databases in real time, without direct coupling.
Modelled
Multi-site, multi-team accounts with admin-managed access.
Secured
Token authentication, MFA, and centralised secrets management.
Build Facts
Platform
Web Portal (React)
Internal Admin Portal (Django)
Odoo 18 ERP
Cloud Infrastructure (Azure)
Focus
Cloud Infrastructure (Azure)
Self-Service Portal Development
Enterprise Access Modelling
Compliance & Impact Reporting
Let’s talk, no strings attached.