Detecção de Duplicados no Microsoft Dynamics CRM 4.0

Um problema bastante comum com que as organizações se deparam hoje em dia é a qualidade dos dados que são armazenados nas suas bases de dados, onde se inclui a base de dados de clientes.

Ao não serem implementadas regras e/ou políticas de tratamento e inserção de dados as organizações acabam por ficar à mercê dos seus utilizadores finais no que toca à qualidade dos dados inseridos no sistema, utilizadores esses que nem sempre dão a este tema a devida importância.

A menos boa qualidade dos dados pode, no limite, afectar a performance das organizações quer a nível de Marketing como também de Vendas e Serviço ao Cliente.

Nas implementações do Microsoft Dynamics CRM (MSCRM) este problema pode surgir inicialmente, nos casos em que são migrados dados de sistemas / bases de dados mais antigas, ou posteriormente e decorrente da utilização diária do sistemas por (nalguns casos) dezenas ou centenas de utilizadores.

O MSCRM possui na versão 4.0 funcionalidades que nos permitem evitar esses mesmos problemas de duplicação de dados em qualquer entidade do sistema incluíndo as “custom entities” (i.e. Contas, Contactos, Oportunidades, novas entidades, etc.).

As tarefas detecção de duplicados efectuada pelo MSCRM 4.0 são executadas assíncronamente pelo Microsoft CRM Asynchronous Processing Service.

O primeiro passo que deve ser tomado é o de ir aos “Settings” e na área de Data Management aceder à opção de Duplicate Detection (DD) Settings.

No ecrã apresentado deve ser escolhida a opção de para activar a DD e devem ser escolhidas as situações de detecção de duplicados desejadas de entre as três apresentadas: “Sempre que um registo é criado ou actualizado”, “Sempre que o cliente Outlook é sincronizado” e ainda “Durante a importação de dados”.

A detecção de duplicados no CRM deve ser configurada para cada organização presente no sistema visto que estas configurações são independentes de organização para organização.

As regras de detecção de duplicados devem ser definidas acedendo também aos “Settings” e à área de Data Management. Por defeito, o MSCRM 4.0 traz já três regras publicadas que podem no entanto ser “despublicadas”, alteradas ou até mesmo apagadas.

Para criarmos uma nova regra de detecção de duplicados basta entar na área Duplicate Detection Rules e carregar em “New”.

Aquando da criação da regra devemos definir a entidade a que se refere a regra e o critério que o MSCRM deve utilizar para indicar um registo como duplicado de outro. Na figura podemos ver um exemplo simples de uma regra para detectar contactos com o mesmo número de telemóvel. Depois da regra ser criada a mesma deve ser publicada antes de poder ser usada.

A detecção de duplicados é executada tendo em conta todas as regras publicadas para uma determinada entidade pelo que não é possível seleccionar que regras queremos utilizar a cada vez que é executada a detecção de duplicados.

Depois de termos criado e publicado as regras de DD desejadas podemos então passar à criação dos “jobs” de DD. Estes jobs podem ser criados na área de Data Management referida anteriormente, através da Área de Trabalho acedendo a “Detecção de Duplicados” no painel do lado esquerdo ou ainda em qualquer vista de registos de uma qualquer entidade que tenha alguma regra de DD publicada.

No primeiro passo do wizard devemos dizer quais os critérios para seleccionar o conjunto de registos que queremos usar para encontrar eventuais duplicados. Continuando o exemplo anterior, podemos escolher detectar duplicados de entre os contactos que tenham um numero de telemóvel definido (o botão de preview permite-nos pré-visualizar os registos encontrados).

De seguida é possível definir a data e hora da primeira detecção de duplicados, a periodicidade com que este job deve ser executado bem como se queremos enviar um e-mail para algum utilizador sempre que este job for executado.

É ainda importante referir que os previlégios do utilizador que está a executar o “job” são tidos em conta aquando da visualização dos duplicados detectados.

A Detecção de Duplicados só pode ser executada para uma entidade de cada vez, ou seja, cada “job” que é criado refere-se apenas a uma entidade. Para detectar duplicados em mais do que uma entidade devem ser executados tantos “jobs” quanto as entidades em causa.

Depois do job ter terminado podemos então verificar se foram encontrados duplicados e em caso afirmativo escolher uma das várias opções disponíveis: fazer o merge de vários registos, apagar ou desactivar alguns registos ou editar cada um dos registos.

Apenas a título de curiosidade, para a implementação das regras de detecção de duplicados podem ser usados algoritmos como por exemplo o algoritmo fonético “Soundex” (https://en.wikipedia.org/wiki/Soundex).

A implementação deste algoritmo no MSCRM 4.0 é possível e passaria pela criação de um novo atributo na entidade desejada em conjunto com algum código Javascript.

André Mestre