Skip to Content

How to Build an Approval Workflow in Odoo Without Custom Code

September 7, 2026 by
How to Build an Approval Workflow in Odoo Without Custom Code
Sales

How to Build an Approval Workflow in Odoo Without Custom Code

Business processes often require approvals before an action can be completed.

A purchase order may need manager approval. A sales order with a large discount may require authorization. An employee expense may need approval from a department head. A customer credit limit increase may need finance approval.

Without a structured approval process, these activities often happen through emails, spreadsheets, chat messages, or verbal communication.

The result?

  • Delayed decisions

  • Missing approvals

  • Lack of accountability

  • Process bottlenecks

  • Increased risk of errors

The good news is that many approval workflows can be configured directly in Odoo without developing a custom module.

Using Odoo Studio, automated actions, user groups, approval rules, activities, and existing application features, businesses can create structured approval processes while keeping their ERP easier to maintain.

What Is an Approval Workflow in Odoo?

An approval workflow defines who needs to approve an operation, under what conditions, and what happens after approval.

A basic workflow looks like:

Document Created → Approval Required → Manager Reviews → Approved → Process Continues

For example:

Purchase Request

Department Manager Approval

Purchase Manager Approval

Purchase Order

Vendor Confirmation

Instead of relying on employees to remember who should approve each transaction, Odoo can enforce the process through configured rules.

Why Use Approval Workflows?

A well-designed approval workflow provides several benefits.

1. Better Control

Employees cannot bypass required approval steps.

2. Faster Processing

Approvers receive notifications or activities instead of waiting for someone to contact them manually.

3. Clear Accountability

The system records who approved an operation and when.

4. Fewer Errors

Rules can automatically determine whether approval is required.

5. Better Auditability

Management can review the history of approvals when needed.

6. Reduced Email Dependency

Approvals can happen directly inside the ERP rather than across disconnected communication channels.

Step 1: Identify What Needs Approval

Before configuring anything, identify the business transactions that actually require authorization.

Common examples include:

  • Sales orders

  • Purchase orders

  • Purchase requests

  • Expense reports

  • Vendor bills

  • Customer credit limits

  • Discounts

  • Refunds

  • Inventory adjustments

  • Employee leave

  • Timesheets

  • Projects

  • Manufacturing changes

Don't automatically create approvals for every transaction.

The objective is to control high-risk or high-value decisions, not create unnecessary bureaucracy.

Step 2: Define Your Approval Rules

The next step is to define clear conditions.

For example:

TransactionConditionApprover
Sales OrderDiscount > 10%Sales Manager
Sales OrderAmount > $10,000Sales Director
Purchase OrderAmount > $5,000Purchase Manager
Purchase OrderAmount > $25,000Finance Director
ExpenseAmount > $500Department Manager
Inventory AdjustmentHigh-value stockInventory Manager

This creates a structured decision framework.

For example:

Order Value < $5,000

→ No additional approval

Order Value $5,000–$25,000

→ Sales Manager approval

Order Value > $25,000

→ Sales Director approval

Step 3: Use Odoo's Existing Approval Features First

One of the most important principles of Odoo implementation is:

Configure before you customize.

Many approval requirements can be handled through Odoo's existing functionality and configuration options.

Depending on the application and Odoo version, you may use:

  • Approval settings

  • User groups

  • Access rights

  • Studio

  • Automation Rules

  • Activities

  • Conditional visibility

  • Server actions

  • Existing approval mechanisms

This approach avoids unnecessary custom development.

Step 4: Create Approval Roles

The next step is to determine who can approve each type of transaction.

For example, create functional roles such as:

  • Sales User

  • Sales Manager

  • Purchase User

  • Purchase Manager

  • Finance Manager

  • Department Manager

  • Operations Manager

  • General Manager

Then assign users to the appropriate groups.

This is important because your workflow should depend on roles, not individual employees.

For example, don't build:

"John approves orders."

Instead, build:

"Sales Manager approves orders."

If John leaves the company, you can simply assign another employee to the Sales Manager role without redesigning the workflow.

Step 5: Add Approval Conditions

Now define when approval should be triggered.

Suppose your business wants manager approval when a salesperson offers more than a 15% discount.

The logic could be:

IF

