This module extends the functionality of records. It allows to create changesets that must be validated when a record is modified instead of direct modifications. Rules allow to configure which field must be validated.
What is a changeset
A changeset is a list of changes made on a record.
Some of the changes may be 'Pending', some 'Accepted' or 'Rejected' according to the changeset rules. The 'Pending' changes require an interaction by the approver user: only when that change is approved, its value is written on the record.
auto_awesome What this module does
AI-generated from the code · Odoo 16.0Lets administrators decide which fields of which records must be approved before the change is really saved, instead of being written directly. Pending changes appear in a 'Changes' button on the record form and can be applied or rejected by authorised users.
This module adds a validation layer on top of normal record editing. For each field you choose, you can set a rule that says what happens when somebody changes it: the change can be applied automatically, kept pending until an approver accepts it, or refused outright.
Rules are configured in the 'Field Rules' screen (menu Record Changesets, under Administration). For each rule you pick the model and field, the action (Auto, Validate, Never), optionally a source model, a company, an expression that limits the rule to certain records, the validator groups allowed to approve, and whether the person who made the change may approve it themselves.
When a tracked field is modified, Odoo creates a changeset (a group of changes) and a change line per field, showing the previous value and the new value. Pending changes are not written on the record until an approver clicks Apply; Reject discards them. Approvers are users in the allowed groups, and a change cannot be applied if an earlier changeset for the same record is still pending.
On the form of every tracked model, a 'Changes' button with a counter appears in the button box, opening the list of changes. The menu Record Changesets also gives direct access to 'Changesets' and 'Changes' lists, with filters for Pending and Done.
Depends on
Menus it adds
Models and fields (4)
- base · extends an existing modelchangeset_ids (Changesets), count_changesets, changeset_change_ids (Changeset Changes), user_can_see_changeset, count_pending_changesets, count_pending_changeset_changes
- record.changeset · new modeldate (Modified on), note, model, state, res_id (Record ID), source (Source of the change), record_id, change_ids (Changes), company_id, modified_by_id
- changeset.field.rule · new modelaction, active, field_id, model_id, company_id, expression, source_model_id (Source Model), validator_group_ids (Validator Groups), prevent_self_validation
- record.changeset.change · new modeldate, model, state, rule_id, field_id, record_id, field_name, field_type, changeset_id, modified_by_id, new_value_char, new_value_date, new_value_text, old_value_char, old_value_date, old_value_text, verified_by_id, new_value_float, old_value_float, verified_on_date (Verified on), new_value_boolean, new_value_display (New), new_value_integer, old_value_boolean, old_value_integer, origin_value_char, origin_value_date, origin_value_text, new_value_datetime, new_value_monetary
Text generated by AI (DeepSeek) from reading the Odoo 16.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: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 13.0
Confirmed on 2026-11-03 in branch 13.0 of OCA/server-tools.
terminal Installation and usage
OCA documentation · Odoo 16.0Configuration
Source · Odoo 16.0Access Rights
The changesets rules must be edited by users with the group `Changesets
Configuration. The changesets can be applied or canceled only by users with the group Changesets Validations`
Changesets Rules
The changesets rules can be configured in `Configuration > Record Changesets > Fields Rules`.
- Configuration of rules
For each record field, an action can be defined:
- Auto: the changes made on this field are always applied
- Validate: the changes made on this field must be manually confirmed by a 'Changesets User' user
- Never: the changes made on this field are always refused
In any case, all the changes made by the users are always applied directly on the users, but a 'validated' changeset is created for the history.
The supported fields are:
- Char
- Text
- Date
- Datetime
- Integer
- Float
- Monetary
- Boolean
- Many2one
Rules can be global (no source model) or configured by source model. Rules by source model have the priority. If a field is not configured for the source model, it will use the global rule (if existing).
If a field has no rule, it is written to the record without changeset.
Usage
Source · Odoo 16.0Changeset rules
The first step is to configure the changeset rules. Once that done, writes on records will be created as changesets.
Handling changesets
The list of all the changesets is in `Configuration > Record Changesets > Changesets`.
By default, only the pending changesets (waiting for validation) are shown. Remove the "Pending" filter to show all the changesets.
- Changeset waiting for validation
The changes view shows the name of the record's field, the Origin value and the New value alongside the state of the change. By clicking on the change in some cases a more detailed view is displayed, for instance, links for relations can be clicked on.
A button on a changeset allows to apply or reject all the changes at once.
Handling single changes
Accessing the changesets gives the full overview of all the changes made. However, it is more convenient to access the single changes directly from the records. When there is a pending change for a field you get a badge with the number of pending changes next to it like this:
- Badge with the number of pending changes
When you click on it:
- Clicking the badge: red button to reject, green one to apply
Click the red button to reject the change, click the green one to apply it.
Custom source rules in your addon
Addons wanting to create changeset with their own rules should pass the following keys in the context when they write on the record:
__changeset_rules_source_model: name of the model which asks for the change__changeset_rules_source_id: id of the record which asks for the change
Also, they should extend the selection in ChangesetFieldRule._domain_source_models to add their model (the same that is passed in __changeset_rules_source_model).
The source is used for the application of the rules, allowing to have a different rule for a different source. It is also stored on the changeset for information.
Notes on security
Note that by default, changeset users see all changes on all configured rules. This circumvents read restrictions on the original records, so if you have restrictions on models with changeset rules, changeset users will still see all changes of all records, and applying a change on an inaccessible record will fail.
No verified information in OCA: Installation.
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.