Pular para conteúdo

LINKEDIN LEAD GEN GET LEADS - Obter Leads de Formulário

O que é esta operação?

O LinkedIn Lead Gen Get Leads é a operação responsável por obter leads capturados em um formulário específico do LinkedIn Lead Generation Forms.

Por que esta operação existe?

Integração de leads com CRM e automação de vendas. O Lead Gen Get Leads existe para:

  1. CRM integration: Enviar leads automaticamente para Salesforce/HubSpot
  2. Follow-up automatizado: Disparar e-mails para novos leads
  3. Qualificação: Processar e qualificar leads automaticamente
  4. Analytics: Analisar dados de leads capturados
  5. Nurturing: Adicionar leads a fluxos de nutrição

Como funciona internamente?

Quando o Lead Gen Get Leads é executado, o sistema:

  1. Valida access token com escopo r_ads
  2. Extrai formId dos parâmetros
  3. Faz GET para /v2/leadFormResponses?q=owner&owner={formId}
  4. Retorna array de leads com dados do formulário
  5. Processa campos customizados
  6. Armazena resultado na variável especificada

Código interno (linkedin.executor.ts:202-210):

case 'get_leads':
  // Get leads from a form
  const formId = this.replaceVariables(data.formId || '', context.variables);
  const leadsResponse = await axios.get(`${baseUrl}/leadFormResponses?q=owner&owner=${formId}`, {
    headers: {
      'Authorization': `Bearer ${accessToken}`,
      'Content-Type': 'application/json',
    },
  });
  return leadsResponse.data;

Quando você DEVE usar esta operação?

Use Lead Gen Get Leads sempre que precisar capturar e processar leads:

Casos de uso:

  1. LinkedIn → Salesforce: Criar leads no CRM automaticamente
  2. LinkedIn → Mailchimp: Adicionar a listas de e-mail
  3. Qualificação automática: Filtrar leads por critérios
  4. Follow-up: Enviar e-mail de boas-vindas imediato
  5. Webhook: Notificar time de vendas sobre novos leads
  6. Analytics: Gerar relatórios de conversão

Parâmetros Detalhados

formId (string, obrigatório)

O que é: ID do formulário de Lead Gen do LinkedIn.

Como obter: - Usando Lead Gen List Forms - LinkedIn Campaign Manager - URL do formulário

Flow completo para testar:

