Conceptos básicos: buscar y fusionar contactos duplicados

Titular de los derechos
Medialab-Prado

PARA VER CON IMÁGENES, DESCARGAR WORD.

Como en cualquier base de datos, en CiviCRM puede pasar que un mismo contacto esté duplicado. Puede estar duplicado por muchas razones: por ejemplo, que hayamos importado el contacto con nombre y dos apellidos (Francisco Fernández Heredia), pero esa misma persona se inscriba a un evento meses después con un diminutivo y sólo un apellido (Paco Fernández). Uno de los problemas que genera esto, además de una base de datos menos limpia, es que la información de membresía, de eventos en los que ha participado, de las relaciones que tiene con otros contactos… no esté centralizada y cuando consultemos uno de los dos duplicados, sólo obtengamos una información parcial.  

¿Qué hace CiviCRM con los duplicados?

CiviCRM permite definir unas reglas para establecer qué consideramos que es un duplicado. Algunas de estas reglas, como veremos más abajo, se aplicarán automáticamente (cuando añadamos un contacto o alguien se apunte a un evento, por ejemplo), pero también podremos usarlas en cualquier momento para buscar duplicados en el sistema. En el primer caso, si CiviCRM encuentra un contacto duplicado en función de las reglas que hemos establecido, los fusionará. En el segundo caso, será función nuestra decidir si los fusionamos o no, y en caso de que sí, qué campos queremos fusionar.

Las reglas se definen en > Contactos > Buscar y unificar contactos duplicados. Desde aquí, también podemos usarlas proactivamente, pulsando en “Usar regla”.

Las reglas de duplicados

CiviCRM cuenta con tres categorías de reglas para la eliminación de duplicados:

  • Unsupervised: esta es la regla que se aplica automáticamente cuando se crean nuevos contactos a través de un formulario de registro online (cuando una persona se registra a un evento, o se hace socia o dona a través de un formulario online, o rellena cualquier otro perfil). También cuando importamos participantes o contribuciones (cuando importamos contactos desde > Contactos > Importar contactos, nos permite elegir cuál de todas las reglas queremos aplicar).

La regla Unsupervised debería ser el criterio más estricto: deberíamos dejar en manos de CiviCRM la fusión automática sólo de los contactos que tengamos claro que son duplicados. Sin embargo, por defecto fusiona todos los contactos que comparten correo electrónico (por ejemplo, una pareja que los dos comparten el mismo correo electrónico).

El libro impreso recomienda el criterio estricto: deben coincidir nombre, apellido y un correo electrónico para considerarlos duplicados y fusionarlos. De esta forma, “Paco Fernández ffheredia@yahoo.es” y “Francisco Fernández ffheredia@yahoo.es” serían importados los dos porque apellido y correo coinciden, pero no el nombre, así que no los considera duplicados.

  • Supervised: es la regla que CiviCRM aplica para buscar posibles duplicados cuando se añaden contactos desde el administrador (Añadir contacto) o cuando se está editando la ficha de un contacto. CiviCRM reserva la modalidad Supervised para las ocasiones donde alguien va a poder pensar y decidir si un contacto es duplicado o no y actuar en consecuencia. El sistema alerta al usuario si el contacto que están creando coincide con otro para que o bien edite el contacto existente o bien continúe creando uno nuevo.

Este en teoría debería ser más flexible, por ejemplo, que muestre contactos que compartan correo electrónico. Si buscáramos con esta regla, nos saldría que “Paco Fernández ffheredia@yahoo.es” y “Francisco Fernández ffheredia@yahoo.es” son posibles duplicados.

  • General: Sólo podemos configurar una regla 'Unsupervised' y una 'Supervised' por cada tipo de contacto, pero podemos configurar tantos “General” como queramos para buscar posibles duplicados.

Configurando las reglas

Para determinar si dos contactos son duplicados, CiviCRM puede comprobar hasta cinco campos que especifiquemos. También podemos poner cuántos caracteres dentro de cada campo deben ser comparados. “Mike” y “Michael” serán el mismo contacto si la longitud es de 2 caracteres, pero no si es de 3. Si dejamos la longitud vacía, la comparación se hace en el campo entero.

Podemos poner en cada campo también un peso numérico que determina la importancia relativa de una coincidencia en ese campo. Cuando hay una coincidencia en un campo, el peso de ese campo se suma al peso total de esa regla. Después de que cada campo haya sido comprobado, si el peso total es igual o mayor que el umbral que hemos puesto para esa regla, los contactos comparados serán etiquetados como posibles duplicados.

En el Movimiento por la Paz, hemos establecido las siguientes reglas para individuos:

  • Nombre, Apellidos y Correo electrónico (Unsupervised). Los tres campos tienen que coincidir para que dos contactos se consideren duplicados y se fundan. Se aplica de forma automática cuando alguien se registra online y en las importaciones. Damos a cada campo un peso de 1 y el umbral lo establecemos en 3, para que sólo los tres son coincidentes sumen 3 y se considere posible duplicado.
  • Nombre y Correo electrónico (Supervised). Dejamos el que viene por defecto con CiviCRM. Nos sirve para encontrar duplicados donde el apellido no coincide, porque lo han escrito de un modo distinto o se han dejado parte fuera: García-Mochales vs García.
  • Apellidos y Correo electrónico (General). Nos sirve para encontrar duplicados de contactos que han escrito su nombre con diminutivos, abreviaturas, nombres compuestos, etc. Francisco Salazar Lara vs Paco Salazar Lara.
  • Nombre y Apellidos. Dos contactos con el mismo nombre y apellidos pero correos electrónicos distintos o uno con correo electrónico y otro sin él.

Limpiando la base de datos: aplicando las reglas

Para limpiar los listados de contactos, de vez en cuando podemos ir a > Contactos > Buscar y unificar contactos duplicados, y usar las distintas reglas. Pinchamos en el vínculo “Usar regla” y en la siguiente pantalla escogemos si la aplicamos sobre “Todos los contactos” o sobre los integrantes de algún grupo en concreto. Después damos a “Continuar” y nos devolverá un listado de todos los duplicados en función de la regla que hayamos usado (si los hay).

Cuando localicemos dos contactos que pensemos que son un duplicado, pinchamos en “unificar”. Nos llevará a otra ventana donde estableceremos qué campos se fusionan, y cuál de los dos contactos se elimina.

Cuestiones a tener en cuenta:

  • El contacto de la izquierda se eliminará y se quedará el de la derecha. Podemos pulsar en “Intercambiar posición del contacto original y del duplicado” para intercambiar las posiciones.
  • En las casillas bajo “Marcar todos” escogemos qué información queremos que el contacto original herede del duplicado. Pueden ser todas o no.
  • En el contacto original, si marcamos “agregar nuevo”, añadirá una nueva información a la ya existentem y ésta no se borrará. Si no la marcamos, o si no existe, se aplicará el criterio “overwrite”: es decir, la información del duplicado sobreescribirá la del original, sustituyéndola (lo que viene bien si la información del duplicado es una dirección actualizada, por ejemplo).

Una vez terminado, pinchamos en “Unificar” y ya tendremos un solo contacto.

En otras ocasiones, cuando estemos trabajando con listados de contactos, veremos que hay dos contactos que parecen ser un duplicado. Para fusionarlos, los seleccionamos, y del menú de acciones desplegable, escogemos “Unificar contactos” y pinchamos en “Ir”. Esto nos llevará a la pantalla de fusión que hemos visto más arriba.