Discount > 15%

THEN

Approval Required = Yes

AND

Approver = Sales Manager

Otherwise:

Approval Required = No

This is where Odoo Studio and automation rules can become useful.

Automation rules can trigger actions when specific conditions or events occur, allowing businesses to automate repetitive processes without building a full custom application.

Step 6: Add an Approval Status

A dedicated status field can make the workflow much easier to understand.

For example:

Draft

Waiting for Approval

Approved

Rejected

Completed

This allows employees and managers to immediately understand where a transaction is in the process.

You can also use a field such as:

Approval Required: Yes / No

and:

Approval Status: Pending / Approved / Rejected

This creates transparency across departments.

Step 7: Notify the Approver Automatically

One of the biggest problems with manual approval processes is that approvers don't know when something is waiting for them.

Instead of sending an employee an email saying:

"Can you please approve this purchase?"

Odoo can create an activity for the responsible approver.

For example:

Purchase Order #PO00045

Status: Waiting for Approval

Approver: Purchase Manager

Activity: Review and approve purchase order

The manager can then open the record, review the information, and approve or reject it.

This turns approval into a system-driven process.

Step 8: Create an Approval Button

A clean approval workflow should make the required action obvious.

For example:

Approve

Reject

The buttons can be shown based on the document's status and the user's permissions.

For example:

If:

Status = Waiting for Approval

and:

User = Authorized Approver

Then:

Show Approve / Reject

Otherwise:

Hide Approval Controls

This prevents unauthorized employees from approving their own transactions.

Step 9: Control Who Can Approve

Security is one of the most important parts of an approval workflow.

Consider this scenario:

A salesperson creates a $50,000 sales order.

The same salesperson should not be able to approve it.

The workflow should enforce:

Salesperson

→ Creates order

Sales Manager

→ Reviews order

Sales Director

→ Approves high-value order

This separation of responsibilities reduces the risk of unauthorized transactions.

Odoo's access rights and user groups can help control which users can access or modify particular records and operations.

Step 10: Build Multi-Level Approvals

Some organizations require more than one approval.

For example:

Purchase Order

$0–$5,000

→ Department Manager

$5,000–$25,000

→ Department Manager

→ Purchase Manager

Above $25,000

→ Department Manager

→ Purchase Manager

→ Finance Director

This creates a multi-level approval hierarchy.

The workflow becomes:

Purchase Request

Department Approval

Purchase Approval

Finance Approval

Purchase Order Confirmed

This is especially useful for organizations with strict financial controls.

Step 11: Handle Rejections Properly

A good approval workflow must define what happens when something is rejected.

Don't simply change the status to "Rejected."

Define the next action.

For example:

Approval Rejected

Employee receives notification

Reason for rejection is recorded

Document returns to Draft

Employee makes corrections

Document submitted again

This creates a controlled approval cycle.

A rejection reason can also help management understand recurring problems.

Step 12: Automate the Next Action After Approval

The biggest advantage of automation is what happens after approval.

Suppose a purchase order is waiting for approval.

After the manager clicks Approve, Odoo could automatically:

  • Change the approval status

  • Confirm the purchase order

  • Create the next activity

  • Notify the purchasing employee

  • Trigger the next operational step

The workflow becomes:

Purchase Order

Approval Required

Manager Approves

Automatically Confirm

Vendor Communication

This removes unnecessary manual steps.

Example: Sales Discount Approval Workflow

Let's build a practical example.

Imagine a company allows salespeople to offer discounts up to 10%.

Anything above 10% requires manager approval.

Normal Order

Discount = 5%

→ No approval required

→ Sales Order confirmed

Approval Order

Discount = 15%

→ Approval required

→ Sales Manager notified

→ Manager reviews

→ Manager approves

→ Sales Order confirmed

Rejected Order

Discount = 25%

→ Approval required

→ Manager rejects

→ Salesperson receives rejection

→ Salesperson modifies discount

→ Order submitted again

This workflow can dramatically reduce unauthorized discounting.

Example: Purchase Approval Workflow

Now consider a purchasing department.

The company establishes the following rules:

Purchase under $2,000

No approval.

Purchase between $2,000 and $10,000

Department Manager approval.

Purchase above $10,000

Department Manager + Finance approval.

