Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Technical
  3. Approval Workflow Engine - BPM Process Designer v 19.0
  4. Sales Conditions FAQ

Approval Workflow Engine - BPM Process Designer

by Sappinov https://github.com/workflow-base/workflow_base
Odoo

$ 118.62

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Lines of code 3013
Technical Name workflow_base
LicenseLGPL-3
Websitehttps://github.com/workflow-base/workflow_base
Versions 18.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Lines of code 3013
Technical Name workflow_base
LicenseLGPL-3
Websitehttps://github.com/workflow-base/workflow_base
Versions 18.0 19.0

Approval Workflow Engine

Odoo 18 Approval BPM State Machine Visual Designer

Visual Workflow Builder for Odoo

Create and manage complex approval workflows with an intuitive drag-and-drop interface. Design stages, transitions, and approval rules visually - no coding required for workflow configuration.

Visual Workflow Designer

Design your workflows visually with our intuitive drag-and-drop interface powered by JointJS. Create stages, connect them with routes, and see your complete workflow at a glance.

Visual Workflow Designer
The visual workflow designer showing stages (Draft, Pending, Approved, Rejected, Completed) and their transitions with color-coded routes.

Key Features

Visual Workflow Designer

Drag and drop interface to create workflow stages and define transitions. See your workflow as a visual flowchart with color-coded stages and routes.

Request Types

Define different workflow types for various business processes. Each type has its own stages, routes, and can be linked to any Odoo model.

Configurable Stages

Configure stages with colors, visibility settings, draft/done flags, and readonly controls to lock fields after certain stages.

Flexible Routes

Define transitions with custom button styles (primary, success, danger), descriptions, and conditions for visibility.

Access Control

Control who can move requests through specific routes using user groups and individual user permissions.

Server Actions

Trigger automated actions on transitions: open wizards, send emails, update records, or run custom Python code.

Workflow Configuration Menu

Access all workflow configuration from the Settings menu. Manage Request Types, Stages, and Routes in dedicated views.

Workflow Configuration Menu
Settings > Workflow Configuration menu with Request Types, Stages, and Routes.

Stage Configuration

Configure workflow stages with visibility, draft/done flags, colors, and more. Stages can be reordered using drag-and-drop.

Stages Configuration
Stages tab showing all workflow stages with their properties: visibility, draft status, done status, colors, and active state.

Stage Details with Routes

Each stage shows its incoming and outgoing routes. Configure readonly behavior using Python expressions.

Stage Details
Stage configuration showing name, type, color, visibility, and outgoing routes (Approve, Reject).

Routes Configuration

Define all transitions between stages. Configure button styles, descriptions, server actions, and access controls.

Routes Configuration
Routes tab showing all workflow transitions with From/To stages, descriptions, button classes, and associated server actions.

Route Details with Actions

Configure each route with allowed groups, allowed users, server actions (like opening a wizard), and button appearance.

Route with Server Action
Reject route configuration with server action "Demo: Open Reject Wizard" to capture rejection reason.

Route Configuration Details

Each route (transition) can be fully configured with access controls and automated actions.

Allowed Groups

Restrict who can use this route by selecting specific security groups. Only users belonging to these groups will see and be able to click the button.

Example: Only "Sales Manager" group can approve quotes.

Allowed Users

For fine-grained control, specify individual users who can use this route. Useful for specific approval chains or delegation.

Example: Only the CEO and CFO can approve expenses over $10,000.

Condition Visible Button

A Python expression that determines if the button is visible. The expression has access to the record (rec) and environment (self).

Example: rec.amount > 1000 - Button only shows for high amounts.

Button Class

Control the button appearance with Bootstrap classes:

  • btn-primary - Blue (main action)
  • btn-success - Green (approval)
  • btn-danger - Red (rejection)
  • btn-secondary - Gray (reset)

Server Actions on Routes

Attach powerful server actions to routes to automate tasks when a transition occurs. Actions are executed before the stage change.

Available Server Action Types

