Pular para conteúdo

HUBSPOT_CONTACT_LIST - Listar Contatos do HubSpot

O que é este Node?

O HUBSPOT_CONTACT_LIST é o node responsável por listar contatos do HubSpot CRM sem filtros específicos, retornando uma lista paginada de todos os contatos.

Por que este Node existe?

Listar contatos sem critérios complexos é útil para dashboards e visões gerais. O HUBSPOT_CONTACT_LIST existe para:

  1. Listagem Simples: Obter contatos sem precisar montar filtros complexos
  2. Dashboards: Mostrar quantidade total e contatos recentes
  3. Exportação: Listar contatos para processamento ou relatórios
  4. Sincronização: Obter todos os contatos para sync com outros sistemas

Como funciona internamente?

Quando o HUBSPOT_CONTACT_LIST é executado, o sistema:

  1. Recebe o limite: Quantidade máxima de contatos a retornar
  2. Autentica na API: Usa Bearer Token
  3. Faz requisição GET: Lista em /crm/v3/objects/contacts?limit={limit}
  4. Retorna resultados: Lista de contatos com paginação
  5. Aplica limite: Padrão de 100 contatos por requisição

Código interno (hubspot.executor.ts:100-107):

case 'list': {
  const limit = data.limit || 100;
  const response = await axios.get(
    `${baseUrl}?limit=${limit}`,
    { headers: { 'Authorization': `Bearer ${apiKey}` } }
  );
  return response.data;
}

Quando você DEVE usar este Node?

Use HUBSPOT_CONTACT_LIST quando precisar de lista simples de contatos:

Casos de uso

  1. Dashboard conversacional: Mostrar quantidade de contatos no sistema
  2. Listagem recente: Mostrar últimos contatos criados
  3. Exportação básica: Obter lista para processar externamente
  4. Verificação geral: Checar quantos contatos existem

Quando NÃO usar HUBSPOT_CONTACT_LIST

  • Precisa de filtros: Use HUBSPOT_CONTACT_SEARCH para busca específica
  • Tem ID do contato: Use HUBSPOT_CONTACT_GET diretamente
  • Lista muito grande: Considere paginação ou search com filtros

Parâmetros

Campo Tipo Obrigatório Descrição
resource string Sim Deve ser "contacts"
operation string Sim Deve ser "list"
config.apiKey string Sim API Key do HubSpot
limit number Não Máximo de resultados (padrão: 100, máx: 100)
responseVariable string Não Variável para resultado

Exemplo: Dashboard de Contatos

Objetivo: Mostrar quantidade e primeiros contatos do CRM

JSON para Importar

{
  "name": "HubSpot - Dashboard de Contatos",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "hubspot_1",
      "type": "hubspot",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Listar Contatos",
        "parameters": {
          "resource": "contacts",
          "operation": "list",
          "config": {
            "apiKey": "{{hubspot_api_key}}"
          },
          "limit": 10,
          "responseVariable": "contacts_list"
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Mostrar Dashboard",
        "parameters": {
          "message": "📊 DASHBOARD DE CONTATOS\n\nTotal de contatos listados: {{contacts_list.results.length}}\n\nPrimeiro contato:\n- Nome: {{contacts_list.results.0.properties.firstname}}\n- Email: {{contacts_list.results.0.properties.email}}\n- Empresa: {{contacts_list.results.0.properties.company}}"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 700, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "hubspot_1" },
    { "source": "hubspot_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Resposta do Node

{
  "results": [
    {
      "id": "12345678901",
      "properties": {
        "email": "joao@empresa.com",
        "firstname": "João",
        "company": "TechCorp",
        "createdate": "2025-01-10T08:00:00.000Z"
      }
    }
  ],
  "paging": {
    "next": {
      "after": "12345678901"
    }
  }
}

Boas Práticas

SIM: - Use limite apropriado para não sobrecarregar - Verifique se results existe antes de acessar - Use para dashboards e contagens - Implemente paginação se precisar de muitos registros

NÃO: - Listar todos contatos se tem milhares - Usar para buscar contato específico - Processar em loop sem controle

Dicas

💡 Dica 1: Combine com LOOP para processar múltiplos contatos em sequência.

💡 Dica 2: Use contacts_list.results.length para contar quantos foram retornados.

💡 Dica 3: Para paginação, use o valor paging.next.after na próxima requisição.

Próximos Nodes

HUBSPOT_CONTACT_SEARCH - Buscar com filtros → HUBSPOT_CONTACT_GET - Buscar contato específico → HUBSPOT_DEAL_LIST - Listar deals