Skip to content
ERP Builders
ERP Migration

Odoo 20 Upgrade Checklist: Breaking Changes to Check

An Odoo 20 upgrade checklist covering breaking changes: record rules, tracking values, account groups, Field Service, payroll work entries, icons and the RPC API.

By ERP Builders Architecture Group3 min read

Most Odoo 20 coverage talks about new features. This post is about the other side: what changes underneath and can break an existing database. Work through it before scheduling an upgrade. For the general method, see our Odoo upgrade guide.

Technical changes (developers)

Record rules are removed

Access rights and record rules merge into ir.access, with optional domains on access rights. Every custom module with ir.model.access.csv or ir.rule records needs converting. → Odoo 20 access rights

  • List every module with security files
  • Convert to ir.access
  • Write access tests with non-admin users

Tracking values are no longer stored

Chatter tracking messages are generated on the fly. A dedicated module can be installed if you need stored values.

  • Find custom code, reports or exports that read stored tracking values
  • Decide whether you need the stored-values module

Icons: Font Awesome to Material Symbols

  • Search custom views, widgets and website themes for fa- icon classes

Push notifications

Firebase is replaced by Odoo's own tooling.

  • Retest mobile notifications if you rely on them

External API

The XML-RPC and JSON-RPC endpoints are deprecated. The db service is removed in Odoo 20. The common and object services are scheduled for removal in Odoo 22. The JSON-2 API is the replacement.

  • List every integration that calls Odoo (eCommerce, BI, scripts, middleware)
  • Remove any use of the db service
  • Plan migration to JSON-2 for everything else

Functional changes (key users)

Accounting

  • Account groups replaced by parent accounts. Review reports that used groups.
  • Payment statuses renamed: "In Process" → "Paid", "Paid" → "Reconciled". Update filters and train users.
  • Bank-account entries must come from bank transactions. Check manual journal habits.
  • Employee Expenses menu removed. Approved expenses create draft bills.
  • Asset models replaced by depreciation models.

→ Odoo 20 accounting changes

Inventory and manufacturing

  • Return wizard removed in favour of simplified returns
  • Flexible consumption setting removed (now default)
  • "Produce" and "Produce All" replaced by one Produce button

→ Inventory and manufacturing changes

Field Service and Payroll

  • Field Service app discontinued, features merged into Planning
  • Payroll work entries removed, along with the Planning–Payroll integration
  • Work entry types and time off types merged

→ Field Service in Planning

Other

  • Project dashboard profitability report removed
  • CRM lead data moves from Clearbit to Dun & Bradstreet
  • AI features require IAP credits. Budget and control usage.
  • Light users are restricted to the Barcode module. Check licensing assumptions.
  • Localisation changes for your countries. Read your country's section of the release notes.

Third-party and OCA modules

  • List every non-standard module
  • Check each has a 20.0 version, or plan to replace or port it
  • Uninstall anything nobody uses

OCA modules often take a few months to be ported. If you depend on many, plan the upgrade for later in the version's life.

Test plan

  1. Technical upgrade on a copy of production
  2. Functional testing of every key process by key users
  3. Month-end close on the test database, compared with production
  4. Integration testing end to end
  5. Timed rehearsal of the full cutover

When to upgrade

  • New implementation: start on Odoo 20
  • Lightly customised, Enterprise: plan within the next few months, once your apps are tested
  • Heavily customised or OCA-dependent: wait for module ports, then plan properly

Odoo supports each major version for three years, so take the time to do it right. Our Odoo migration service runs Odoo 20 upgrades for Community and Enterprise.

Frequently asked questions

Can I upgrade from Odoo 16 or 17 straight to Odoo 20?

With Odoo's Enterprise upgrade service, databases can usually jump several versions. Custom modules still need porting to 20. On Community with OpenUpgrade, upgrades typically go one version at a time.

Do our integrations break on Odoo 20?

Integrations using the external RPC db service will. The common and object services still work but are deprecated, with removal planned for Odoo 22. Move to the JSON-2 API.

ERP Builders Architecture Group

The engineers responsible for integration design, data migration tooling and performance work across ERP Builders projects.

Related articles

ERP Development3 min read

Odoo 20 Access Rights: Migrating to ir.access

Odoo 20 removes record rules and merges them into access rights with domains. What changed, how to migrate ir.model.access.csv and ir.rule, and what to test.

Odoo3 min read

Odoo 20: What's New and What Actually Matters

Odoo 20 explained without the hype: AI agents, accounting and inventory changes, Field Service moving into Planning, and the changes that affect upgrades.

Next step

Turn the plan into a working system.

Book a consultation with an ERP consultant. No sales script — just an honest look at your situation.