{
  "name": "LinkedIn - Buscar Leads de Formulário",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "variable_1",
      "type": "variable",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Config",
        "parameters": {
          "name": "linkedin_token",
          "value": "SEU_TOKEN"
        }
      }
    },
    {
      "id": "variable_2",
      "type": "variable",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Form ID",
        "parameters": {
          "name": "form_id",
          "value": "12345"
        }
      }
    },
    {
      "id": "linkedin_1",
      "type": "linkedin",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Buscar Leads",
        "resource": "lead_gen",
        "operation": "get_leads",
        "config": {
          "accessToken": "{{linkedin_token}}"
        },
        "formId": "{{form_id}}",
        "responseVariable": "leads"
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Mostrar Total",
        "parameters": {
          "message": "📊 Total de leads: {{leads.paging.total}}\n\nPrimeiro lead:\nNome: {{leads.elements[0].firstName}}\nEmail: {{leads.elements[0].email}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1100, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "variable_1" },
    { "source": "variable_1", "target": "variable_2" },
    { "source": "variable_2", "target": "linkedin_1" },
    { "source": "linkedin_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Parâmetros

Campo Tipo Obrigatório Descrição
resource string Sim Sempre "lead_gen"
operation string Sim Sempre "get_leads"
formId string Sim ID do formulário
config.accessToken string Sim Token OAuth 2.0 com r_ads
responseVariable string Não Nome da variável de resposta (padrão: linkedInResult)

Exemplo 1: LinkedIn → Salesforce Integration

Objetivo: Buscar novos leads e criar no Salesforce automaticamente

JSON para Importar

{
  "name": "LinkedIn Leads → Salesforce",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "variable_1",
      "type": "variable",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Token LinkedIn",
        "parameters": {
          "name": "linkedin_token",
          "value": "SEU_LINKEDIN_TOKEN"
        }
      }
    },
    {
      "id": "linkedin_get_leads",
      "type": "linkedin",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Buscar Leads",
        "resource": "lead_gen",
        "operation": "get_leads",
        "config": {
          "accessToken": "{{linkedin_token}}"
        },
        "formId": "12345",
        "responseVariable": "linkedinLeads"
      }
    },
    {
      "id": "loop_1",
      "type": "loop",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Para Cada Lead",
        "parameters": {
          "array": "{{linkedinLeads.elements}}",
          "itemVariable": "lead"
        }
      }
    },
    {
      "id": "message_log",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Log Lead",
        "parameters": {
          "message": "💾 Criando lead no Salesforce:\n{{lead.firstName}} {{lead.lastName}}\n{{lead.email}}"
        }
      }
    },
    {
      "id": "message_final",
      "type": "message",
      "position": { "x": 1100, "y": 100 },
      "data": {
        "label": "Concluído",
        "parameters": {
          "message": "✅ {{linkedinLeads.paging.total}} leads sincronizados com Salesforce!"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1300, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "variable_1" },
    { "source": "variable_1", "target": "linkedin_get_leads" },
    { "source": "linkedin_get_leads", "target": "loop_1" },
    { "source": "loop_1", "target": "message_log" },
    { "source": "message_log", "target": "loop_1" },
    { "source": "loop_1", "target": "message_final", "label": "done" },
    { "source": "message_final", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: 💾 Criando lead no Salesforce:
José Roberto
jose@exemplo.com
Sistema: 💾 Criando lead no Salesforce:
Maria Silva
maria@exemplo.com
Sistema: ✅ 25 leads sincronizados com Salesforce!

Exemplo 2: Qualificação e Follow-up Automatizado

Objetivo: Qualificar leads e enviar e-mail personalizado

JSON para Importar

{
  "name": "LinkedIn - Qualificar e Enviar Email",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "variable_1",
      "type": "variable",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Token",
        "parameters": {
          "name": "linkedin_token",
          "value": "SEU_TOKEN"
        }
      }
    },
    {
      "id": "linkedin_leads",
      "type": "linkedin",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Buscar Leads",
        "resource": "lead_gen",
        "operation": "get_leads",
        "config": {
          "accessToken": "{{linkedin_token}}"
        },
        "formId": "12345",
        "responseVariable": "leads"
      }
    },
    {
      "id": "loop_1",
      "type": "loop",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Para Cada Lead",
        "parameters": {
          "array": "{{leads.elements}}",
          "itemVariable": "lead"
        }
      }
    },
    {
      "id": "condition_1",
      "type": "condition",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Tem Email Corporativo?",
        "parameters": {
          "variable": "lead.email",
          "operator": "not_contains",
          "value": "@gmail.com"
        }
      }
    },
    {
      "id": "message_qualified",
      "type": "message",
      "position": { "x": 1100, "y": 50 },
      "data": {
        "label": "Lead Qualificado",
        "parameters": {
          "message": "✅ Lead qualificado:\n{{lead.firstName}} {{lead.lastName}}\n{{lead.company}}\n\nEnviando e-mail de boas-vindas..."
        }
      }
    },
    {
      "id": "message_not_qualified",
      "type": "message",
      "position": { "x": 1100, "y": 150 },
      "data": {
        "label": "Lead Não Qualificado",
        "parameters": {
          "message": "⚠️ E-mail pessoal detectado, pulando..."
        }
      }
    },
    {
      "id": "message_final",
      "type": "message",
      "position": { "x": 1300, "y": 100 },
      "data": {
        "label": "Resumo",
        "parameters": {
          "message": "📊 Processamento concluído!\n\nTotal de leads: {{leads.paging.total}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1500, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "variable_1" },
    { "source": "variable_1", "target": "linkedin_leads" },
    { "source": "linkedin_leads", "target": "loop_1" },
    { "source": "loop_1", "target": "condition_1" },
    { "source": "condition_1", "target": "message_qualified", "label": "true" },
    { "source": "condition_1", "target": "message_not_qualified", "label": "false" },
    { "source": "message_qualified", "target": "loop_1" },
    { "source": "message_not_qualified", "target": "loop_1" },
    { "source": "loop_1", "target": "message_final", "label": "done" },
    { "source": "message_final", "target": "end_1" }
  ]
}

Resposta do Node

{
  "paging": {
    "count": 25,
    "start": 0,
    "total": 127
  },
  "elements": [
    {
      "id": "abc123",
      "firstName": "José",
      "lastName": "Roberto",
      "email": "jose@empresa.com",
      "company": "Tech Startup Inc",
      "phone": "+5511999999999",
      "submittedAt": 1642512000000,
      "customQuestions": []
    }
  ]
}

Campos Retornados

Campo Tipo Descrição
paging.total number Total de leads no formulário
elements array Array de leads
elements[].id string ID único do lead
elements[].firstName string Primeiro nome
elements[].lastName string Sobrenome
elements[].email string E-mail
elements[].company string Nome da empresa
elements[].phone string Telefone (se coletado)
elements[].submittedAt number Timestamp da submissão
elements[].customQuestions array Perguntas customizadas

Boas Práticas

SIM: - Use LOOP para processar cada lead individualmente - Valide dados antes de enviar para CRM - Implemente deduplicação (evite leads duplicados) - Use CONDITION para qualificar leads - Armazene último timestamp processado (para incremental sync) - Use DELAY entre chamadas em loops

NÃO: - Não processe todos os leads repetidamente (use paginação) - Não ignore validação de e-mail - Não envie spam para leads - Não ignore permissões LGPD/GDPR

Dicas

💡 Incremental sync: Salve último submittedAt processado para buscar apenas novos 💡 Deduplicação: Verifique se lead já existe no CRM antes de criar 💡 Qualificação: Use regras de negócio (e-mail corporativo, empresa, etc.) 💡 Follow-up: Envie e-mail de boas-vindas em até 5 minutos 💡 Paginação: API retorna 100 leads por página, use paging para buscar mais

Casos de Uso Avançados

1. Sync Incremental (apenas novos leads)

VARIABLE (lastSync) → LINKEDIN (get_leads) → FILTER (submittedAt > lastSync) → CRM

2. Lead Scoring

LINKEDIN (get_leads) → LOOP → CONDITION (company size) → VARIABLE (score) → CRM

3. Multi-channel Follow-up

LINKEDIN (get_leads) → LOOP → EMAIL + WHATSAPP + SALESFORCE (create lead)

Erros Comuns

Erro 401: Unauthorized

Causa: Token sem escopo r_ads Solução: Solicite permissões corretas no OAuth

Erro 404: Form not found

Causa: formId inválido ou formulário deletado Solução: Valide formId usando list_forms primeiro

Erro: Empty elements array

Causa: Formulário não tem leads ainda Solução: Valide paging.total antes de processar

Próximo Node

Lead Gen List Forms - Listar formulários disponíveis → Profile Get - Obter dados do perfil → Post Create - Criar publicação