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 duplicate contacts or to expose them. The tool detects duplicates in contacts when you create or observe a record, searching for similarities in real time.
Flexibly set the criteria to find duplicates, and strictly forbid saving the same contact or warning 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 a 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 opportunity duplicates.
The multi-company mode is supported, and the settings are applied to each company separately.
Real-time search
Smart partners consideration
Configurable duplicate criteria
Soft and rigid duplicates
Configurable duplicates criteria
Duplicates are defined according to the rules that you set up. A rule is a field according to which an item is considered a copy, for example, an email or a name. A customer is regarded as 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 that serves as a search criterion to find contact duplicates. Only the chosen search criteria contact card fields will be checked for matches.
To set the criteria to define contacts' duplicates:
1. Click on the button 'configure duplicates criteria' in one of the sections 'Soft Duplicates Criteria' or 'Rigid Duplicates Criteria'
2. Choose one of the stored fields from the list, or click 'Search more' to see the complete 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 section 'Soft Duplicates Criteria'
3. Choose fields that are required to be different in the section 'Rigid Duplicates Criteria', for example, phone or email, and a second contact with the same value will be impossible to save.

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 those of other contacts and searches for matches. To be considered as a duplicate, the contacts' field should be identical, for example, '123'='123'. Even a slight difference will result in considering a contact as unique. 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 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 identical value in the field.

Restrict the search only to companies and stand-alone individuals. If the option is checked, Odoo will search only among customers without a parent contact. For example, if you have 200 contacts that are divided between 15 parent companies and 50 more individual 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 duplicate search time (see Performance issues).

Skip rigid duplicate contact checks under the Superuser when contact creation should be smooth and uninterrupted. If the option 'Do not check rigid contact duplicates under the Superuser' is enabled, the system will not apply rigid duplicate checks when a contact is created under Superuser rights. It can be helpful in workflows where automatic or backend processes require uninterrupted execution, for example:
1. Guest checkouts in your eCommerce store
2. Public form submissions (e.g., “Contact us”) that create contacts automatically
3. Importing contacts in bulk.
Some third-party modules may also create contacts using Superuser rights. In such cases, duplicate protection might be unintentionally skipped.