The workflow becomes:

Purchase Request

Check Amount

<$2,000

→ Process automatically

$2,000–$10,000

→ Department Manager

>$10,000

→ Department Manager

→ Finance Manager

This is a simple example of conditional approval automation.

Odoo Studio: When It Makes Sense

Odoo Studio is particularly useful when you need to customize workflows without building a traditional custom module.

It can be used for things such as:

  • Adding custom fields

  • Creating approval status fields

  • Creating conditional views

  • Adding automated actions

  • Creating custom buttons

  • Adding activities

  • Applying business conditions

For straightforward approval workflows, Studio can significantly reduce development time.

However, Studio should still be used carefully.

Too many custom fields, automated rules, and complex dependencies can make a database difficult to maintain.

When You May Need Custom Development

Although many approval workflows can be built without custom code, some businesses have highly complex requirements.

Custom development may be appropriate when you need:

  • Complex approval matrices

  • Dynamic approver selection

  • Advanced delegation rules

  • External approval systems

  • Complex API integrations

  • Industry-specific compliance logic

  • Advanced approval calculations

  • Large-scale automation with complex dependencies

For example:

"The approver must be the manager of the employee's department, unless the order exceeds $50,000, in which case approval must go to the regional director, unless the customer belongs to a restricted category."

At that point, a custom solution may provide better long-term control.

Best Practices for Odoo Approval Workflows

1. Keep the Workflow Simple

Don't create five approval steps when two are sufficient.

Every unnecessary approval creates another potential bottleneck.

2. Use Roles Instead of Individual Users

Design workflows around positions such as:

Sales Manager

rather than:

Specific Employee

3. Automate Routine Approvals

Low-risk transactions shouldn't always require manual intervention.

4. Focus on Exceptions

Use approval workflows for unusual, risky, or high-value transactions.

5. Record Rejection Reasons

This creates accountability and provides useful management information.

6. Test With Real Scenarios

Test:

  • Normal orders

  • High-value orders

  • Discounted orders

  • Rejected orders

  • Resubmitted orders

  • Unauthorized approval attempts

  • Multiple approvers

7. Review Your Workflow Regularly

Business processes change.

An approval threshold that makes sense today may become unnecessary as the company grows.

A Practical Zero-Code Approval Architecture

A simple architecture can look like this:

Business Transaction

Condition Check

Is Approval Required?

↙️ ↘️

No Yes

↓ ↓

Continue Waiting for Approval

                         ↓

                 **Approver Notification**

                         ↓

                 **Approve / Reject**

                    ↙️         ↘️

             **Approve**   **Reject**

                    ↓             ↓

             **Continue**   **Return for Correction**

This architecture can be adapted to sales, purchasing, expenses, finance, inventory, HR, and other Odoo workflows.

How to Measure Approval Workflow Performance

After implementing the workflow, track a few KPIs.

Approval KPIs

  • Average approval time

  • Number of pending approvals

  • Approval rejection rate

  • Number of approval steps

  • Percentage of automated approvals

Business KPIs

  • Order processing time

  • Purchase cycle time

  • Discount leakage

  • Unauthorized transactions

  • Employee productivity

For example, if your average purchase approval time decreases from 2 days to 3 hours, the automation is creating measurable business value.

Final Thoughts

You don't always need custom development to build an effective approval workflow in Odoo.

By combining Odoo configuration, user groups, Studio, automation rules, activities, conditions, and access controls, many businesses can create powerful approval processes without developing a completely custom module.

The best strategy is:

Map the Process → Define Approval Rules → Configure Roles → Add Conditions → Automate Notifications → Control Permissions → Test → Monitor

Start with one process—such as purchase approvals or sales discount approvals—and improve it before expanding automation across the organization.

A well-designed approval workflow doesn't just make Odoo more automated.

It makes your entire business process faster, more transparent, and easier to control.

Ready to Automate Your Odoo Approval Workflow?

If your team is still managing approvals through emails, spreadsheets, WhatsApp messages, or manual follow-ups, Odoo can help centralize and automate the process.

With the right configuration, you can reduce approval delays, improve accountability, and give management better control over business decisions—without unnecessary custom development.

How to Build a Zero-Touch Sales Order Workflow in Odoo