Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Extra Tools
  3. Import Match Keys v 19.0
  4. Sales Conditions FAQ

Import Match Keys

by QoriTech https://odootips.com
Odoo

$ 20.00

v 19.0 Third Party
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Lines of code 366
Technical Name qt_import_match_key
LicenseLGPL-3
Websitehttps://odootips.com
Versions 16.0 17.0 19.0
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Lines of code 366
Technical Name qt_import_match_key
LicenseLGPL-3
Websitehttps://odootips.com
Versions 16.0 17.0 19.0
Import Match Keys
Odoo 19 Community & Enterprise
Import any Odoo relation by the field you choose

Odoo's native import resolves relations only by name, External ID or Database ID. This module lets any stored field of any model become an import key — products, contacts, employees, locations, accounts, taxes, journals, projects, tasks… anything Odoo can import.

  • ✔ Works on any Odoo model — native or custom
  • ✔ Works with any stored char or integer field
  • ✔ CSV, XLS & XLSX — same native importer
  • ✔ Multi-company aware (global / current / shared)
  • ✔ Stops on ambiguous or missing matches — never silent
  • ✔ 32 automated tests — production-grade
v19.0 ✔ CE ✔ EE ✔ .sh ✘ Online
❌ Native import only
any_file.csv
any_m2o_field/id
__export__.res_xyz_17
__export__.res_xyz_42
base.pe
→ You must know the External ID or the internal Database ID — painful.
✅ With Import Match Keys
any_file.csv
any_m2o_field/<your_field>
ABC-001
ABC-002
PE
→ Use any stored field you configure — the one that already exists in your source file.
Universal — any model, any stored field

Only base_import is required. The module doesn't target specific models — it extends Odoo's core importer so every importable model benefits instantly, native or custom.

📦 Models
Products, contacts, employees, warehouses, locations, accounts, taxes, journals, projects, tasks, BoMs… and every custom model you've built.
🔑 Fields
Any stored char or integer field. Reference codes, short names, external keys, legacy IDs, barcodes, anything you already rely on.
📄 Files
CSV, XLS and XLSX — exactly what the native importer supports. No new wizard, no new UI to learn.
Any
Odoo Model
Any
Stored Field
32
Tests
3
File Formats
EN/ES
Languages
▶ Live Demo

Watch the full workflow in action — configure a key, import a file, see the records appear.

📖 Documentation
  • 📖 User Guide
  • ⚙ Installation
  • ❓ FAQ
  • 📧 Support
User Guide
1 Open the menu 2 Configure the rule 3 Import your file 4 Result 5 Examples

Step 1 — Open Import Keys

Settings → Import Keys

A dedicated menu is added to the Settings top bar. The list shows every Related Model you have configured and the number of keys on each one. Click New to create your first rule.

📍 Settings → Import Keys
Menu location

Step 2 — Configure the rule

Two blocks in the form:

❶ GENERAL
Pick the Related Model — any Odoo model (e.g. Contact, Product, a custom model).
❷ KEYS
Add one line per allowed field: Match Field + Label + Company Scope. Save.
📝 Example — Contact model with Tax ID as key
Rule form
📌 One rule per model, multiple Keys inside. You can register several alternative fields on the same model (e.g. vat and ref on Contact).

Step 3 — Import your file

Open any list view and pick Favorites → Import records. Upload your CSV / XLS / XLSX. On the relational column, open the Odoo Field dropdown — your configured keys now appear alongside the native options (Database ID, External ID).

🔗 The match key appears right next to Database ID / External ID
Column mapping
✅ Click Test to validate and Import to finish. The file above uses a dni column matched against Customer / Tax ID.

Step 4 — Records imported

When everything resolves cleanly, Odoo shows a confirmation toast with the number of records imported, and the records are already in the list — ready to use.

✔ “3 records successfully imported”
Import result
✔ One match
Relation assigned.
⚠️ Several matches
Warning with count.
❌ No match
Row is blocked.

Examples — the same recipe, any model

