Voltar ao blog
Vibe Coding

Chega de responder lead que não vai comprar nada — deixa a IA fazer esse filtro por você

Aprenda a criar um sistema que classifica automaticamente seus leads como quente, morno ou frio usando IA. Sem planilha, sem esforço manual — tudo rodando sozinho com Lovable e Supabase.

C
Caio Braga
07 de maio de 2026 · 6 min de leitura
Sumário do artigo
Chega de responder lead que não vai comprar nada — deixa a IA fazer esse filtro por você

Categoria: Vibe Coding Nível: Intermediário Tempo de leitura: ~10 min


Se você tem um formulário de contato ou uma página de captura, sabe que nem todo lead que chega vale o mesmo esforço. Alguns estão prontos para comprar. Outros ainda estão só curiosos. E você provavelmente está fazendo esse filtro manualmente — ou pior, respondendo todo mundo da mesma forma.

Neste post você vai aprender a construir um sistema que recebe um lead, passa as respostas por uma IA e automaticamente classifica o contato como quente, morno ou frio — tudo isso sem escrever código do zero.


O que vamos construir

  • Um formulário de captura de leads com campos inteligentes

  • Uma integração com Supabase para salvar os dados

  • Uma função de edge que chama a API da OpenAI para pontuar o lead

  • Um painel interno simples para visualizar os leads classificados

Stack usada: Lovable para o front e lógica, Supabase como banco e backend, OpenAI API para o scoring.


Por que esse projeto é intermediário

Landing pages e geradores de conteúdo são lineares: entra dado, sai resultado. Aqui você vai lidar com:

  • Banco de dados relacional (tabelas com relacionamentos)

  • Edge Functions assíncronas no Supabase

  • Prompt engineering para classificação estruturada

  • Um painel com filtros dinâmicos

Se você já fez algum projeto com Lovable e sabe o básico de SQL, está pronto.


Passo a passo

1. Crie o projeto no Lovable

Abra o Lovable e use este prompt inicial:

Crie um sistema de triagem de leads para um serviço de consultoria de marketing digital.

O formulário de captura deve ter:
- Nome completo
- E-mail
- Tamanho da empresa (solo, 2-10, 11-50, +50)
- Orçamento mensal disponível (até R$500, R$500-2k, acima de R$2k)
- Principal desafio (campo de texto livre, máx. 300 caracteres)
- Como nos encontrou (orgânico, indicação, anúncio, rede social)

Após o envio, salve os dados no Supabase e mostre uma mensagem de confirmação.
Crie também um painel interno em /admin/leads que lista todos os leads em uma tabela.

Dica de vibe coding: seja específico nos campos e nas opções. Quanto mais contexto você der, menos vai precisar corrigir depois.


2. Conecte o Supabase

Dentro do Lovable, vá em Settings → Integrations → Supabase e conecte seu projeto. O Lovable vai criar automaticamente a tabela leads com as colunas correspondentes ao formulário.

Você precisa adicionar manualmente duas colunas extras via SQL no painel do Supabase:

sql

ALTER TABLE leads
ADD COLUMN score TEXT DEFAULT 'pendente',
ADD COLUMN score_reasoning TEXT;

Isso vai guardar a classificação da IA e o motivo dela.


3. Crie a Edge Function de scoring

No painel do Supabase, vá em Edge Functions → New Function e crie uma chamada score-lead.

Aqui você pode usar o Lovable mesmo para gerar o código. Volte ao chat e diga:

Crie o código de uma Supabase Edge Function em TypeScript chamada "score-lead".

Ela deve:
1. Receber um lead_id via POST
2. Buscar os dados do lead no banco
3. Chamar a API da OpenAI com as informações do lead
4. Classificar o lead como "quente", "morno" ou "frio"
5. Salvar o resultado nos campos score e score_reasoning da tabela leads

Use o seguinte critério no prompt para a IA:
- Quente: budget acima de R$2k, empresa com mais de 2 pessoas, desafio claro e específico
- Morno: budget intermediário ou empresa solo com bom potencial
- Frio: budget abaixo de R$500 ou mensagem vaga sem contexto

