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.
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:
- Formulário em 4 passos com validação por etapa (Zod compartilhado entre front e back) e rate limit por IP.
- API: grava o lead no banco, confirma para o lead na hora e dispara o resto depois da resposta HTTP.
- 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.
- 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.