| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 1276 |
| Technical Name |
dynamic_multi_approval |
| License | LGPL-3 |
Dynamic Multi-Level Approval for Odoo 18
All-in-one approval workflow module — block Confirm, Post, Submit, Validate and any action on Sale Orders, Purchase Orders, Invoices, Bills, Expenses, Payments, Inventory Transfers, and more until configured approvers validate the document. Multi-step, multi-company, fully configurable.
Key Features of Dynamic Multi-Level Approval Module
✓ All-in-One Approval for Any Odoo Model
One module for all approval needs — Sale Order approval, Purchase Order approval, Invoice approval, Bill approval, Expense approval, Payment approval, Inventory approval, Manufacturing approval, and any custom model. No separate bridge modules needed.
⚙ Dynamic Approval Actions
Register any model method for approval: action_confirm (Sale/Purchase), action_post (Invoice/Bill), button_validate (Inventory), action_submit_sheet (Expense), or any custom method.
☰ Multi-Level & Multi-Step Approval Chain
Define unlimited approval levels — single approval, double approval, triple approval, or as many steps as your organization needs. Each step is linked to an Odoo security group for user-wise and group-wise approval control.
🎯 Domain-Based & Amount-Based Triggers
Apply conditional approval rules — e.g., require approval only when amount_total > 5000. Small orders flow through automatically; large orders require multi-level approval.
🏢 Multi-Company Approval Support
Each approval rule is scoped to a specific company. Different branches, subsidiaries, or companies can have entirely different approval policies — all managed in a single Odoo database.
🔔 Activities & Chatter Audit Trail
Approvers receive scheduled activities in their inbox. Every approval, rejection, and status change is logged in the document's chatter — providing a complete audit trail for compliance.
❌ Rejection with Mandatory Reason
Rejections go through a wizard requiring a reason. The rejection reason is posted to the document's chatter and the request initiator is notified immediately via email notification.
📎 Attachment Requirement per Step
Require approvers to upload supporting documents before they can approve — useful for compliance workflows, audit requirements, and document validation processes.
base and mail.
No forced dependency on Sale, Purchase, Accounting, HR, Inventory, or any other business app.
Install only the Odoo apps you use — approval rules adapt automatically to any installed model.
How the Approval Workflow Works
- Register Approval Actions — Go to Approvals → Configuration → Approval Actions and define which model/method combinations need gating (e.g., Sale Order +
action_confirm). - Create Approval Rules — Define rules with target model, trigger domain conditions, and ordered approval steps linked to security groups.
- Action Gets Intercepted — When a user tries to perform the gated action, the system blocks it and creates an approval request automatically.
- Approvers Get Notified — Each step's approver group receives a scheduled activity. They can approve or reject from the Approval Dashboard or directly from the approval form.
- Document Proceeds — Once all steps are approved, the user can perform the original action. If rejected, the initiator is notified with the reason.
Screenshots — Approval Module in Action
1. Approvals App on the Odoo Home Screen
After installation, the Approvals app appears as a standalone application on your Odoo home screen — right alongside Sales, Invoicing, Inventory, and other apps.
2. Navigation Menu & Configuration
The Approvals menu provides quick access to the Dashboard, My Pending Approvals, All Approvals, and Configuration (Approval Rules & Approval Actions).
3. Approval Action Configuration
Define an Approval Action by selecting a target model (e.g., Sale Order) and the method to intercept (e.g., action_confirm). This tells the engine which buttons to gate.
4. Approval Rule with Steps
Create an Approval Rule with a target model, associated actions, optional domain filter, and one or more Approval Steps. Each step is assigned to a security group and processed in sequence order.
5. Action Intercepted — Approval Required
When a user clicks Confirm on a sale order that matches an approval rule, the action is blocked. A clear message informs the user that approval is required and has been requested.
6. Approval Dashboard (Kanban View)
The Approval Dashboard shows all pending approval requests in a kanban view grouped by status. Approvers can quickly see which documents need their attention.
7. Approval Instance Form (Approve / Reject)
The approval form shows full details: linked document, current step, progress, and chatter with activity notifications. Approvers click Approve or Reject directly.
Configuration Guide — Set Up Approval Rules in Minutes
Step 1: Register Approval Actions for Sale Orders, Purchase Orders, Invoices & More
Navigate to Approvals → Configuration → Approval Actions and register which model/method combinations need approval gating.
| Action Name | Target Model | Method Name |
|---|---|---|
| Sale Order Confirm | Sale Order (sale.order) |
action_confirm |
| Purchase Order Confirm | Purchase Order (purchase.order) |
button_confirm |
| Invoice Post | Journal Entry (account.move) |
action_post |
| Inventory Validate | Transfer (stock.picking) |
button_validate |
| Expense Submit | Expense Report (hr.expense.sheet) |
action_submit_sheet |
Step 2: Create Approval Rules
Navigate to Approvals → Configuration → Approval Rules and create rules:
- Target Model — Select the Odoo model (e.g., Sale Order).
- Actions — Pick which registered actions this rule applies to (leave empty for all).
- Company — Scope the rule to a specific company.
- Domain Filter — Optional condition, e.g.
[("amount_total", ">", 5000)]. - Approval Steps — Add steps in order with the approver security group, instructions, and whether attachments are required.
Step 3: Test the Workflow
- Create a document that matches your rule (e.g., a sale order over $5,000).
- Click the action button (e.g., Confirm) — the system blocks it and creates an approval request.
- Log in as an approver and navigate to Approvals → Dashboard or My Pending Approvals.
- Open the approval and click Approve (or Reject with a reason).
- Once all steps are approved, the original user can perform the action successfully.
Supported Odoo Models for Approval Workflow
This dynamic approval module works with any Odoo model out of the box. Here are the most common use cases:
| Business Area | Odoo Model | Approval Use Case |
|---|---|---|
| Sales | Sale Order / Quotation (sale.order) |
Sale order approval, quotation approval before confirmation |
| Purchasing | Purchase Order / RFQ (purchase.order) |
Purchase order approval, RFQ approval, vendor order approval |
| Accounting | Invoice / Bill / Journal Entry (account.move) |
Invoice approval, bill approval, credit note approval, journal entry approval |
| Payments | Payment (account.payment) |
Payment approval, vendor payment approval, customer refund approval |
| Expenses | Expense Report (hr.expense.sheet) |
Expense approval, employee expense approval, travel expense approval |
| Inventory | Transfer / Picking (stock.picking) |
Inventory transfer approval, delivery approval, receipt approval |
| Manufacturing | Manufacturing Order (mrp.production) |
Production order approval, manufacturing approval |
| Any Custom Model | Your custom module's model | Custom workflow approval for any business process |
Common Approval Use Cases
- Sale Order Approval: Require manager approval for quotations and sales orders above a certain amount before confirmation.
- Purchase Order Approval: Multi-level approval for purchase orders — first by department head, then by finance, then by CEO for large purchases.
- Invoice & Bill Approval: Ensure invoices and vendor bills are reviewed and approved before posting to the accounting ledger.
- Expense Approval: Route employee expense reports through their manager and finance department before reimbursement.
- Payment Approval: Require approval before processing vendor payments or customer refunds above a threshold amount.
- Inventory Transfer Approval: Gate warehouse transfers and deliveries so they require supervisory approval before validation.
- Custom Workflow Approval: Apply approval to any business process in Odoo — including your own custom modules and methods.
- Amount-Based Approval: Set different approval chains based on document amounts — e.g., orders under $1,000 need one level, orders over $10,000 need three levels.
- Company-Specific Approval: Different approval policies per company in a multi-company Odoo database.
Technical Details
| Module Name | dynamic_multi_approval |
| Version | 18.0.1.0.0 |
| Odoo Version | 18.0 (Community & Enterprise) |
| Dependencies | base, mail |
| License | LGPL-3 |
| Category | Tools |
| Multi-Company | Yes — rules are company-scoped |
| Python Models | approval.config, approval.config.line, approval.action, approval.instance |
Architecture Overview
approval.action— Registers model/method pairs and wraps them at runtime with interceptor logic. Also auto-generates a smart "Approval" button on the target model's form view.approval.config— Defines rules: target model, trigger domain, company, and ordered approval steps.approval.config.line— Individual step in an approval chain: sequence order, approver group, optional instructions, and optional attachment requirement.approval.instance— Live workflow record (inheritsmail.thread+mail.activity.mixin) tracking a document through its approval chain.approval.reject.wizard— Transient model for capturing rejection reasons.baseoverride — Thewrite()method onbaseauto-cancels linked approval instances when a document returns to draft/cancel state.
Automatic Smart Button Injection
When you register an approval action for a model, the module automatically creates an extension view that adds an Approval smart button to the model's primary form view. Users click it to see the linked approval instance. No manual XML view modifications needed.
Auto-Cancel on Reset
When any document's state or status field is written to draft, cancel, or cancelled, all linked approval instances are automatically cancelled. This ensures stale approvals don't bypass future gated actions.
Security & Access Rights
| Model | Administrator | Internal User |
|---|---|---|
approval.config | Full access (CRUD) | No access |
approval.config.line | Full access (CRUD) | No access |
approval.action | Full access (CRUD) | No access |
approval.instance | Full access (CRUD) | Read, Write, Create (no delete) |
approval.reject.wizard | Full access (CRUD) | Full access (CRUD) |
Only Settings / Administrator users can configure approval rules and actions. All internal users can view and interact with approval instances (approve/reject) based on their group membership.
Installation
- Download the module and place the
dynamic_multi_approvalfolder in your Odoo addons path. - Restart the Odoo server.
- Go to Apps, remove the "Apps" filter, search for Dynamic Multi-Level Approval, and click Install.
- Navigate to Approvals → Configuration to start setting up your approval rules.
Changelog
| Version | Date | Changes |
|---|---|---|
| 18.0.1.0.0 | March 2026 | Initial release — approval actions, rules, multi-step chains, activities, rejection wizard, auto smart button, auto-cancel on reset. |
Support
For questions, feature requests, or bug reports related to this module, please use the contact details provided on the Odoo Apps Store listing page. We are happy to assist with configuration and customization needs.
Why Choose This Odoo Approval Module?
| This Module | Other Approval Modules |
|---|---|
| One module for all models — Sales, Purchase, Accounting, Inventory, Expenses, and more | Separate module needed for each business area |
Only depends on base + mail — no hard dependencies | Requires specific business apps to be installed |
| Unlimited approval steps — single, double, triple, or N-level approval | Often limited to 2-3 approval levels |
| Domain-based triggers — conditional approval based on amount, type, or any field | Apply to all records or basic amount threshold only |
| Multi-company — different rules per company | Single company or manual duplication |
| Auto smart button injection — no XML modifications needed | Manual view customization required |
| Works with custom models and custom methods | Limited to predefined models only |
Related search terms: Odoo 18 approval module, Odoo approval workflow, dynamic approval Odoo, multi level approval Odoo, sale order approval Odoo, purchase order approval Odoo, invoice approval Odoo, bill approval Odoo, expense approval Odoo, payment approval Odoo, inventory approval Odoo, stock picking approval, multi step approval, multi tier approval, approval chain, approval hierarchy, sequential approval, configurable approval, dynamic approval rules, conditional approval, domain based approval, amount based approval, threshold approval, double approval, triple approval, multiple approval levels, user wise approval, group wise approval, approval process, approval management, document approval, approval dashboard, approval kanban, approval notification, approval activity, approval chatter, approval reject, rejection with reason, approval smart button, approval audit trail, approval tracking, multi company approval, company wise approval, branch wise approval, approval attachment, all in one approval, universal approval, generic approval workflow, any model approval, Odoo 18 community approval, Odoo 18 enterprise approval, Odoo ERP approval workflow, sale dynamic approval, purchase dynamic approval, account dynamic approval, HR expense approval, manufacturing approval, MRP approval, warehouse approval, delivery approval, receipt approval, quotation approval, RFQ approval, vendor bill approval, credit note approval, debit note approval, journal entry approval, employee expense approval, travel expense approval, Odoo approval app, Odoo approval plugin, Odoo approval addon, best Odoo approval module.
Dynamic Multi-Level Approval — The all-in-one configurable approval workflow module for Odoo 18
Sale Order Approval | Purchase Order Approval | Invoice Approval | Expense Approval | Payment Approval | Inventory Approval
Author: Kuma T | License: LGPL-3 | Odoo 18 Community & Enterprise
Please log in to comment on this module