Contacts: Data Cleaning: Merging + Deduplicating Contacts in Odoo 12 + 13

Purpose

It is possible, and even likely, that contacts will be duplicated in the Odoo Contacts app. It's good to discuss a general guide with your peers regarding titles, middle initials, capitalization, and how much information is required to be gathered at the contact creation stage, because any one of those factors can hide a contact from a search. 

In the event that multiple records are created, you have the option to merge contacts. This can be helpful if the duplicate contact has sales history associated with it as it will not be able to be deleted. If duplicate contacts have no sales history, the Deduplication action will tidy up the contact records. 

Good to Know!

Deleting contact records is final, and perhaps not advisable if there are relevant documents associated with the record, such as incomplete quotes or discussions. In that case,  Archiving the record will hide it from use on future actions without removing the information. 

Process

To get started, Navigate to the Contacts app.

Odoo image and text block

Merging vs. Deduplication

Merging is the action used to combine contact records and reassigns all financial records to the destination contact. The Deduplication action should be used when a record is created by mistake and has NO sales or purchases associated with it. 

Search for a partial term that is likely to bring up the records in question. For our example, we have three copies of Andy Muffin, so we searched 'Muf' in contact name to find our problem records.

Odoo image and text block

We can see that Andy exists as an individual, and a child contact of two separate companies.

The individual record has four sales associated with it that were intended to be made under the River City Coffeehouse parent contact. 

Odoo image and text block

The Linux High record has none:

Odoo image and text block

The River City Coffeehouse record currently has 1 sale associated with it, which we know is a mistake.

Odoo image and text block

We will first Merge the Individual record with the Sweet Treats Cafe contact. We can't delete the Individual record because there are sales associated with it, and adding the company to the individual record at this stage will cause an internal server error. 

Select the two records and then select Merge Contacts from the Action   menu.

Odoo image and text block

This will open the Merge Contacts tool window. The Destination Contact is going to be the final result of the merging. Odoo will assume all information contained therein is correct, and it will not be overwritten. Click Merge Contacts

Odoo image and text block
Odoo image and text block

Once the action is complete, you have the option to pursue the deduplication of other Contacts. 

Click the Deduplicate the Other Contacts button and you will be presented with the following. Check all of your search preferences, and note that if there are more than one selected, Odoo will only propose the merging of the records that have identical information in all of those fields. This prevents overwriting due to similar names, etc.

Odoo image and text block

During the initial implementation, we recommend Merge with Manual Check. Merge Automatically will not allow you to refine the process before the work is done.   

Once done, we can see that Andy Muffin, from River city coffee roasters, is now showing 10 sales and 2 purchases, reflecting our history with the contact accurately. In the chatter below, we can see the record that we merged to this one is noted. 

Important!

Odoo will assume the destination contact is correct but any fields on that record that are blank will be filled in with the data from the merged record! That means it is possible to assign someone's cell number to the wrong contact, for instance. Make sure the contacts you are merging are the same person, or, edit the merging record to remove any information present that does not belong on the destination record. 

Odoo image and text block
Odoo image and text block

As for the record under Linux High, we have the option to delete that contact outright because there is no financial data tied to it. Were that not the case, we could  Archive it for reference later, such as when an employee we previously worked with has left the company, but still is tied to financial data.