• 0
    • Contact us
    • Sign up
    • Sign in
    Viindoo
    • Features

      ACCOUNTING


      Accounting
      Invoicing Expense
      Budget
      Loan management

      SALES


      CRM
      Sales
      Point of Sale
      E-commerce
      Rental

      SUPPLY CHAIN


      Purchase
      Inventory
      Manufacturing
      Quality
      Foreign Trade

      HUMAN RESOURCE


      Recruitment
      Employees
      Payroll
      Overtime
      Time off

      WEBSITE


      Website Builder
      Livechat
      Blog
      ForumE-learning

      MARKETING


      Email MarketingSocial Marketing Events
      Survey

      OPERATION


      Project
      OKRs
      Helpdesk
      TimesheetDashboard

      PRODUCTIVITY


      Discuss
      ApprovalsAppointments

       See all features
    • Solutions

      BY BUSINESS OPERATION


      Viindoo E-Office - Streamlined Office Management Solution
      Viindoo HRM - Comprehensive Human Resource Management
      Viindoo SCM - End-to-End Supply Chain Management Platform
      Viindoo Marketing - Integrated Digital Marketing Plarform
      Viindoo Omnichannel - All-in-one Sales Omnichannel Platform
      Viindoo Website - Dynamic Website and E-commerce Builder
      Viindoo MRP - All-in-One ERP Solution for Manufacturing
      Viindoo Accounting & Finance - Efficient Financial Control System

      BY INDUSTRY


      Manufacturers
      Trading & Wholesale
      Industrial Manufacturing
      Wires and Cables Industry
      Fashion & Apparel Retail
      Textile Industry
      Woodworking & Furniture Industry
      Retails & Supermarket Chains
      Freight Forwarder
      Vi​ew all industries
    • Services

      Consulting & Implementation


      Viindoo Express PacksViindoo ERP ImplementationViindoo DX Strategy Consulting & Implementation

      Customization & DEVELOPMENT


      Viindoo Customization & Development on Demand Viindoo Upgrade

      Infrastructure


      Viindoo Cloud Software Service
    • Community

      NEWS & TIPS


      Events News Podcast

      RESOURCE


      Blogs DocumentationRelease NotesTutorial

      COLALBORATES


      Viindoo Marketplace Viindoo Affiliate Program Viindoo Reseller ProgramView all Partner Programs
    • Pricing
    • 0
    Trial
    1. APPS
    2. OmniApproval™: One platform. Every approval. 17.0
    OmniApproval™: One platform. Every approval.
    OmniApproval™: One platform. Every approval.

    OmniApproval™: One platform. Every approval.

    by Viindoo

    4.9

    $ 123.92 $ 123.92
    v 17.0 0
    Live Demo Demo Video
    Lines of Code 15546
    Technical name viin_approval
    License OPL-1
    Website https://viindoo.com/apps/app/17.0/viin_approval
    Read description for
    Required Apps Discuss (mail) Employees (hr)
    Included Dependencies Approvals Viindoo Base Advanced HR Management Safe Field & Model Selector
    Extensions Recruitment Requests/Approvals OmniApproval™ - Employee Contract Approvals OmniApproval™ - Overtime Approvals OmniApproval™ - Timesheet Approvals OmniApproval™ - ECO Approvals OmniApproval™ - Approval by Coaches OmniApproval™ - Recognition & Discipline Approvals (HR) OmniApproval™ - Maintenance Approvals OmniApproval™ - Accounting Approvals OmniApproval™ - Analytic Accounting Approvals Approval Tests OmniApproval™ - Stock Approvals
    • Description
    • Documentation
    • License
    Viindoo Logo
    Odoo Community
    Odoo Enterprise
    Viindoo Cloud

    OmniApproval™: One platform. Every approval.

    Streamline every approval process in your organization - HR, finance, procurement, sales, manufacturing, estimates, projects, operations - with a single configurable engine inside Viindoo/Odoo. No scattered emails. No spreadsheets. No ad-hoc scripts.

    OmniApproval™ unifies requests, keeps a tamper-proof audit trail with snapshots & diffs, and empowers consultants & developers with safe inline Python hooks.

    OmniApproval Overview

    Key Features

    A universal, production-ready approval framework for any Viindoo/Odoo model. Configure once, reuse everywhere. Safe by design. Audit-ready by default.

    Universal Model Support

    Whitelist any business model per Approval Type, blacklist internal/system models, trigger approvals from list/form action menus.

    Guided Source Selection

    Wizard to select models and records with domains. One approval per record, or one approval for multiple records, or attach to existing approvals.

    Safe Field Mapping Engine

    Map scalar & relational fields (header/line, nested/trees) with built-in blacklists to avoid unsafe writes and internal fields. No glue code required.

    Dynamic Field Toggles

    Enable/require amount, partner, employee, period, location, currency, product, reference, address, etc. Views and wizards respect invisible/required consistently.

    Snapshot & Diff Audit Trail

    Per-approval snapshots & per-record snapshot lines (model + ID). Auto-detect changes, post diffs to approvals and business records. BI-friendly values for compliance & governance.

    Inline Python Hooks (Safe)

    Before/after confirm, validate, refuse, cancel, reset to draft. Batch-safe APIs, helper context, and preflight opcode checks to block dangerous logic while enabling powerful automation.

    Decisions Logged on Business Documents

    Approval decisions are written back to the original documents (sales orders, purchase orders, invoices, projects, etc.), so managers see who approved or refused directly where they work.

    Approval Buttons in the Right Place

    “Get Approved” actions and approval status appear directly on relevant screens. Employees request approvals from the same list and form views they already use, without learning a new app.

    Benefits

    Right control, less friction

    Only send what truly requires approval using domain-driven targeting. No noise for managers, no missing control points for auditors.

    Deep integration, zero hacks

    Replace scattered custom scripts with a single engine. Clean extension points for custom logic without touching core flows.

    Trustworthy audits

    100% traceable changes at field level for approvals and related records. Ideal for ISO, SOX-like controls, and enterprise-grade governance.

    Context on the original documents

    Managers and auditors can review approvals directly on sales orders, purchase orders, invoices, projects, and more – with comments and changes in one place.

    Safe lifecycle as data evolves

    The engine handles situations where source records are updated or removed, avoids orphaned approvals, and keeps the database clean and explainable over time.

    Faster delivery for partners

    Implementers and developers reuse the same engine across HR, accounting, sales, purchasing, stock, project, manufacturing, etc - less code, fewer bugs.

    • Features
    • Demo
    • Support
    • Technical Requirement
    • Changes log

    One Engine for Every Model

    • Configure which business models each Approval Type applies to.
    • Start with a ready-to-use “General” approval template per company, then refine it instead of building from scratch.
    • Prevent selection of technical and unsafe models.
    • Trigger approvals from list & form views via built-in actions.
    OmniApproval Model Selection
    Field Mapping Tree

    Safe Field Mapping Engine

    • Map scalar & relational fields (many2one, one2many, JSON, etc.).
    • Support header/line mapping, nested child structures.
    • Built-in blacklists for directions and internal fields to avoid data corruption.

    Dynamic Fields, Zero XML Duplication

    • Toggle visibility & required state for amounts, partners, employees, locations, etc.
    • Applies consistently on approval forms, lines, and wizards.
    • Perfect for building reusable approval templates across departments.
    Dynamic Field Toggles

    Snapshot & Diff Audit Trail

    • Capture snapshots at submission/approval with per-record snapshot lines.
    • Detect changes on related orders, invoices, projects, etc. after submission.
    • Post human-readable diff logs to both approvals and business records.
    • Use standard Odoo tools & BI to analyze changes over time.
    Snapshot & Diff

    Enterprise-grade Reports & Analytics

    OmniApproval™ ships with three ready-to-use dashboards that turn approval data into management insights – no custom development required.

    Approval Requests Overview

    Follow the volume and status of approvals over time by company, period, or type – with normalized amounts and line totals in a single reporting currency.

    • See how many requests are Approved, To Approve, Refused, Cancelled or Done per month.
    • Spot peaks, slow periods, and backlogs across the whole organization.
    Approval Requests Overview

    Approval Analysis

    Compare workload and impact across approval types, products and departments on a unified line-level view – including requests without lines.

    • Understand which approval types and teams generate the most volume and value.
    • Support budgeting and process redesign with hard data instead of anecdotes.
    Approval Analysis

    Approver Workload & Performance

    Track how approvals are distributed across managers and how long they take to decide, with average and median decision time by approver.

    • Identify overloaded approvers and bottlenecks in the decision chain.
    • Measure adherence to internal deadlines and SLA expectations.
    Approver Workload

    All metrics are stored in structured models, ready for Odoo pivot tables, charts, spreadsheets, or external BI tools – so approval governance becomes measurable, not just configurable.

    See Decisions on the Original Documents

    • Each approval or refusal adds a clear note on the related orders, invoices, projects, and other documents.
    • Managers open a sales order or purchase order and immediately see who approved, when, and with which comment.
    • Combined with snapshot & diff, it gives both the decision history and the change history in one place.
    • Reduces back-and-forth emails when investigating disputes or explaining decisions to auditors.
    Approval Logs on Business Records
    Inline Python Hooks

    Inline Python Hooks (Sandboxed)

    • Run code before/after confirm, validate, refuse, cancel, reset.
    • Access safe helpers: env, records, fields, etc.
    • Preflight engine blocks unsafe opcodes and patterns.
    • Raise UserError/ValidationError to enforce policies.

    Also Built for Implementers & Developers

    • Use a generic mixin to make any custom model “approval-aware” with related approvals, lines, and source links.
    • Rely on helper methods to discover approvals and related business records instead of writing custom SQL or scattered glue code.
    • Call a dedicated approval data service with caching and invalidation to render badges, smart buttons, and summaries in your own views.
    • Snapshot & diff logic is split between pure diff computation and post-commit logging, keeping transactional behavior predictable.
    • Blacklists for technical, mail, and test models, plus internal fields, help avoid accidental writes to unsafe places.
    • Inline Python hooks re-use the same safety layer, helpers, and preflight checks, so project-specific logic stays maintainable on approval types.

    Explore OmniApproval™ in Action

    Use our live demo databases to experience universal approvals for sales, purchase, projects, accounting, stock, and more.

    OmniApproval™ Video Overview
    Watch on YouTube
    International Demo (EN) Click to open live demo: https://v17demo-int.viindoo.com
    Vietnam Demo (VI) Click to open live demo: https://v17demo-vn.viindoo.com

    Documentation & Tutorials

    OmniApproval™ ships with self-explained configuration screens. Visit Viindoo Docs for updated guides and implementation best practices. (Link to be updated)

    Need help with OmniApproval™?

    For questions, implementation support, or custom features, please contact Viindoo.

    Pre-Sales & Partnership

    sales@viindoo.com

    Please include:

    • Your Odoo/Viindoo version (CE/EE).
    • Estimated users, key processes to control.
    • Other Viindoo/Odoo modules in scope.

    Technical Support

    apps.support@viindoo.com

    When reporting an issue, please provide:

    • Order number or app reference.
    • Odoo/Viindoo version & edition.
    • Steps to reproduce and screenshots/logs.

    Technical Requirement

    Editions: Odoo CE, Odoo EE and Viindoo.
    License: OPL-1 (Odoo Proprietary License).

    Changes log

    17.0.0.1 - Initial Release

    • Introduced universal approval engine for any business model.
    • Added safe field mapping framework with blacklist & tree mapping.
    • Implemented dynamic field toggles and integrated wizards.
    • Delivered snapshot & diff audit trail for approvals and related records.
    • Provided inline Python hooks with preflight security checks.

    Works Great With These Modules

    OmniApproval™ is designed as the core approval engine. Enhance domain-specific workflows with these plug-and-play adapters (optional, no hard lock-in).

    OmniApproval™ - Employee Contract Approvals

    Bring OmniApproval™ into HR contracts: hiring, renewals, salary/package changes, and other contract updates, with HR-specific fields controlled by dynamic toggles.

    OmniApproval™ - Purchase Approvals

    Approval templates for purchase requests & orders, aligned with budgets and vendor policies.

    OmniApproval™ - Quote & Order Approvals

    Configure approvals for quotations, discounts, credit limits, and strategic deals.

    OmniApproval™ - Project & Task Approvals

    Approvals for project changes, timesheets, and key milestones.

    OmniApproval™ - Accounting Approvals

    Journal entries, payments, and financial controls with full traceability.

    OmniApproval™ - Stock Approvals

    Stock transfers, receipts, and deliveries tied to OmniApproval™ flows.

    OmniApproval™ - Analytic Approvals

    Control analytic distributions & allocations through approvals, ready for cost analysis.

    OmniApproval™ - MRP Approvals

    Approvals for manufacturing orders, engineering changes, and production exceptions.

    Who Should Use OmniApproval™?

    Ideal for organizations that need consistent approval governance across multiple departments, subsidiaries, and business models - without building one-off workflows.

    Enterprise & Scale-ups

    Multi-entity companies needing standardized approvals with audit-ready logs.

    Consulting & Odoo/Viindoo Partners

    Deliver approvals faster across projects, without reinventing the wheel each time.

    Regulated Industries

    Businesses under strict compliance (finance, manufacturing, logistics, healthcare) that require provable, consistent approval trails.

    OmniApproval™ (viin_approval)

    Installation

    1. Go to Apps.
    2. Search for viin_approval.
    3. Click Activate.

    Note

    viin_approval is the core engine of OmniApproval™ and must be installed before any vertical approval modules.

    Configuration

    Approval Types

    1. Navigate to OmniApproval™ - Configuration - Approval Types.
    2. Create or open an approval type.
    3. Set the following fields:
      • Source Model
      • Source Button Label
      • Applicable Records Domain (optional)
      • Before-Approval Required Domain (optional)
      • Field Mapping Strategy: single or multi
      • Has Lines / Lines Required (if line-level approval is needed)

    Approvers

    1. Open the Approvers tab.
    2. Configure:
      • Required approvers
      • Sequence
      • Minimum approvals

    Field Enablement (Head)

    1. For each toggle field, choose one of:
      • none: hidden
      • optional: shown, optional
      • required: shown, mandatory

    Common head toggles include:

    • has_document
    • has_reference
    • has_date
    • has_period
    • has_amount / has_amount2 / has_amount_currency
    • has_quantity / has_quantity_integer
    • has_partner / has_partner_ids
    • has_user_id / has_user_ids
    • has_employee_id / has_employee_ids
    • has_department_id / has_job_id
    • has_product_id / has_product_tmpl_id
    • has_country_id / has_country_state_id
    • has_address_id
    • has_location
    • has_resource_calendar_id
    • has_description / has_description_html
    • has_res_ref
    • has_time_period
    • etc

    Field Enablement (Lines)

    Line toggle fields follow the same structure, using line_has_... prefixes.

    Custom Labels

    1. In the Labels section, set custom labels for enabled fields. These labels override defaults in both the request form and the wizard.

    Field Mapping

    1. Open the Field Mappings tab.
    2. Add mapping lines specifying:
      • Source Model
      • Source Field
      • Destination Model (Request or Request Line)
      • Destination Field
      • Optional Child Mappings for nested structures

    Mapping Strategy Behavior

    Single Strategy

    • One approval request per source record.
    • If line mappings exist, source lines map to request lines.

    Multi Strategy

    • One approval request for multiple source records.
    • Each source record becomes one request line.

    Allowed mapping field types:

    • Basic stored fields
    • many2one
    • many2many
    • one2many (converted into lines)

    Snapshots and Diff

    1. When a request is confirmed, a snapshot is stored:
      • One snapshot for the request head
      • One snapshot per request line
    2. Later changes to the source record are detected and displayed as diffs.

    Using OmniApproval™

    Creating a Request

    1. Open any supported source record.
    2. Click Get Approved.
    3. The wizard loads mapped values.
    4. Select an approval type.
    5. Confirm to create the request.

    Attaching to an Existing Request

    (Available only when the approval type uses multi strategy.)

    1. Select multiple source records.
    2. Choose Attach to existing request.
    3. Select the target request.
    4. Confirm.

    Inline Python Hooks (Admin Only)

    These hooks allow system admins to add controlled automation.

    Action Hooks

    Executed before or after actions:

    • Confirm -> code_confirm_pre / code_confirm_post
    • Validate -> code_validate_pre / code_validate_post
    • Refuse -> code_refuse_pre / code_refuse_post
    • Cancel -> code_cancel_pre / code_cancel_post
    • Draft -> code_draft_pre / code_draft_post

    Available variables:

    • env
    • records (batched approval requests)
    • log (logging helper)

    Example:

    # Confirm related transfers when approval is validated
    pickings = records._get_res_ref_records_map().get('stock.picking')
    if pickings:
        pickings.action_confirm()
    

    Inline Onchange Hooks (UI Only)

    These run only in web client onchange events, never on backend create/write:

    • code_onchange_request
    • code_onchange_request_line

    Example:

    # Autofill quantity when product changes
    for r in records:
        if r.product_id and not r.quantity:
            r.quantity = 1
    

    Default Code Snippets

    Each hook field includes example code which demonstrates:

    • Allowed global variables
    • Safe operation patterns
    • Batch processing via records

    Admins should begin with these examples.

    Best Practices

    1. Keep mapping rules simple and focused.
    2. Do not map compute-only or non-stored fields.
    3. Use snapshot/diff to track post-approval changes.
    4. Use inline hooks for lightweight automation only.
    5. For complex logic, create a dedicated module.

    Summary

    viin_approval provides:

    • Configurable approval request structures
    • Head/line field toggles
    • Customizable labels
    • Flexible field mapping
    • Snapshot and diff audit trails
    • Safe inline Python automation

    It is the foundation of the OmniApproval™ ecosystem.

    This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file).

    You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one).

    It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software.

    The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

    About us
    About Viindoo Jobs
    ​News
    Customers
    Events
    Podcast
    Services
    Viindoo Cloud Viindoo Express Packs
    Viindoo Enterprise Custom
    Viindoo Digital Transformation Strategy Consulting
    Viindoo Custom Software DevelopmentViindoo Upgrade
    Community
    Blog Course
    Viindoo Marketplace
    Viindoo Affiliate
    Become Viindoo Partner
    Resource
    Github Runbot Brand Assets
    Terms & Policies
    Support
    Forum
    Documentation
    Helpdesk  Schedule a meet
    Contact Us
    Hotline: +84 225 730 9838
    E-mail: email-bán hàng-viindoo
           
    Address
    Headquarter: 6th floor, Taiyo building, 97 Bach Dang, Hong Bang ward, Hai Phong city, Vietnam.
    Business Registration
    Registration number: 0201994665
    Authorized by Hai Phong Department of Planning and Investment
    logo-da-khai-bao-bo-cong-thuong
    DMCA.com Protection Status
    DUNS Viindoo
    ©2019 Copyright by Viindoo Technology JSC
    English (US) Tiếng Việt
    Powered by Viindoo - Create a free website