Approval Matrix Pro
by TechnoVision · Odoo App
A matrix is a set of conditions, a set of levels, and the people at each one. Records lock while a decision is pending, nobody approves their own request, a missed deadline escalates instead of quietly approving, and every decision is written once and never edited.
One-off licence per Odoo instance. The store bills in its own base currency, so checkout may differ by a few cents. That is the add-on price. Installation and support are optional and priced separately.
On the Odoo Apps Store for Odoo 18.0
Security Center
Live82
Score
1.2k
Events / 24h
3
Alerts
Export volume · 14 days
Unusual export detected
res.partner · 4,812 rows · outside business hours
Illustrative UI. Product screenshots to be dropped into this frame.
What it does
A field, an operator and a value, picked from dropdowns and evaluated by our own code. There is no expression box, because one on a business-rules screen is a remote-code-execution hole in a costume - anyone who can configure a rule could run Python as the server user. Dotted paths like partner_id.country_id.code cover the real cases.
A decision cannot be edited or deleted, and an override is written as its own entry with its reason rather than as an amendment to an earlier one. A trail that can be rewritten afterwards is not a trail, it is a story.
An approval on a small order is worthless if the requester can multiply it afterwards. The lock is enforced in write, not as a readonly view attribute that stops a person and nothing else. Chatter and activities stay writable, because locking those makes the workflow unusable without making it any safer.
The named contact is notified and the level is flagged overdue. Nothing goes through. A deadline that auto-approves teaches people that ignoring approvals works.
When two matrices match, the lower priority number wins. If precedence depended on which was created first, adding a stricter rule later would quietly not apply, and nobody would find out until something expensive went through unapproved.
Approval Administrator is a separate group, not a superset of Approval Manager. One person holding both can approve around the control, or edit the rule for one order and edit it back - which removes the thing the matrix exists to provide.
Pricing & Services
The add-on licence is the product. Installation and a support plan are separate, optional, and neither is added to anything unless you choose it. The licence is bought into your own account, so you own it outright whether or not you ever buy a service from us.
The module, bought from the Odoo Apps Store into your own account.
$49
one-off, per Odoo instance · paid to the Odoo Apps Store
The matrix has to match how your business actually approves things.
$249
one-off · paid to TechnoVision
Twelve months of updates and help with the module, on top of what every licence already includes.
$150
per 12 months · paid to TechnoVision
A support plan adds to what you already have. It never replaces it: defect fixes and help with the module stay free for every licence holder, plan or no plan.
Supported: Odoo 18, Community and Enterprise. Licensed per Odoo instance, with no user limit and no expiry. Prices exclude any tax that applies where you are, and we tell you before you pay if any is due.
Demo
Recorded from a running Odoo 18 with real records. No slides, no mock-ups, and nothing sped up.
Screenshots
3 captures of the shipped product: the matrix, what is waiting on somebody, one request, and its trail.

The matrix

What is waiting on somebody

One request, and its trail
How it works
Choose the model, add conditions from dropdowns, and add the levels in order. Name a group rather than an individual wherever you can - there is no delegation, so a named person on holiday is a stuck request.
A matching record grows a Request Approval button. Nothing is intercepted silently: this module never takes over Confirm or Post behind your back.
Any one approver is enough, or every approver must sign - chosen per level. Approving and rejecting both take a comment.
A sales order is confirmed, because one left in draft after being approved just confuses everyone. An invoice is not posted: approval says spend this, not book it.
FAQ
No. A matching record shows a Request Approval button and somebody presses it. A module that started blocking confirmations the moment it was installed would surprise people badly, and a control nobody can see the edge of is a control they route around.
No, and it is the most deliberate omission in the module. An expression field would let anyone who can configure a business rule execute arbitrary code as the server user. A field, an operator and a value - with dotted paths - covers the cases that actually come up.
Not by default. It is a per-matrix switch, so a small team where the alternative is nobody being able to work can allow it, but it is never on globally by accident.
There is no delegation feature. Name a group at that level instead - a group covers its own absences, which is why the group field sits alongside the user field.
Not with this module. Each needs its own Odoo dependency, and forcing every customer to install Purchase in order to approve a sales order would be rude. They are separate bridge modules.
No. Posting has period and sequence consequences and is an accounting act. The approval authorises the spend; the accountant posts.
Nothing. No external service, no API key, no outbound connection, no telemetry. Notifications are Odoo own mail and activities.
The module itself, for one Odoo instance, with no user limit and no expiry; every 18.0 release of the module, including security fixes; the module documentation, in the module and on this site; and defect fixes and help with configuration, at no extra cost and with no support plan required. It is a one-off licence for one Odoo instance, with no user limit and no expiry. It does not include installation on your instance, and configuration against your data; changes to the module for your own requirements; migration of the module or your data to another Odoo series; and work on your Odoo, your server, your network, or on other vendors’ modules.
No, and it is not hidden in the price either. Installation and configuration is a separate, optional service at $249 one-off. It covers remote installation on your instance; configuration walked through with you, against your own data; and compatibility verification against your Odoo version and edition. If you or your partner install Odoo modules already, buy the licence on its own and skip it — most buyers of a module this size do.
Odoo 18, on Community and Enterprise. We do not claim a series until there is a branch for it, its tests pass on that series, and somebody has run it there — so the list on this page is what is actually supported rather than what is planned.
Twelve months of module updates, including security fixes; configuration support by email; priority handling: your ticket is looked at before unpaid enquiries; and help reproducing and reporting a defect, and a fix or a workaround. It runs for twelve months at $150 and is bounded by stated limits rather than by the word "reasonable": Up to 10 support requests in the twelve months; up to 4 hours of remote assistance in total; one Odoo minor-version upgrade of the module, within the same series; response within 2 business days, Sunday to Thursday, Cairo time; and covers the module. It does not cover your Odoo, your server, your network, or work on other modules.. The plan runs for 12 months from the day it starts and then stops. It renews only if you ask us to renew it — nothing renews automatically and no card is stored. It does not cover your Odoo, your server, your network, your backups, or other vendors’ modules; custom development or changes to how the module behaves; migration to another Odoo series — 18.0 to 19.0 is a project, not a ticket; on-site attendance, and work outside the hours below; and anything an external vendor charges for.
No, and this is the line worth being clear about. Defect fixes, at no charge, for the life of the 18.0 series; help when the module does not behave as its description says it does; answers to configuration questions about the module itself; and security fixes, released to everyone whether or not they hold a support plan — all of that comes with the licence, for every buyer, at no extra cost and whether or not a plan is ever bought. A paid plan adds updates, priority over unpaid enquiries and an allowance of assistance hours on top. It never takes anything away.
No, in any of the three options. A change to how a module behaves, a migration between Odoo series, and connecting a system we do not publish a connector for are each their own piece of work, quoted on their own. They are listed as exclusions on the cards rather than left to be discovered: they are the three things buyers most often assume are covered.
Use the buttons in the Pricing & Services section above. Both have a price, so the button takes you to a short form, shows you the total and what it covers before you commit, and creates a numbered order we reply to. No card details are taken on this site, and nothing is added to anything unless you choose it.
Install from Odoo Apps, or talk to us about a guided rollout across multiple companies.