Pular para conteúdo

PIPEDRIVE_DEAL_LIST - Listar Deals no Pipedrive

O que é este Node?

O PIPEDRIVE_DEAL_LIST é o node responsável por listar múltiplos negócios do Pipedrive CRM, permitindo buscar deals ativos, filtrar por critérios e obter visão geral do pipeline.

Por que este Node existe?

Visualizar conjunto de deals é essencial para análises e decisões. O PIPEDRIVE_DEAL_LIST existe para:

  1. Visão Geral: Obter lista de todos os deals ativos
  2. Relatórios: Gerar relatórios sobre pipeline de vendas
  3. Busca sem ID: Encontrar deals quando não se sabe o ID específico
  4. Análise de Performance: Verificar quantidade e valores de deals em cada estágio

Como funciona internamente?

Quando o PIPEDRIVE_DEAL_LIST é executado, o sistema:

  1. Define limite: Configura quantos deals retornar (padrão: 100)
  2. Autentica: Usa apiToken e companyDomain
  3. Faz requisição GET: Busca lista em /api/v1/deals
  4. Retorna array: Pipedrive responde com lista de deals
  5. Salva na variável: Armazena array completo
  6. Em caso de erro: Retorna erro de autenticação ou limite

Código interno (pipedrive.executor.ts:38-41):

else if (operation === 'list') {
  const response = await axios.get(`${endpoint}?${authParam}&limit=${node.data.limit || 100}`, { headers });
  result = response.data;
}

Quando você DEVE usar este Node?

Use PIPEDRIVE_DEAL_LIST sempre que precisar listar vários deals:

Casos de uso

  1. Dashboard: Mostrar resumo de deals em aberto para vendedor
  2. Relatório diário: Listar deals que precisam follow-up hoje
  3. Performance: Ver todos os deals por estágio/status
  4. Busca ampla: Encontrar deal quando cliente não sabe ID

Quando NÃO usar PIPEDRIVE_DEAL_LIST

  • Sabe o ID específico: Use PIPEDRIVE_DEAL_GET para buscar 1 deal
  • Criar deal: Use PIPEDRIVE_DEAL_CREATE
  • Buscar pessoa: Use PIPEDRIVE_PERSON_SEARCH

Parâmetros Detalhados

limit (number, opcional)

O que é: Quantidade máxima de deals a retornar.

Padrão: 100

Máximo: 500 (limite da API Pipedrive)

Exemplo: 10, 50, 100, "{{quantidade}}"

Flow completo para testar:

{
  "name": "Teste Pipedrive - Listar Deals",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "pipedrive_1",
      "type": "pipedrive",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Listar Deals",
        "resource": "deals",
        "operation": "list",
        "config": {
          "apiToken": "{{pipedrive_token}}",
          "companyDomain": "sua-empresa"
        },
        "limit": 10,
        "responseVariable": "lista_deals"
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Mostrar Total",
        "parameters": {
          "message": "Total de deals: {{lista_deals.data.length}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 700, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "pipedrive_1" },
    { "source": "pipedrive_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Teste: Executar flow mostrará total de deals retornados.

Parâmetros

Campo Tipo Obrigatório Descrição
resource string Sim Deve ser "deals"
operation string Sim Deve ser "list"
config.apiToken string Sim Token API
config.companyDomain string Sim Subdomínio
limit number Não Máximo deals (padrão: 100)
responseVariable string Não Variável resposta

Exemplo 1: Dashboard de Vendas

Objetivo: Mostrar resumo de deals em aberto

JSON para Importar

{
  "name": "Pipedrive - Dashboard Vendas",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Aguarde",
        "parameters": {
          "message": "📊 Carregando seu dashboard..."
        }
      }
    },
    {
      "id": "pipedrive_1",
      "type": "pipedrive",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Buscar Deals",
        "resource": "deals",
        "operation": "list",
        "config": {
          "apiToken": "{{pipedrive_token}}",
          "companyDomain": "sua-empresa"
        },
        "limit": 50,
        "responseVariable": "deals"
      }
    },
    {
      "id": "message_2",
      "type": "message",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Dashboard",
        "parameters": {
          "message": "📈 DASHBOARD DE VENDAS\n\n📦 Total de Deals: {{deals.data.length}}\n💰 Valor Total: Calculando...\n✅ Status: Ativo"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 900, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "message_1" },
    { "source": "message_1", "target": "pipedrive_1" },
    { "source": "pipedrive_1", "target": "message_2" },
    { "source": "message_2", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: 📊 Carregando seu dashboard...
Sistema: 📈 DASHBOARD DE VENDAS
📦 Total de Deals: 15
💰 Valor Total: Calculando...
✅ Status: Ativo

Resposta do Node

{
  "success": true,
  "data": [
    {
      "id": 123,
      "title": "Deal 1 - Cliente A",
      "value": 5000,
      "currency": "BRL",
      "status": "open",
      "stage_id": 2
    },
    {
      "id": 124,
      "title": "Deal 2 - Cliente B",
      "value": 8000,
      "currency": "BRL",
      "status": "open",
      "stage_id": 3
    }
  ],
  "additional_data": {
    "pagination": {
      "start": 0,
      "limit": 100,
      "more_items_in_collection": false
    }
  }
}

Boas Práticas

SIM:

  • Use limit apropriado para evitar lentidão
  • Itere sobre array retornado com LOOP
  • Filtre deals após buscar usando CONDITION
  • Cache resultados se usar múltiplas vezes

NÃO:

  • Buscar todos os deals sem necessidade
  • Ignorar paginação quando há muitos deals
  • Processar lista sem validar se retornou dados

Dicas

💡 Dica 1: Combine com LOOP para processar cada deal individualmente.

💡 Dica 2: Use ACCUMULATOR para somar valores totais de todos os deals.

💡 Dica 3: Filtre deals por status/estágio após buscar para análises específicas.

Próximos Nodes

PIPEDRIVE_DEAL_GET - Buscar deal específico → PIPEDRIVE_DEAL_CREATE - Criar novo deal