O código gerado vai se parecer com isso:

typescript

import { createClient } from 'https://esm.sh/@supabase/supabase-js@2'

Deno.serve(async (req) => {
  const { lead_id } = await req.json()
  const supabase = createClient(
    Deno.env.get('SUPABASE_URL')!,
    Deno.env.get('SUPABASE_SERVICE_ROLE_KEY')!
  )

  const { data: lead } = await supabase
    .from('leads')
    .select('*')
    .eq('id', lead_id)
    .single()

  const prompt = `
    Você é um especialista em qualificação de leads.
    Classifique o seguinte lead como "quente", "morno" ou "frio".

    Dados do lead:
    - Empresa: ${lead.company_size}
    - Orçamento: ${lead.budget}
    - Desafio: ${lead.main_challenge}
    - Origem: ${lead.source}

    Responda em JSON com os campos: score e reasoning.
    Exemplo: {"score": "quente", "reasoning": "Budget alto e desafio específico."}
  `

  const response = await fetch('https://api.openai.com/v1/chat/completions', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${Deno.env.get('OPENAI_API_KEY')}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      model: 'gpt-4o-mini',
      messages: [{ role: 'user', content: prompt }],
      response_format: { type: 'json_object' }
    })
  })

  const ai = await response.json()
  const result = JSON.parse(ai.choices[0].message.content)

  await supabase.from('leads').update({
    score: result.score,
    score_reasoning: result.reasoning
  }).eq('id', lead_id)

  return new Response(JSON.stringify(result), { status: 200 })
})

4. Acione o scoring automaticamente

Volte ao Lovable e instrua-o a chamar a Edge Function logo após salvar o lead:

Após salvar com sucesso o lead no Supabase, faça uma chamada assíncrona para a 
Edge Function "score-lead" passando o id do lead recém criado. 
Não espere a resposta — é um fire-and-forget para não travar a UX.

Isso garante que o usuário veja a confirmação na hora, enquanto a IA processa o score nos bastidores.


5. Melhore o painel de leads

Agora instrua o Lovable a melhorar a tela /admin/leads:

Melhore o painel de leads:
- Adicione badges coloridos para o campo score:
  verde para "quente", amarelo para "morno", cinza para "frio", e azul para "pendente"
- Adicione um filtro por score no topo da tabela
- Ao clicar em um lead, mostre um modal com todos os dados incluindo o score_reasoning
- Ordene por data de criação decrescente por padrão

Resultado final

Em menos de 2 horas de vibe coding, você tem:

  • ✅ Formulário de captura profissional

  • ✅ Classificação automática de leads por IA

  • ✅ Painel interno com filtros e visualização detalhada

  • ✅ Score em segundos, sem intervenção manual


Próximos passos possíveis

  • Adicionar envio de e-mail automático segmentado por score (leads quentes recebem uma proposta, frios recebem uma sequência de nutrição)

  • Integrar com WhatsApp via Twilio para notificar o time de vendas quando um lead quente chegar

  • Criar um webhook para enviar os dados para o seu CRM atual


Conclusão

Esse projeto combina o melhor dos dois mundos: a velocidade do vibe coding com o poder real de uma IA tomando decisões contextuais. O resultado é uma ferramenta que você pode usar no seu próprio negócio — ou vender como feature de um SaaS.

O segredo está na qualidade do prompt que você manda para a IA de scoring. Quanto mais você ajustar os critérios de avaliação para o seu contexto, mais preciso o sistema fica.

Tem dúvidas ou quer compartilhar o que construiu? Me manda no Instagram ou nos comentários abaixo.

● Não perca essa chance

Não perca a próxima edição.

Toda quinta, 9h. Direto na sua caixa.

  • Ferramentas que economizam horas do seu trabalho
  • Agentes e automações que funcionam
  • Bastidores do que estamos construindo

100% gratuito. Cancele quando quiser.

Compartilhar