Como Automatizar a Qualificação de Leads com N8n e Gemini: Guia Passo a Passo
- Gustavo Caetano
- 9 de out.
- 5 min de leitura

A qualificação de leads é uma das tarefas mais importantes (e demoradas) do marketing digital. Hoje vou te mostrar como automatizar esse processo usando N8n e a API do Gemini, criando um sistema inteligente que analisa e pontua seus leads automaticamente.
## O que você vai aprender
- Configurar um workflow no N8n para capturar leads
- Integrar a API do Gemini para análise inteligente
- Criar critérios de qualificação personalizados
- Automatizar o envio de leads qualificados para sua equipe
## Pré-requisitos
- Conta no N8n (pode usar a versão cloud ou self-hosted)
- API Key do Google AI Studio (Gemini)
- Webhook ou fonte de leads (formulário, CRM, etc.)
## Passo 1: Configurando o Webhook de Entrada
Primeiro, vamos criar o ponto de entrada para nossos leads no N8n:
```json
{
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "qualify-lead",
"responseMode": "responseNode",
"options": {}
},
"id": "webhook-entrada",
"name": "Webhook Lead",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [240, 300]
}
]
}
```
## Passo 2: Preparando os Dados do Lead
Adicione um nó "Set" para estruturar os dados recebidos:
```json
{
"parameters": {
"values": {
"string": [
{
"name": "nome",
"value": "={{ $json.nome || $json.name }}"
},
{
"name": "email",
"value": "={{ $json.email }}"
},
{
"name": "empresa",
"value": "={{ $json.empresa || $json.company }}"
},
{
"name": "cargo",
"value": "={{ $json.cargo || $json.position }}"
},
{
"name": "telefone",
"value": "={{ $json.telefone || $json.phone }}"
},
{
"name": "origem",
"value": "={{ $json.origem || $json.source }}"
}
]
}
},
"id": "preparar-dados",
"name": "Preparar Dados",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [460, 300]
}
```
## Passo 3: Configurando a Integração com Gemini
Agora vamos criar o nó HTTP Request para se comunicar com a API do Gemini:
```json
{
"parameters": {
"url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent",
"authentication": "genericCredentialType",
"genericAuthType": "httpQueryAuth",
"httpMethod": "POST",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "key",
"value": "SUA_API_KEY_AQUI"
}
]
},
"sendBody": true,
"bodyParameters": {
"parameters": [
{
"name": "contents",
"value": "={{ JSON.stringify([{\n \"parts\": [{\n \"text\": `Analise este lead e forneça uma pontuação de qualificação de 0 a 100, considerando os critérios:\n\n1. Adequação do cargo (decisor = +30, influenciador = +20, outros = +10)\n2. Tamanho da empresa (grande = +25, média = +15, pequena = +10)\n3. Origem do lead (indicação = +20, site = +15, redes sociais = +10)\n4. Completude dos dados (+15 se todos os campos estão preenchidos)\n\nDados do lead:\nNome: ${$json.nome}\nEmail: ${$json.email}\nEmpresa: ${$json.empresa}\nCargo: ${$json.cargo}\nTelefone: ${$json.telefone}\nOrigem: ${$json.origem}\n\nResponda APENAS em formato JSON com esta estrutura:\n{\n \"pontuacao\": número,\n \"classificacao\": \"quente/morno/frio\",\n \"motivos\": [\"razão1\", \"razão2\"],\n \"proximos_passos\": \"sugestão de ação\"\n}`\n }]\n}]) }}"
}
]
}
},
"id": "gemini-analysis",
"name": "Análise Gemini",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [680, 300]
}
```
## Passo 4: Processando a Resposta do Gemini
Adicione um nó "Code" para extrair e processar a resposta:
```javascript
// Nó Code para processar resposta do Gemini
const response = items[0].json;
const content = response.candidates[0].content.parts[0].text;
// Extrair JSON da resposta
let analysis;
try {
// Remove markdown se presente
const jsonMatch = content.match(/\{[\s\S]*\}/);
const jsonString = jsonMatch ? jsonMatch[0] : content;
analysis = JSON.parse(jsonString);
} catch (error) {
// Fallback se não conseguir parsear
analysis = {
pontuacao: 50,
classificacao: "morno",
motivos: ["Erro na análise"],
proximos_passos: "Revisar manualmente"
};
}
// Combinar dados originais com análise
const leadQualificado = {
...items[0].json,
pontuacao: analysis.pontuacao,
classificacao: analysis.classificacao,
motivos: analysis.motivos,
proximos_passos: analysis.proximos_passos,
data_qualificacao: new Date().toISOString()
};
return [{ json: leadQualificado }];
```
## Passo 5: Criando Condições de Roteamento
Use um nó "Switch" para rotear leads baseado na pontuação:
```json
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "lead-quente",
"leftValue": "={{ $json.pontuacao }}",
"rightValue": 70,
"operator": {
"type": "number",
"operation": "gte"
}
},
{
"id": "lead-morno",
"leftValue": "={{ $json.pontuacao }}",
"rightValue": 40,
"operator": {
"type": "number",
"operation": "gte"
}
}
],
"combineOperation": "any"
},
"fallbackOutput": "extra"
},
"id": "classificar-lead",
"name": "Classificar Lead",
"type": "n8n-nodes-base.switch",
"typeVersion": 3,
"position": [1120, 300]
}
```
## Passo 6: Ações Baseadas na Qualificação
### Para Leads Quentes (Pontuação ≥ 70):
```json
{
"parameters": {
"resource": "message",
"operation": "send",
"chatId": "SEU_CHAT_ID_VENDAS",
"text": "🔥 LEAD QUENTE DETECTADO!\n\n👤 Nome: {{ $json.nome }}\n📧 Email: {{ $json.email }}\n🏢 Empresa: {{ $json.empresa }}\n💼 Cargo: {{ $json.cargo }}\n📊 Pontuação: {{ $json.pontuacao }}/100\n\n📋 Motivos:\n{{ $json.motivos.join('\\n• ') }}\n\n🎯 Próximos passos: {{ $json.proximos_passos }}"
},
"id": "notificar-lead-quente",
"name": "Notificar Lead Quente",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1,
"position": [1340, 200]
}
```
### Para Leads Mornos (Pontuação 40-69):
```json
{
"parameters": {
"resource": "contact",
"operation": "create",
"additionalFields": {
"customProperties": {
"property": [
{
"name": "lead_score",
"value": "={{ $json.pontuacao }}"
},
{
"name": "lead_classification",
"value": "={{ $json.classificacao }}"
}
]
}
},
"email": "={{ $json.email }}",
"firstName": "={{ $json.nome.split(' ')[0] }}",
"lastName": "={{ $json.nome.split(' ').slice(1).join(' ') }}"
},
"id": "adicionar-crm-morno",
"name": "Adicionar ao CRM",
"type": "n8n-nodes-base.hubspot",
"typeVersion": 2,
"position": [1340, 300]
}
```
### Para Leads Frios (Pontuação < 40):
```json
{
"parameters": {
"values": {
"string": [
{
"name": "status",
"value": "lead_frio_nurturing"
},
{
"name": "acao",
"value": "adicionar_sequencia_email"
}
]
}
},
"id": "marcar-nurturing",
"name": "Marcar para Nutrição",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [1340, 400]
}
```
## Passo 7: Salvando os Dados
Adicione um nó para salvar todos os leads qualificados:
```json
{
"parameters": {
"operation": "insert",
"table": "leads_qualificados",
"columns": "nome, email, empresa, cargo, telefone, origem, pontuacao, classificacao, motivos, proximos_passos, data_qualificacao",
"additionalFields": {}
},
"id": "salvar-database",
"name": "Salvar no Banco",
"type": "n8n-nodes-base.postgres",
"typeVersion": 2,
"position": [1560, 300]
}
```
## Configuração do Prompt Avançado
Para melhorar a precisão da qualificação, você pode usar este prompt mais detalhado:
```javascript
const promptAvancado = `
Você é um especialista em qualificação de leads B2B. Analise este lead usando o framework BANT (Budget, Authority, Need, Timeline) e critérios adicionais:
DADOS DO LEAD:
Nome: ${$json.nome}
Email: ${$json.email}
Empresa: ${$json.empresa}
Cargo: ${$json.cargo}
Telefone: ${$json.telefone}
Origem: ${$json.origem}
CRITÉRIOS DE PONTUAÇÃO:
1. AUTORIDADE (0-30 pontos):
- C-Level/Diretor: 30 pontos
- Gerente/Coordenador: 20 pontos
- Analista/Especialista: 10 pontos
- Outros: 5 pontos
2. EMPRESA (0-25 pontos):
- Grande empresa (500+ funcionários): 25 pontos
- Média empresa (50-499): 15 pontos
- Pequena empresa (10-49): 10 pontos
- Micro empresa (<10): 5 pontos
3. ORIGEM (0-20 pontos):
- Indicação/Referência: 20 pontos
- Webinar/Evento: 15 pontos
- Site/SEO: 12 pontos
- LinkedIn/Social: 10 pontos
- Anúncio pago: 8 pontos
4. COMPLETUDE DOS DADOS (0-15 pontos):
- Todos os campos: 15 pontos
- 4-5 campos: 10 pontos
- 2-3 campos: 5 pontos
5. QUALIDADE DO EMAIL (0-10 pontos):
- Email corporativo: 10 pontos
- Email genérico: 5 pontos
- Email pessoal: 2 pontos
Responda APENAS em JSON:
{
"pontuacao": número_total,
"classificacao": "quente|morno|frio",
"detalhes": {
"autoridade": pontos,
"empresa": pontos,
"origem": pontos,
"completude": pontos,
"email": pontos
},
"motivos": ["razão1", "razão2"],
"proximos_passos": "ação_recomendada",
"prioridade": "alta|media|baixa"
}
`;
```
## Testando o Workflow
Para testar sua automação:
1. **Teste manual**: Use o botão "Test workflow" no N8n
2. **Webhook de teste**: Envie dados via POST para seu webhook
3. **Dados de exemplo**:
```json
{
"nome": "João Silva",
"email": "joao.silva@empresa.com.br",
"empresa": "Tech Solutions Ltda",
"cargo": "Diretor de TI",
"telefone": "(11) 99999-9999",
"origem": "indicacao"
}
```
## Monitoramento e Otimização
### Métricas importantes:
- Taxa de leads qualificados por origem
- Precisão da pontuação vs. conversão real
- Tempo de resposta do workflow
### Dashboard de acompanhamento:
```sql
-- Query para relatório de performance
SELECT
origem,
classificacao,
COUNT(*) as total_leads,
AVG(pontuacao) as pontuacao_media,
DATE(data_qualificacao) as data
FROM leads_qualificados
WHERE data_qualificacao >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY origem, classificacao, DATE(data_qualificacao)
ORDER BY data DESC;
```
## Próximos Passos
Com esse sistema funcionando, você pode:
1. **Integrar com mais ferramentas**: Slack, Discord, WhatsApp
2. **Criar nurturing automático**: Sequências de email baseadas na pontuação
3. **Implementar machine learning**: Treinar modelo próprio com seus dados
4. **Adicionar enriquecimento**: APIs como Clearbit ou Hunter.io
## Conclusão
Automatizar a qualificação de leads com N8n e Gemini pode aumentar significativamente a eficiência da sua equipe de vendas. O sistema analisa leads 24/7, garante consistência na qualificação e permite que sua equipe foque nos leads mais promissores.
Lembre-se de ajustar os critérios de pontuação baseado no seu negócio específico e monitorar constantemente a performance para otimizar os resultados.
.png)



Comentários