Raphael Serafim· Publicado em 16 de setembro de 2026· 8 min de leitura

Agente de IA que qualifica e vende no WhatsApp: como montar um SDR automático

Como um agente de IA qualifica lead, responde objeção e agenda reunião no WhatsApp — a arquitetura de um SDR automático e onde ele precisa parar.

Ver como Markdown

Um agente de IA que qualifica lead no WhatsApp faz três coisas: conduz uma conversa de descoberta com perguntas de qualificação, classifica se o lead está pronto para uma reunião, e agenda essa reunião — sem inventar promessa sobre o produto e sem tentar fechar a venda sozinho. A parte que costuma dar errado não é a conversa em si, é decidir onde o agente para e o vendedor entra.

O que qualificar significa, na prática

Qualificação de lead segue geralmente o modelo BANT: Budget (tem orçamento?), Authority (fala com quem decide?), Need (tem a dor que o produto resolve?), Timeline (tem urgência?). Um SDR humano faz essas perguntas de forma natural, dentro de uma conversa; o agente de IA precisa fazer o mesmo sem soar como um formulário.

javascript
const SYSTEM = `Você é um SDR da Empresa Exemplo, conversando no WhatsApp
com um lead vindo de anúncio.

Objetivo: entender se este lead tem perfil para uma reunião com o time
comercial. Ao longo da conversa, descubra naturalmente:
- Qual problema ele está tentando resolver (Need)
- Se ele decide a compra ou influencia quem decide (Authority)
- Se existe orçamento aprovado ou em avaliação (Budget)
- Se há prazo definido para resolver isso (Timeline)

Regras:
- Uma pergunta por vez, tom de conversa, não de formulário.
- Nunca prometa preço, prazo de implementação ou recurso que não
  esteja confirmado no CONTEXTO fornecido.
- Quando tiver informação suficiente, retorne a classificação no
  formato JSON combinado (ver função abaixo) — não mostre isso ao lead.`;

Classificação estruturada, não só texto livre

O ponto que decide se isso funciona em produção é o agente devolver algo que o código consegue interpretar, não só uma resposta em linguagem natural:

javascript
async function conduzirConversa(historico, mensagemNova) {
  const r = await openai.chat.completions.create({
    model: "gpt-4o-mini",
    messages: [{ role: "system", content: SYSTEM }, ...historico, { role: "user", content: mensagemNova }],
    tools: [{
      type: "function",
      function: {
        name: "classificar_lead",
        description: "Registra a qualificação do lead quando houver informação suficiente",
        parameters: {
          type: "object",
          properties: {
            qualificado: { type: "boolean" },
            motivo: { type: "string" },
            resumo_bant: { type: "string" },
          },
          required: ["qualificado", "motivo"],
        },
      },
    }],
    temperature: 0.4,
  });

  return r.choices[0].message; // pode conter tool_calls com a classificação
}

Quando o modelo chama classificar_lead, o código decide o próximo passo — sem depender de interpretar texto livre para saber se "está pronto para agendar" ou não.

Agendando de verdade

Lead qualificado precisa virar reunião marcada, não uma promessa de "algum vendedor vai te chamar". Isso é outra função exposta ao modelo:

javascript
const tools = [
  // ...classificar_lead acima
  {
    type: "function",
    function: {
      name: "verificar_horarios",
      description: "Consulta horários disponíveis na agenda do time comercial",
      parameters: { type: "object", properties: { dia: { type: "string" } } },
    },
  },
  {
    type: "function",
    function: {
      name: "agendar_reuniao",
      description: "Cria o evento na agenda e confirma com o lead",
      parameters: {
        type: "object",
        properties: {
          horario: { type: "string" },
          nomeLead: { type: "string" },
          telefone: { type: "string" },
        },
        required: ["horario", "telefone"],
      },
    },
  },
];

Esse padrão — o modelo decide qual função chamar, seu código executa e devolve o resultado — é function calling puro, sem precisar de um protocolo específico. O detalhe de implementação completo, incluindo o loop de chamar a função e devolver o resultado ao modelo, está em function calling na API do WhatsApp sem MCP.

Não deixe o agente inventar sobre o produto

Um SDR de IA sem controle tende ao mesmo erro de qualquer agente sem restrição: quando não sabe o preço exato de um plano, ele estima um — e uma estimativa errada vinda de um agente de vendas vira uma objeção do lead depois, quando o vendedor humano corrige o número. A solução é a mesma de qualquer bot que precisa de fatos corretos: buscar a informação real antes de responder, com RAG, em vez de deixar o modelo responder do que "lembra".

Onde o agente deve parar

Três limites que valem ser explícitos no prompt e no código, não deixados implícitos:

Não negocia preço. Pode informar a tabela de planos vigente; desconto e condição especial são decisão humana.

Não fecha contrato. O papel termina em agendar a reunião com informação de qualificação anexada — quem assina é o vendedor.

Escala quando o lead pede humano, ou quando a pergunta foge do que a base cobre. Insistir em responder fora do escopo é o que transforma um SDR de IA bom numa fonte de reclamação. As regras de quando e como escalar estão em quando a IA deve parar de responder no WhatsApp.

Conclusão

Um SDR de IA no WhatsApp bem construído não substitui o vendedor — filtra a triagem repetitiva antes dele. A arquitetura tem três peças que precisam trabalhar juntas: conversa natural para qualificar, classificação estruturada que o código consegue ler, e function calling para agendar de verdade. Nenhuma das três funciona isolada — um agente que só conversa bem, sem agendar de fato, devolve o mesmo trabalho manual que tentava eliminar.

Pronto para automatizar seu WhatsApp?

Crie sua conta gratuita e comece a enviar mensagens pela API em minutos.

Começar grátis

Perguntas frequentes

Um agente de IA consegue qualificar lead de verdade no WhatsApp?+

Consegue fazer as perguntas de qualificação (orçamento, prazo, autoridade de decisão, necessidade — o modelo BANT) e classificar a conversa com base nas respostas. O que ele não deveria fazer sozinho é decidir fechar a venda: o papel dele é qualificar e agendar, deixando a negociação final com um humano.

Como o agente sabe quando o lead está qualificado?+

Você define os critérios no prompt — geralmente as respostas às perguntas de BANT — e pede ao modelo para retornar uma classificação estruturada (qualificado, não qualificado, precisa de mais informação) junto com a resposta ao cliente. O código lê essa classificação e decide a próxima ação: agendar, nutrir ou descartar.

O agente pode marcar reunião sozinho na agenda do vendedor?+

Sim, com function calling: você expõe uma função de 'verificar horários disponíveis' e outra de 'criar evento', e o modelo chama as duas quando o lead aceita agendar. A implementação de function calling puro, sem depender de um protocolo específico, está em [function calling na API do WhatsApp sem MCP](/blog/function-calling-api-whatsapp-agente-ia).

Como evitar que o agente invente informação sobre o produto?+

Com RAG: o agente busca a informação real do catálogo ou da tabela de planos antes de responder, em vez de responder do que 'lembra' do treinamento. O padrão está detalhado em [RAG no WhatsApp](/blog/rag-whatsapp-base-conhecimento-ia).

Isso substitui o time comercial?+

Substitui a triagem inicial, que é repetitiva e consome tempo do time — as mesmas cinco perguntas, para todo lead que chega. Não substitui a negociação, a construção de relacionamento nem o fechamento, que seguem exigindo julgamento humano. O ganho é o vendedor só entrar na conversa quando o lead já está qualificado e quente.

Continue lendo