Skip to Content

Odoo Master Data Ownership: Who Creates What

Who should own products, contacts and vendor bank accounts in Odoo, which access rights enforce it, and how to catch duplicates before they spread.
October 30, 2026 by
Muneeb Ahmad

Master data is the information every transaction reuses: customers, vendors, products, prices, units, bank accounts. When it is right, nobody notices. When it is wrong, it is wrong on every order, invoice and report that touches it, and usually for a long time before someone finds out.

The fix is rarely technical. It is deciding who owns each kind of record, and then using Odoo's access rights so the decision holds after the consultants leave.

Applies to: Odoo 20, with notes for earlier versions. Data Cleaning is an Enterprise app; the access rights discussed are in Community too.

What counts as master data in Odoo?

For most companies, these records:

Record Where it lives What goes wrong when nobody owns it
Customers and vendors Contacts Duplicates, wrong tax IDs, invoices to old addresses
Products Sales, Purchase, Inventory Wrong unit, wrong category, so wrong accounts and wrong stock valuation
Prices Pricelists, vendor prices Quotes that disagree with the price list
Vendor bank accounts Contacts, Accounting Payments to the wrong account
Chart of accounts, taxes Accounting Reports that no longer reconcile

The last two belong to finance in almost every company. The first three are where the arguments happen.

Who should own each record?

Ownership means one team decides how a record is created and changed, and answers for its quality. It does not mean only one person can see it.

A pattern that works for many companies:

  • Customers: sales operations or finance, not every salesperson. Sales can request a new customer; one team creates it with the right tax details and payment terms.
  • Vendors: purchasing, with finance approving payment details.
  • Products: one product owner, often in purchasing or operations, because the product category decides the accounts and the stock valuation.
  • Vendor bank accounts: finance only. Always.

Write the decision down in one table and put it where people will find it. Then make Odoo enforce it.

Which access rights enforce the decision?

In Odoo 20, the user form has a Master Data section with three settings.

Odoo 20 user form, Access Rights tab, with the Master Data section showing Products, Contact and Export settings
The Master Data section on the user form: who can create products, who can create contacts, and who can export.
  • Products. The Create level gives the product manager rights. Without it, users can use products on orders but not create them.
  • Contact. Without Creation, a regular internal user can read contacts and edit only their own contact card. With it, they can create and edit contacts, merge duplicates, and create or edit bank accounts.
  • Export. Controls who can export lists of records, which matters for customer lists and prices.

Two practical notes. First, access changes as apps and settings are added during the project, so check these three lines for every user after the configuration is final. Second, check the Default Access Rights setting in Settings, which decides what new users receive, so the rule still holds for the person hired next year.

Why are vendor bank accounts special?

Because changing one is the classic way to redirect a real payment. Odoo 20 treats them with more care than other records:

Odoo 20 bank account form with a phishing risk warning and the Trust bank account toggle switched off
A vendor bank account in Odoo 20: the phishing warning at the top and the Trust bank account switch on the right.
  • Changes are tracked. The account number, BIC, holder name, partner and active flag are logged, and the change also appears on the contact's history.
  • Trust is a separate step. The Trust bank account switch can only be set by users with the right to validate bank accounts, or administrators. Automated processes cannot trust an account.
  • Trusted accounts are locked. Once trusted, the account number, holder and owner cannot be edited until someone removes the trust again, which is itself tracked.
  • Warnings appear. Odoo flags patterns that look like phishing, for example a bank account country that does not match the holder's country, as in the screenshot above.

Our recommendation: the person who enters a bank account should not be the person who trusts it, and every change of vendor bank details should be confirmed with the vendor by phone, on a number you already had.

How do you stop duplicates?

Duplicates come from three places: data migration, several people creating the same customer on the same day, and imports from other systems. Prevention is ownership. Detection is Data Cleaning (Enterprise).

Odoo 20 Data Cleaning deduplication rule for contacts with exact match fields, manual merge mode, weekly frequency and a 75 percent similarity threshold
A deduplication rule for contacts: which fields must match, how often it runs and who gets notified.

A deduplication rule sets:

  • Which records to check, with a domain, for example companies only.
  • Which fields identify a duplicate, such as name, tax ID, email or reference, each with exact matching or matching that ignores case and accents.
  • Merge mode. Manual means someone reviews each group; automatic merges above the similarity threshold. Start with manual.
  • Who is notified and how often, for example weekly.
  • Cross-company checking, if you run several companies in one database.

Data Cleaning also has Field Cleaning rules that tidy values as they come in: trimming spaces, fixing letter case, formatting phone numbers and removing HTML. Those are low risk and worth switching on for contact names and phones early.

Merging needs care. The links from the duplicate move to the record you keep, so treat a merge as permanent, and let the data owner review merges, not whoever sees the notification first.

What should you check before go-live?

  1. The ownership table exists and the process owners have agreed it.
  2. Every user's Master Data settings match it, and UAT includes negative tests that prove it: a salesperson who tries to create a vendor bank account should be stopped.
  3. Only finance can create, edit or trust vendor bank accounts.
  4. Migrated contacts and products have been through a duplicate check. See our legacy data migration guide for the load itself.
  5. Product categories are correct, because they drive the accounts.

FAQ

Can salespeople create customers?

They can if you give them Contact Creation, and many companies do. The risk is duplicates and missing tax details. A middle path: sales creates, one owner reviews new contacts weekly with the deduplication rule's help.

Is there an approval workflow for new products or customers?

Not as a standard master data feature. Companies that need one usually use the Studio approval rules on a button, or a simple status field and a report. We cover approvals in a separate guide.

Does tracking tell us who changed a price?

The product's sales price is tracked on the product's history. Vendor prices and pricelist rules are separate records, so check them explicitly if price control matters.

Next step

If your Odoo already has duplicates and unclear ownership, our audit and support team can review access rights and data quality. Starting fresh? Our implementation team builds the ownership table into the project from day one.

Odoo UAT Test Cases: A Practical Template and Process
How to plan Odoo user acceptance testing: a safe test database, real user roles, test cases people can follow, a defect log and a clear sign-off.