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.
Sumário do artigo

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 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