O Smart Merge detecta automaticamente contatos duplicados (mesmo email, telefone, ou nome parecido) e te ajuda a unir num só, preservando o histórico de conversas, tags, cards do CRM e canais vinculados.
O que é
Duplicado acontece. Cliente preenche WebChat com email pessoal, depois manda WhatsApp com número novo, depois liga e o atendente cria contato manual sem ver o anterior — pronto, 3 cadastros pra mesma pessoa. O Smart Merge identifica isso e oferece união em alguns cliques.
Apesar do nome, não é IA generativa. É um algoritmo determinístico que compara campos com critérios objetivos e nível de confiança previsível.
Como a detecção funciona
O sistema procura duplicados em 3 níveis:
| Critério | Como compara | Confiança |
|---|---|---|
| Normalizado (espaços removidos, lowercase) | ~95% | |
| Telefone | Só dígitos, com variantes do código do país (55 vs sem 55 na frente) | ~85% |
| Nome | Distância de Levenshtein — tolera erros de digitação ("Joao Silva" ≈ "João Sliva") | ~65% |
Quando A casa com B por email e A casa com C por telefone, o sistema entende que A+B+C são o mesmo cliente (agrupamento transitivo).
Como usar
Em Contatos → Smart Merge (botão sparkle):
- Sistema escaneia toda a base e lista grupos de duplicados detectados.
- Pra cada grupo, mostra os contatos com confiança da detecção e o motivo (email igual? telefone? nome parecido?).
- Você revisa cada grupo — não é automático. Você decide quais grupos juntar e quais ignorar.
- Pra cada grupo a unir, escolhe campos — Cherry-pick. Pra cada campo (nome, email, empresa, endereço, etc.), você decide qual contato fornece o valor final. Útil quando um cadastro tem nome formal e o outro tem só nick.
- Confirma a união. O sistema unifica em segundos.
O que sobrevive ao merge
Contato primário — Mantido. É escolhido por (1) quem tem a conversa mais antiga, (2) quem tem mais conversas, (3) menor ID. Você pode sobrescrever manualmente.
Contato secundário — Some (soft-delete) depois que tudo dele migrou.
O que migra do secundário pro primário:
| Item | Migra? |
|---|---|
| Conversas em todos os canais (WhatsApp, Telegram, Email, etc.) | ✓ |
| Tags | ✓ Unifica (tags do secundário viram tags do primário) |
| Cards do CRM (workspaces) | ✓ |
| Eventos da Agenda e lembretes | ✓ |
| Tarefas, arquivos, notas internas | ✓ |
| Touchpoints de atribuição | ✓ |
| Canais vinculados (WhatsApp/Telegram identifiers) | ✓ |
| Campos do cadastro | ✓ Conforme cherry-pick |
Se as duas instâncias do contato tinham conversa aberta ao mesmo tempo, elas são consolidadas em uma só — mensagens viram thread cronológico unificado. Um aviso aparece antes de confirmar pra você saber que isso vai acontecer.
Migração de canais — detalhe importante
Cada contato pode ter múltiplos canais vinculados (WhatsApp Cloud do telefone X, Telegram username Y, Email Z). Quando você mescla:
- Canais únicos do secundário migram pro primário. Resultado: o contato primário passa a "ver" mensagens novas que chegariam pelo canal antigo.
- Conflito raro (mesmo
external_idem ambos) — Esse cenário é raro, e quando acontece o canal do secundário é deletado. Mensagens futuras nesse canal específico chegam só pro primário a partir do merge.
Na prática: cliente que falava com você por 2 números de WhatsApp diferentes (cadastrados como contatos separados) vira um contato só com histórico completo de ambos os números.
Pegadinhas comuns
- Smart Merge é IRREVERSÍVEL. Não tem "desfazer merge". O contato secundário sofre soft-delete permanente. Toda atividade é registrada em log de auditoria, mas reverter exige restauração manual via banco — não é caminho usual.
- Conversa aberta + conversa aberta = uma só. Se cliente está conversando com você em duas conversas separadas (telefones diferentes vinculados a dois contatos duplicados) e você mescla, vira uma conversa única. Mensagens se reorganizam por timestamp. Não confunda o cliente — termine ou paralelize antes de mesclar.
- Detecção não vê CPF/CNPJ. Os critérios atuais são email, telefone e nome. Se você tem 2 cadastros do mesmo CNPJ mas com email/telefone/nome diferentes, o sistema não detecta. Mescle manualmente.
- Confiança 65% (nome) é palpite. Sistema sugere mas você revisa. "João Silva" e "Joao da Silva" podem ser pessoas diferentes. Em dúvida, deixe pra revisão manual em vez de mesclar.
- Não notifica o cliente. Cliente não fica sabendo que você unificou 2 cadastros dele. Não há mensagem automática.
- Webhooks externos podem precisar de ajuste. Se você tem integração que dispara em
contact.updated, ela vai receber atualização do primário, mas pode esperar ID antigo do secundário (que foi deletado). Reveja integrações de CRM externo após primeiro merge grande.
Boas práticas
- Rode Smart Merge mensalmente — Mantém base limpa sem virar projeto gigante.
- Comece pelos casos óbvios — Email idêntico (confiança 95%) primeiro. Nome parecido (65%) por último, com revisão manual cuidadosa.
- Não mescle sem revisar. Apesar do nome "Smart", você é quem decide. Sistema só sugere.
- Cherry-pick com cuidado. Email principal vai virar o do contato unificado — escolha o mais usado/atual. Mesmo pra telefone.
- Combine com auditoria de tags. Após merge, o contato ganha tags somadas — pode acabar com "Lead-Frio" + "Cliente-Pro" no mesmo cadastro. Limpe inconsistências.
- Em base grande (10k+ contatos), primeiro merge pode listar centenas de grupos. Não tente fazer tudo num dia. Resolva os de alta confiança e deixe revisão de baixa pra rodada futura.