Fusionar contactos duplicados
Los contactos se duplican fácil: una persona escribe desde dos números, te manda un email, o vino dos veces por canales distintos. Brote detecta estos duplicados y te permite unirlos.
Cómo detecta duplicados
Sección titulada «Cómo detecta duplicados»Brote agrupa contactos por:
- Teléfono exacto (mejor señal, casi siempre indica misma persona)
- Email exacto (case-insensitive)
visitor_iddel widget (mismo browser que volvió en sesiones distintas)- Nombre normalizado (lowercase, sin acentos, sin espacios extras) —
pero solo cuando el contacto tiene
phoneoemail. Sin esos datos (visitantes anónimos del widget), Brote NO usa el nombre para detectar duplicados.
Si el mismo grupo aparece por dos criterios distintos (ej: phone + name), solo se muestra el match más confiable: phone > email > visitor_id > name.
Visitantes web anónimos
Sección titulada «Visitantes web anónimos»Cuando alguien escribe por el widget embebido (sin dejar nombre ni
contacto), Brote lo guarda como "Visitante web" con un visitor_id
UUID generado en su browser. Estos contactos no son duplicados entre sí
aunque compartan el nombre — son personas distintas.
Brote los reconoce porque están en la blacklist ANONYMOUS_NAMES
(Visitante web, Web visitor, Anonymous, Sin nombre, etc) y los
excluye del match por nombre.
Si quieres convertir un visitante anónimo en un contacto identificado, edítalo desde el panel lateral del inbox y agregale phone o email. Cuando el cliente vuelva y deje sus datos, Brote no lo confunde con otros visitantes anónimos.
Resolver duplicados
Sección titulada «Resolver duplicados»- Ve a Settings → Contactos → sección “Duplicados detectados”.
- Para cada grupo, te muestra los contactos con su lifecycle stage, datos de contacto y fecha de creación.
- Click “Quedarse con este” en el ganador → Brote fusiona los demás contra él.
Qué pasa cuando haces merge
Sección titulada «Qué pasa cuando haces merge»El ganador (to_id) queda intacto en sus campos completos. Los perdedores
(from_id):
- Conversaciones, tickets, notas, tareas, tags, custom fields y pagos se reasignan al ganador.
- Historia de lifecycle se conserva — todos los cambios de etapa de cada contacto pasan al ganador.
- Campos vacíos del ganador se rellenan con datos del perdedor (ej: el ganador no tenía email, el perdedor sí → el ganador queda con ese email).
- Tags y notas se mergean (la unión de ambos sets).
- Metadata del ganador prima — el perdedor queda guardado en
metadata.merged_frompara auditoría. - Finalmente, el perdedor se borra.
Casos comunes
Sección titulada «Casos comunes»Mismo cliente con dos teléfonos: pasaron de un Movistar a un Entel y ahora hay 2 contactos. Brote no los detecta automáticamente porque los números son distintos — vas a tener que hacer el merge manual desde la vista de detalle.
Cliente escribió por WhatsApp y por Instagram: te quedan dos contactos en canales distintos. Si comparten email o nombre exacto, Brote los detecta; si no, también hay que mergear manual.
Cliente con full name en mayúscula y otro en minúscula: Brote normaliza nombres, así que estos los agrupa solos.
Reporting
Sección titulada «Reporting»El historial de cada merge queda en metadata.merged_from[] del contacto
ganador (un array con los UUIDs perdidos) + metadata.merged_at (timestamp).
Útil si auditas cuántos duplicados resolviste este mes.