Migrating from Odoo 19 to Odoo 20: which OCA modules are available
Of the 1,531 OCA modules confirmed in Odoo 19.0, 73 (5 %) are also confirmed in Odoo 20.0. The other 1,458 do not have a confirmed 20.0 version in the catalogue yet: if you use any of them, check its page before planning the migration. In addition, 1 modules are in Odoo 20.0 without being in 19.0.
- 1,531
- in Odoo 19
- 73
- also in Odoo 20
- 1,458
- pending in Odoo 20
- 5 %
- already migrated
See also
Odoo 19 modules not yet confirmed in Odoo 20
- Recurring - Contracts ManagementOdoo 12, 13, 14, 15, 16, 17, 18, 19contract
Create customer and supplier contracts with recurring lines that automatically generate draft invoices on a schedule, and let customers view their contracts in the portal.
- Contract Analytic TagOdoo 16, 17, 18, 19contract_analytic_tag
Lets you add analytical tags on contract lines so the invoices generated from those contracts automatically carry the same tags.
- Contract Delivery ZoneOdoo 14, 19contract_delivery_zone
Shows the delivery zone of a customer directly on contracts, so you can see and filter contracts by delivery zone without opening the customer record.
- Contract Invoice Auto ValidateOdoo 12, 17, 18, 19contract_invoice_auto_validate
Automatically validates (posts) invoices generated from contracts when the company option is enabled. A new setting in the Contract configuration lets you turn this behaviour on or off.
- Contract Invoice Start End DatesOdoo 12, 14, 16, 17, 18, 19contract_invoice_start_end_dates
When a contract generates an invoice, this module automatically fills the start and end dates on the invoice line for products that require dates, using the contract's billing period.
- Contract Line SuccessorOdoo 18, 19contract_line_successor
Manage the full life of contract lines: stop, suspend, plan a successor, cancel, un-cancel and renew them, with automatic renewal and clear lifecycle states.
- Contract Membership Delegate PartnerOdoo 12, 13, 14, 15, 16, 17, 18, 19contract_membership_delegated_partner
Lets you choose a delegated member on a contract so that every recurring invoice generated from that contract automatically carries the same delegated member.
- Contract Payment ModeOdoo 12, 13, 14, 15, 16, 17, 18, 19contract_payment_mode
Adds a Payment Mode field to contracts so that invoices generated from a contract automatically carry the same payment mode as the contract.
- Contract Refund On StopOdoo 18, 19contract_refund_on_stop
Lets users stop a contract line even after it has already been invoiced: when the stop date falls before the last invoiced date, a refund invoice is created automatically for the unused period and the line's last invoiced date is moved back to the stop date.
- Contract from SaleOdoo 12, 13, 14, 15, 16, 17, 18, 19contract_sale
Gives salespeople access to recurring contracts directly from the Sales app, without needing accounting permissions. Sales users see their own contracts, while sales managers see all contracts.
- Contract TerminationOdoo 18, 19contract_termination
Lets authorized users terminate a contract with a reason, comment and date, and reactivate it later. Terminated contracts show a warning and become read-only, and their lines can no longer be renewed or modified.
- Contract Last Date UpdateOdoo 14, 16, 17, 18, 19contract_update_last_date_invoiced
Lets authorized users manually correct the last invoiced date and the next invoice date on a contract line, for example after invoices were deleted. A refresh button on the contract line opens a small pop-up to set both dates.
- Contract Variable Qty ProratedOdoo 12, 14, 18, 19contract_variable_qty_prorated
Adds a "Prorated Quantity" formula for contract lines, so invoices can bill a quantity proportional to the days actually covered in the invoicing period.
- Variable quantity in contract recurrent invoicingOdoo 12, 13, 14, 15, 16, 17, 18, 19contract_variable_quantity
Lets you set contract lines to invoice a quantity calculated by a formula instead of a fixed number, and optionally skip lines whose computed quantity is zero.
- Claims ManagementOdoo 12, 13, 14, 15, 16, 17, 18, 19crm_claim
Track customer and vendor claims and grievances in Odoo, from the first report to resolution. Claims can be created manually or automatically from incoming emails, and analysed in a dedicated report.
- Sequential Code for ClaimsOdoo 12, 13, 14, 15, 16, 17, 18, 19crm_claim_code
Adds an automatic, unique claim number to every customer claim in Odoo. The number is generated from a sequence (e.g. CLM0001) and can be searched from the claims list.
- CRM Event CategoryOdoo 12, 13, 15, 17, 19crm_event
Link CRM leads and opportunities to an event category and record how many seats a customer would buy, then see totals of interested leads and wanted seats per event category.
- CRM IndustryOdoo 12, 13, 14, 15, 16, 17, 18, 19crm_industry
Adds Main Industry and Secondary Industries fields to leads and opportunities, so sales teams can classify and group their pipeline by industry.
- Sequential Code for Leads / OpportunitiesOdoo 12, 13, 14, 15, 16, 17, 18, 19crm_lead_code
Adds an automatic sequential reference number to every lead and opportunity in Odoo CRM, shown on forms, lists and kanban cards and searchable by that number.
- CRM Lead CurrencyOdoo 12, 14, 16, 17, 18, 19crm_lead_currency
Lets you record a lead or opportunity amount in the customer's own currency. When that currency differs from your company currency, Odoo converts it to fill in the expected revenue automatically.
- Lead to TaskOdoo 16, 17, 18, 19crm_lead_to_task
Convert CRM leads or opportunities into project tasks directly from the lead form, keeping the conversation and attachments, and optionally archiving the lead afterwards.
- VAT in leadsOdoo 12, 13, 14, 15, 16, 17, 18, 19crm_lead_vat
Adds a TIN/VAT field to CRM leads and opportunities, and keeps it in sync with the linked customer's VAT number.
- CRM locationOdoo 12, 13, 14, 15, 16, 17, 18, 19crm_location
Adds a "City completion" field on CRM leads so users can pick a zip/city location and have the zip code, city, state and country filled in automatically.
- CRM Lost Reason RequiredOdoo 17, 19crm_lost_reason_required
This module makes the lost reason mandatory when marking a CRM lead or opportunity as lost. Users must pick a reason in the 'Mark as Lost' wizard before they can confirm.
- Operating Unit in CRMOdoo 12, 13, 14, 15, 17, 18, 19crm_operating_unit
Adds an Operating Unit to leads and opportunities, taken automatically from the assigned sales team. Users only see leads and opportunities belonging to the operating units they are allowed to access.
- CRM Partner AssignOdoo 15, 16, 17, 18, 19crm_partner_assign
Assign an associate partner (and a contact person) to CRM leads and opportunities, and link partners to the partner who implements for them. Track and group leads by assigned partner.
- CRM Partner Company GroupOdoo 15, 16, 17, 18, 19crm_partner_company_group
Adds a Company Group field to CRM leads and opportunities, taken automatically from the linked customer, so you can see and group your pipeline by company group.
- CRM Phone CallsOdoo 12, 13, 14, 15, 16, 17, 18, 19crm_phonecall
Track, schedule and log phone calls linked to contacts, leads and sales teams, then analyse them with graphs and pivot reports. Calls can be converted into opportunities or turned into calendar meetings.
- Restricted Summary for Phone CallsOdoo 12, 13, 14, 15, 17, 18, 19crm_phonecall_summary_predefined
Lets you pick a phone call summary from a controlled list instead of typing free text. Only sales managers can add or edit the summaries; salespeople just choose one.
- CRM Project CreateOdoo 16, 18, 19crm_project_create
Lets salespeople create a project directly from a lead or opportunity in CRM. A button on the lead form opens a small dialog to name and describe the project, then links the new project to the lead.
- CRM Project TaskOdoo 15, 16, 17, 18, 19crm_project_task
Create project tasks directly from CRM leads or opportunities and jump back and forth between the task and its originating lead.
- CRM stage probabilityOdoo 13, 14, 15, 16, 17, 18, 19crm_stage_probability
Set a fixed success probability on each CRM stage so opportunities automatically get that percentage when they enter the stage, and mass-update existing leads.
- CRM TimesheetOdoo 12, 13, 14, 15, 16, 17, 18, 19crm_timesheet
This module lets salespeople record and track time spent on leads and opportunities directly from CRM, with start/stop timer buttons and a Timesheets tab showing total time spent.
- CRM Won Restrict Per StageOdoo 15, 16, 18, 19crm_won_restrict_per_stage
Lets you control, stage by stage, whether the "Won" button is visible on CRM opportunities, and blocks moving an opportunity into a won stage from a stage where the button is hidden.
- Currency Rate UpdateOdoo 12, 13, 14, 15, 16, 17, 18, 19currency_rate_update
Lets you set up automatic exchange-rate providers (starting with the European Central Bank) that download and store currency rates in Odoo, either on a schedule or on demand.
- Currency Rate Update: BanxicoOdoo 17, 18, 19currency_rate_update_banxico
Adds the Bank of Mexico (Banxico) as a currency rate provider in Odoo, so Mexican companies can automatically download EUR, CAD, JPY, GBP and USD exchange rates from Banxico's web service.
- Currency Rate Update National Bank of PolandOdoo 14, 16, 19currency_rate_update_nbp
Adds the National Bank of Poland (NBP) as a source for automatically downloading currency exchange rates into Odoo, so accountants can update rates without typing them manually.
- currency_rate_update_nbrb
Adds the National Bank of the Republic of Belarus (NBRB) as a source for automatic currency exchange rate downloads in Odoo, covering around 27 currencies including USD, EUR, RUB and CNY.
- Database cleanupOdoo 12, 13, 14, 15, 16, 17, 18, 19database_cleanup
Adds a 'Database cleanup' section under Settings > Technical where administrators can find and remove leftovers of uninstalled modules: obsolete modules, models, fields, columns, tables, data entries and menu entries, and create missing database indexes.
- Date Range AccountOdoo 14, 15, 16, 17, 18, 19date_range_account
Adds a Date Ranges menu inside the Invoicing app so Accounting Managers can create and manage date ranges, date range types and date range generators without leaving Accounting.
- Datev ExportOdoo 13, 14, 15, 16, 17, 18, 19datev_export
Adds DATEV consultant and client numbers to company settings, so German accounting data can be prepared for export to DATEV. The numbers are entered once per company in the Accounting settings.
- Datev Export DTVFOdoo 15, 18, 19datev_export_dtvf
Create DATEV DTVF export files (ZIP with CSV) from posted journal entries for a chosen fiscal year and periods, and optionally send them automatically by email every month.
- Account Move CSV Import DTVFOdoo 16, 17, 18, 19datev_import_csv_dtvf
Import DATEV-format CSV journal entries into Odoo as draft or posted journal entries. The import wizard lets you force a journal, date, reference and label, and it checks that accounts, journals and analytic accounts exist before creating the entries.
- dbfilter_from_headerOdoo 12, 13, 14, 15, 16, 17, 18, 19dbfilter_from_header
Allows the database used by Odoo to be selected from an HTTP header instead of the host name. Useful when several databases are served behind a proxy that cannot map each database to its own host name.
- DDMRPOdoo 13, 14, 15, 16, 17, 18, 19ddmrp
Adds Demand Driven MRP stock buffers to Odoo: users define red/yellow/green buffer zones per product and location, see net flow position and replenishment recommendations, and generate purchases or manufacturing orders from them.
- DDMRP AdjustmentOdoo 13, 14, 15, 16, 17, 18, 19ddmrp_adjustment
Lets you temporarily adjust DDMRP buffer calculations for planned events, using demand, lead time or zone factors. Adjustments are dated, applied automatically to the buffer's ADU, decoupled lead time and green/yellow/red zones, and can be exploded down to…
- DDMRP Adjustment MatrixOdoo 18, 19ddmrp_adjustment_matrix
Create DDMRP buffer adjustments in bulk for many buffers and periods at once using a grid, instead of entering each adjustment one by one.
- DDMRP ChatterOdoo 13, 14, 15, 16, 17, 18, 19ddmrp_chatter
Adds a message and activity log (chatter) to stock buffers, so users can discuss buffers and schedule activities on them. Changes to key buffer settings are now tracked and shown in the buffer's history.
- DDMRP Coverage DaysOdoo 13, 14, 15, 18, 19ddmrp_coverage_days
Adds a 'Days of Coverage' indicator to DDMRP stock buffers, showing how many days the current available stock will last based on average daily usage.
- DDMRP Buffer Calculation as jobOdoo 13, 14, 15, 16, 17, 18, 19ddmrp_cron_actions_as_job
Moves DDMRP buffer recalculations and average daily usage (ADU) computations into background queue jobs, so stock operations no longer wait for them and each buffer is only recalculated once at a time.
- DDMRP Exclude Moves ADU CalcOdoo 13, 14, 15, 16, 17, 18, 19ddmrp_exclude_moves_adu_calc
Lets you exclude specific stock locations or individual stock moves from the Average Daily Usage (ADU) calculation used by DDMRP buffers, so demand planning ignores moves you don't want counted.
- DDMRP Exclude Moves ADU Calc SalesOdoo 16, 17, 18, 19ddmrp_exclude_moves_adu_calc_sales
Lets users flag sale order lines so that the stock moves generated by those lines are left out of the ADU (average daily usage) calculation used by DDMRP replenishment.
- DDMRP HistoryOdoo 13, 14, 15, 16, 17, 18, 19ddmrp_history
Stores a time-stamped history of DDMRP buffer values and shows two charts (Planning and Execution) on the buffer form, plus a report listing all buffer history records.
- DDMRP Product ReplaceOdoo 13, 14, 15, 16, 17, 18, 19ddmrp_product_replace
A guided tool that replaces one product with another in DDMRP buffers, either by creating new buffers for the substitute product or by swapping the product inside existing buffers, while keeping past demand and stock visibility.
- DDMRP Purchase Hide On-Hand StatusOdoo 14, 18, 19ddmrp_purchase_hide_onhand_status
Removes the on-hand stock columns from the purchase order lines and replaces them with a 'Line On-Hand Status' smart button, which speeds up loading of large purchase orders.
- DDMRP Report Part Flow IndexOdoo 14, 15, 16, 17, 18, 19ddmrp_report_part_flow_index
Adds a Parts Plan Flow Index report that ranks DDMRP buffers by how often they need to be ordered, and lets you define Flow Index Groups that are automatically assigned to buffers based on that frequency.
- DDMRP WarningOdoo 13, 14, 15, 16, 17, 18, 19ddmrp_warning
Lets you define your own warning rules for DDMRP stock buffers and automatically flags buffers that break them, with low, medium or high severity. Warnings appear on the buffer form and in a dedicated report menu.
- DDMRP Warning as jobOdoo 17, 18, 19ddmrp_warning_as_job
When the scheduled DDMRP buffer warning calculation runs, it now creates one background job per stock buffer instead of computing everything in a single transaction, so warnings are refreshed in smaller, safer batches.
- Auto-refresh deliveryOdoo 12, 13, 14, 15, 16, 17, 18, 19delivery_auto_refresh
Keeps the shipping cost line on quotations and sales orders up to date automatically. Three company-level options control refreshing on save, updating after delivery, and voiding the shipping line when goods are returned before invoicing.
- Delivery Carrier AccountOdoo 16, 17, 18, 19delivery_carrier_account
Lets you store delivery carrier account credentials (account number and password) in Odoo and link the right account to each delivery method, so shipping integrations use the correct login.