About Contacts Duplicates Real Time Search


Contacts Duplicates Real Time search is an Odoo partner management tool. The app helps to prevent the appearance of contacts' duplicates or to expose them. The tool can detect that the contact has a duplicate when you create or observe a record, as the app searches for similarities in real-time. 

Flexibly set the criteria to find duplicates, and strictly forbid saving the same contact or warn about the existence of a similar one. As duplicate criteria use any stored field of the following types: char, text, many2one, selection, date and datetime, integer, and float. 

Optionally choose to search for duplicates among all contacts or only among companies and stand-alone individuals (without company).

If you also want to find duplicates among opportunities, then consider the app CRM Duplicates Real Time search, which searches for both contacts and opportunities duplicates.

The multi-company mode is supported and the settings are applied to each company separately.

Real-time search

 

Configurable duplicate's criteria 

 

Smart partners consideration 

Soft and rigid duplicates 

 




Configurable duplicates criteria


Duplicates are defined according to the rules which you set up. A rule is a field according to which an item is considered as a copy. For example, an email or a name. A customer is considered a duplicate if it satisfies any of the criteria. Any field or combination of fields on the contact's card can be considered to distinguish whether a contact is unique or a duplicate.

To configure the search settings go to General Settings and scroll down to the section 'Contacts Duplicates'.


A rule is a field, which serves as a search criterion in order to find contacts duplicates. Only the chosen as search criteria contact card's fields will be checked for matches.

To set the criteria to define contacts' duplicates:

1. Click on one of the fields 'Partner Soft Duplicates Fields' or 'Partners Rigid Duplicates Field'

2. Choose one of the stored fields from the list, or click 'Search more' to see the full fields' list

You can set up both rigid and soft search criteria or choose only one of them (see Soft and rigid duplicates).

To configure rigid/soft search criteria:

1. Go to General Settings and scroll down to the section 'Contacts Duplicates'

2. If you want Odoo to let you save potentially the same contacts, then select such criteria in the field 'Partners Soft Duplicates Fields'

3. Choose fields that are required to be different in 'Partner Rigid Duplicates Fields', for example, phone or email, and a second contact with the same value will be impossible to save

4. Click 'Save' in the left top corner


As a rule/duplicate criteria use any stored field of the following types:

1. Char (name, email, phone, mobile, etc.)

2. Text (descriptions)

3. Many2one (reference for a parent company or a related customer)

4. Selection (for instance, type)

5. Date and datetime (e.g. birthday)

6. Integer and float (any unique code or even planned revenue)  

The module compares the chosen fields of each contact with other contacts and searches for matches. In order to be considered as a duplicate, the contacts' field should be absolutely identical, for example '123'='123'. Even a slight difference will result in considering a contact as a unique one. Only for the case of soft search by char fields it is the operator 'ilike'. Thus, 'agro' is considered to be a potential duplicate of 'Agrolait' (but Agrolait is not considered as a duplicate of 'agro').

If you added the same rule, for example, 'Email', in both 'Partner Soft Duplicates Fields' and 'Partners Rigid Duplicates Field', then the rigid search criteria will dominate and you will not be able to save a contact with the absolutely identical value in the field.

Restrict the search only for companies and stand-alone individuals. If the option is checked, Odoo will search only for and only among customers without parent contact. For example, if you have 200 contacts that are divided between 15 parent companies and 50 more individuals' contacts, then the system will check only for matches in the preset fields among 65 contacts. Each contact will be compared with the other 64. That will reduce the number of contacts to check and therefore will speed up the duplicates search time (see Performance issues).


The module supports multi companies and duplicates are searched within a certain company. So you need to configure settings for each company separately. 

There might be equal contacts related to different Odoo companies and they will not be considered as duplicates.


Soft and rigid duplicates


The tool lets you both strictly avoid duplicates and/or just warn of those according to the set rules. A rule is a field by which an item is considered as a copy. For example, an email or a name. Use rigid criteria to fully exclude duplicates creation. Use soft criteria to only notify Odoo users of possible duplicates.  

For all fields, a duplicate should have absolutely the same value. For example, '123' equals '123', but '123' is not equal '1234'. Only for the case of soft search by char fields, the operator is 'ilike'. Thus, 'agro' is considered to be a potential duplicate of 'Agrolait' (but Agrolait is not considered as a duplicate of 'agro').

You can set the soft and/or rigid criteria in General settings > Contacts Duplicates. If you choose one and the same field as both rigid and soft criteria, then the rigid criteria will dominate and you will not be able to save the contact with the same value in the field.

After setting soft criteria in the contacts list you will see a mark 'N Potential duplicates' and the button 'N Duplicates' on the contact's card.


After setting rigid criteria, the tool will not let to save a contact with the same value in chosen as rigid fields. If you try to save such a partner, a pop-up warning appears. The warning shows the name of a duplicate, its unique ID, and matching fields. That allows you to find the contact easily, or to change the value in the matching fields of the currently created one in order to save a new partner.




Soft duplicates managing and merging


See the contacts duplicates from the list view and kanban view. In the list view click on the three dots and then tick 'Duplicates count' to see the column with the number of duplicates to each contact.

You can also filter contacts by potential duplicates, for that click on the 'Filters' above the contacts view and choose 'Potential Duplicates'.


Based on duplicates found you can merge those based on Odoo standard partner merging tools. To that end:

1. Click on the line 'N Potential duplicates' or on a button 'N Duplicates', where N is a number of found duplicates, in the contact's card to see its duplicates and similar fields

2. Choose duplicate records

3. Choose the destination contact

4. Click on a contact to open its card and see details before merging

5. Click 'Add a line' to add one more contact for merging manually

6. Click 'Merge'




Performance issues


The app searches for the contacts' duplicates in real-time. Every time from any interface view: kanban, list, map, as you create or open contact, the system searches for matches of the chosen fields among all available contacts. Although the tool is optimized to make searches as efficient as Odoo ORM allows it, with a growing number of documents, a search might become slower as all shown records are checked for duplicates among all existing records.

For example, when you open kanban view with 1000 contacts, the tool makes searches by your criteria among all of them. It may result in slowdowns of the following operations:

1. Opening kanban and list views of Odoo contacts

2. Saving changes after the update of partners.