Odoo provides multiple action types that can be triggered on route transitions:

Server Action Types
Server action configuration showing all available action types for workflow automation.

Execute Code

Run custom Python code. Access records, env, and return actions like opening wizards. Most flexible option.

Send Email / SMS

Automatically send email or SMS notifications when transitioning. Use email templates with dynamic content.

Update Record

Modify field values on the current record or related records. Set dates, update status fields, assign users, etc.

Create Activity

Schedule follow-up activities (tasks, calls, meetings) for users when a transition occurs.

Add/Remove Followers

Manage document followers dynamically. Add managers as followers on approval, remove on completion.

Create Record

Create new records in any model. Generate invoices, create tasks, log entries automatically.

Send Webhook

Send HTTP requests to external systems. Integrate with third-party applications, trigger external workflows.

Execute Existing Actions

Chain multiple server actions together. Reuse existing actions for complex multi-step automations.

Example - Open Wizard on Reject: Create a server action with "Execute Code" type to open a wizard that captures the rejection reason before completing the transition.

Demo Request Module

Complete demonstration included! The module ships with a demo.request model showcasing all features:

Draft → Pending → Approved → Completed
Pending → Rejected → Draft

Demo Request - Draft Stage

New requests start in Draft stage with editable fields and a "Submit" button to move to Pending.

Demo Request Draft
Demo Request form in Draft stage showing the Submit button and status pipeline indicator.

Demo Request - Pending Stage

After submission, the request shows Approve and Reject buttons. Fields become readonly based on stage configuration.

Demo Request Pending
Demo Request in Pending stage with Approve (green) and Reject (red) action buttons.

Rejection Wizard

Routes can trigger server actions like opening a wizard. The Reject route opens a wizard to capture the rejection reason.

Reject Wizard
Rejection wizard triggered by the Reject button, requiring a reason before completing the rejection.

How to Use

  1. Install the module
    Install Workflow Base from the Apps menu. Demo data will create a sample workflow.
  2. Create a Request Type
    Go to Settings > Workflow Configuration > Request Types. Link it to your model.
  3. Design Your Workflow
    Use the visual Workflow Designer tab to create stages and connect them with routes.
  4. Configure Stages
    Set colors, readonly behavior ({'all': True}), draft/done flags, and visibility.
  5. Define Routes
    Configure button styles, access rights (groups/users), and optional server actions.
  6. Inherit in Your Model
    Add workflow capabilities with Python inheritance (see example below).

Quick Start Example

Tip: Add the stage_route_out_widget field to your form view to display action buttons, and use readonly="can_readonly" on fields that should lock after certain stages.
from odoo import models, fields

class MyRequest(models.Model):
    _name = 'my.request'
    _inherit = ['request.request', 'mail.thread']
    _description = 'My Custom Request'

    name = fields.Char(string='Name', required=True)
    description = fields.Text(string='Description')
    requester_id = fields.Many2one('res.users', default=lambda self: self.env.user)

    # Inherited from request.request:
    # - type_id: linked Request Type
    # - stage_id: current workflow stage
    # - can_readonly: boolean computed from stage
    # - stage_route_out_json: available action buttons

In your XML form view:

<form>
    <header>
        <!-- Action buttons appear here automatically -->
        <field name="stage_route_out_json" widget="stage_route_out_widget"/>
        <field name="stage_id" widget="statusbar" options="{'clickable': '0'}"/>
    </header>
    <sheet>
        <group>
            <!-- Fields become readonly based on stage -->
            <field name="name" readonly="can_readonly"/>
            <field name="description" readonly="can_readonly"/>
        </group>
    </sheet>
    <chatter/>
</form>

Technical Details

Models

  • request.type - Workflow types
  • request.stage - Workflow stages
  • request.stage.route - Transitions
  • request.request - Base mixin

Dependencies

  • base
  • mail (for tracking)
  • JointJS (included via CDN)

Requirements

  • Odoo 18.0 (Community or Enterprise)
  • Base module
  • Mail module (for activity tracking)

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with