Odoo Sales Order Approval: Thresholds, Studio Rules and Audit Trail
Odoo sales order approval for Odoo 19 and 20: Studio approval rules on Confirm, amount thresholds, purchase approval, custom modules and audit trail.
Most teams ask for sales order approval after one bad deal: a deep discount, a thin margin or an order to a customer who already owes too much. Our Odoo customization services start by deciding which of those risks a rule should catch.
This guide is for sales managers, finance controllers and Odoo admins on Odoo 19 or Odoo 20. If you are still deciding how far to customize Odoo in general, read our ultimate guide to Odoo customization first.
Does Odoo have sales order approval out of the box?
No, standard Odoo Sales has no sales order approval step: a quotation becomes a sales order as soon as an allowed user clicks Confirm. The sales order states in Odoo 19 and Odoo 20 are Quotation, Quotation Sent, Sales Order and Cancelled.
Odoo gives you nearby controls, not an approval. Lock Confirmed Sales stops edits after confirmation. The Sales Credit Limit setting in Accounting shows a warning on a quotation when the customer is over their limit. Neither one stops the Confirm button.
Buyers notice the gap. On the Odoo forum, a user asked whether a manager can approve profitability before a sales order is confirmed. The answers pointed to add-ons, automated actions or customization.
What does Odoo offer for purchase order approval?
Odoo Purchase has a native Odoo purchase order approval setting with two levels and one minimum amount. Turn on Purchase Order Approval in Purchase settings and set the minimum amount; the default in the code is 5,000 in the company currency.
How it behaves in Odoo 19 and Odoo 20:
- Below the threshold: Confirm Order approves the order at once.
- At or above the threshold: the order moves to "To Approve" and waits.
- Who approves: users in the Purchase Administrator group; their own orders skip the wait.
- Amount used: the order total in the order currency, converted against the company threshold.
- Lock option: Lock Confirmed Orders makes approved orders read-only until someone unlocks them.
The limit is one threshold. A forum user on Odoo 16 who wanted a CFO tier above US$1,000 combined the setting with Studio rules and found purchase managers could still approve large orders.
How do Odoo Studio approval rules work on sales orders?
Odoo Studio approval rules let you put one or more approval steps on the sales order Confirm button, so only named approvers can complete it. This is the most common no-code way to add an Odoo approval workflow to Sales.
Per Odoo's approval rules documentation, each step has Approvers (users), an Approver Group, optional Users to Notify and a Description shown on the button. A filter on the step sets the condition, such as amount above a value.
Several steps are possible. Approval Order sets the sequence, and Exclusive Approval stops one person from approving two steps on the same record. Approvers can also delegate their rights to other users until a date, which covers holidays.
When an unauthorized user clicks Confirm, Odoo shows an error and creates an activity for the approvers. Because the order stays a quotation until approval, no delivery or invoice comes from it yet.
How do you set an Odoo order approval threshold with Studio?
To set an Odoo order approval threshold, add an approval step to the Confirm button and filter it on the order total. Here is the setup we use on Odoo 19 and Odoo 20.
- Create a user group, for example "Sales Approvers", and add the managers who may approve.
- Open a quotation, open Studio and select the Confirm button.
- Click Add an approval step and set the Approver Group.
- Click the filter icon and set the condition, for example Total is greater than 10,000.
- Add a second step for a higher tier, set Approval Order to 2 and tick Exclusive Approval.
- Add Users to Notify so the salesperson hears about approval or rejection.
- Test with a salesperson login, an approver login and an admin login before go-live.
Keep the condition on a field that cannot be edited after approval without a fresh check. If prices can still change after sign-off, see the custom module section below.
Studio approval rules vs a custom approval module

