Trusted Clients
Where Odoo 16 Leaves You in 2026
Odoo 16 was released in October 2022 and its standard support ended in 2025. It gets no bug fixes or security patches, and most current third-party apps and connectors are built for recent versions only.
Odoo 20, released in September 2026, is supported until September 2029 (planned). Four releases sit between the two, bringing changes such as attrs and states leaving the views, record rules giving way to access domains, and tree views becoming list views.
Four Releases Between Odoo 16 and Odoo 20
Your data passes through each of these releases on the way to Odoo 20. Here is what each one changes for custom modules, in order. We check every item against your database during the audit.
Get My Free Upgrade Audit-
November 2023
Odoo 17: attrs and states Leave the Views
- Every conditional field rule written with
attrsorstatesbecomes a Python expression. name_getis replaced by_compute_display_name, which affects how custom records show their names.- Install and uninstall hooks now receive
env, and settings screens use newapp,block, andsettingtags.
- Every conditional field rule written with
-
October 2024
Odoo 18: Tree Views Become List Views
- Tree views are renamed list views, including the
tree_view_refcontext key. user_has_groups,check_access_rights, andcheck_access_rulegive way tohas_groupandcheck_access.- Chatter and kanban markup change, with a single chatter tag and card templates for kanban views.
- Tree views are renamed list views, including the
-
September 2025
Odoo 19: New Constraints and Security Groups
- SQL constraints move from
_sql_constraintstomodels.Constraintandmodels.Indexattributes. groups_idbecomesgroup_ids, and group categories become privileges.read_groupis replaced by_read_grouporformatted_read_group, and JSON routes usetype="jsonrpc".
- SQL constraints move from
-
September 2026
Odoo 20: Record Rules Give Way to Access Domains
- Record rules are removed, and access is set with a domain on each access right, so custom security must be rebuilt.
- The Field Service app is discontinued and its features move into Planning.
- Stored mail tracking values are removed and tracking messages are built on the fly, so custom reports on tracking data need rework.
The OCA migration guides for Odoo 17 to 19, the Odoo 20 release notes, and Odoo's supported versions page.
How We Move Odoo 16 to Odoo 20
Five steps, each with a clear output, so you always know where the project stands.
Get My Free Upgrade AuditAudit
We list your apps, custom modules, third-party apps, and integrations on Odoo 16, then mark each one to upgrade, rebuild, or remove. You get a written scope and a fixed quote.
Test Upgrade
A copy of your database is upgraded through Odoo 17 to 20 while production keeps running. Every error is logged and fixed.
Port Custom Modules
Each module is rewritten for the Odoo 20 framework, including attrs and states leaving the views, record rules giving way to access domains, and tree views becoming list views.
Reconcile and Test
We compare trial balance, receivables and payables, stock valuation, and open documents with Odoo 16. Your key users then test their daily work on staging.
Rehearse and Go Live
A timed dry run sets the cutover window. Go-live happens off-hours, with a rollback plan and our team on hand afterwards.
Upgrade Odoo 16, or Rebuild on Odoo 20?
With four releases to cross, it is worth asking whether every custom module should come along. Either way you get one go-live, and the audit tells you which route costs less for each module.
Upgrading usually wins when
- Most of your work runs on standard Odoo apps.
- Custom modules are few and well documented.
- Your historical data is clean and you need all of it in the new system.
- Integrations use Odoo's standard APIs.
Rebuilding selected apps usually wins when
- Custom modules rewrite core flows such as invoicing, stock, or security.
- Standard Odoo 20 now covers much of what your custom code does.
- Data quality is poor, so a clean start with master data and open balances is easier.
- The original developers are gone and the code is undocumented.
On Odoo Enterprise
Odoo's upgrade service converts the standard apps and data of your database. Modules built in-house or by third parties are not covered unless they are under a maintenance of customizations subscription, so they still need porting and testing.
On Odoo Community
The OCA's open-source OpenUpgrade project migrates one version at a time, so Odoo 16 to 20 means four consecutive runs. Coverage differs by app and release, so we check each one before planning.
Other Paths to Odoo 20
On a different version? Each path shows its own route, hop count, and complexity.
Odoo 19 to Odoo 20
1 hop- 19
- 20
- Complexity: Low
- Odoo 19: still supported
Odoo 18 to Odoo 20
2 hops- 18
- 19
- 20
- Complexity: Medium
- Odoo 18: still supported
Odoo 17 to Odoo 20
3 hops- 17
- 18
- 19
- 20
- Complexity: High
- Odoo 17: standard support ended
Odoo 15 to Odoo 20
5 hops- 15
- 16
- 17
- 18
- 19
- 20
- Complexity: Very high
- Odoo 15: standard support ended
Odoo 14 to Odoo 20
6 hops- 14
- 15
- 16
- 17
- 18
- 19
- 20
- Complexity: Very high
- Odoo 14: standard support ended
Odoo 13 to Odoo 20
7 hops- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- Complexity: Very high
- Odoo 13: standard support ended
Odoo 12 to Odoo 20
8 hops- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- Complexity: Very high
- Odoo 12: standard support ended
Odoo Projects We Have Delivered
How our team handled Odoo projects where a failed change would have stopped daily operations.
View All Case StudiesOdoo + WhatsApp Automation with n8n Streamlined Furniture Retail Operations in Mauritius
See how Techvoot integrated Odoo ERP and n8n to automate delivery scheduling, driver assignment, proof of delivery and customer support for a Mauritius furniture retailer.
How Odoo ERP Transformed Operations for our UAE-Based Client's Oxy-Hydrogen Equipment Company
A UAE-based oxy-hydrogen equipment company partnered with Techvoot Solutions to implement a customized Odoo ERP platform that unified manufacturing, inventory, procurement, sales, and finance operations. The solution improved operational visibility, streamlined workflows, and enabled faster business decision-making through centralized ERP management.
Manufacturing Efficiency Boosted by 35% with Odoo ERP
A manufacturing company achieved 35% improved operational efficiency with Techvoot’s Odoo ERP implementation, enabling integrated production, inventory, finance, HR, and logistics management on a single platform.
Odoo 16 to Odoo 20 Upgrade Questions
Still unsure about your database?
Can I upgrade Odoo 16 directly to Odoo 20?
Yes, in one project with one go-live. The database still passes through every release in between, Odoo 17, 18, and 19, and each custom module has to absorb the framework changes from all four releases. We run the whole route on a copy first, so production only moves once.
Is Odoo 16 still supported?
No. Odoo 16 was released in October 2022 and its standard support ended in 2025, so it gets no bug fixes or security updates. Odoo 20 is supported until September 2029 (planned).
How long does an Odoo 16 to Odoo 20 upgrade take?
It depends mostly on how many custom modules and integrations you have, and how much data you hold. With four releases to cross, custom code is the biggest part of the work. The free audit gives you a written timeline before any work starts.
What breaks most often when upgrading from Odoo 16 to Odoo 20?
Custom code, not standard data. The biggest changes on this path are attrs and states leaving the views in Odoo 17, record rules giving way to access domains in Odoo 20, tree views becoming list views in Odoo 18, and new constraints and security groups in Odoo 19.
Should we upgrade Odoo 16 or reimplement on Odoo 20?
Upgrading usually wins when you run mostly standard apps with a few well-documented modules. Rebuilding selected apps usually wins when custom modules rewrite core flows, when Odoo 20 now covers what the custom code did, or when data quality is poor. The audit scores each module and recommends upgrade, rebuild, or remove.
Will we keep our historical data?
Yes. An upgrade keeps your full history, including posted invoices, stock moves, and old documents. If some apps are rebuilt instead, we migrate master data and open balances, and the old database stays available read-only for reference.
Can we upgrade Odoo 16 Community to Odoo 20?
Yes. On Community, the open-source OpenUpgrade project migrates one version at a time, so this path means four consecutive runs. Coverage differs by app and release, so we check each one before planning, and port or rebuild where scripts are missing.