Skip to content

Find and merge duplicate contacts

Quick summary: Find duplicate customers or suppliers manually, then merge verified duplicates into one contact. This uses the standard Contacts action and does not require the Data Cleaning application.


Search by legal name, tax number, email address, and telephone number. Remove customer or supplier filters and include archived records when checking previous usage. Compare the records themselves; a shared email address or similar name is only a clue.

Situation What to do
Two records represent the same legal customer or supplier Review their details and documents, then consider merging.
One company buys from you and also supplies you Use one contact for both roles; those roles alone do not justify separate records.
A company and its employee, branch, invoice address, or delivery address Keep the distinct records and correct their contact hierarchy.
Similar names but different legal entities Keep them separate.

Choose the record with the correct legal identity and intended company hierarchy. Review its tax number, address, email, bank accounts, payment terms, pricelist, and company-specific accounting settings. Compare outstanding documents and any linked portal or internal user accounts.

The destination’s populated ordinary fields generally take precedence; empty fields can be filled from the other records. Merging is not a field-by-field comparison screen. Resolve conflicting information before merging and check the result afterward.

Open Contacts in Odoo

Your Odoo address

Enter the base address of your Odoo instance. It will be stored only in this browser.

The documentation does not receive your address, username, or password.

  1. Open Contacts, switch to list view, and find the verified duplicates.
  2. Select their checkboxes. Work with one pair at a time; Odoo allows at most three contacts in one merge.
  3. Open Actions > Merge. Review every record in the window and remove any that should not be included, or select Cancel to investigate further.
  4. Set Destination Contact explicitly to the record you intend to keep. Do not rely on the proposed default: Odoo prefers an active record and then the oldest record within that group, which does not prove its details are correct.
  5. After confirming the records represent the same party, click Merge Contacts.

Open the surviving contact and check its legal details, parent and child contacts, addresses, bank accounts, and commercial defaults. Review linked quotations, orders, invoices, outstanding receivables or payables, and activities. Check draft documents’ invoice and delivery addresses before sending them. If a user account was involved, ask its administrator to verify the intended contact and access.

Merging contacts does not itself pay, reconcile, cancel, or correct invoices. Resolve accounting issues through the appropriate accounting workflow.

  • Different email addresses: only an administrator can merge contacts with different emails. Ask for a review; do not change valid addresses merely to bypass the check.
  • Parent and child selected: Odoo blocks merging a contact with its parent. Review the hierarchy instead.
  • More than one linked user: Odoo blocks the merge even if only one user is active. Ask the administrator to review the accounts.
  • More than three contacts: review and merge small groups, checking the surviving record after each merge.
  • Other access or validation error: stop and ask the responsible administrator to review the records and message before retrying.

See also create and maintain contacts and the Odoo 19 contact merge guide.