Introduction
A sales quotation can look profitable on the screen while creating a very different result for the business.
A salesperson may offer a large discount to close an important customer. A product may be sold below the company's target margin. A special payment term may increase financial exposure. Or a high-value quotation may be sent to a customer without the right management review.
These situations become harder to control when quotation approvals happen through emails, phone calls, spreadsheets, or informal messages.
The problem is not that sales teams need more approval steps.
The real challenge is creating the right approval controls without slowing down legitimate sales opportunities.
With Odoo, businesses can structure quotation processes around pricing, discounts, margins, responsibilities and risk levels. Odoo Sales supports quotations, discounts, pricelists, margins, quotation controls and approval mechanisms that can be combined into a broader commercial governance framework.
Why Quotation Approvals Need More Than a Simple Manager Check
Many companies use a basic rule:
Salesperson creates quotation → Manager approves → Customer receives quotation
This works for simple sales environments.
It becomes less effective when the organization handles:
- large discounts
- multiple product categories
- different customer segments
- project-based pricing
- low-margin products
- high-value contracts
- special payment terms
- customized products
- multiple currencies
- complex delivery commitments
- strategic customers
A better approval workflow asks:
What exactly creates the risk?
The answer may be:
- Discount is too high.
- Margin is too low.
- Quotation value is unusually high.
- Payment terms create credit exposure.
- Sales price is below an approved threshold.
- Special pricing requires management approval.
- The deal contains exceptional commercial conditions.
This allows approvals to be based on business risk rather than simply document value.
1. Start With a Clear Quotation Approval Policy
Before configuring Odoo, define the company's commercial rules.
For example:
| Control Area | Example Business Rule | Approval |
|---|---|---|
| Discount | Up to 5% | Salesperson |
| Discount | 5–10% | Sales Manager |
| Discount | Above 10% | Sales Director |
| Margin | Above target | Salesperson |
| Margin | Below target | Manager |
| Quotation Value | High-value deal | Management |
| Payment Terms | Extended credit | Finance |
| Special Pricing | Non-standard price | Sales Manager |
| Strategic Customer | Exceptional commercial terms | Management |
These values are only examples.
Each company should establish thresholds based on its pricing strategy, margins, industry, customer risk and authority structure.
The important principle is:
Define the business rule first. Configure the ERP second.
2. Use Margin as a Commercial Control
Discount alone does not tell management whether a quotation is profitable.
Consider two quotations:
Quotation A
- Sales value: $100,000
- Discount: 5%
- Cost: $70,000
Quotation B
- Sales value: $100,000
- Discount: 5%
- Cost: $92,000
Both quotations have the same discount.
Their profitability is completely different.
Odoo can display sales margins on quotations and sales orders when the Margins feature is enabled. Margin can be calculated using sales price and cost, while margin percentage provides another view of profitability.
This makes margin a useful input for approval decisions.
A stronger rule
Instead of:
Discount > 10% → Approval
consider:
Discount > 10% OR Margin < Minimum Target → Approval
This creates a more meaningful commercial control.
3. Control Discounts Without Blocking Sales
Discounts are often necessary.
They may be used for:
- customer negotiations
- volume purchases
- seasonal promotions
- strategic accounts
- competitive pricing
- contract renewals
- product bundles
Odoo supports percentage discounts on quotation and sales-order lines when the Discounts feature is enabled.
The objective should therefore not be to eliminate discounts.
It should be to control who can approve them and under what conditions.
A practical model could be:
0–5%
Salesperson can approve.
5–10%
Sales Manager approval required.
10–20%
Sales Director approval required.
Above 20%
Executive or commercial leadership review.
Again, these thresholds should be adapted to the organization's commercial strategy.
4. Combine Discount and Margin Controls
A discount-based workflow can still miss important risks.
Suppose a salesperson applies only a 4% discount, but the product already has a very low margin.
The quotation may still require approval.
This is why businesses should evaluate multiple conditions.
A quotation approval framework can consider:
- Discount percentage
- Margin percentage
- Total quotation value
- Product category
- Customer type
- Payment terms
- Salesperson authority
- Special pricing
- Expected delivery commitment
This creates a risk-based approval workflow.
5. Build a Quotation Risk Matrix
A simple risk matrix can make approval decisions easier.
| Risk Level | Example Condition | Recommended Action |
|---|---|---|
| Low | Standard price and healthy margin | Salesperson can proceed |
| Medium | Moderate discount | Sales Manager review |
| High | Low margin or high discount | Senior approval |
| Critical | Very low margin, exceptional terms, or major exposure | Management/Finance review |
The important idea is to avoid creating the same approval process for every quotation.
A $500 standard quotation should not necessarily follow the same path as a $500,000 strategic deal.
6. Separate Sales Approval From Financial Approval
Not every risk belongs to the sales manager.
For example:
Pricing Risk
Sales Manager
Margin Risk
Sales Director / Commercial Manager
Credit Risk
Finance
Contractual Risk
Management / Legal
Operational Risk
Operations
This creates separation of responsibilities.
A complex quotation may therefore move through multiple approvals:
Salesperson → Sales Manager → Finance → Management
But a normal quotation may require no additional approval.
This keeps the process efficient while protecting the business from exceptional deals.
7. Use Odoo Approval Rules for Controlled Actions
Odoo supports approval rules that can restrict who is authorized to approve or perform certain actions. Approval activity can also be tracked in the record's chatter, providing an audit trail of the decision.
For quotation governance, this can support a structured process such as:
Quotation Created
↓
Commercial Conditions Evaluated
↓
Approval Required?
↓
Yes → Authorized Approver
↓
Approve / Reject
↓
Quotation Sent
or:
No → Salesperson Continues
The exact implementation may require configuration, Studio approval rules, or custom development depending on the complexity of the conditions.
8. Avoid Approving the Wrong Version of the Quotation
One common weakness in manual approval processes is version control.
For example:
- Salesperson creates quotation.
- Manager approves it.
- Salesperson changes the discount.
- New quotation is sent to the customer.
The manager technically approved the quotation but not the final version.
A robust workflow should therefore consider whether important commercial changes invalidate the previous approval.
Approval may need to restart if someone changes:
- unit price
- discount
- quantity
- payment terms
- margin
- delivery commitment
- total quotation value
- product mix
This is particularly important for high-risk quotations.
9. Control Who Can Change Commercial Fields
Not every salesperson needs unrestricted control over every pricing field.
Businesses can define different levels of authority.
For example:
| User Role | Pricing Authority |
|---|---|
| Salesperson | Standard price and limited discount |
| Sales Manager | Higher discount authority |
| Sales Director | Strategic pricing approval |
| Finance | Payment/credit conditions |
| Administrator | Configuration and exceptional cases |
This creates a stronger separation between:
Creating a quotation
and
Approving commercial exceptions.
The goal is not to remove flexibility from salespeople.
It is to make exceptional pricing visible and accountable.
10. Use Pricelists for Standard Pricing Instead of Manual Discounts
Not every special price should require an approval.
Some discounts are predictable and should be built into pricing rules.
Examples include:
- customer-specific pricing
- volume discounts
- seasonal promotions
- product-category pricing
- contract pricing
- regional pricing
Odoo pricelists can apply pricing rules based on business conditions and margin can be recalculated after pricelist-based pricing is applied.
This creates an important distinction:
Standard commercial rule → Automated pricing
Exceptional commercial decision → Approval
That is usually more scalable than requiring management approval for every quotation.
11. Add Risk Controls Beyond Margin and Discount
Margin and discount are important, but they are not the only commercial risks.
Consider adding controls for:
High quotation value
Large deals may require executive review.
Unusual payment terms
Extended payment terms may increase working-capital or credit exposure.
Low-margin products
Certain products may require minimum margin protection.
New customers
A new customer may require additional credit review.
Strategic accounts
Large customers may have special commercial governance.
Custom products
Special production requirements may create operational risk.
Long delivery commitments
Unusual delivery promises may affect production and inventory planning.
The best approval workflow reflects the risks that actually matter to the business.
12. Connect CRM Opportunities With Quotation Approvals
Quotation governance should not begin only when the quotation is created.
The CRM opportunity may already contain valuable context:
- Expected revenue
- Customer
- Salesperson
- Probability
- Expected closing date
- Products
- Competitors
- Sales stage
Odoo supports creating quotations from CRM opportunities, allowing sales teams to connect the quotation with the originating opportunity.
This provides useful context for management.
A high-value quotation can be evaluated together with the opportunity instead of being reviewed as an isolated document.
13. Make Approval Reasons Mandatory for Exceptions
Approval without context is weak governance.
If a salesperson requests an exception, require a reason.
For example:
Discount Exception
“Competitor quoted 12% lower.”
Margin Exception
“Strategic customer with expected annual volume of $2M.”
Payment-Term Exception
“Customer requires 60-day terms under signed framework agreement.”
This creates a valuable record for future analysis.
Over time, management can identify patterns such as:
- which customers receive the most discounts
- which salespeople request the most exceptions
- which products frequently fall below target margin
- how often approvals are rejected
- which approval thresholds are too strict or too loose
Approval data can therefore become a management insight rather than just an administrative record.
14. Test the Workflow With Real Business Scenarios
Do not test quotation approval only with a normal quotation.
Create realistic scenarios.
| Scenario | Expected Result |
|---|---|
| Standard price, healthy margin | No approval |
| Small discount | Salesperson approval |
| Medium discount | Manager approval |
| High discount | Senior approval |
| Low-margin quotation | Margin approval |
| High-value quotation | Management review |
| Special payment terms | Finance review |
| Approved quote modified | Approval re-evaluation |
| Rejected quote modified | New approval cycle |
| Standard pricelist discount | Automatic pricing |
This identifies gaps before the workflow affects real customers.
15. Measure Whether Approval Controls Actually Work
Approval workflows should not be measured only by the number of approvals completed.
Track business outcomes.
Useful KPIs include:
Sales Performance
- Quotation conversion rate
- Average quotation value
- Sales cycle time
Pricing
- Average discount
- Discount by salesperson
- Discount by customer
- Discount by product
Profitability
- Average quotation margin
- Margin by product
- Margin by salesperson
- Low-margin quotation frequency
Governance
- Approval rate
- Rejection rate
- Approval turnaround time
- Exception frequency
- Modified-after-approval quotations
These metrics help management determine whether controls are protecting profitability without creating unnecessary sales delays.
The Odoo Quotation Approval Framework
A practical implementation can follow this sequence:
Create
↓
Price
↓
Calculate Margin
↓
Evaluate Discount
↓
Check Risk Conditions
↓
Determine Approval Level
↓
Approve / Reject
↓
Send Quotation
↓
Customer Confirmation
↓
Sales Order
↓
Monitor Outcome
This makes approval part of the commercial process rather than an external administrative activity.
Common Quotation Approval Mistakes
Approving Every Quotation
This creates unnecessary delays and approval fatigue.
Using Discount as the Only Control
Discount does not always indicate profitability.
Ignoring Cost Data
Margin analysis depends on reliable product or service cost information.
Allowing Changes After Approval
Important commercial changes should trigger appropriate re-evaluation.
Using Email as the Approval System
Email approvals can make it difficult to maintain a consistent audit trail.
Giving Everyone Full Pricing Authority
Pricing permissions should reflect roles and responsibilities.
Creating Too Many Approval Levels
Over-engineered workflows can slow sales without reducing meaningful risk.
Failing to Measure Exceptions
If the business never analyzes approvals, it cannot improve its pricing strategy.
Odoo Quotation Approval Implementation Roadmap
| Phase | Key Activity | Outcome |
|---|---|---|
| Discover | Identify pricing and commercial risks | Approval requirements |
| Define | Set discount and margin thresholds | Business rules |
| Design | Create approval hierarchy | Workflow design |
| Configure | Set pricing, discounts and permissions | Controlled quotation process |
| Integrate | Connect CRM, finance or other systems | Shared information |
| Develop | Add required custom approval logic | Business-specific controls |
| Test | Run normal and exception scenarios | Validated workflow |
| Train | Prepare sales and approvers | User adoption |
| Launch | Activate approval workflow | Controlled quotations |
| Optimize | Review KPIs and exceptions | Continuous improvement |
Final Checklist for Odoo Quotation Approval
Before implementing quotation approvals, confirm:
Discount thresholds are defined
Minimum margin targets are defined
High-value quotation thresholds are established
Pricing authority is assigned by role
Finance approval rules are defined
Special payment terms are controlled
Standard pricing is handled through pricelists where appropriate
Approval reasons are captured
Changes after approval are controlled
Approval history is traceable
CRM opportunity information is connected
Normal and exception scenarios are tested
Approval turnaround time is measured
Discount and margin KPIs are monitored
Frequently Asked Questions
1. What is a quotation approval workflow in Odoo?
A quotation approval workflow controls when a sales quotation requires review before being sent or confirmed. It can be based on discounts, margins, quotation value, payment terms, or other business rules.
2. Can Odoo approve quotations based on discount levels?
Yes, businesses can design approval rules around discount thresholds and user authority. Higher discounts can automatically require approval from a sales manager or senior approver.
3. How can Odoo help protect quotation margins?
Odoo can provide margin visibility on quotations and sales orders when the relevant margin features are enabled. Businesses can use minimum margin thresholds as part of their commercial approval process.
4. Can quotation approvals be based on both margin and discount?
Yes, approval logic can consider multiple conditions together, such as excessive discounts or margins below an approved threshold. This creates a more effective risk-based quotation process.
5. Can different users have different quotation approval rights?
Yes, access and approval responsibilities can be structured according to user roles. Salespeople can handle standard deals while managers review exceptional pricing or commercial conditions.
6. Can Odoo control high-value quotations?
Businesses can create approval processes for quotations above defined commercial thresholds. High-value deals can then be routed to senior management for additional review before proceeding.
7. Can approved quotations be rechecked after changes?
Yes, businesses can design controls so important changes trigger another approval cycle. This can apply to discounts, prices, margins, quantities, payment terms, or other commercial conditions.
8. Can Odoo handle standard discounts without manual approval?
Yes, standard pricing and discount rules can be managed through Odoo pricelists where appropriate. This allows routine commercial conditions to be automated while exceptional discounts are routed for approval.
Conclusion
A strong quotation approval workflow should not become another obstacle for sales teams.
Its purpose is to identify commercial exceptions that deserve attention.
Odoo provides the building blocks for quotation management, discounts, pricing, margin visibility and controlled approvals.
The most effective approach is to combine them into a business-specific framework:
Standard Deal → Fast Approval
Discount Exception → Sales Approval
Margin Exception → Commercial Approval
Credit Exception → Finance Approval
High-Risk Deal → Management Review
This approach gives salespeople the freedom to move quickly on normal opportunities while ensuring that exceptional commercial decisions receive the right level of scrutiny.
The goal is simple:
Protect margin, control discounts, manage commercial risk and keep sales moving.