Tem projetos que a gente começa, prototipa e, engolidos pela rotina, acabam esquecidos. A ideia de criar um bot de WhatsApp para a TI do hospital onde trabalho é um desses casos. Cheguei a prototipar no ano passado, idealizei o fluxo, escrevi algumas linhas, mas a vida tomou outros rumos e acabei não evoluindo.
As coisas mudaram de figura recentemente, quando assumi a supervisão do setor. Um hospital é um ambiente inerentemente caótico e barulhento. A impressora que atola papel, o sistema que trava, a urgência constante nos setores. Assumir a liderança traz um peso diferente para os ombros, e percebi que precisava dar uma ordem nessa confusão se quisesse ter alguma paz para a equipe trabalhar. Foi aí que resgatei o projeto do bot.
A premissa era simples: o usuário manda a mensagem, o bot faz uma triagem, pede os detalhes e abre o chamado automaticamente. Mas a prática sempre exige um bocado de suor.
Para começar, nosso sistema de chamados (o GLPI) rodava uma versão esquecida no tempo, lá de 2015. Tive que atualizar todo esse legado antes de sequer pensar no bot. Olhar para sistemas antigos, assim como sujar as mãos na mecânica de um carro, é um exercício de paciência que testa nosso apreço por entender como as coisas realmente funcionam por baixo do capô.
Depois, veio a integração em si. Alguns dias e madrugadas desenhando fluxos e conectando a “API ao WhatsApp” usando o Node.js e a biblioteca Baileys. Eu poderia ter seguido pelo caminho conhecido e usado o whatsapp-web.js, que já havia utilizado em outro projeto. Mas havia algum tempo que eu tinha curiosidade sobre o Baileys. Gostei da ideia de uma solução mais enxuta, sem a necessidade de manter um navegador inteiro rodando em segundo plano.
Nem tudo saiu de primeira. Essa semana mesmo, esbarrei num bug curioso: o bot simplesmente ignorava a primeira mensagem de quem entrava em contato. Um “Oi” caía no vazio. Depois de algum tempo investigando, descobri uma combinação de travas que eu havia implementado com o jeito que a biblioteca lida com determinados eventos de conexão e sincronização.
Quando finalmente isolei o problema, removi o que não precisava estar ali e a engrenagem girou macia, fiquei alguns minutos apenas olhando o terminal. O bot estava lá, independente, abrindo chamados, chamando a equipe, enviando atualizações. Pela primeira vez, a ideia que passou meses esquecida num repositório parecia pronta para encarar o mundo real.
Acho que programar, no fundo, é um pouco sobre isso. Escrever dezenas de linhas de código, lidar com a frustração de um erro bobo e o cansaço mental, para no fim comprar um pouco de silêncio e previsibilidade para os dias. E num ambiente onde quase tudo é urgente, previsibilidade vale ouro.
Amanhã ele entra em produção. Se tudo correr bem, vai comprar um pouco de silêncio para a equipe. Se não correr, pelo menos já sei o que vou fazer nas próximas madrugadas.
P.S.: Configurei o bot para não exibir o status “Online”. Ele lê as mensagens, abre chamados, mas no modo “fantasma”, entregando apenas os dois tiques cinzas de volta para quem enviou. Um pouco de discrição faz bem.




