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