The module supports multiple companies, and duplicates are searched within a particular company. However, the duplicate search settings are applied to all companies on the platform at once.
There might be equal contacts related to different Odoo companies, and they will not be considered duplicates.
Soft and rigid duplicates
The tool lets you both strictly avoid duplicates and/or warn of those according to the set rules. A rule is a field by which an item is considered a copy, for example, an email or a name. Use rigid criteria to exclude duplicate creation entirely. 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 to '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 a duplicate of 'agro').
You can set the soft and/or rigid criteria in General settings > Contacts Duplicates. If you choose the same field for 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 allow saving a contact with the same value in the chosen 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. This allows you to easily find the contact or modify the value in the matching fields of the currently created one to save a new partner.
Optionally, it is possible to avoid checking rigid duplicates when saving an opportunity/ contact under the Superuser. In this way, various cases of auto-creation (e.g., guests' checkouts in eCommerce) will become possible (see Configurable duplicates criteria).

Soft duplicates managing and merging
See the contact duplicates from the list view and the 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 for each contact.
You can also filter contacts by potential duplicates; to do this, click on the 'Filters' above the contacts view and choose 'Potential Duplicates'.

Optionally, you can turn off the calculation of the number of soft duplicates when opening a kanban, tree, or form view. It is beneficial when you need to speed up the view loading since the app will not calculate potential duplicates for each shown record. The setting does not influence the search filter.
To turn off the soft duplicates count in Kanban and Tree view:
1. Go to General Settings and scroll down to the section 'Contacts Duplicates'
2. Tick the option 'Do not show soft duplicates count (tree and kanban view)'
3. Click 'Save' in the top left corner.
To turn off the soft duplicates count in form view:
1. Go to Settings and scroll down to the section 'Contacts Duplicates'
2. Tick the option 'Do not show soft duplicates count (form view button)'
3. Click 'Save' in the top left corner.

Based on duplicates found, you can merge those using Odoo's standard partner merging tools. To that end:
1. Click on the line 'N Potential duplicates' or on the button 'N Duplicates', where N is the 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 you create or open a contact from any interface view, such as kanban, list, or mapping view, 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, 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 the kanban view with 1000 contacts, the tool searches for contacts that match your criteria among all of them. It may result in slowdowns of the following operations:
1. Opening kanban and list views of Odoo contacts. To avoid that, you may turn off showing the counter for a corresponding view.
2. Saving changes after updating partners. To avoid that, assign only soft parameters and neglect rigid ones.
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 duplicate contacts or to expose them. The tool detects duplicates in contacts when you create or observe a record, searching for similarities in real time.
Flexibly set the criteria to find duplicates, and strictly forbid saving the same contact or warning 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 a 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 opportunity duplicates.
The multi-company mode is supported, and the settings are applied to each company separately.
Real-time search
Smart partners consideration
Configurable duplicate criteria
Soft and rigid duplicates
Configurable duplicates criteria
Duplicates are defined according to the rules that you set up. A rule is a field according to which an item is considered a copy, for example, an email or a name. A customer is regarded as 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 that serves as a search criterion to find contact duplicates. Only the chosen search criteria contact card fields will be checked for matches.
To set the criteria to define contacts' duplicates:
1. Click on the button 'configure duplicates criteria' in one of the sections 'Soft Duplicates Criteria' or 'Rigid Duplicates Criteria'
2. Choose one of the stored fields from the list, or click 'Search more' to see the complete 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 section 'Soft Duplicates Criteria'
3. Choose fields that are required to be different in the section 'Rigid Duplicates Criteria', for example, phone or email, and a second contact with the same value will be impossible to save.
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 those of other contacts and searches for matches. To be considered as a duplicate, the contacts' field should be identical, for example, '123'='123'. Even a slight difference will result in considering a contact as unique. 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 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 identical value in the field.
Restrict the search only to companies and stand-alone individuals. If the option is checked, Odoo will search only among customers without a parent contact. For example, if you have 200 contacts that are divided between 15 parent companies and 50 more individual 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 duplicate search time (see Performance issues).
Skip rigid duplicate contact checks under the Superuser when contact creation should be smooth and uninterrupted. If the option 'Do not check rigid contact duplicates under the Superuser' is enabled, the system will not apply rigid duplicate checks when a contact is created under Superuser rights. It can be helpful in workflows where automatic or backend processes require uninterrupted execution, for example:
1. Guest checkouts in your eCommerce store
2. Public form submissions (e.g., “Contact us”) that create contacts automatically
3. Importing contacts in bulk.
Some third-party modules may also create contacts using Superuser rights. In such cases, duplicate protection might be unintentionally skipped.
The module supports multiple companies, and duplicates are searched within a particular company. However, the duplicate search settings are applied to all companies on the platform at once.
There might be equal contacts related to different Odoo companies, and they will not be considered duplicates.
Soft and rigid duplicates
The tool lets you both strictly avoid duplicates and/or warn of those according to the set rules. A rule is a field by which an item is considered a copy, for example, an email or a name. Use rigid criteria to exclude duplicate creation entirely. 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 to '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 a duplicate of 'agro').
You can set the soft and/or rigid criteria in General settings > Contacts Duplicates. If you choose the same field for 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 allow saving a contact with the same value in the chosen 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. This allows you to easily find the contact or modify the value in the matching fields of the currently created one to save a new partner.
Optionally, it is possible to avoid checking rigid duplicates when saving an opportunity/ contact under the Superuser. In this way, various cases of auto-creation (e.g., guests' checkouts in eCommerce) will become possible (see Configurable duplicates criteria).
Soft duplicates managing and merging
See the contact duplicates from the list view and the 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 for each contact.
You can also filter contacts by potential duplicates; to do this, click on the 'Filters' above the contacts view and choose 'Potential Duplicates'.
Optionally, you can turn off the calculation of the number of soft duplicates when opening a kanban, tree, or form view. It is beneficial when you need to speed up the view loading since the app will not calculate potential duplicates for each shown record. The setting does not influence the search filter.
To turn off the soft duplicates count in Kanban and Tree view:
1. Go to General Settings and scroll down to the section 'Contacts Duplicates'
2. Tick the option 'Do not show soft duplicates count (tree and kanban view)'
3. Click 'Save' in the top left corner.
To turn off the soft duplicates count in form view:
1. Go to Settings and scroll down to the section 'Contacts Duplicates'
2. Tick the option 'Do not show soft duplicates count (form view button)'
3. Click 'Save' in the top left corner.
Based on duplicates found, you can merge those using Odoo's standard partner merging tools. To that end:
1. Click on the line 'N Potential duplicates' or on the button 'N Duplicates', where N is the 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 you create or open a contact from any interface view, such as kanban, list, or mapping view, 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, 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 the kanban view with 1000 contacts, the tool searches for contacts that match your criteria among all of them. It may result in slowdowns of the following operations:
1. Opening kanban and list views of Odoo contacts. To avoid that, you may turn off showing the counter for a corresponding view.
2. Saving changes after updating partners. To avoid that, assign only soft parameters and neglect rigid ones.