Odoo Approvals: Configuring Approval Workflows

Complete guide to Odoo 19 Approvals: design multi-level approval workflows, configure request types, set permissions, and automate business process governance.

E
ECOSIRE Research and Development Team
|March 19, 202613 min read2.8k Words|

Odoo Approvals: Configuring Approval Workflows

Every organization has decisions that require authorization before action. Purchase orders above a threshold. Expense reimbursements above a limit. Discount approvals. Capital expenditure requests. Personnel actions like hiring, salary changes, or time-off beyond a certain duration. Without a structured approval system, these decisions get made through informal email chains that are slow, inconsistent, undocumented, and impossible to audit. Odoo 19 Enterprise Approvals module provides a configurable, multi-level approval workflow system that standardizes authorization processes across your organization — with complete documentation, mobile access, and integration with the modules where work actually happens.

This guide covers the complete Odoo Approvals configuration: approval types, approver configuration, multi-level chains, requestor experience, mobile approvals, integration with other Odoo modules, and approval analytics. By the end, you'll have a blueprint for replacing informal approval processes with structured, auditable workflows.

Key Takeaways

  • Configure approval types for every business process requiring authorization
  • Design sequential and parallel multi-level approval chains with conditional routing
  • Set up automatic escalation when approvals are overdue
  • Enable email and mobile push notifications for pending approvals
  • Integrate approvals with Purchase, Expenses, HR, and custom business processes
  • Maintain a complete approval audit trail for compliance and governance
  • Give requestors visibility into their approval request status in real time
  • Analyze approval cycle times and bottleneck identification through reporting

Understanding the Approvals Module Architecture

The Odoo Approvals module is built around three concepts: Approval Types (what can be approved), Approval Requests (individual authorization instances), and Approvers (who can authorize).

Approval types as templates: Each approval type defines a category of decision that requires authorization. Common approval types include: Purchase Request (above $5,000), Expense Report (above $500), Overtime Authorization, Discount Approval (above 15%), Capital Expenditure, New Vendor Onboarding, and Employee Salary Change. Approval types are templates — every individual request of that type follows the same routing and criteria defined in the template.

Requests as instances: When an employee initiates an approval, they create an "Approval Request" — an instance of the relevant approval type. The request includes the specific details (amount, product, employee, dates) and follows the routing defined in the approval type template. Each request has its own lifecycle: Draft > Submitted > Approved/Refused, with timestamps and user attribution at every step.

Approvers and the approval chain: Approvers are the users who review and authorize (or refuse) approval requests. The approval chain defines the sequence of approvers: who must approve, in what order, and whether all approvers in a level must approve or just one. Multi-level chains can route through a department manager, then a department director, then the CFO — with each level's approval triggering the next.


Creating Approval Types

Navigate to Approvals > Configuration > Approval Types > New to create a new approval type. The configuration form covers all aspects of the approval workflow.

