Como automatizei o financeiro da minha empresa com IA e Node.js

Guilherme Capitão

Guilherme Capitão

5 min de leitura
https://prod-files-secure.s3.us-west-2.amazonaws.com/08f749ff-d06d-49a8-a488-9846e081b224/566cf1ff-0e33-4470-a9f7-cf0f00a53c45/automacao-financeira-node-js-ia-rocketseat.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB4665K3EA7BD%2F20260407%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260407T023250Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEBEaCXVzLXdlc3QtMiJIMEYCIQD0yMIbII1uBzzOQii9sRR3htrUwsP1iWDJyXTWxHjMoAIhAMVjIZYYTNBZlZCxH0aUkxuyFoIeEmWjpCzP9Bj9j%2F%2F5KogECNr%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQABoMNjM3NDIzMTgzODA1IgzQGiYG69QUa5gUycAq3AP%2Fvae56MkTRgcOZeg3nFTZlYIeKK%2FEyUWb%2BRKGgJGZurjsFrYV7NC6V2CSgm95L380ZZBIB8jXAim87FzB4s%2B0KEenvSS0QnWI9F7yJqmpxbUk%2ByGjrm0zbB5MFqytmjWqkyaB%2BOaPNLgp19eAyWID0T1%2FmERBe2Iaw8Hwkf1WKjxqHcBbFLNkDvVf9LSDI3ACTeq%2BBd67mACvZrRJ1BWdtP3lDrxz5GN8TqcirC0Gj9%2FN%2BALEqrXpghjPLYshjD%2FcBq%2BC%2BV0eWQjC%2F3kYC6VP3nL95HmVE%2F9nRm4uWOOeQ4yy8I0UIGE8mzxB%2BCQmASd9SByl5vSyeLCW2aQ9orw96zHWj7gNL%2BXu0VkV0OZAzNqsaPhP3MAcTft%2BysOpvM6xOEWHBJbTRG7o41v6txEkHgSsGKNJUsU2LnWR%2F%2F%2BneIVv2HkfDiDFxEgnq7gF7uidbQpagbhZH3n9aMUJstbb1xgCYP%2BE%2BCPGnTlNEyLfCOc9F%2FvhP91mK5c%2Bvk5NLU8EoY8BWPFbGHOBbz%2FKQD18xOhLftmZ3xmzOGPgyprXoZLJPHh94zVDlc1LH298DLFuXSEWsZ8TYr6AAAgGpZ2xF4SCxEBG9Qs1YtT0aLJbSY7DH2WlX%2B8NgjqKNTCerNHOBjqkAbMW8K1NRl%2FFhOyD0f1a5fkT0g9mFxYuC8DITG87MPUv6sm%2FMl7s9JawWsewRVNhi8mZzT0lGJZL%2Bsh87p%2FJosko3SGML6Z8MpTzYdOJHOPrQokmMLVb1PA8qi4bxreqq1rkJcjzVDlACnGOT%2Ft9Y297L4f82sVfNCyXGM9OsugjZZ0K3GT47n%2FqssvIlyK7dQ8rPLoBoUUJpacY3VCZerm3mPNV&X-Amz-Signature=96886d03ee593ddbc392345860e96cc72d57d9bf9b9e1f8582ac17d6b24baaa8&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject
Fala, dev! Tudo maravilha por aí? Guilherme Capitão na área! 🚀
Sabe aquela história de que ter background de dev e, ao mesmo tempo, estar no meio da operação da empresa te dá superpoderes? É a mais pura verdade! Você sente a dor do processo na pele e já começa a arquitetar a solução na cabeça.
Aqui na Rocketseat, o nosso financeiro funcionava daquele jeito clássico que muita gente conhece. As notas fiscais chegavam por e-mail, a galera do financeiro abria os PDFs, extraía os dados na mão e mandava para a liderança aprovar. A liderança conferia tudo, respondia o e-mail aprovando e, depois de toda essa saga, alguém digitava as informações no Omie, o nosso ERP. Parece até brincadeira de 1º de abril, né? Mas era a nossa realidade diária.
Como eu cuido da área de comunidade e a gente trabalha com muitos influenciadores, dezenas de NFs pingavam para mim toda semana. Eu precisava abrir PDF por PDF, caçar o contrato, ver se o valor batia, aprovar e torcer para a thread de e-mail não se perder no limbo. Status da nota? Um verdadeiro mistério para todo mundo.
A gente até migrou para o Pipefy, o que deixou o fluxo visual e muito mais organizado. Mas adivinha? O trabalho manual, o preenchimento campo por campo e o roteamento na base do "eu acho que é fulano" continuavam lá. Eu sentia essa dor todo santo dia e sabia que a gente podia codar uma solução sensacional para isso.
Neste artigo, vou te mostrar como eu construí uma automação de ponta a ponta com IA, as decisões técnicas que tomei, as armadilhas que a documentação não te conta e como a IA foi o grande acelerador desse projeto. Bora lá!

Antes de codar: entender o processo é o trabalho de verdade

Eu já vivia o problema, mas antes de abrir o editor de código, fui sentar com o time do financeiro. Passei uns dois dias assistindo o processo com os olhos deles e anotando cada detalhe.
Mesmo com o Pipefy, cada nota levava uns 8 minutos para ser preenchida. Rolavam erros, notas duplicadas e, para saber quantas notas a gente tinha processado, alguém precisava contar os cards na mão. Anotar as exceções foi o que salvou o projeto. Saber que o CNPJ às vezes vem com pontuação e às vezes não, é o tipo de sacada que você só pega conversando com quem tá na trincheira.

Por que fui de webhooks e não de automações do Pipefy

