Duplicate Contacts and Unique Fields

In order to reduce duplicate contact records, it would be useful to be able to specify unique contact fields (such as mobile phone number, or a particular custom field), similar to how email addresses are handled as unique identifiers. If the client needs a full-fledged solution for this across their entire system, this is difficult to do from a purely technical level. Most clients simply train their agents to first search for existing contacts and have a business process for merging duplicate contacts when manually found in the system, which is good enough for most.

That said, here are the techie considerations if you want to try to tackle a full solution. There's no way to do this at a base DB level prior to a contact being created or updated in the system, but there are two approaches to consider, both of which require a fair amount of effort and thought to ensure edge-cases are handled. You might want to consider using a combination of both.

Approach 1 - Handle during Input

Restrict and add logic to any input channels where contacts could be created or updated. The following standard channels could be handled as described:

  1. Customer Portal Pages - Add custom logic in a CP widget and CP hook to search for existing contacts given custom criteria, and handle accordingly
  2. Techmail - Shouldn't need to be handled, as only email address and name fields are populated
  3. Agent Console - Develop business processes, workspace rules, and/or custom add-ins to ensure that new contacts are not created without first searching for an existing one by the custom criteria
  4. External Integrations - External integrations that create contacts will need to first query and lookup by the custom criteria prior to creating or updating contacts

Approach 2 - CPM

Use a CPM in the back-end, to try to reconcile and manage this for all input channels at once. At the time a contact is created or updated, search to see if a contact already exists given the custom criteria. At this point, you could either flag the contact to be manually reviewed, or attempt to remedy programatically by merging the newly created contact data with the pre-existing contact. This quickly gets very complicated especially on contact update, considering 1) you'll need to merge sub-objects like incidents and CBOs 2) data such as transaction history cannot be moved from one contact to another.


How can I achieve this for mobile number with business rule in Agent Console

Zircon - This is a contributing Drupal Theme
Design by WeebPal.