Pular para conteúdo

HUBSPOT_DEAL_SEARCH - Buscar Negócios por Filtros

O que é este Node?

O HUBSPOT_DEAL_SEARCH é o node responsável por buscar deals usando filtros avançados no HubSpot CRM.

Por que este Node existe?

O HUBSPOT_DEAL_SEARCH existe para: Buscar deals por valor, filtrar por estágio, encontrar deals de um contato, segmentar oportunidades.

Como funciona internamente?

Código interno (hubspot.executor.ts:158-166):

case 'search': {
  const filters = JSON.parse(this.replaceVariables(JSON.stringify(data.filters), context.variables));
  const response = await axios.post(
    `${baseUrl}/search`,
    { filterGroups: filters, limit: data.limit || 100 },
    { headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' } }
  );
  return response.data;
}

Parâmetros

Campo Tipo Obrigatório Descrição
resource string Sim Deve ser "deals"
operation string Sim Deve ser "search"
config.apiKey string Sim API Key do HubSpot
filters array Sim Array de filterGroups
limit number Não Máximo de resultados (padrão: 100)

Exemplo: Buscar Deals Acima de Valor

{
  "name": "HubSpot - Buscar Deals > Valor",
  "nodes": [
    {"id": "start_1", "type": "start", "position": {"x": 100, "y": 100}, "data": {"label": "Início"}},
    {"id": "number_1", "type": "number", "position": {"x": 300, "y": 100}, "data": {"label": "Valor Mínimo", "parameters": {"message": "Buscar deals acima de quanto?", "variableName": "min_value"}}},
    {"id": "hubspot_1", "type": "hubspot", "position": {"x": 500, "y": 100}, "data": {"label": "Buscar", "parameters": {"resource": "deals", "operation": "search", "config": {"apiKey": "{{hubspot_api_key}}"}, "filters": [{"filters": [{"propertyName": "amount", "operator": "GT", "value": "{{min_value}}"}]}], "limit": 10, "responseVariable": "high_value_deals"}}},
    {"id": "message_1", "type": "message", "position": {"x": 700, "y": 100}, "data": {"label": "Resultado", "parameters": {"message": "Encontrados {{high_value_deals.total}} deals acima de R${{min_value}}."}}},
    {"id": "end_1", "type": "end", "position": {"x": 900, "y": 100}, "data": {"label": "Fim"}}
  ],
  "edges": [
    {"source": "start_1", "target": "number_1"},
    {"source": "number_1", "target": "hubspot_1"},
    {"source": "hubspot_1", "target": "message_1"},
    {"source": "message_1", "target": "end_1"}
  ]
}

Boas Práticas

SIM: Usar filtros específicos, limitar resultados, verificar total antes de acessar results

NÃO: Buscar sem filtros, assumir que results sempre existe

Próximos Nodes

HUBSPOT_DEAL_GET - Buscar deal específico após encontrar → HUBSPOT_DEAL_LIST - Listar todos deals