| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 408 |
| Technical Name |
mjb_field_copy_rule |
| License | OPL-1 |
| Website | https://www.majorbird.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 408 |
| Technical Name |
mjb_field_copy_rule |
| License | OPL-1 |
| Website | https://www.majorbird.com |
Field Copy Rule Engine
Define rules that automatically copy field values from one record to another — on create, write, or both. Works on the same model or across related models via dot-path. Zero code, zero maintenance.
The Problem
Odoo fields do not sync automatically. When a sales rep creates an order for a customer, payment terms, fiscal position, and internal notes all have to be re-entered manually. The same story repeats on purchase orders, manufacturing orders, and anywhere partner data should flow downstream.
Small repetitive errors accumulate: wrong payment terms on invoices, missing fiscal positions causing tax mismatches, blank notes fields that leave teams without context. The cost is invisible until month-end reconciliation reveals the damage.
Developers typically solve this with onchange methods that silently break on every major upgrade. This engine makes the same capability a configuration — no Python, no XML, no deployments, no regression risk.
What It Does
| Feature | Description |
|---|---|
| Any model, any field | Source and target fields configurable on any Odoo model |
| Same-model copy | Copy from one field to another on the same record |
| Cross-model copy | Copy to a related record via dot-path (e.g. partner_id.payment_term_id) |
| Trigger: on create | Fires when a new record is created |
| Trigger: on write | Fires when a specific field changes |
| Trigger: on create or write | Fires on both events |
| Domain filter | Restrict which records trigger the rule |
| Enable/disable toggle | Pause or activate rules with one click |
| Chatter tracking | All rule changes logged for audit |
Key Features
Any Field, Any Model
Configure source and target on any Odoo model. No hardcoded model support — the engine is fully generic.
Cross-Model via Dot-Path
Set a target path (e.g. partner_id) to write the copied value on a related record instead of the current one.
Three Trigger Modes
On create, on write, or both. Match the rule to exactly when the copy should happen — no unnecessary triggers.
Domain Filtering
Restrict rules to specific record subsets using Odoo domain syntax. Target only the records that need copying.
Pre-built Satellite Packs
Install ready-made copy rules for common Odoo workflows — partner payment terms, fiscal positions, notes — as $5 add-ons.
Native base.automation
Backed by Odoo's own automation engine. Upgrade-safe, no custom schedulers, no background jobs to maintain.
Configuration
-
1Go to Settings > Technical > Field Copy Rules
-
2Click New and give the rule a descriptive name
-
3Select the source model and the field to copy FROM
-
4Select the target field (same model) or set a dot-path for cross-model copy
-
5Choose the trigger: On Create, On Write, or On Create or Write
-
6Optionally set a domain filter to restrict which records trigger the rule
-
7Click Enable Rule — copies will fire automatically from now on
Scope & Limitations
This module does NOT:
- Copy Many2many or One2many field contents — only scalar fields are supported: Char, Integer, Float, Date, Many2one
- Support multi-hop dot-paths — one level of relation only (e.g.
partner_id— notpartner_id.country_id) - Backfill existing records — only fires on future create/write events
- Support conditional copy expressions — the full value is always copied as-is
First Version
Version 1.0 — Core copy logic is complete and 13/13 test cases passed on Odoo 19.0. Pre-built satellite packs are available for the most common SO/PO workflows at $5 each.
We welcome feedback from early adopters. If you need support for additional field types (e.g. Selection, Binary) or multi-hop dot-paths, reach out via the Odoo support system and we will prioritise those in version 1.1.
by Majorbird — Odoo Silver Partner
About Majorbird
Odoo Silver Partner — Manufacturing, Inventory & Accounting Automation
Offices in Vietnam, China, Mexico, and the Middle East.
www.majorbird.comOdoo Proprietary License v1.0 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.
Please log in to comment on this module