| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 1351 |
| Technical Name |
do_dynamic_approval_matrix |
| License | OPL-1 |
| Website | http://doincredible.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 1351 |
| Technical Name |
do_dynamic_approval_matrix |
| License | OPL-1 |
| Website | http://doincredible.com |
Dynamic Approval Matrix
Multi-level, rule-driven approvals for any Odoo document. One reusable engine routes every request to the right approver - by amount, department, document type or company - with a complete audit trail and zero code.
Stop chasing sign-offs over email
Every organization runs on approvals - purchase orders, expenses, discounts, HR requests, budgets. Yet most teams still route them informally: a chat message, a forwarded email, a manager who is on leave with nobody sure who can sign instead. The result is bottlenecks, ignored authority limits and no paper trail when finance or audit comes asking. Dynamic Approval Matrix replaces that with one configurable, rule-driven engine that decides exactly who must approve each document, in what order, and records every decision permanently.
The everyday problem
The Approval Matrix solution
A complete approval engine, ready to deploy
Configurable Approval Matrix
Define one matrix per document model and company, with validity dates and priority - the engine always selects the right policy for each request.
Multi-Level Sequential Approvals
Chain as many ordered steps as you need. Each level activates only once the previous one is cleared - enforcing your real hierarchy of authority.
Dynamic Approver Resolution
Resolve approvers at runtime: a specific user, security group, dotted field path, reporting manager, N levels up, department head or job position.
Conditional Routing Rules
Domain conditions on both the matrix and each step. Route by amount, document type, department or company - and skip steps that do not apply.
Reusable Approval Mixin
Inherit matrix.approval.mixin on any model - purchase orders, expenses, HR requests, custom docs - and it instantly gains the full workflow.
Auto-Approval Of In-Policy Requests
Documents below a configurable amount threshold or matching an auto-approve domain clear instantly - recorded as auto-approved, no human clicks.
Escalation On SLA Breach
Set an SLA per step; a scheduled job reminds, reassigns to an escalation approver, or auto-approves once a deadline passes - so nothing stalls silently.
Delegation & Substitution
When an approver is away, an active delegation routes their approvals to a colleague automatically - even across chained delegations (A → B → C).
Immutable Audit Trail
Every step, approver, decision, comment and timestamp is preserved as an approval-line record - a complete, tamper-resistant history for audit.
Status Bar & State Tracking
A clear status bar - Draft, Submitted, Under Approval, Approved, Rejected, Cancelled - tracked on the document so everyone sees where a request stands.
Rejection & Reset-To-Draft
Reject with a reason, send back for correction, or reset a rejected request to draft - a controlled flow with the chain rebuilt on re-submission.
Per-Company Matrices
Each company can run its own approval policy from the same database, or share a global matrix - full multi-company isolation with company-aware routing.
Email & Activity Notifications
Each level's approver receives a chatter message and a To-Do activity automatically - plus reminders and escalation notices - so action is never forgotten.
Any / All Approval Modes
For each step choose "any one approves" for speed or "all must approve" for committees and boards - with a bulk Approve Selected action from the list.
From draft to approved, fully governed
The engine takes a request from submission to final decision, resolving the right approvers and recording every step along the way.
Configure levels, conditions, approver types and SLAs per document model and company - once, with no code.
A user submits a request. The engine selects the highest-priority valid matrix whose condition matches the document.
For each applicable step the engine resolves the concrete approvers - applying delegation substitution for anyone unavailable.
Approvers act level by level. Any rejection stops the chain; in-policy requests are auto-approved instantly.
If a step's SLA passes, the scheduled job reminds, reassigns to the escalation approver, or auto-approves per configuration.
The final state and the full approval trail are written and preserved - an immutable record of who decided what, and when.
A guided tour of the engine
Real captures from a live Odoo 19 backend running Dynamic Approval Matrix.
Measurable impact on how you operate
Structured approvals are not just about control - they cut cycle time, eliminate errors and give management real visibility.
Time Savings
Requests route themselves to the right people instantly - no more chasing sign-offs or guessing who approves next.
Process Automation
Auto-approval, escalation and delegation run unattended, so routine and overdue items never become bottlenecks.
Accuracy Improvement
Authority limits and conditional rules are enforced by the engine - high-value items can never skip the right level.
Employee Productivity
Approvers act from chatter and To-Do activities; requesters always know status - less back-and-forth, more output.
Management Visibility
A live status bar and complete trail show exactly where every request stands and who is holding it up.
Reporting & Compliance
An immutable audit trail with timestamps satisfies finance, internal control and external audit requirements out of the box.
Up and running in minutes
Installation
2. Update the Apps list and install Dynamic Approval Matrix - cron jobs and security register automatically.
3. Install (or inherit the mixin in) any document module you want governed by approvals.
Configuration
2. Add ordered steps: approver type, any/all mode, conditions, SLA and escalation.
3. Optionally set auto-approval thresholds and record delegations - then submit a document to see it route.
One engine, every industry
Manufacturing
Purchase orders are signed off by value - a supervisor below a threshold, a plant manager above it, the CFO for capital spend.
Retail
Discounts and markdowns route to the store manager, escalating to regional or head-office pricing as the percentage climbs.
Healthcare
Procurement of high-cost equipment and consumables passes department head, biomedical and finance approval before purchase.
Education
Departmental budget and expense requests flow through the head of department, the bursar and the principal by amount.
Government
Multi-tier statutory sign-off with "all must approve" committee steps and a complete record for public-audit accountability.
Corporate
Expense claims and HR requests resolve to the reporting manager dynamically, escalating N levels up for larger amounts.
Manual process vs. standard Odoo vs. this module
| Capability | Manual Process | Standard Odoo | This Module |
|---|---|---|---|
| Multi-level sequential approvals | — Limited | ||
| Conditional routing (amount / type / dept) | — Per-app only | ||
| Dynamic approver resolution | — Fixed users | ||
| Works on any document model | — | ||
| Immutable audit trail | — Chatter only | ||
| Per-company approval rules | — Partial | ||
| Escalation, delegation & auto-approve | |||
| Email & activity notifications | — Generic | ||
| No-code configuration | — |
ROI: teams typically cut approval cycle time from days to hours and remove manual follow-up overhead entirely - while every decision is captured for audit at no extra effort.
We're here to help
Support Process
Reach our team through your Odoo App Store account for setup help, matrix design, configuration questions and troubleshooting.
Customization Available
Need a custom approver resolver, a bespoke escalation rule or the mixin wired into your own models? We offer paid customization.
Documentation
Clear in-app help on every field, plus configuration guidance for matrices, steps, delegation and the reusable mixin.
Building robust, reusable Odoo apps. Visit doincredible.com · support via your Odoo App Store account.
Govern every approval with one engine
Multi-level, rule-driven approvals for any Odoo document - dynamic approvers, conditional routing, escalation, delegation and a complete audit trail, all configured without code.
Dynamic Approval Matrix | by DO Incredible | doincredible.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module