Pular para conteúdo

LINKEDIN LEAD GEN LIST FORMS - Listar Formulários de Lead Gen

O que é esta operação?

O LinkedIn Lead Gen List Forms é a operação responsável por listar todos os formulários de Lead Generation criados em uma conta/página do LinkedIn Ads.

Por que esta operação existe?

Gestão de campanhas de geração de leads. O Lead Gen List Forms existe para:

  1. Auditoria: Ver todos os formulários ativos
  2. Seleção: Escolher formulário para extrair leads
  3. Dashboard: Mostrar performance de formulários
  4. Automação: Processar leads de múltiplos formulários
  5. Integração: Conectar formulários a CRM

Como funciona internamente?

Quando o Lead Gen List Forms é executado, o sistema:

  1. Valida access token com escopo r_ads
  2. Extrai account ID dos parâmetros
  3. Faz GET para /v2/leadGenForms?q=owner&owner={account}
  4. Retorna array de formulários com IDs e metadados
  5. Armazena resultado na variável especificada

Código interno (linkedin.executor.ts:187-200):

private async handleLeadGen(operation: string, data: any, accessToken: string, context: ExecutionContext): Promise<any> {
  const baseUrl = 'https://api.linkedin.com/v2';

  switch (operation) {
    case 'list_forms':
      // List Lead Gen Forms
      const account = this.replaceVariables(data.account || '', context.variables);
      const formsResponse = await axios.get(`${baseUrl}/leadGenForms?q=owner&owner=${account}`, {
        headers: {
          'Authorization': `Bearer ${accessToken}`,
          'Content-Type': 'application/json',
        },
      });
      return formsResponse.data;
    // ...
  }
}

Quando você DEVE usar esta operação?

Use Lead Gen List Forms sempre que precisar gerenciar formulários:

Casos de uso:

  1. Dashboard de campanhas: Mostrar todos os formulários
  2. Automação de leads: Buscar IDs dos formulários
  3. Multi-form processing: Processar leads de vários forms
  4. Auditoria: Verificar formulários ativos/inativos
  5. CRM integration: Mapear formulários para pipelines

Parâmetros Detalhados

account (string, obrigatório)

O que é: URN da conta de anúncios do LinkedIn.

Formato: urn:li:sponsoredAccount:123456789

Como obter: - LinkedIn Campaign Manager - URL da conta de anúncios - API de contas

Parâmetros

Campo Tipo Obrigatório Descrição
resource string Sim Sempre "lead_gen"
operation string Sim Sempre "list_forms"
account string Sim URN da conta de anúncios
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: Dashboard de Formulários

Objetivo: Listar todos os formulários e mostrar estatísticas

JSON para Importar

{
  "name": "LinkedIn - Dashboard Lead Gen Forms",
  "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": "Account",
        "parameters": {
          "name": "ads_account",
          "value": "urn:li:sponsoredAccount:123456789"
        }
      }
    },
    {
      "id": "linkedin_1",
      "type": "linkedin",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Listar Forms",
        "resource": "lead_gen",
        "operation": "list_forms",
        "config": {
          "accessToken": "{{linkedin_token}}"
        },
        "account": "{{ads_account}}",
        "responseVariable": "formularios"
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Mostrar Dashboard",
        "parameters": {
          "message": "📋 LEAD GEN FORMS\n\nTotal de formulários: {{formularios.paging.total}}\n\nPrimeiro form: {{formularios.elements[0].name}}\nID: {{formularios.elements[0].id}}"
        }
      }
    },
    {
      "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" }
  ]
}

Exemplo 2: Processar Leads de Múltiplos Formulários

Objetivo: Listar forms e buscar leads de cada um

JSON para Importar

{
  "name": "LinkedIn - Processar Todos Lead Forms",
  "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_list",
      "type": "linkedin",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Listar Forms",
        "resource": "lead_gen",
        "operation": "list_forms",
        "config": {
          "accessToken": "{{linkedin_token}}"
        },
        "account": "urn:li:sponsoredAccount:123456789",
        "responseVariable": "forms"
      }
    },
    {
      "id": "loop_1",
      "type": "loop",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Para Cada Form",
        "parameters": {
          "array": "{{forms.elements}}",
          "itemVariable": "currentForm"
        }
      }
    },
    {
      "id": "linkedin_get_leads",
      "type": "linkedin",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Buscar Leads",
        "resource": "lead_gen",
        "operation": "get_leads",
        "config": {
          "accessToken": "{{linkedin_token}}"
        },
        "formId": "{{currentForm.id}}",
        "responseVariable": "leads"
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 1100, "y": 100 },
      "data": {
        "label": "Log",
        "parameters": {
          "message": "📊 Form: {{currentForm.name}}\nLeads: {{leads.paging.total}}"
        }
      }
    },
    {
      "id": "message_final",
      "type": "message",
      "position": { "x": 1300, "y": 100 },
      "data": {
        "label": "Concluído",
        "parameters": {
          "message": "✅ Todos os formulários processados!"
        }
      }
    },
    {
      "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_list" },
    { "source": "linkedin_list", "target": "loop_1" },
    { "source": "loop_1", "target": "linkedin_get_leads" },
    { "source": "linkedin_get_leads", "target": "message_1" },
    { "source": "message_1", "target": "loop_1" },
    { "source": "loop_1", "target": "message_final", "label": "done" },
    { "source": "message_final", "target": "end_1" }
  ]
}

Resposta do Node

{
  "paging": {
    "count": 5,
    "start": 0,
    "total": 5
  },
  "elements": [
    {
      "id": "12345",
      "name": "Download eBook - Marketing Digital",
      "status": "ACTIVE",
      "created": 1620000000000
    }
  ]
}

Boas Práticas

SIM: - Cache lista de formulários (mudam raramente) - Use LOOP para processar múltiplos forms - Valide status do formulário (ACTIVE)

NÃO: - Não busque forms repetidamente sem necessidade - Não ignore formulários inativos no processamento

Próximo Node

Lead Gen Get Leads - Buscar leads de formulário → Company List Managed - Listar páginas gerenciadas