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:
- Listagem Simples: Obter contatos sem precisar montar filtros complexos
- Dashboards: Mostrar quantidade total e contatos recentes
- Exportação: Listar contatos para processamento ou relatórios
- Sincronização: Obter todos os contatos para sync com outros sistemas
Como funciona internamente?
Quando o HUBSPOT_CONTACT_LIST é executado, o sistema:
- Recebe o limite: Quantidade máxima de contatos a retornar
- Autentica na API: Usa Bearer Token
- Faz requisição GET: Lista em
/crm/v3/objects/contacts?limit={limit} - Retorna resultados: Lista de contatos com paginação
- 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
- Dashboard conversacional: Mostrar quantidade de contatos no sistema
- Listagem recente: Mostrar últimos contatos criados
- Exportação básica: Obter lista para processar externamente
- 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