What Changed in Odoo 17 That Enterprise Teams Should Care About
Odoo releases a changelog every year and every year it runs to several hundred bullet points. Most of them are irrelevant to teams running Odoo in production at scale. Here is the short version: what changed in Odoo 17 that affects how you operate, what the AI features are worth, and one strong opinion about multi-company setups. One disclosure first. We implement Business Central, not Odoo, so this is an outside reading, and you should test each point on your own instance.
The spreadsheet module: the upgrade nobody talks about
The change in Odoo 17 that matters most to many companies is not a headline feature. It is the Spreadsheet module, a collaborative spreadsheet inside Odoo with direct access to your ERP data.
Before Odoo 17, the reporting workflow at most mid-market companies looked like this: export data from Odoo, import it into Excel, build the report, email it around, someone updates the Excel, everyone loses track of which version is current. It is a workflow so common that people have stopped noticing how broken it is.
The Odoo 17 Spreadsheet module lets you pull live ERP data directly into a spreadsheet without exporting anything. A pivot table connected to your sales orders that updates when you hit refresh. A cashflow projection that reads directly from your account move lines. Shared, with permissions, inside Odoo.
For many companies this can retire a good share of the custom reporting modules built on Odoo 15 or 16. Those modules weren't bad. The Spreadsheet module is simply good enough for most of what they did, without the upgrade risk of maintaining custom code.
The eCommerce and website performance rewrite
Odoo's website and eCommerce modules were rewritten in Odoo 17 with a new rendering engine. The promise is faster page loads, particularly on product listing pages. Measure Time to First Byte on your own site before and after.
The catch: if you have custom website themes built on Odoo 16, they will not migrate cleanly. The new rendering engine uses a different component system. A site with a couple of dozen custom blocks can take weeks to rebuild. The result may be faster and cleaner, but the migration cost is real.
Our take
The AI copilot: where it works and where it does not
Odoo 17 ships AI features across several modules. The marketing presents it as a broadly capable copilot. The reality is more specific than that, and knowing exactly where it is useful saves you from disappointment everywhere else.
Where it actually helps:
AI-generated email drafts for follow-ups and proposals are useful. Not perfect, but they give a salesperson a reasonable first draft to edit.
AI-assisted job description generation and CV summarization work well. This is a narrow task that plays to LLM strengths: structured output from unstructured text.
Where it is not useful: In Accounting, Manufacturing, Purchase, Inventory and the other operational modules, treat the AI features as absent or cosmetic until you have tested them on your own data. Anything an AI assistant suggests in accounting, GL coding for example, should be reviewed by a person before it posts.
Multi-company improvements: branches arrive
Here is the strong opinion: Odoo 17 is the first version that looks ready for multi-entity operations in MENA without custom modules. Earlier versions had multi-company support, but with friction. Switching between companies was slow, intercompany transactions needed manual journal entries, and consolidated reporting usually meant custom work.
Odoo 17 improved three things that matter for multi-entity setups:
- 1.Intercompany rules now handle automatic journal generation for intercompany transactions. When Company A sells to Company B, both the sale and the purchase are recorded automatically. This was possible before but required configuration that broke regularly.
- 2.Consolidated financial reporting, a single view of P&L across all entities in a group, is usable in the Accounting module without customization.
- 3.Branch accounting, a sub-entity structure below the company level for organizations with several locations inside one legal entity, was added in Odoo 17. This addresses a specific gap that caused problems for UAE free zone companies with multiple registered branches.
For a group with four entities across Saudi Arabia, the UAE and Egypt, a common holding structure in the region, Odoo 17 should handle the setup with far less custom work than Odoo 15 or 16 needed.
What changed in the codebase that affects custom module owners
Odoo 17 continues the move of the web client to the OWL component framework. If you have custom JavaScript (views, widgets, anything that touches the frontend), expect to rewrite some of it instead of porting it. This is a larger effort than it sounds. OWL 2 is not backward compatible with OWL 1 in any meaningful way.
On the backend: the Python code migration from Odoo 16 to 17 is relatively clean, and most server-side modules port without major issues. The frontend migration is where most of the upgrade cost sits for instances with significant customization.
Before upgrading a heavily customized Odoo 16 instance to Odoo 17, run a dependency audit across all custom modules. Any module that imports from the old OWL 1 APIs needs a rewrite budget, not a migration budget. The two are different scopes of work.
Should you upgrade?
For teams on Odoo 15 or earlier: upgrade. The improvements in performance, multi-company, and the Spreadsheet module justify the work. For teams on Odoo 16 with minimal customization: upgrade. The performance improvements alone are worth it. For teams on Odoo 16 with significant custom website or frontend work: budget carefully and audit your custom modules before committing.
The one thing we would not do: upgrade to Odoo 17 primarily because of the AI features. They are a useful addition. The value of the upgrade is in the platform improvements.
Related reading