Odoo 19 vs Odoo 20: A Feature-by-Feature Comparison

Odoo 19 arrived in September 2025; Odoo 20 followed on 24 September 2026, unveiled at Odoo Experience in Brussels. Read side by side, the two versions tell a clear story. Odoo 19 consolidated the platform and took the first steps into embedded AI. Odoo 20 makes AI the operating model — agents that write to your database, not just advise you — and pays for that ambition with structural cleanups: merged apps, removed mechanisms, and tighter accounting rules. This comparison works feature by feature, using Odoo's official release notes for version 20 and the documented state of version 19, so you can see exactly what an upgrade changes — and what it removes.

The comparison table

AreaOdoo 19Odoo 20
AI agentsAI assistance embedded in apps; agents configured around “topics”Agents create and update records (including from an uploaded PDF), answer questions about files, generate images, take voice instructions; “topics” renamed to “skills”
Agents in automationNot availableAgents can be summoned by automated actions and scheduled actions; runs reviewable in the automation chat
AI costAI features tied to the subscriptionAll AI features require IAP credits bought separately; no plan includes credits
External AI connectionCustom integrations onlyNative MCP (Model Context Protocol) connector, working within the user's access rights
AI assistants—AI accounting assistant (insights over your accounting data) and AI website assistant (pages, snippets, images, forms, menus)
Offline workConnection required for record workOffline mode: create, edit, archive, delete records and re-run earlier searches; syncs on reconnect
Mobile appStandard mobile interfaceRedesigned: swipe-down command palette, bottom-sheet date picker, touch-friendly forms, share files from the phone into Odoo
Access rightsAccess control lists plus separate record rulesSimplified: record rules removed; a domain is defined directly on each access right
Field ServiceStandalone Field Service appApp discontinued; live map, route planning, travel fees, and worksheets integrated into Planning
Bank entriesManual journal entries on bank accounts allowedBank consistency rule: entries affecting bank accounts must originate from bank transactions
Vendor bill entryManual encoding, with earlier prediction helpersBill line prediction suggests product, account, tax, analytic distribution, and vehicle from history and labels
Paying billsPayments registered against external bank flowsPay bills inside Odoo, singly or in batches with one signature, via PISP
Chart of accounts structureAccount groupsParent accounts replace account groups; account codes optional
Payment statuses“In Process” and “Paid”Renamed: “In Process” becomes “Paid”; “Paid” becomes “Reconciled”
Multi-currency reportingTranslation differences handled inside reportsAuditable Cumulative Translation Adjustment (CTA) line on balance sheet, trial balance, and general ledger
Manufacturing flowOperations wait for the previous operation's full quantityContinuous production: record produced quantities on work orders; later operations start once some quantity is ready (BoM setting); manufacturing orders can be split
Reordering rulesMinimum and maximum levels set manuallyMinimum and maximum levels suggested from demand history, desired days of coverage, and order frequency
PayrollWork entries drive the payroll flowNew payroll dashboard; work entries removed and merged with time off types
ExpensesStandalone Employee Expenses menuMenu removed; approved expenses generate draft bills for accounting
Point of SaleCombos assembled manually; hardware via conventional setupPOS recommends converting order lines into combos; browser-based hardware discovery
Interface iconsFont Awesome iconsMaterial Symbols icons; softer tag and status colours
Push notificationsHandled by FirebaseHandled by Odoo's in-house push service
External APIXML-RPC and JSON-RPC availableXML-RPC deprecated: db service removed in 20, common/object scheduled for removal in Odoo 22; plan migration to the JSON-2 API
eCommerce optionsMondial Relay pickup module and SOFORT payments availableBoth removed; Mondial Relay reachable via Sendcloud
Industry packagesExisting package library13 new packages, including agri-equipment rental, catering, electronic refurbishment, interior design, pet groomer, and vineyard
LicensingStandard and Custom plansStandard price unchanged; Custom rises about 20% from 2027; new Light User licence (from EUR 7.90/user/month in Europe)
Supported versions17, 18, 1918, 19, 20 — Odoo 17 standard support ended September 2026

