3 min de leitura

Como construímos o pipeline que classifica nossos leads com IA

Bastidores do pipeline que classifica cada lead inbound do nosso site: arquitetura, defesa contra prompt injection, validação de output e por que a IA não envia nada sozinha.

iaautomacaoleadsnextjs

Todo formulário de contato gera o mesmo trabalho invisível: ler, avaliar o fit, decidir a resposta e redigir o email. No nosso site, esse trabalho era do founder, competia com entrega e atendimento, e lead quente esfria em horas. Em maio de 2026 automatizamos o fluxo inteiro do jeito que vendemos: uma automação com IA dentro do nosso próprio site.

Uma chamada de LLM, não um agente

A primeira decisão foi de escopo: isso não precisava ser um agente autônomo. O trabalho é bem definido (avaliar um formulário contra critérios conhecidos), o input é estruturado e o output também. Uma única chamada de modelo dentro do fluxo da API, com prompt versionado no repositório, resolve. Critério ajustável vira edição de prompt, sem redeploy.

Arquitetura: do form à resposta pronta

O fluxo em produção:

  1. Formulário em 4 passos com validação por etapa (Zod compartilhado entre front e back) e rate limit por IP.
  2. API: grava o lead no banco, confirma para o lead na hora e dispara o resto depois da resposta HTTP.
  3. Classificador: detecta o idioma do lead (português, inglês ou espanhol), calcula score de fit de 0 a 10 com breakdown em 5 critérios, marca sinais verde, amarelo e vermelho e recomenda o próximo passo.
  4. Draft: a resposta sai redigida no idioma do lead, junto com a carta de discovery, pronta para revisão.

Prompt injection é problema de quem recebe input público

Um formulário público que alimenta um LLM é superfície de ataque. Nossa defesa tem duas camadas. Na entrada, todo conteúdo do formulário chega ao classificador isolado em tags de dados externos: o prompt trata tudo dentro delas como dado a analisar, nunca como instrução a seguir. Na saída, a resposta do modelo passa por schema Zod antes de tocar o banco: se o modelo devolver qualquer coisa fora do contrato, o pipeline rejeita.

Fire-and-forget: a IA nunca derruba o formulário

A classificação roda depois da resposta HTTP. Se a API de IA estiver fora, se a planilha de integração falhar, se o webhook der timeout, o lead já recebeu a confirmação e o registro já está no banco. O pior cenário degrada para o fluxo manual de antes, nunca para lead perdido. Automação que adiciona ponto de falha na frente do cliente é trade ruim.

A IA não envia nada sozinha

Decisão de produto, não limitação técnica: o classificador entrega score, sinais e draft, e para ali. O founder revisa e envia. O cálculo é o mesmo que usamos em todo projeto com IA voltado a cliente: revisar leva minutos, recuperar um lead que recebeu resposta errada pode ser impossível. O ganho da automação está em transformar horas de triagem e redação em minutos de revisão, não em remover o humano da decisão.

Três idiomas de graça

Um efeito colateral bem-vindo: como o classificador detecta o idioma e redige a resposta nele, o mesmo pipeline atende leads em português, inglês e espanhol sem fluxo separado. O custo de internacionalizar o comercial inbound foi zero.

O que faríamos diferente

Teríamos definido o schema de output do modelo no primeiro dia. As primeiras versões validavam pouco e cada ajuste de prompt podia quebrar o parse silenciosamente. Contrato de output validado é o que torna LLM dentro de fluxo de produção confiável.

O pipeline que usamos é o que vendemos

Esse pipeline é um projeto de Track 1 rodando em produção no nosso próprio site. Detalhes, decisões técnicas e resultados estão no case completo. Se faz sentido automatizar a triagem do seu funil, conta pra gente o contexto.

Tem ideia validada, processo pra automatizar ou produto pra construir?

Enviar meu projeto