| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Purchase (purchase) • Invoicing (account) |
| Lines of code | 1032 |
| Technical Name |
advanced_approval_matrix |
| License | OPL-1 |
| Website | https://odoocube.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Purchase (purchase) • Invoicing (account) |
| Lines of code | 1032 |
| Technical Name |
advanced_approval_matrix |
| License | OPL-1 |
| Website | https://odoocube.com |
Advanced Multi-Level Approval Matrix
for Odoo 17 · 18 · 19
The most complete Odoo approval workflow module. Block Purchase Orders, configure unlimited sequential approval levels with amount thresholds, delegation, and auto-escalation — all in one $19 module.
Why You Need This
The Problem with Odoo's Native Approvals
Without This Module
| ✗Native Approvals is a manual request board |
| ✗Purchase Orders confirm even without approval |
| ✗No amount-based routing ($500 goes to CFO) |
| ✗Single flat approval level — no sequence |
| ✗No delegation when approver is away |
| ✗SOX / audit compliance impossible to enforce |
With This Module
| ✓Confirm button is intercepted and blocked |
| ✓PO only confirms after all levels approve |
| ✓Amount thresholds route to the right approver |
| ✓Unlimited sequential approval levels |
| ✓One-click delegation to a colleague |
| ✓Full audit trail for compliance teams |
vs. Odoo Native Approvals
| Feature | Odoo Native | Advanced Approval Matrix |
|---|---|---|
| Approval trigger | ✗ Manual request by user | ✓ Intercepts Confirm button |
| Sequential levels | ✗ Single flat level | ✓ Unlimited sequential levels |
| Amount thresholds | ✗ Not available | ✓ Min / Max amount per level |
| Approval delegation | ✗ Not supported | ✓ Built-in one-click delegation |
| Deadline & escalation | ✗ Not available | ✓ Per-level deadline + daily cron |
| PO blocking | ✗ PO confirms regardless | ✓ PO locked until approved |
| Group-based approvers | ✗ Individual users only | ✓ Users and security groups |
| Audit trail | Basic | ✓ Full chatter log with reasons |
Approval Workflow Use Cases
Purchase Order
Expense Report
HR Leave
Manufacturing
Vendor Bill
SOX Compliance
Multi-Company
Capabilities
Complete Approval Workflow Features
Unlimited Sequential Levels
Define as many levels as your policy requires. Level 2 only starts after Level 1 is complete.
Amount-Based Thresholds
Each level has Min and Max amount. A $500 PO goes to manager; $500K escalates to CFO automatically.
All or Any Approver Logic
Per level: require all approvers, or let any one approval clear the level for everyone.
Purchase Order Blocking
Confirm Order is intercepted. PO stays locked until the full approval chain is complete. No bypass.
Approval Delegation
Delegate to a colleague in one click. Delegate is notified immediately and audit trail records it.
Deadline & Auto-Escalation
Set a deadline per level. Daily cron notifies the escalation contact when approval is overdue.
Email & Activity Alerts
Every approver gets a branded HTML email and Odoo To-Do activity the moment it's their turn.
Full Chatter Audit Trail
Every action logged in chatter with timestamp, username, and reason. Compliance-ready.
Domain Filtering
Apply a template only to specific records using a standard Odoo domain — by company, department, or any field.
Group-Based Approvers
Assign entire Odoo security groups — all members notified. No manual user lists to maintain.
Extensible to Any Model
Inherit approval.mixin in any custom model. Three lines of code and the full engine activates.
Kanban & Progress View
Kanban, List, Form views with progress bar per request. My Pending Approvals filter built-in.
Setup Guide
How the Approval Workflow Works
Create an Approval Template
Go to Approvals → Configuration → Approval Templates. Select the document model (purchase.order, hr.expense.sheet, or any custom model), choose the amount field, and optionally add a domain filter.
Add Sequential Approval Levels
In the Approval Levels tab, add rows with sequence number, approvers (users or security groups), All/Any logic, amount range (min/max), and an optional deadline with escalation contact.
User Clicks Confirm Order
When a buyer clicks Confirm Order, the module intercepts the action, creates an Approval Request, and immediately notifies all Level 1 approvers by email and Odoo activity.
Approvers Act Level by Level
Each approver clicks Approve (or Refuse / Delegate) on the document or in the Approvals menu. Once a level is cleared, the next level's approvers are notified automatically.
Purchase Order Confirms Automatically
When the final level is cleared, the PO confirms itself — no manual step needed. A chatter message records the full approval completion with a timestamp.
Smart threshold logic: If a PO amount falls below all configured thresholds, it skips the approval entirely and confirms normally — so low-value orders don't waste approver time.
Compatibility
Depends on: base, mail, purchase · Optional: hr_expense, hr_holidays
Common Questions
Frequently Asked Questions
QHow is this different from Odoo's built-in Approvals app?
Odoo's native Approvals is a manual request board — documents confirm regardless. This module intercepts the Confirm button and blocks it until all configured levels are completed. It adds amount thresholds, sequential levels, delegation, and auto-escalation — none of which exist natively.
QCan I set different approval levels for different purchase amounts?
Yes. Each level has a Min Amount and Max Amount. Example: Level 1 for $1k–$5k (Manager), Level 2 for $5k–$50k (Director), Level 3 for $50k+ (CFO). Only matching levels activate per document.
QDoes it work with Odoo Community and Enterprise?
Yes. Fully compatible with Odoo 17, 18, and 19 — both Community and Enterprise editions. Only requires the purchase module as a base dependency.
QCan I extend this to custom models beyond Purchase Orders?
Yes. The module ships an approval.mixin abstract model. Inherit it in any custom Odoo model with 3 lines of Python, create a template in the UI, and the full engine is active for your model.
QWhat happens if an approver misses the deadline or is on leave?
Two options: (1) Approver can delegate to a colleague in one click. (2) If a deadline is set and missed, the daily cron notifies the escalation contact on that level automatically.
QIs the audit trail suitable for SOX or internal audit compliance?
Yes. Every action (approve, refuse, delegate, escalate) is logged with user name, timestamp, and reason. The PO structurally cannot confirm without a completed chain — policy bypass is impossible.
We're Here to Help
Support & Contact
Bug Reports
Attach server log with --log-level=debug
Response within 1–2 business days
More Modules
odoocube.com
Modules for Odoo 17, 18 & 19
$19
One-time purchase · Odoo 17 / 18 / 19 · OPL-1 License
Get It Now — $19
Why Us?
OdooCube
Odoo 17 · 18 · 19
odoocube.com ↗
OdooCube is an Odoo module publisher focused on building practical, lightweight add-ons that solve real business problems. Every module is available for Odoo 17, 18, and 19, fully tested on Community and Enterprise, and priced affordably so any team can afford to extend Odoo without expensive custom development. We provide email support with every purchase and release free bug-fix updates across all supported versions.
🌐 Browse All Apps ↗ 💻 Ask for Demo ↗
🌐 odoocube.com ✉ info@odoocube.com
You May Also Like
Purchase Request Approval
Internal purchase request workflow before PO creation
Invoice Approval Workflow
Block vendor bill posting until manager approves
Purchase Monthly Budget
Set and track monthly purchase budgets per category
RFQ Expiry Tracker
Auto-highlight and alert on expired RFQs
Vendor Price Comparison
Compare vendor prices side-by-side on purchase lines
Purchase Contract Tracker
Track vendor contracts and alert on upcoming renewals
Top Picks
Most Demanded Apps
What We Do
OdooCube Services
Get In Touch
Connect With Us
Advanced Multi-Level Approval Matrix · v19.0.1.0.0 · OPL-1 · © 2026 OdooCube
odoocube.com · info@odoocube.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