OdooWiki OCA HUB

Migrating from Odoo 16 to Odoo 17: which OCA modules are available

Of the 3,166 OCA modules confirmed in Odoo 16.0, 1,542 (49 %) are also confirmed in Odoo 17.0. The other 1,624 do not have a confirmed 17.0 version in the catalogue yet: if you use any of them, check its page before planning the migration. In addition, 452 modules are in Odoo 17.0 without being in 16.0.

3,166
in Odoo 16
1,542
also in Odoo 17
1,624
pending in Odoo 17
49 %
already migrated

See also

Odoo 16 modules not yet confirmed in Odoo 17

  • hr_department_analytic

    Adds an Analytic Account field to HR departments, so each department can be linked to an analytic account for cost and revenue tracking.

  • hr_dms_field

    Adds a Documents tab to employee forms so HR can store and manage files (DMS) directly on each employee record, and lets employees see their own documents from the Employee Directory.

  • Employee Birth NameOdoo 12, 14, 15, 16
    hr_employee_birth_name

    Adds a "Birth Name" field to employee records in Odoo, visible to HR users on the employee form next to the marital status field.

  • HR Employee Birthday MailOdoo 14, 15, 16, 18
    hr_employee_birthday_mail

    Automatically sends birthday emails to employees on their birthday and notifies coworkers who opted in, based on a daily scheduled check.

  • hr_employee_cost_history

    Lets HR users change an employee's hourly timesheet cost from a chosen date onwards, keeps a history of every cost change, and recalculates existing timesheets from that date.

  • hr_employee_digitized_signature

    Adds a signature field to employee records so you can capture and store an employee's handwritten signature directly in Odoo.

  • hr_employee_firstname_partner_firstname

    This glue module makes the first name and last name fields work consistently between contacts and HR employees. When an employee record is created or updated from a user, the first and last names set on the user are copied onto the employee.

  • hr_employee_group_overview_readonly

    Adds a read-only HR overview access level so selected employees can see employee, contract, leave, attendance, fleet, skills and gamification information without being able to change it.

  • hr_employee_lastnames

    Adds separate First Name, Last Name and Second Last Name fields to employee records, automatically combining them into the full name and keeping contact details in sync.

  • Employee Phone ExtensionOdoo 12, 13, 14, 15, 16, 18
    hr_employee_phone_extension

    Adds two extra phone fields to employee records: an internal number and a short number, shown in a new 'Internal Contact' section on the employee form.

  • hr_employee_phone_pin

    Store the PIN and PUK codes of an employee's corporate mobile phone directly on the employee record, with access controlled by two new user groups.

  • HR Employee ServiceOdoo 12, 13, 14, 15, 16, 18
    hr_employee_service

    Adds Hire Date, Start Date and Termination Date fields to employee records and automatically calculates how long each employee has been with the company, shown in years, months and days.

  • HR Employee Service from ContractsOdoo 12, 13, 14, 15, 16, 18
    hr_employee_service_contract

    Automatically fills in each employee's first and last contract, plus their service start and termination dates, based on the employee's contracts.

  • hr_expense_analytic_tag

    Adds an "Analytic Tags" field to expense forms so users can tag expenses with analytic tags, which are then carried over to the accounting entries and payments generated from those expenses.

  • hr_expense_pay_to_vendor

    Lets employees request that the company pays a vendor directly through an expense, instead of reimbursing the employee. When the expense is paid by company, you can pick the vendor who should receive the money.

  • hr_expense_work_acceptance

    Lets you create Work Acceptances directly from an expense report, track how much of each expense line has been accepted, and optionally block posting the expense journal entries until the Work Acceptance is fully accepted.

  • hr_holidays_auto_extend

    Automatically extends validated leaves when their end date is reached, based on a leave type configuration. If another leave overlaps, the extension is stopped and an activity is scheduled for the manager.

  • Auto Approve LeavesOdoo 12, 13, 14, 16
    hr_holidays_leave_auto_approve

    Adds an option on each leave type to automatically validate leave requests, either by HR only or by everyone, so employees no longer wait for manual approval.

  • hr_holidays_natural_period_public

    Lets you choose whether public holidays are counted or skipped when a leave type is requested in natural (calendar) days. It connects the public holidays and natural period leave features in Odoo.

  • hr_holidays_summary_email

    Employees can receive a daily or weekly email listing the approved leaves of colleagues in their company. Each employee chooses whether to get no email, a daily one, or a weekly one.

  • hr_holidays_team_manager

    Adds a Time off/Team manager role that can only see and manage time off and allocation requests for employees in their own department, and blocks them from approving allocations.

  • hr_leave_type_code

    Adds a short code to each leave type and shows it before the leave type name, so leave types are easier to identify and report on.

  • hr_maintenance_security

    Removes the automatic maintenance equipment manager rights that HR users used to get, so HR staff no longer manage equipment by default. The right can still be granted manually.

  • HR Org Chart OverviewOdoo 13, 14, 15, 16
    hr_org_chart_overview

    Adds an interactive Organizational Chart overview under the HR Reports menu, showing employees, their managers and photos, with search, zoom, pan and PDF export.

  • hr_payroll_attendance_report

    Adds a worked-hours section to the payslip PDF report, listing each attendance record (date, check-in, check-out, hours) and the total hours for the payslip period.

  • hr_payroll_document_pymupdf

    Adds a PyMuPDF-based fallback so Odoo can still read the text of a PDF payslip when the normal reader fails, improving payslip import in the payroll management wizard.

  • HR Payroll PeriodOdoo 14, 15, 16
    hr_payroll_period

    Adds payroll periods and HR fiscal years to Odoo, so payslips and payslip batches can be linked to a period with an automatic payment date. Periods are generated from a fiscal year and follow a pay schedule.

  • Hr Personal Equipment StockOdoo 13, 14, 16, 18
    hr_personal_equipment_stock

    Links employee equipment requests to warehouse operations: accepting a request creates a stock transfer, and completing that transfer automatically validates the equipment allocation for the employee.

  • hr_personal_equipment_variant_configurator

    Lets users pick product variants (attributes like size or colour) when creating a personal equipment request, instead of choosing a plain product. The equipment line becomes editable directly in the request form.

  • HR PhoneOdoo 12, 14, 16
    hr_phone

    Automatically formats employee phone numbers (mobile and emergency) to international format when typed in the Employee form, and lets users with the Caller ID group read employee records for incoming call lookup.

  • HR Recruitment PhoneOdoo 12, 14, 16
    hr_recruitment_phone

    Validates and formats phone numbers on job applicants in the Recruitment app, and lets incoming-call users see applicant names when a caller is identified.

  • hr_recruitment_torecruit

    Shows how many people still need to be hired for each job position and automatically publishes or unpublishes the job on the website depending on whether the recruitment target is met.

  • hr_timesheet_name_customer

    Adds a 'Customer Description' field to timesheets that is filled automatically from the normal description, and uses it in the customer portal and in a new 'Timesheet Customer' PDF report.

  • hr_timesheet_predefined_description

    Lets you save a list of standard timesheet descriptions and pick one when logging time, so the description is filled in automatically instead of being typed each time.

  • hr_timesheet_predefined_description_rules

    Adds optional free-text rules to predefined timesheet descriptions, so users can be allowed, required, or prevented from adding extra notes that may be appended to the description.

  • hr_timesheet_report_rounded

    This bridge module makes the Timesheet Report use rounded hours instead of raw logged hours, so reported totals match the rounded timesheet values.

  • HR Timesheet Sheet AttendanceOdoo 12, 14, 15, 16, 18
    hr_timesheet_sheet_attendance

    Employees can check in and check out directly from their timesheet sheet, and the sheet shows total attendance hours and the difference versus timesheet hours. Attendance entries are automatically linked to the matching timesheet period.

  • hr_timesheet_sheet_policy_department_manager

    Adds a new timesheet approval policy where the Department Manager reviews and approves employee timesheet sheets. When enabled, the department field becomes mandatory on the sheet and only that department's manager can approve it.

  • hr_timesheet_sheet_policy_project_manager

    Adds a new timesheet sheet review policy where the Project Manager approves sheets, and lets each sheet be linked to a specific project.

  • hr_timesheet_time_restriction

    This module stops users from entering or backdating timesheets beyond a set number of days, either globally or per project. A special user group can bypass the restriction.

  • Image URLs from HTML fieldOdoo 12, 13, 14, 15, 16
    html_image_url_extractor

    Adds a helper that pulls image addresses out of any HTML content in Odoo, in the order they appear. Other modules can use it to show the first image of a post or page when no cover image is set.

  • Image TagOdoo 16, 18
    image_tag

    Adds a simple list of image tags that can be managed in Odoo. Tags are created and edited by users in the Image Tag Manager group, while all other users can only view them.

  • image_tag_environment

    Adds a technical name field to image tags so they can be linked to server environment settings. The technical name appears in the image tag list and search views.

  • internal_stock_quant_package

    Lets you mark packages as internal (trolley boxes) and automatically empty them when a transfer is validated or when products are put in pack, with per-carrier exceptions.

  • intrastat_delivery

    Lets you set an Incoterm and an Intrastat Transport Mode on each shipping method, so sales orders and their invoices automatically inherit these values.

  • iot_key_employee_rfid

    Lets you turn an employee's RFID attendance card into an IoT key, so the same card can trigger IoT rules. A button on the employee form creates the IoT key from the card code.

  • ir_actions_report_multi_company

    Lets you assign report actions to a specific company, so each company only sees its own reports (plus shared ones).

  • ir_config_parameter_multi_company

    Lets you store different values for the same system parameter per company, so each company in a multi-company database can have its own setting for the same key.

  • l10n_ar_afipws

    This module lets you manage the digital certificates and connections needed to talk to Argentina's AFIP tax authority web services from Odoo. It adds a menu to create certificate aliases, generate certificate requests, upload the signed certificates and view…

  • l10n_ar_afipws_fe

    This module connects Odoo to Argentina's AFIP electronic invoicing web services, so customer invoices, credit notes and debit notes can be authorized online and receive a CAE number. It also adds an AFIP QR code, connection tests and an option to post…

  • l10n_ar_bank

    Adds a ready-made list of Argentinian banks to Odoo, so bank records for Argentina are already available when setting up partners or company bank accounts.

  • l10n_be_antibiotic_tax

    Adds ready-made Belgian antibiotic tax records to Odoo: two dedicated accounts (antibiotic sale and purchase) and the related tax templates, automatically installed on companies using the Belgian chart of accounts.

  • l10n_be_apb_tax

    Adds the Belgian APB (Aide Publique à l'Agriculture) tax setup to the Belgian chart of accounts, including a dedicated APB sale tax, an APB income account and fiscal positions that remove the APB tax for wholesalers and for intra/extra-community sales.

  • l10n_be_bpost_address_autocomplete

    Adds a Belgian address search bar on partner forms. Users can search a Belgian address and the street, city, postal code and country are filled in automatically.

  • Cooperators BelgiumOdoo 12, 14, 16
    l10n_be_cooperator

    Manage Belgian tax shelter declarations for cooperators: compute eligible shares, generate certificates and send them by email, and print official tax shelter attestations.

  • l10n_be_cooperator_national_number

    Adds an optional Belgian National Number field to cooperative share subscription requests, with company-level settings to show or require it. The number is validated and saved on the contact when the subscription is confirmed.

  • l10n_be_cooperator_portal

    Lets cooperative members see and download their Tax Shelter certificates (subscription and shares) from the Odoo website portal, without contacting the cooperative's staff.

  • l10n_be_cooperator_portal_national_number

    Lets cooperators view and update their Belgian national number from their customer portal account page, with validation and company-level rules for whether it is shown or required.

  • l10n_be_cooperator_website_national_number

    Adds a Belgian National Number field to the online cooperative subscription form, so new members can enter (or have pre-filled) their national registration number when they sign up on the website.

  • l10n_be_eco_tax

    Adds ready-made Belgian eco taxes (BEBAT and RECUPEL) and matching accounts to the Belgian chart of accounts, so you can charge or book these environmental fees on sales and purchases.

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.