Studio covers simple amount tiers well, while a custom Odoo sales order approval module fits rules that depend on margin, discount, edits after approval or portal orders. The table compares the three common routes.
| Need | Standard Odoo | Studio approval rules | Custom module |
|---|---|---|---|
| Approval before Confirm | Not in Sales | Yes, per button | Yes, with its own state |
| Several amount tiers | One tier in Purchase | Yes, one step per tier | Yes, as a matrix |
| Margin or discount rules | Margin shown, no rule | Only if a field holds the value | Yes, computed in code |
| Re-approval after edits | No | Not a documented feature | Yes, reset on change |
| Portal sign or pay orders | Confirms directly | Test it before relying on it | Yes, hold in a review state |
| Plan needed | Standard or Custom | Custom (Studio) | Custom or Odoo.sh or on-premise |
Studio is part of the Custom plan on the Odoo pricing page, at US$61.00 per user a month billed yearly in the US against US$31.10 for Standard. Our post on Odoo Studio vs custom development explains the trade-off in more depth.
When do you need a custom sales order approval module?
You need a custom module when the approval rule depends on logic Studio cannot see or enforce. These are the cases we meet most often.
- Margin floor: hold any order where the margin percent falls below a set level per product category.
- Discount cap: hold an order when a line discount goes above what that salesperson may give.
- Edits after approval: send the order back for approval if someone changes price, quantity or customer.
- Portal orders: hold orders that customers sign or pay online until a manager checks them.
- Approval matrix: route by sales team, country, customer tier and amount at once.
- Reporting: a report of who approved what, when and at what value, for auditors.
The Apps Store lists many third-party sales order approval apps. Each one adds upgrade work later, so weigh the hidden cost of third-party Odoo modules against a small module you own.
What changes for approvals in Odoo 20?
Odoo 20 keeps the same approval building blocks as Odoo 19, and adds a few Sales and Studio changes that affect how you design rules. The Studio approval rules documentation is the same in the 19.0 and 20.0 branches.
In Odoo 20 Sales, salespeople can type a margin on an order line and Odoo recalculates the unit price. That makes margin a value people edit, so a margin rule should check the result, not trust the input.
In Odoo 20 Studio, an automation rule can now launch a whole activity plan. You can use that to give approvers a checklist, such as checking stock and credit, when an order waits.
Custom approval modules built for Odoo 19 need a normal port to Odoo 20. Our guide to upgrading Odoo 20 custom modules covers what usually breaks.
How does the Odoo approval audit trail work?
Studio approvals are logged in the record chatter, and every approval, rejection or revoke also creates a Studio Approval Entry you can list and filter. This gives auditors a record of who approved which order and when.
To see the entries, activate developer mode and go to Settings, Technical, Studio Approval Entries. Group them by user or by record to check that the right people approved the right orders.
A good audit setup has three parts:
- Who: named approver groups, not one shared admin login.
- What: the order value and conditions at the time of approval, kept in the chatter.
- Exceptions: a monthly review of rejected, revoked and delegated approvals.
If auditors need the approved values frozen, a custom module can store a snapshot of the order total and margin at approval time.
Should you use the Odoo Approvals app for sales orders?
The Odoo Approvals app is built for general requests, not for holding a sales order before Confirm. It manages requests such as business trips, procurement, payment applications and contract approvals.
Per Odoo's Approvals app documentation, it ships with nine approval types, including Create RFQ's for vendor quotes. It is useful for off-system decisions, such as approving special terms for a key account before the quotation is drafted.
For the order itself, approval should sit on the sales order. That keeps the rule, the order and the audit trail in one place.
Approval rules by industry
The right Odoo approval workflow depends on where money leaks in your sector. The table shows patterns we set up most often.
| Industry | Pain or cost driver | Odoo approach | How iVentureTeam helps |
|---|---|---|---|
| Manufacturing | Custom jobs quoted below cost | Margin floor before Confirm | Tie the rule to the BOM cost |
| Wholesale and distribution | Large orders to customers over credit | Credit limit warning plus an amount tier | Route to finance above the tier |
| Trading | Deep discounts to win volume | Discount cap per salesperson | Build the cap and the report |
| Professional services | Fixed-scope deals priced too low | Approval on total and hours | Link approval to the project budget |
| eCommerce and B2B portals | Online orders confirmed with no review | Review state for portal orders | Hold, check and release orders |
How iVentureTeam helps with Odoo sales order approval

