WHY DO DUPLICATE CONTACTS KEEP APPEARING IN ODOO?

Duplicate customers, suppliers and contact records can return even after a company has cleaned or merged them.

Aeterna identifies where duplicate records enter the Odoo environment, corrects affected data within the agreed scope and stabilises the operational rules used to create, import and update contacts.

MERGING THE RECORDS CLEANS THE DATABASE.
FIXING THE CREATION FLOW KEEPS IT CLEAN.

THE SITUATION

A company uses Odoo to manage customers, suppliers, sales, invoices, CRM activities or online orders.

Over time, employees begin finding several records that appear to represent the same person or company.

One record may contain the customer’s invoices.

Another may contain recent quotations.

A third may have been created through the webshop, an import, an event registration or an integration.

The names are similar but not identical. Email addresses may differ in format. Telephone numbers contain different prefixes. One record represents the company, while another represents a person working for that company.

The team merges some of the duplicates.

Several weeks later, new ones appear.

The database was cleaned.

The process creating the duplicates remained unchanged.

WHY IT BECOMES A PROBLEM

A duplicate contact is not merely an untidy CRM record.

In Odoo, customer and contact information can be connected with sales orders, invoices, payments, subscriptions, activities, portal access, marketing records and other operational processes.

When one customer is represented by several records, its business history becomes fragmented.

The company may experience:

  • Invoices divided between different customer records
  • Sales employees contacting the same organisation independently
  • Quotations created under the wrong account
  • Customer balances that appear incomplete
  • Duplicate marketing messages
  • Different payment terms attached to similar records
  • Portal access connected to an unintended contact
  • Supplier purchases distributed across several profiles
  • Reports counting one company more than once
  • Employees creating another record because they cannot identify the correct one
  • Manual reconciliation before reporting, invoicing or customer follow-up

The database contains information.

It no longer provides a reliable identity for the customer.

ONE CUSTOMER EXISTS IN THE REAL WORLD.
THE SYSTEM REPRESENTS IT SEVERAL TIMES.

WHY MERGING ALONE DOES NOT SOLVE IT

Odoo includes tools for identifying and merging duplicate contacts. Its Data Cleaning functionality can also detect similar records using configured deduplication rules.

These tools can help correct records that already exist.

They do not automatically determine why each duplicate was created.

A company may merge two customer records while another process continues generating new ones through:

  • Manual contact creation
  • Quick-create fields
  • Spreadsheet imports
  • E-commerce checkout
  • Event registration
  • User or employee creation
  • CRM lead conversion
  • External forms
  • API connections
  • Accounting or webshop integrations
  • Migration from another platform

Each route may use different fields to decide whether a person or company already exists.

One process may compare email addresses.

Another may use the company name.

A third may create a new record whenever an external identifier is unavailable.

Odoo’s import documentation warns that changing or removing a record identifier can cause a new record to be added instead of updating the existing one.

The visible duplicate is therefore the final symptom.

The operational cause sits earlier in the record-creation flow.

COMMON CAUSES

DIFFERENT PROCESSES USE DIFFERENT MATCHING RULES

The webshop recognises a returning customer by email address, while an internal employee searches by company name.

Both processes can interpret the same customer differently.

CONTACT INFORMATION IS NOT STANDARDISED

The same telephone number may appear with a national prefix, an international prefix or no spacing convention.

Names may contain abbreviations, legal suffixes, punctuation or spelling variations.

IMPORTS CREATE INSTEAD OF UPDATE

A spreadsheet may contain existing customers but lack the identifiers required to update their original records.

The import completes successfully while creating another version of each customer.

EMPLOYEES CANNOT FIND THE CORRECT RECORD

Users may search for a trading name while the contact is stored under its legal company name.

Creating another contact becomes faster than investigating which record is correct.

COMPANY AND PERSON RECORDS ARE USED INCONSISTENTLY

One employee creates the organisation as the customer.

Another creates an individual contact as a separate customer.

Transactions then become divided between the company and the person.

E-COMMERCE OR FORM FLOWS CREATE NEW RECORDS

A returning customer may submit information in a slightly different format or use another email address.

The automated process creates another contact because it cannot establish a sufficiently reliable match.

EXTERNAL SYSTEMS USE THEIR OWN IDENTIFIERS

A webshop, accounting platform, marketing tool or connector may maintain a separate customer identifier.

When the relationship between identifiers is missing or broken, the integration may create a new Odoo contact.

DEDUPLICATION RULES ARE TOO NARROW

Exact matching can miss variations.

Overly broad matching can classify different people as the same contact.

The company therefore needs rules that reflect its actual customer data and business structure.

OWNERSHIP IS UNDEFINED

Sales, accounting, marketing and customer service may all create or modify contacts.

Nobody owns the standards governing how customer records should be created and maintained.

WHAT A BETTER PROCESS LOOKS LIKE

A stable contact process begins by recognising that customer identity is shared across several systems and teams.

The company defines:

  • Which record represents the customer
  • When a company and a person require separate records
  • Which fields are used to recognise an existing contact
  • Which identifiers must remain unique
  • Which system creates the original record
  • Which systems may update it
  • How imports identify existing records
  • How integrations respond when no reliable match exists
  • Which employee reviews uncertain matches
  • Who approves the merging of ambiguous records
  • How future duplicates become visible

Existing duplicates are then corrected in a controlled way.

The objective is to preserve relevant transactions, communication history and operational relationships while reducing unnecessary records.

