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:
- Auditoria: Ver todos os formulários ativos
- Seleção: Escolher formulário para extrair leads
- Dashboard: Mostrar performance de formulários
- Automação: Processar leads de múltiplos formulários
- Integração: Conectar formulários a CRM
Como funciona internamente?
Quando o Lead Gen List Forms é executado, o sistema:
- Valida access token com escopo
r_ads - Extrai account ID dos parâmetros
- Faz GET para
/v2/leadGenForms?q=owner&owner={account} - Retorna array de formulários com IDs e metadados
- 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:
- Dashboard de campanhas: Mostrar todos os formulários
- Automação de leads: Buscar IDs dos formulários
- Multi-form processing: Processar leads de vários forms
- Auditoria: Verificar formulários ativos/inativos
- 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