chaohub ← Voltar ao portfólio
Case real · Em produção

Agentes de atendimento no WhatsApp, sincronizados com o CRM, rodando sozinhos 24/7.

Dois agentes automáticos — um de acompanhamento e um de lembrete de treinamento — que leem o CRM, decidem o que precisa ser feito no dia e disparam mensagem no WhatsApp certo, sem depender de nenhum computador ligado.

VPS na nuvem systemd timers WhatsApp CLI CRM (API REST) Rede privada (Tailscale) Painel de monitoramento próprio
24/7rodando num servidor próprio, sem depender de PC ligado
2agentes automáticos com horário fixo de disparo
0duplicidade de registro — todo disparo confere o CRM antes de gravar
10 miné o intervalo máximo até o painel detectar uma queda de sessão

01O problema

Antes

Os agentes só rodavam se um computador específico estivesse ligado e com uma sessão aberta. Feriado, PC desligado ou instabilidade de rede: o disparo simplesmente não acontecia — e ninguém sabia até reclamação de cliente chegar.

Depois

Migração completa para um servidor na nuvem, com os agentes rodando por horário fixo (systemd timer), independente de qualquer máquina local. Um painel próprio mostra, em tempo real, se a sessão do WhatsApp está de pé — antes do próximo disparo, não depois.

02Como funciona

Arquitetura enxuta: nada de fila pesada ou infraestrutura desnecessária — só o que resolve o problema, fácil de manter sozinho.

CRMfonte da verdade
Agente 1acompanhamento diário
WhatsAppdisparo automático
CRMfonte da verdade
Agente 2lembrete de treinamento
WhatsAppdisparo automático
Painel de statuslê os dois agentes + sessão
Atualização automáticaa cada 10 min

03Decisões de engenharia que valeram a pena

Sem duplicar registro

Antes de gravar qualquer disparo, o agente confere se aquele contato já foi processado no dia — reprocessar (ex.: depois de um incidente) nunca duplica linha no CRM.

Contato "escondido" no CRM

Parte dos clientes falava por um número que só aparecia como contato secundário do negócio, não como contato principal — o agente ficava cego para eles. Passou a checar também os papéis secundários, o que recuperou uma fatia relevante de conversas por dia que simplesmente não entravam em nenhum lugar.

Suporte a número internacional

A validação de telefone só reconhecia o padrão nacional; qualquer coisa fora disso virava "sem contato" e era descartada. Ajustado para aceitar também números internacionais sem arriscar nenhuma regressão no caminho nacional (testado par a par antes de trocar).

Relatório que não mentia

O relatório diário classificava qualquer situação nova como "falha", mesmo quando o registro tinha sido gravado com sucesso por outro caminho — inflando o número de erro artificialmente. Reclassificado em três grupos (sucesso / informativo / falha real), igual no relatório e no painel, para os dois nunca mais baterem números diferentes.

Resiliência a queda de sessão

Um incidente de desconexão gerou um loop de tentativa de reconexão agressivo por horas até ser identificado manualmente. A automação ganhou limite de tentativa e intervalo entre reconexões — e o painel passou a expor o status da sessão antes do próximo disparo, não só depois de uma falha visível.

04Painel de monitoramento

Visão única dos dois agentes, com status da sessão do WhatsApp e reprocessamento pontual — sem precisar reprocessar tudo de novo por causa de um contato.

Sessão WhatsApp — ativa · sync ok
Agente 1 — Treinamentos
● rodou hoje · 1x
18
contatos processados
Agente 2 — Acompanhamento
● rodou hoje · 1x
42
contatos processados
Fila sem confirmação
● revisar
3
aguardando reprocessar

Tem um processo de atendimento parecido, hoje manual?

Se envolve CRM, planilha ou grupo de WhatsApp que alguém precisa lembrar de mexer todo dia, dá pra automatizar.

Agendar conversa