← Proyectos

Automação de WhatsApp para CRM, com IA classificando

Script Python que consome a Evolution API, classifica as conversas com a API da Anthropic e alimenta o CRM sozinho, todo dia de manhã, sem nuvem no meio.

PythonAPI AnthropicEvolution APISQLite
Estado
En producción
Año
2026
Contexto
Produto próprio, em uso diário
07h30
Roda sozinho todo dia
100%
Local, sem serviço externo
Automação de WhatsApp para CRM, com IA classificando

Texto del proyecto disponible solo en portugués por ahora.

O problema

Todo o atendimento acontecia no WhatsApp, e o histórico ficava só lá. Saber quem perguntou sobre o quê, em que mês, e o que ficou combinado exigia rolar centenas de conversas. O dado existia — só não era consultável.

O que construí

  • Coleta — a Evolution API expõe as conversas; um script Python lê as mensagens novas desde a última execução.
  • Classificação — cada conversa passa pela API da Anthropic, que devolve o estágio do funil e um resumo estruturado.
  • Persistência — banco local, com deduplicação por mensagem para que reexecuções não inflem o histórico.
  • Agendamento — o Task Scheduler do Windows dispara às 07h30. Ninguém precisa lembrar de rodar.
  • Espelho de catálogo — consome a API pública do site e mantém um cache local, então a ficha do cliente já mostra o item sobre o qual ele perguntou.

Decisões técnicas

Simplificação que também resolveu privacidade. A primeira versão passava por um orquestrador de workflows na nuvem. Funcionava, mas era mais uma peça para manter e fazia dado de cliente sair da máquina sem necessidade. Trocar por um script agendado deixou o sistema mais simples e mais privado — a decisão rara em que as duas coisas andam juntas. O orquestrador foi aposentado.

Saída de IA tratada como entrada não confiável. A classificação vem de um modelo, então a resposta é validada contra um conjunto fechado de estágios antes de tocar o banco. Se vier algo fora do esperado, a conversa fica sem classificação em vez de gravar um valor inventado — prefiro campo vazio a dado errado que ninguém vai auditar depois.

Deduplicação na fonte. Reexecutar é normal (falha de rede, máquina desligada). Sem chave de deduplicação por mensagem, cada reexecução duplicaria o histórico.

Como verifiquei

Reexecução sobre o mesmo intervalo para confirmar que nada duplica; conferência manual da classificação de uma amostra de conversas contra o que eu sabia do caso real; e verificação de que o espelho do catálogo continua batendo com a API depois de o site mudar.