We turn your approval policy into rules Odoo can enforce, in Studio where that is enough and in a small module where it is not. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.
- Approval matrix: we write down who approves what, at which amount, margin or discount, before anything is built.
- Studio setup: approval steps, groups, filters, notifications and delegation on Odoo 19 or Odoo 20.
- Custom module: margin, discount, re-approval and portal holds through our Odoo development company team.
- Testing: approval scenarios inside your Odoo UAT plan, with each role's login.
- Automation: reminders and activity plans for waiting orders, as in our guide to automating Odoo workflows with AI.
For a first budget, the Odoo project estimate tool gives you a range in minutes.
Odoo sales order approval case study: Chetan Plastics
A plastics-printing manufacturer in Ahmedabad moved five departments off a shared Excel file and added two-step validation on sales and purchase confirmations. Quotation checks had been manual, with missing business-logic controls causing process errors.
We built multi-level validation before and after order confirmation on both the sales and purchase sides. The same project rebuilt the block-pricing calculator inside order lines and linked CRM jobs to sales orders, purchase orders and delivery paperwork.
The rollout was phased over 16 weeks across six core modules. Validation gates now catch errors that spreadsheets let through. Read the Chetan Plastics Odoo manufacturing customization case study.
The bottom line on Odoo sales order approval
Use Studio approval rules for amount tiers, and build a small custom module when approval depends on margin, discounts, edits or portal orders. Purchase already has a native single-threshold approval.
Write the policy first, then pick the tool. Test every role's login, check the audit trail, and review exceptions monthly.
Ready to put approval rules on your sales orders?

Get an approval matrix that matches your policy and works in Odoo. Plan your Odoo sales approval workflow with us, call +91-90235-15208, or email business@iventureteam.com.
Frequently Asked Questions
Does Odoo have a sales order approval feature?
+
Not in standard Sales. A quotation becomes a sales order when an allowed user clicks Confirm. You add approval with Studio approval rules on the Confirm button or with a custom or third-party module.
How do I add approval to the Confirm button in Odoo?
+
Open a quotation in Studio, select the Confirm button and click Add an approval step. Choose approvers or an approver group, then use the filter icon to set conditions such as an order total above a value.
Can Odoo require approval above a certain amount?
+
Yes. Purchase has a native minimum amount for two-level approval. For sales orders, add a Studio approval step filtered on the order total, with one step per tier if you need several thresholds.
Who can approve purchase orders in Odoo?
+
When Purchase Order Approval is on, orders at or above the minimum amount wait in "To Approve" for a user in the Purchase Administrator group. Orders below the threshold are approved at once.
Does Odoo Studio approval need the Custom plan?
+
Yes. Studio is included in the Custom plan, not in Standard. In the US, Custom is US$61.00 per user a month billed yearly, against US$31.10 for Standard.
Where can I see who approved a sales order?
+
Approvals show in the order's chatter. With developer mode on, Settings, Technical, Studio Approval Entries lists every approval, rejection and revoke, which you can group by user or record.
Does the Odoo credit limit block a sales order?
+
The Sales Credit Limit setting shows a warning on quotations when a customer is over their limit. It does not stop Confirm by itself, so pair it with an approval step or custom check if you need a block.
Can an approver delegate approvals while on leave?
+
Yes. Users set as approvers on a Studio approval step can delegate their rights to other users for all records, with an optional end date and users to notify.
Is the Odoo Approvals app the same as sales order approval?
+
No. The Approvals app handles general requests such as trips, procurement and contracts. It does not hold a sales order before Confirm, which needs a rule on the order itself.
Ready to put this into action?
Talk to iVentureTeam about Odoo, AI automation, or custom development — get a free, no-obligation consultation.
Free Odoo tools
All tools- Odoo Health CheckVersion, modules, findings and upgrade cost
- Odoo App SelectorWhich apps you need, by industry
- Odoo Project EstimateIndicative cost and timeline in minutes
- Odoo Implementation Cost CalculatorImplementation cost and timeline, in minutes
- Odoo Migration Cost CalculatorVersion jump or legacy ERP, priced in minutes
Continue reading
Odoo Raw Material Shortage: Reorder Rules, Safety Stock, MRP Alerts
Prevent raw material shortages in Odoo 19 and 20 with reordering rules, safety stock, real supplier lead times, the MPS and MRP shortage alerts, step by step.
Odoo Payroll UAE WPS Guide: SIF File, Gratuity, Leave and Visa Expiry
Odoo payroll UAE WPS guide for Odoo 19 and 20: SIF file export, gratuity calculation, leave rules, visa expiry alerts and the 2026 salary deadline.
Odoo Industry Packages Explained: Install, Customize and Roll Back
What Odoo industry packages install, which plan they need, and how to install, customize and roll back on Odoo Online, Odoo.sh and on-premise safely.
