About CRM Duplicates Real Time Search


CRM Duplicates Real Time search is an Odoo partner and opportunities management tool. The app helps to prevent the appearance of contacts' and opportunities duplicates or to expose them. The tool can detect that the contact or an opportunity 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/opportunity 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. 

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

If you want to find duplicates only among contacts and don't need to search for the CRM duplicates, or if you don't have the CRM app installed in your Odoo database, then consider the app Contacts Duplicates Real Time search, which searches for only contacts duplicates.

Real-time search 

Configurable duplicates criteria 

 Duplicates detection by storable fields 

Soft and rigid duplicates 



Soft and rigid duplicates


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 partner or an opportunity is considered a duplicate if it satisfies any of the criteria. Any field or combination of fields on the contact's/opportunity's card can be considered to distinguish whether a contact/an opportunity is unique or a duplicate.

The tool lets you both strictly avoid duplicates and/or just warn of those according to the set rules. Use rigid criteria to fully exclude duplicates creation. Use soft criteria to only notify Odoo users of possible duplicates. The rules for partners and opportunities are applied separately. 

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 Settings > CRM > 'CRM 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 this record with the same value in the field.

After setting soft criteria you will see a mark 'N potential duplicates' and the button 'N Duplicates' on the object's card.


After setting rigid criteria, the tool will not let to save a contact/opportunity with the same value in chosen as rigid fields. If you try to save such a record, a pop-up warning appears. The warning shows titles of all detected duplicates, their unique ID, and matching fields. That allows you to find a duplicate easily, or to change the value in the matching fields of the currently created record in order to save it.




Configurable duplicates criteria


To configure the search settings go to Settings > CRM and scroll down to the section 'CRM Duplicates'. Here you will find the rules to detect records' copies.

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

To set the criteria to define contacts/opportunities duplicates:

1. Click on one of the fields 'Partner Soft Duplicates Fields', 'Partners Rigid Duplicates Field', 'Leads Soft Duplicates Fields', 'Leads 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).


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)  

If you added the same rule, for example, 'Email', in both soft and rigid fields, then the rigid search criteria will dominate and you will not be able to save a contact with identical value in the field.


Configurable contacts' duplicates criteria

To configure Contacts' rigid/soft search criteria:

1. Go to Settings > CRM and scroll down to the section 'CRM 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 must 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


Restrict the contacts duplicates 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 other 64. That will reduce the number of contacts to check and therefore will shorten the duplicates search time and minimize the performance issues (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.

Configurable opportunities' duplicates criteria

To configure Opportunities' rigid/soft search criteria:

1. Go to Settings > CRM and scroll down to the section 'CRM Duplicates'

2. If you want Odoo to let you save potentially the same opportunities, then select such criteria in the field 'Leads Soft Duplicates Field'

3. Choose fields that must be different in 'Leads Rigid Duplicates Field', for example, partner's name, website, or phone and a second opportunity with the same value will be impossible to save

4. Click 'Save' in the left top corner




Soft duplicates managing and merging


See the 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/opportunity.

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


Merging contacts

Based on duplicates found you can merge contacts 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

6. Click 'Merge'



Merging opportunities

Based on duplicates found you can merge opportunities 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 opportunity's card to see its duplicates and similar fields

2. Choose duplicate records

3. Click on an opportunity to open its card and see details before merging

4. Click 'Add a line' to add one more opportunity for merging

5. Click 'Merge'





Performance issues