O caminho mais fácil seria usar as automações nativas da ferramenta. Mas, cá entre nós, pacotes de automação são caros, a lógica fica presa na interface deles e qualquer manutenção vira uma dor de cabeça.
Fui direto para os webhooks via API GraphQL! Toda vez que um card é criado ou editado, um POST bate no meu servidor. A lógica fica toda no meu código, bonitinha, testável e versionada.

O comportamento que descobri na prática

Sabe aquela pegadinha de Dia da Mentira? Foi o que a API do Pipefy fez comigo. O webhook de card.field_update deveria trazer o novo valor do campo no payload. O campo até vem, mas o valor chega vazio! Perdi horas achando que o código estava errado. A solução foi verificar o array de campos e, se o valor não estivesse lá, fazer um getCard via API. Uma chamada extra, mas que resolveu a parada.

O loop infinito que você vai encontrar

Se o seu código escreve em um campo via API, o sistema dispara um webhook de atualização. Seu servidor recebe, processa, escreve de novo... e pronto, você criou um loop infinito!
Para resolver isso, criei um mapa em memória das escritas recentes com um TTL (Time to Live) de 15 segundos. Se o webhook chega e o campo foi alterado pelo nosso próprio sistema, a gente ignora. Juntei isso com um debounce de 5 segundos para processar as edições em lote. Código liso e performático!

Fila de jobs no PostgreSQL

A integração com o ERP pode falhar (API fora do ar, timeout). Precisamos de retry. Implementei uma fila de jobs direto no PostgreSQL usando SELECT ... FOR UPDATE SKIP LOCKED.
Coloquei um backoff exponencial (1min, 5min, 15min, 1h, 4h). Precisa de Redis ou RabbitMQ? Nada disso! Para algumas dezenas de jobs por dia, não faz sentido subir infraestrutura extra. Comece simples!

A stack e por que escolhi cada coisa

  • Node.js + TypeScript: Tipagem nativa que salva a nossa vida.
  • Fastify 5: Excelente para rodar em serverless na Vercel sem precisar de gambiarras.
  • PostgreSQL no Neon: Serverless, sem dor de cabeça para gerenciar servidor.
  • Drizzle ORM: Queria muito testar o Drizzle em um projeto real e a experiência foi incrível.
  • React 19 + Vite 6: Para o front-end voar.
  • Vercel: Deploy descomplicado com um simples git push.

IA no sistema: extração de dados e geração de código

Extração de notas fiscais

Quando o PDF chega, o sistema manda a imagem para um LLM pedindo os campos específicos (CNPJ, valor, fornecedor). O modelo devolve um JSON certinho com um score de confiança.
Três sacadas importantes aqui:
  • Usamos o OpenRouter para gerenciar o modelo (Gemini 2.5 Flash). Trocar de IA é só mudar uma variável de ambiente.
  • Sempre tenha um Fallback. Se a IA não conseguir ler a imagem, o card fica vazio para preenchimento manual. O processo não pode travar!
  • Aproveite o Score de confiança. Notas com score alto vão direto para aprovação. Score baixo cai para revisão humana.

IA na geração do código: o que muda na prática

Gerei boa parte desse sistema usando o Claude Code. Coisas chatas como montar a estrutura do webhook ou os schemas do Drizzle saíram em poucas horas. A IA é fantástica para boilerplate e testes.
Mas o desenvolvedor continua sendo o piloto! A IA não sabe o seu volume de produção, não conhece as regras de negócio e não entende as restrições da sua infraestrutura. Ela acelera o código, mas a direção e a arquitetura são responsabilidades suas.

Lógica de negócio que não precisa de IA

Nem tudo precisa de Inteligência Artificial, dev!

Memória de fornecedor

Se o time preenche a categoria de um CNPJ na primeira nota, o sistema grava. Na segunda nota, já vem tudo preenchido automaticamente. Uma tabela simples de defaults resolveu algo que muita gente tentaria complicar com Machine Learning.

Roteamento de aprovação

O sistema liga centro de custo + categoria e mapeia direto para a liderança responsável. Tudo em memória, sem chamadas externas. Rápido, barato e eficiente.

O dashboard que vendeu o projeto

Eu nem ia fazer um dashboard agora, mas foi ele que brilhou os olhos do time!
Criei uma tela em React mostrando as notas processadas, o histórico e a fila de retry. A confiança da equipe na automação vem de ver a coisa funcionando na tela. Se você automatiza um processo, dê visibilidade a ele!

Os números que não são mentira de 1º de abril

Dá uma olhada no impacto dessa automação. Os números impressionam:
Métrica
Antes
Depois
Tempo por nota fiscal
5-8 min
~30 segundos
Erros de preenchimento
~10-15%
Menos de 1%
Notas duplicadas na semana
1-2
Zero
Roteamento de aprovação
Manual
Automático
Visibilidade
Nenhuma
Tempo real
Estamos economizando mais de 500 horas por ano com um custo de infraestrutura super baixo (cerca de R$ 2.000 anuais). O time financeiro deixou o trabalho robótico de lado e agora foca em análises e decisões estratégicas.

Se você está pensando em fazer algo parecido

Olhe para a sua empresa agora. Onde a galera está copiando e colando dados? Esse é o seu alvo! Você não precisa de um framework maluco, só de webhooks, um banco de dados simples e muita vontade de entender o processo de quem trabalha ali.
Use a IA para acelerar o seu código, mas lembre-se: a segurança e a responsabilidade do que vai para produção continuam sendo totalmente suas.

Conheça o Rocketseat Para Empresas

Oferecemos soluções personalizadas para empresas de todos os portes.

Guilherme Capitão

Guilherme Capitão

Coordenador de Comunidade @Rocketseat | Programação | Comunidade | Tecnologia

Imagem contendo uma carta e um símbolo de check
NewsletterReceba conteúdos inéditos e novidades gratuitamente