Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Expenses (hr_expense)
• Invoicing (account) • Purchase (purchase) • Sales (sale_management) • Employees (hr) • Discuss (mail) |
Lines of code | 2968 |
Technical Name |
approval_matrix |
License | LGPL-3 |
Website | https://nioses.com |
Versions | 17.0 18.0 |
Availability |
Odoo Online
Odoo.sh
On Premise
|
Odoo Apps Dependencies |
•
Expenses (hr_expense)
• Invoicing (account) • Purchase (purchase) • Sales (sale_management) • Employees (hr) • Discuss (mail) |
Lines of code | 2968 |
Technical Name |
approval_matrix |
License | LGPL-3 |
Website | https://nioses.com |
Versions | 17.0 18.0 |
Multi-Level Approval Matrix
SALES APPROVAL / PURCHASE APPROVAL / INVOICE APPROVAL / BILL APPROVAL / JOURNAL ENTRY APPROVAL / PAYMENT APPROVAL / EXPENSE APPROVAL
Enable Approval in App Settings
Feature to enable the custom approval in each relevant app:
- Sales → Settings → Enable Approval
- Purchase → Settings → Enable Approval
- Expenses → Settings → Enable Approval
- Accounting → Settings → Enable Approval

Approval Matrix Configuration
Configure up to 5 Approval Levels for each enabled transaction type with:
- Minimum / Maximum Thresholds
- User Groups allowed to approve
- Option to create different matrix per company
- Works with any currency on transaction

Special Configuration Based on Journal/Payment Types
- For Customer Invoice / Vendor Bill / Journal Entry:
- Select model
Journal Entry
- After selecting, a Journal field becomes visible
- Select the appropriate journal (e.g. Customer Invoices, Vendor Bills, etc.)
- Select model
- For Customer / Vendor Payments:
- Select model
Payments
- A Payment Type field appears
- Choose between Customer Payment or Vendor Payment
- Select model

What Happens After Clicking "Send for Approval"?
Upon clicking the Send for Approval button, Odoo triggers a structured multi-level approval workflow. The system performs the following key actions:
- Approval Status is updated (e.g.,
Pending 1st Approval
). - Current Approver Group is auto-assigned based on approval matrix thresholds.
- Activities are created for every user in the assigned approval group, requiring them to review and approve/reject.
- Chatter log automatically tracks approval step changes and notifies assigned users.
This ensures clear ownership, visibility, and compliance with your organization’s approval policies.

Rejection Reason Wizard
When a user clicks the Reject button, a popup wizard appears requiring the approver to provide a reason for the rejection.
- Mandatory Reason: The rejection cannot proceed without entering a reason.
- Reason Logged: The entered reason is saved on the transaction in the
Reject Reason
field. - Chatter Message: The system also posts this reason in the chatter, including the user's name for audit purposes.
This enforces accountability and transparency for rejected approvals.

Approval Activities & Chatter Logs
When an approver acts on a transaction, the activity is automatically marked as done for all users in the same group. The system logs the user's name and level in the chatter for audit clarity.
- Activity auto-mark as done for same group members
- Chatter posts approval level and approver name

View Your Pending Approval Activities
Users can easily access all transactions that require their approval:
- Click the Activity icon in the top bar
- Select Additional Approvals
- View all pending approvals

Approval Flow
A dynamic multi-level approval logic driven by matrix rules. The number of approval levels is automatically determined based on the transaction’s total amount, using predefined lower and upper limits.
Send for Approval
Amount Evaluated
Matrix Rule Applied
Approved by Responsible Group User for Paticular Level
Final Approval
90 Days Free Support
Nioses offers free support for 90 days from the date of purchase. This includes assistance with doubts, queries, bug fixes, and any issues related to this module (excluding data recovery).
Developed by: Nioses Tech Pvt Ltd.
pooja@nioses.com
Please log in to comment on this module