After the initial cleanup, the company tests every important creation route.

For example:

  • An employee creates a customer manually
  • A returning customer places another online order
  • A spreadsheet updates existing contacts
  • A new supplier enters through an onboarding process
  • A user account is created
  • An external application sends customer information
  • A customer changes its email address
  • Two companies legitimately share a telephone number
  • Two employees work for the same organisation

The goal is not to block every similar record.

The goal is to distinguish a genuine new contact from another representation of an existing one.

WHAT AETERNA FIXES

Aeterna works on the operational data, configuration, record-creation routes and integrations surrounding the company’s existing Odoo environment.

Depending on the agreed scope, Aeterna can:

  • Identify where duplicate contacts are being created
  • Analyse recurring duplicate patterns
  • Separate companies, individuals, customers and suppliers correctly
  • Define approved matching and validation rules
  • Standardise selected contact fields
  • Correct import and update procedures
  • Clean and consolidate approved duplicate records
  • Preserve relevant relationships during controlled cleanup
  • Align configurable record-creation rules
  • Improve handling of uncertain or unmatched contacts
  • Test manual, imported and automated creation scenarios
  • Create a visible process for reviewing future exceptions
  • Coordinate platform-specific changes with the company’s Odoo provider

The objective is not to deliver a list of duplicate records.

The objective is to correct the affected data and reduce the routes through which the same problem returns.

EXPECTED WORKING RESULT

Depending on the environment and agreed scope:

  • Duplicate customer records are reduced
  • Existing transactions are connected more consistently
  • Imports update the intended records more reliably
  • Employees can identify the correct customer before creating another one
  • Company and person relationships become clearer
  • Repeated e-commerce or integration duplicates are easier to prevent
  • Ambiguous matches enter a visible review process
  • Customer reporting becomes more reliable
  • Sales and finance spend less time reconciling fragmented records
  • Remaining platform limitations become clear to the business and its Odoo provider

Aeterna does not promise that every similar record can be merged automatically.

Names, shared addresses, generic email accounts and group structures can require business judgement.

The working result is a more controlled customer-data process in which genuine duplicates are corrected and future exceptions become easier to identify.

OPERATIONAL VALUE

MORE RELIABLE CUSTOMER HISTORIES

Orders, invoices, quotations and activities are associated with a clearer customer identity.

FEWER MANUAL CORRECTIONS

Employees spend less time searching, comparing and reconciling similar records.

BETTER FINANCIAL VISIBILITY

Customer balances, invoices and payment history are less likely to be fragmented across duplicate accounts.

CLEANER CRM FOLLOW-UP

Sales teams can see previous communication and reduce repeated or conflicting contact.

STRONGER REPORTING

Customer counts, revenue analysis and account activity rely on more consistent records.

SAFER IMPORTS AND INTEGRATIONS

External information follows clearer matching and update rules.

CLEARER RESPONSIBILITY

The company knows who maintains customer data and who reviews ambiguous cases.

WHAT THE BUSINESS RECEIVES

Depending on the engagement, the business may receive:

  • A map of the main contact-creation routes
  • A classified inventory of duplicate patterns
  • Corrected and approved customer or supplier records
  • Standardised contact fields within the agreed dataset
  • Defined company-and-person structures
  • Validated matching criteria
  • Corrected import and update procedures
  • Tested record-creation scenarios
  • A visible list of unresolved or ambiguous contacts
  • Essential instructions for maintaining the corrected process
  • A provider action list for changes requiring Odoo-specific development

Documentation is limited to what is necessary to validate, operate and maintain the corrected process.

SCOPE BOUNDARIES

Aeterna works on operational data, configurable rules, imports, workflows and the movement of information between existing systems.

The company remains responsible for confirming:

  • Which legal entity owns a transaction
  • Whether two similar contacts represent the same customer
  • Which commercial conditions should be preserved
  • Which record contains authoritative information
  • Whether a user account should remain active
  • Which records must be retained for legal or accounting purposes
  • Decisions involving privacy, retention or regulatory obligations

Aeterna does not replace an Odoo implementation partner.

Custom module development, core-platform changes, infrastructure, advanced access configuration and modifications requiring specialised Odoo credentials remain with the appropriate provider.

Critical merges and bulk changes are carried out only with suitable access, backups, approval and testing procedures.

RELATED SERVICE

ODOO CONTACT DATA CLEANUP & DUPLICATE PREVENTION

A hands-on engagement for correcting duplicate customer, supplier and contact records while stabilising the processes that create them.

Suitable for:

  • Companies repeatedly merging the same Odoo contacts
  • Customer invoices divided across several records
  • CRM teams working with duplicated company accounts
  • E-commerce customers creating repeated contacts
  • Imports adding records instead of updating them
  • Suppliers appearing under different names or identifiers
  • Companies preparing customer data for integration or migration
  • Odoo partners requiring operational data preparation
  • Finance teams reconciling fragmented customer histories

[DISCUSS YOUR ODOO CONTACT PROBLEM →]

The first step is reviewing examples of duplicate records, how they entered Odoo and which transactions or processes are connected to them.

RELATED USE CASES

Customer and supplier records require correction before an ERP migration:

[EXPLORE THE ERP DATA MIGRATION USE CASE →]

Customer information does not reconcile between an ERP and a webshop:

[EXPLORE THE SYSTEM INTEGRATION USE CASE →]

Share your love

Leave a Reply

Your email address will not be published. Required fields are marked *