Basic configuration:

  • Name: Clear, specific name (e.g., "Purchase Request — Over $5,000" rather than just "Purchase Request")
  • Category: Classify approval types for filtering and reporting (Financial, HR, Operational, IT)
  • Manager Approval: Toggle whether the requestor's direct manager must approve (adds an automatic first-level approval based on organizational hierarchy)
  • Automated Approvals: Whether requests can be auto-approved if criteria are met (e.g., amounts below a secondary threshold don't need approval)
  • Expiration: Whether approval requests expire after a set time if not acted upon

Approval contacts (approvers): Add the specific users or user groups who must approve requests of this type. Configuration options for each approver:

  • Approval Type: Required (must approve), Optional (can approve but not mandatory), or Refuse Only (can refuse but not approve — useful for compliance reviewers)
  • Sequence: The order in which approvers receive the request in sequential workflows
  • Email notification: Whether to notify by email when their approval is needed

Approval products and forms: Add custom fields to the approval request form for this type. A Purchase Request type might require: vendor name, business justification, budget code, and quotes attached. A Capital Expenditure type might require: project code, ROI calculation, and manager sign-off statement. Custom fields are visible on every request of this type, ensuring complete information before review.


Sequential vs. Parallel Approval Chains

The structure of the approval chain determines how requests flow through your organization.

Sequential approval: Approvers are notified one at a time in sequence. Level 1 (direct manager) receives the request first. Upon approval, Level 2 (department director) is notified. Upon Level 2 approval, Level 3 (CFO or CEO) is notified. Each approver only acts after the previous level has approved, preventing notification flooding and ensuring each approver knows the previous level has reviewed the request.

Parallel approval: All approvers at a level are notified simultaneously. Any one of them can approve (or all must approve — configurable). This is appropriate when approvals can happen in any order, or when backup approvers should be available if the primary approver is unavailable. A parallel approval chain with three IT managers notified simultaneously ensures a system access request can be approved even if two managers are traveling.

Mixed chains: Combine sequential and parallel in the same chain. Level 1 is the direct manager (sequential — required). Level 2 is two IT security officers (parallel — either can approve). Level 3 is the CISO (sequential — required). This flexibility handles complex real-world authorization requirements.

Conditional routing: For approval types where the routing depends on request details, use Odoo automation rules to modify the approval chain based on request values. Requests above $50,000 route to a longer chain than requests between $5,000 and $50,000. Requests from the R&D department route to the CTO; requests from Sales route to the VP of Sales. This conditional routing keeps single approval types flexible across different scenarios.


Requestor Experience

The employee experience for creating and tracking approval requests is critical to adoption. Complex, confusing approval systems get bypassed — defeating their purpose.

Creating a request: Navigate to Approvals > My Requests > New Request. Select the approval type from a dropdown menu. The form pre-populates with the custom fields defined for that type. Fill in the required information, attach any supporting documents (quotations, expense receipts, performance justification), and submit.

Request status tracking: After submission, the requestor can see their request's current status on the Approvals dashboard: which approver currently has it, how long it's been waiting, and the approval history so far. No need to email managers asking "Have you approved my request yet?" — the status is visible at a glance.

Email notifications: Requestors receive email notifications at key status changes: submission confirmation, each approval or refusal with the approver's name and any comments, and final approval or refusal. Notification emails include a direct link to the request for quick access.

Approval comments: Approvers can add comments when approving or refusing. These comments are visible to the requestor and are preserved in the approval audit trail. A refused request with a comment explaining why gives the requestor actionable feedback for resubmission.

Resubmission after refusal: When a request is refused, the requestor can correct the underlying issues and resubmit. The resubmission starts a fresh approval chain but maintains the history of the previous attempt — approvers can see that this is a resubmission and what was changed.


Approver Experience

Approvers need a frictionless way to review and act on pending requests. Delays in the approval process slow down the business.

Approval dashboard: Navigate to Approvals > To Approve to see all pending requests awaiting your approval. The list shows: request type, requestor, date submitted, time waiting, and summary information. One click opens the request detail for review.

Approval from email: Email notifications include a summary of the request and two buttons: Approve and Refuse. Approvers can act without logging into Odoo — clicking the button in the email opens a minimal approval interface (or acts directly if configured for one-click approval). This is particularly valuable for busy executives who don't live in Odoo.

Approval from mobile: The Odoo mobile app shows pending approvals in the notification center. Approvers receive push notifications when a new request requires their attention. Review and approve directly from the phone with a single tap.

Delegating approvals: When an approver is unavailable (vacation, travel, medical leave), configure a delegation — another user receives approval responsibilities for a defined period. The substitution is documented, maintaining accountability while ensuring approvals don't stall indefinitely.

Bulk approvals: When multiple similar requests are pending (e.g., end-of-month expense reports), select multiple requests from the list and approve them in batch. For routine approvals where each individual review isn't necessary, bulk approval dramatically reduces approver time.


Escalation and Overdue Management

Approval requests that sit unanswered are a bottleneck that frustrates requestors and slows business velocity.

Escalation timing: Configure an escalation policy for each approval type: if not acted upon within X hours, send a reminder to the approver. If still not acted upon after Y hours, escalate to the approver's manager. This automatic escalation ensures approvals are never silently ignored.

Overdue visibility: Approval managers can view all overdue requests across the organization — filtering by approval type, approver, or time waiting. This visibility enables proactive intervention before delays become blockers.

SLA monitoring: Configure SLA targets for each approval type (e.g., all expense approvals must be processed within 24 business hours; all purchase requests under $1,000 within 4 hours). Track SLA compliance in approval reports to identify approvers or approval types with chronic delays.

Vacation mode: When users set themselves as out-of-office in Odoo, approval requests assigned to them can be automatically rerouted to their designated backup approver. This prevents approval queues from backing up during planned absences.


Integration with Other Odoo Modules

The real power of Odoo Approvals is its integration with operational modules where the actual business decisions are made.

Purchase approvals: Configure the Purchase module to require approval for orders above a threshold. When a salesperson or buyer creates a purchase order above $5,000, it's locked for editing and a purchase approval request is automatically generated, routing through the defined chain. The purchase order is only executable after the approval is granted.

Expense approvals: The Expense module has built-in approval integration. Expense reports automatically generate approval requests when submitted. Configure multi-level approval for large expense reports (e.g., manager approval for amounts up to $1,000, director approval for $1,000-$5,000, CFO approval above $5,000).

HR approvals: Connect the Approvals module to HR actions: overtime beyond 10 hours per week triggers an approval request to the HR manager; time-off beyond 5 consecutive days requires manager and HR director approval; salary change requests require department head and HR director sign-off.

Custom approvals: For business processes without native Odoo module integration, use the Approvals module as a standalone process. Any employee can submit a Custom Approval Request for any business decision that doesn't have a dedicated module workflow. This flexibility means Approvals becomes the universal governance layer for your organization.


Audit Trail and Compliance

One of the core values of a formal approval system is the audit trail it creates.

Complete approval history: Every approval request maintains a complete history: who created it, when, with what information; who was notified at each level; who approved or refused, when, and what comments were added; and the final outcome. This history is immutable — it cannot be edited after the fact.

Export for audits: For regulatory compliance, financial audits, or SOX compliance, export approval records as PDF or Excel. Filter by time period, approval type, or approver to produce exactly the evidence package required. The export includes all request details and the complete approval chain history.

Segregation of duties evidence: For financial controls requiring segregation of duties (the person who creates a purchase request cannot be the same person who approves it), configure approval types to exclude the requestor from the approval chain automatically. The approval history provides evidence that the required segregation was maintained.

Policy compliance: Over time, the approval history shows whether your authorization policies are being followed consistently. If purchase orders are regularly approved above the threshold by unauthorized individuals, the approval module captures this — enabling policy enforcement rather than just policy existence.


Approval Analytics and Reporting

Approval volume reporting: Navigate to Approvals > Reporting > Approval Analysis. View the number of requests by type, period, requestor department, and status. Understanding volume by type identifies which processes are most active and therefore most impactful to optimize.

Cycle time analysis: Measure how long requests take to move through each approval level. Identify bottlenecks — approval types or specific approvers with consistently long cycle times. Use this data for coaching conversations (approvers who delay frequently), process redesign (approval chains that are too long for the risk involved), or staffing decisions (approval loads that exceed one person's capacity).

Refusal analysis: Track refusal rates by approval type and approver. High refusal rates indicate either that requestors are submitting non-compliant requests (training or clarity issue) or that approval criteria are too strict for business needs (policy review needed). Low refusal rates might indicate rubber-stamping — approvers not engaging meaningfully with requests.


Frequently Asked Questions

Can approval types be configured differently for different departments?

Yes. Create approval type variants for each department, or use a single type with conditional routing rules. For example, a "Travel Request" approval type can route IT department requests to the IT director while routing Sales department requests to the VP of Sales — using automation rules that detect the requestor's department and modify the approver chain accordingly.

Can approvals be configured to auto-approve small requests below a threshold?

Yes. Configure automated approval rules that approve requests below a threshold without human review. Expenses below $50 can auto-approve; requests between $50 and $500 require manager approval; requests above $500 require director approval. The auto-approval is logged in the request history, maintaining the audit trail while eliminating unnecessary friction for routine, low-risk requests.

How does Odoo handle approval requests when an approver is on vacation?

Configure out-of-office delegation in the user's settings. When a user marks themselves as out of office, all their pending approval requests automatically transfer to their designated delegate for the absence period. New requests that would normally route to them also route to the delegate during this period. When the user returns and cancels their out-of-office status, routing returns to normal.

Can we configure approval workflows that require different documents for different request values?

Yes. Use conditional required fields on the approval request form. Configure a rule: if the requested amount exceeds $10,000, the "Vendor Quotes (3 required)" field becomes mandatory. Below that threshold, it's optional. This ensures appropriate documentation for high-value requests without burdening small requests with unnecessary paperwork.

Is there a way to see the total value of pending approvals across the organization?

Yes. The Approval Analysis report can be filtered to show only "Pending" requests and grouped by approval type. If your approval types include amount fields (which they should for financial approvals), you can sum the values across pending requests to see total financial exposure awaiting approval. This aggregate view is valuable for treasury and cash flow forecasting.

Can Odoo send approval notifications via WhatsApp or Slack instead of email?

Email and push notifications (via mobile app) are the standard notification channels. For WhatsApp notifications, Odoo 19 Enterprise's WhatsApp integration can be configured to send approval notifications via WhatsApp for approvers who prefer this channel. For Slack, custom automation rules can post to a Slack webhook when a new approval is created, triggering a Slack message. These integrations require additional configuration but are supported via Odoo's automation and webhook features.

How can we ensure that approved decisions are actually implemented correctly?

Approvals in Odoo are designed to gate downstream actions. For module-integrated approval types (Purchase, Expenses), the underlying record is locked until the approval is granted — it simply cannot be processed otherwise. For standalone approval requests, the implementation depends on your process design. Configure a "Next Action" activity on the request after approval that assigns the implementation task to the relevant person, creating accountability for follow-through.


Next Steps

Odoo Approvals replaces informal, email-based authorization processes with structured, documented, mobile-accessible workflows that give your organization the governance it needs without creating bureaucratic delays. When approval processes are automated, measurable, and integrated with the systems where work happens, organizations move faster and with better controls.

ECOSIRE configures Odoo Approvals as part of broader Odoo implementations, designing approval workflows that match your governance requirements and authorization hierarchy. Our implementation includes approval type design for all key business processes, integration with your existing Odoo modules, and training for both approvers and requestors.

Visit our Odoo services page to learn about approval workflow implementation, or browse our marketplace modules for approval extensions including advanced conditional routing, external approver access, and compliance reporting dashboards for Odoo 19 Enterprise.

E

Written by

ECOSIRE Research and Development Team

Building enterprise-grade digital products at ECOSIRE. Sharing insights on Odoo integrations, e-commerce automation, and AI-powered business solutions.

Chat on WhatsApp