The biggest delta: AI goes from feature to operator

Every other row in the table is an evolution; the AI rows are a change of kind. In Odoo 19, AI helped you write, summarise, and predict inside individual apps, and agent behaviour was organised into “topics”. In Odoo 20, an agent is closer to a junior colleague with a login: it creates records from an uploaded PDF of instructions, updates records on request, answers questions about a file you are previewing, generates images, and accepts dictated instructions. It can be triggered by the automation engine — an automated action or a scheduled action can summon it — and its automated runs leave a reviewable trail in the automation chat. Guardrails exist: agents show live progress, and when one hits its tool-call limit it asks a human before continuing. Conversations are kept for up to 30 days, and Odoo picks the model per task once you choose a provider.

The commercial model changes with the capability. In Odoo 20, every AI feature consumes IAP credits, purchased separately; no plan bundles them. A 19-era assumption that AI is simply “in the subscription” will produce a surprise invoice culture if it survives into a 20 budget. Cost now scales with how much work you hand the agents, so the budgeting unit is the workflow, not the user.

Accounting: same app, stricter rules

Accountants feel the upgrade as discipline. The bank consistency rule ends manual journal entries on bank accounts — in 19 a bookkeeper could post one to fix a difference; in 20 the entry must originate from a bank transaction, and reconciliation gains a summary report to prove the state of each period. Bill line prediction attacks the opposite problem, keystrokes: product, account, tax, analytic distribution, and vehicle are pre-filled from history and labels, while anything you typed manually on existing lines is left alone. Parent accounts replace account groups, account codes become optional, a CTA line makes currency translation differences auditable, and the renamed payment statuses (“Paid”, then “Reconciled”) describe what actually happened to the money. Duplicate invoice detection, present from 19.0 with red (likely) and yellow (possible) warnings, continues as the safety net. And expenses stop living in their own menu: approved expenses become draft bills, reviewed in the same flow as vendor bills.

Structure: what merged, what vanished

Odoo 20 deletes more than a typical release. Field Service loses its app entirely — its live technician map, routing, travel fees, and worksheets now live in Planning, so a 19 database with heavy Field Service use needs a functional remap, not just a version bump. Payroll loses work entries, the mechanism that fed payslips in 19; version 20 merges work entry types with time off types and runs payroll from a new dashboard. Security loses record rules as a separate concept: the domain that used to live on a rule now sits on the access right itself, which is simpler to read but means every custom rule from 19 must be re-expressed. On the technical side, XML-RPC is deprecated with its db service removed, push notifications move from Firebase to Odoo's own service, and the frontend moves to OWL 3 — integration and custom-module testing belong in any serious 19-to-20 plan.

Operations and front office

For warehouses and factories, the practical wins are concrete. Reordering rules in 19 depended on a planner typing sensible minimum and maximum quantities; in 20 those levels are suggested from demand history, target days of coverage, and order frequency. Manufacturing in 19 waited for an operation to finish its full quantity before the next began; continuous production in 20 lets later operations start as soon as some quantity is ready, and manufacturing orders can be split. Offline mode is the release's quiet enabler for both: record work continues without a connection and syncs later, and the redesigned mobile app — command palette, bottom-sheet date picker, file sharing from the phone — makes that workable on the devices people actually carry. At the till, POS in 20 suggests converting order lines into combos and discovers hardware through the browser, trimming two small frictions that 19 left to staff.

Money and support: the two clocks

Two timelines should drive the upgrade decision. The first is price: the Standard plan is unchanged, but the Custom plan rises by about 20% from 2027 — the first Odoo price rise in four years — while the new Light User licence (from EUR 7.90 per user per month in Europe) cuts the cost of limited-access users such as HR self-service or Barcode-only staff. Regional prices vary; model your renewal from the pricing page, not from converted figures. The second clock is support: with 20 released, the supported line is 18, 19, and 20, and Odoo 17's standard support ended in September 2026. If you are on 19, you have time — but every structural change above (Field Service, record rules, XML-RPC, work entries) argues for testing early on a copy of your database rather than discovering them in production.

Further reading

Leave a Comment