Validating some operations is a common need across different areas in a company and sometimes it also involves several people and stages in the process. With this module you will be able to define your custom validation workflows for any Odoo document.
This module does not provide a functionality by itself but an abstract model to implement a validation process based on tiers on other models (e.g. purchase orders, sales orders, budgets, expenses...).
Note: To be able to use this module in a new model you will need some development.
See purchase_tier_validation as an example of implementation.
Additionally, if your state field is a (stored) computed field, you need to set _tier_validation_state_field_is_computed to True in your model Python file, and you will want to add the dependent fields of the compute method in _get_after_validation_exceptions and _get_under_validation_exceptions.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Adds a configurable multi-step approval workflow to any Odoo document, so records must be reviewed and approved by chosen users or groups before they can move forward.
This module does not add a screen by itself; it provides the building blocks for approval workflows that other modules plug into (for example purchase or sales orders). Once a model uses it, users see a validation status on the record and buttons to request, approve or reject validation.
- Administrators define approval rules under the "Tier Validations" menu: which document model they apply to, who validates (a specific user, any user in a group, or a user taken from a field on the record), the order of the steps, and an optional filter to limit which records are concerned.
- Each rule can send emails to reviewers when the request is created, when it becomes pending, when it is accepted, rejected or restarted, and can send a reminder after a chosen number of days (a scheduled job posts the reminder).
- Reviewers can be required to approve in sequence; a step can be skipped automatically if the previous step was approved by the same person.
- A "four-eyes" option removes the person who requested validation from the reviewer pool.
- While a record is under validation, most fields are locked; only fields listed in the "Tier Validation Exception" configuration (per model, per group) can still be edited, and reviewers can be allowed to write.
- A comment wizard lets reviewers leave a comment when approving or rejecting.
- A systray counter shows each user how many reviews are waiting for them, and the record shows who still has to act and which step is next.
Depends on
Required by other modules
Menus it adds
Models and fields (6)
- res.users · extends an existing modelreview_ids (Reviews)
- tier.review · new modelname, model (Related Document Model), res_id (Related Document ID), status, comment (Comments), done_by, todo_by, sequence (Tier), can_review, company_id, has_comment, review_type, reviewer_id, requested_by, reviewer_ids (Reviewers), definition_id, reviewed_date (Validation Date), display_status, approve_sequence, reviewer_field_id, reviewer_group_id, last_reminder_date, reviewed_formated_date (Validation Formated Date), approve_sequence_bypass
- comment.wizard · new modelres_id, comment, res_model, review_ids, validate_reject
- tier.definition · new modelname (Description), model, active, model_id (Referenced Model), sequence, company_id (Company), has_comment (Comment), review_type (Validated by), reviewer_id (Reviewer), definition_type (Definition), approve_sequence (Approve by sequence), notify_on_create (Notify Reviewers on Creation), definition_domain, exclude_requester (Four-eyes Principle), notify_on_pending (Notify Reviewers on reaching Pending), reviewer_field_id (Reviewer field), reviewer_group_id (Reviewer group), notify_on_accepted (Notify Reviewers on Accepted), notify_on_rejected (Notify Reviewers on Rejected), notify_on_restarted (Notify Reviewers on Restarted), notify_reminder_delay (Send reminder message on pending reviews), approve_sequence_bypass, comment_approve_default (Approve Comment), allow_write_for_reviewer (Allow Write For Reviewers), valid_reviewer_field_ids
- tier.validation · new modelcan_review, review_ids (Validations), has_comment, next_review, hide_reviews, reviewer_ids (Reviewers), need_validation, rejected_message, validated_message, validation_status, to_validate_message
- tier.validation.exception · new modelname, model_id (Model), field_ids (Fields), group_ids (Groups), company_id (Company), model_name (Model Name), valid_model_field_ids, allowed_to_write_after_validation (Write after Validation), allowed_to_write_under_validation (Write under Validation)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/server-ux.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0To configure this module, you need to:
- Go to Settings \> Technical \> Tier Validations \> Tier Definition.
- Create as many tiers as you want for any model having tier validation functionality.
Note:
- If check Notify Reviewers on Creation, all possible reviewers will be notified by email when this definition is triggered.
- If check Notify reviewers on reaching pending if you want to send a notification when pending status is reached. This is usefull in a approve by sequence scenario to only notify reviewers when it is their turn in the sequence.
- If check Comment, reviewers can comment after click Validate or Reject.
- If check Approve by sequence, reviewers is forced to review by specified sequence.
To configure Tier Validation Exceptions, you need to:
- Go to Settings > Technical > Tier Validations > Tier Validation Exceptions.
- Create as many tiers validation exceptions as you want for any model having tier validation functionality.
- Add desired fields to be checked in Fields.
- Add desired groups that can use this Exception in Groups.
- You must check Write under Validation, Write after Validation or both.
Note:
- If you don't create any exception, the Validated record will be readonly and cannot be modified.
- If check Write under Validation, records will be able to be modified only in the defined fields when the Validation process is ongoing.
- If check Write after Validation, records will be able to be modified only in the defined fields when the Validation process is finished.
- If check Write after Validation and Write under Validation, records will be able to be modified defined fields always.
No verified information in OCA: Installation, Usage.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.