Back to Blog

October 30, 2026

Odoo 20 Ships a Dedicated Approvals Module That Puts Every Business Request in One Place

Odoo 20 introduces the Approvals module under HR, giving organizations a centralized dashboard for purchase requests, expense overrides, business trips, equipment loans, and six more configurable approval types with multi-level chains, mandatory approver thresholds, and automatic email notifications.

Every growing company hits the same wall eventually. Someone needs a new laptop. Someone else needs approval for a conference trip. A third person wants to borrow equipment from the warehouse for a client demo. And each of these requests travels a different path — an email here, a Slack message there, maybe a shared spreadsheet if the team is feeling organized. Odoo 20 just eliminated all of that with a dedicated Approvals module that funnels every type of business request into a single, structured workflow.

Odoo approvals module dashboard showing request cards for purchases, expenses, and time off with approval status indicators and centralized statistics

Nine Approval Types Out of the Box

The module ships with nine preconfigured approval categories, and that’s a deliberate choice. Rather than giving you a blank canvas and telling you to build everything yourself, Odoo starts with the requests that most organizations actually deal with: Business Trip, Borrow Items, General Approval, Contract Approval, Payment Application, Car Rental Application, Job Referral Award, Procurement, and Create RFQs. Each one comes with its own form layout tailored to the kind of information that request actually needs.

The Payment Application type, for instance, is specifically designed for advance approval of company-paid expenses — distinct from the Expenses module, which handles reimbursements after the fact. That distinction matters more than it sounds. Mixing pre-approval and post-reimbursement workflows in the same system is how companies end up with finance teams who can’t tell what’s been spent from what’s been authorized.

Requests That Carry the Right Context

The approval request form captures everything a reviewer needs to make a decision without playing email ping-pong: subject, owner, time period, location, contact person, quantity, amount, and a reference field for linking to external documents or purchase orders. For certain approval types — Borrow Items, General Approval, and Create RFQs — there’s also a Product tab where employees can specify exactly what they need, down to the SKU level.

The Approver(s) tab is where the workflow logic lives. You add one or more approvers, and for each one you can toggle a Required flag. Required approvers must sign off before the request can proceed; optional approvers can weigh in but don’t block the process. This is a small but meaningful distinction that lets companies model the way decisions actually happen — where the CFO’s approval is non-negotiable but the department head’s input is welcome but not mandatory.

The Manager’s View Changes Everything

Managers get their own review interface at Approvals → Manager → Approvals to Review. This is a filtered view that shows only the requests waiting for your sign-off, which sounds obvious but is the feature that makes the entire module work in practice. Without it, you’re just moving the approval bottleneck from email to a different application. With it, a manager can open the module once a day, approve or refuse everything in their queue, and move on.

The Withdraw action is worth calling out specifically. If a request gets approved prematurely or circumstances change, withdrawing it resets the status back to “To Approve” rather than forcing a refusal and a new submission. That kind of workflow flexibility reveals a team that actually talked to people who process approvals before building the feature.

Why This Matters More Than It Looks

Approval workflows are the connective tissue of organizational decision making. They’re rarely exciting, but when they break down — when a purchase request gets lost in someone’s inbox, when a business trip gets approved by the wrong person, when nobody can figure out whether a contract was actually signed off — the consequences ripple outward in ways that are hard to trace back to their source.

By making Approvals a first-class module rather than a feature tucked inside something else, Odoo 20 is making a statement about how enterprise software should treat internal processes. Every request gets an audit trail. Every approval has a timestamp and a name attached to it. Every refusal includes context. For compliance-heavy industries, that paper trail alone might justify the module’s existence. For everyone else, it just means fewer things falling through the cracks.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Plans start at $29/month.