OdooWiki OCA HUB

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, 19
    contract

    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, 19
    contract_analytic_tag

    Lets you add analytical tags on contract lines so the invoices generated from those contracts automatically carry the same tags.

  • contract_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_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, 19
    contract_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_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, 19
    contract_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, 19
    contract_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_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, 19
    contract_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_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, 19
    contract_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_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, 19
    contract_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    crm_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, 19
    currency_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_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_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, 19
    database_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, 19
    date_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, 19
    datev_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, 19
    datev_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, 19
    datev_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, 19
    dbfilter_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, 19
    ddmrp

    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, 19
    ddmrp_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_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, 19
    ddmrp_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, 19
    ddmrp_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, 19
    ddmrp_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, 19
    ddmrp_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_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, 19
    ddmrp_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, 19
    ddmrp_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_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, 19
    ddmrp_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, 19
    ddmrp_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, 19
    ddmrp_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, 19
    delivery_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, 19
    delivery_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.

Data imported from GitHub: “confirmed” means branch, module directory and installable manifest checked on the review date. A module that is not confirmed in a version may still exist: it may be in another repository or pending the next review. Active support and OCA certification are not assessed.