Skip to Content

Quotation Approval Workflows in Odoo: Margin, Discount and Risk Controls

Discover how to build smarter quotation approval workflows in Odoo for margin protection, discount control and commercial risk management with BrowseInfo.
11 min read
September 9, 2026
Odoo Modules

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 AreaExample Business RuleApproval
DiscountUp to 5%Salesperson
Discount5–10%Sales Manager
DiscountAbove 10%Sales Director
MarginAbove targetSalesperson
MarginBelow targetManager
Quotation ValueHigh-value dealManagement
Payment TermsExtended creditFinance
Special PricingNon-standard priceSales Manager
Strategic CustomerExceptional commercial termsManagement

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 LevelExample ConditionRecommended Action
LowStandard price and healthy marginSalesperson can proceed
MediumModerate discountSales Manager review
HighLow margin or high discountSenior approval
CriticalVery low margin, exceptional terms, or major exposureManagement/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:

  1. Salesperson creates quotation.
  2. Manager approves it.
  3. Salesperson changes the discount.
  4. 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 RolePricing Authority
SalespersonStandard price and limited discount
Sales ManagerHigher discount authority
Sales DirectorStrategic pricing approval
FinancePayment/credit conditions
AdministratorConfiguration 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.

ScenarioExpected Result
Standard price, healthy marginNo approval
Small discountSalesperson approval
Medium discountManager approval
High discountSenior approval
Low-margin quotationMargin approval
High-value quotationManagement review
Special payment termsFinance review
Approved quote modifiedApproval re-evaluation
Rejected quote modifiedNew approval cycle
Standard pricelist discountAutomatic 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

PhaseKey ActivityOutcome
DiscoverIdentify pricing and commercial risksApproval requirements
DefineSet discount and margin thresholdsBusiness rules
DesignCreate approval hierarchyWorkflow design
ConfigureSet pricing, discounts and permissionsControlled quotation process
IntegrateConnect CRM, finance or other systemsShared information
DevelopAdd required custom approval logicBusiness-specific controls
TestRun normal and exception scenariosValidated workflow
TrainPrepare sales and approversUser adoption
LaunchActivate approval workflowControlled quotations
OptimizeReview KPIs and exceptionsContinuous 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.

Quotation Approval Workflows in Odoo: Margin, Discount and Risk Controls
Pooja Raghunath Odoo Functional Consultant

About the Author

I am an Odoo Functional Consultant specializing in ERP implementation, business process improvement, and system configuration. I works closely with businesses to streamline operations and maximize the value of their Odoo investment.
Book a Consultation

Share this post