The table below shows the pattern across different Odoo models. Replace model and field with whatever your own import needs — the workflow is identical.

Model Match field CSV header
res.partner (Contact)vatpartner_id/vat
res.countrycodecountry_id/code
product.productdefault_codeproduct_id/default_code
stock.warehousecodewarehouse_id/code
stock.locationcomplete_namelocation_id/complete_name
account.accountcodeaccount_id/code
account.journalcodejournal_id/code
hr.employeeidentification_idemployee_id/identification_id
x_my_custom_modelx_legacy_codex_custom_id/x_legacy_code
💡 Same pattern for every model: pick a stored field → use <m2o_field>/<your_field> in the file header.

⚙ Installation

📋 Requirements
  • Odoo 19.0 (Community or Enterprise)
  • Module base_import (bundled with Odoo)
  • Custom-addons capable hosting: self-hosted or Odoo.sh
  • No extra Python packages
📥 Steps
  1. Copy qt_import_match_key/ into your addons path.
  2. Restart the Odoo service.
  3. Go to Apps, click Update Apps List.
  4. Search Import Match Keys and press Install.
Compatibility matrix
EditionHostingSupported
CommunitySelf-hosted✔ Yes
EnterpriseSelf-hosted✔ Yes
EnterpriseOdoo.sh✔ Yes
EnterpriseOdoo Online (SaaS)✘ No — custom addons not allowed
🔧 Clean uninstall
Uninstall from Apps → Installed Apps. Only the match-key configuration table is removed. Your own data (partners, products, invoices, custom records, etc.) stays untouched — this module never writes business records, only reads fields during imports.

❓ Frequently Asked Questions

Which Odoo models does this work on?
All of them. Any model that Odoo's native importer can write to — native or custom, in any app — can use match keys. The module doesn't target specific models; it extends the core importer.
Which field types can be used as a match key?
Any stored field of type char or integer. Computed non-stored fields are not eligible — they can't be searched efficiently and could produce inconsistent lookups.
Does it replace Odoo's native import?
No. It extends it. Name, External ID and Database ID keep working exactly as before. Your match keys simply appear as additional options in the column dropdown.
What happens when two records share the same key?
The import stops on that row and reports the ambiguity with the number of matches found. You then either tighten the company scope, deduplicate the records, or use a different key. The module never silently picks one of them.
Does it work with nested fields (sub-fields, one2many / many2many)?
Yes. Nested column headers like order_line/product_id/default_code resolve through the match key too — useful when importing entire documents (sale orders, purchase orders, BoMs…) in a single file.
Is it multi-company safe?
Yes. Three scopes (Global, Current company, Current or shared) are available when the target model has a company_id field. The selector only appears when the database has more than one company — single-company databases see a simplified form.
Does it work with Odoo Online (SaaS)?
No. Custom addons are not allowed on Odoo Online. Supported on:
  • Community (self-hosted) ✔
  • Enterprise on-premises (self-hosted) ✔
  • Odoo.sh (cloud-managed) ✔
  • Odoo Online (SaaS) ✘
Does it affect performance?
Negligible. Lookups use Odoo's standard search() on stored fields, the same code path used everywhere else. Columns mapped to native options trigger no extra queries.
Is it translated?
Yes. The source code is in English and a complete Spanish (es_PE) translation is included. Labels are translate=True, so extra languages propagate automatically via .po files.

📧 Support & Guarantees

🛡
Quality Guaranteed

32 automated tests covering configuration, import, multi-company and i18n. If you find a bug, we fix it.

💬
Fast Response

We answer within 24 hours on business days. Most issues resolved in under 48 hours.

🔄
Free Updates

Bug fixes and improvements are published as updates on Odoo Apps. Download anytime.

📞 Contact Us
🌐 Website
odootips.com
📧 Email
hola@kaypi.pe
📝 When contacting support, please include:
  • Your Odoo version (19.0.x.y.z)
  • Module version (from Apps → module info)
  • The related model and match field you configured
  • A sample of the file you are importing (a few rows is enough)
  • Screenshots of the error dialog

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with