HUBSPOT_DEAL_GET - Buscar Negócio no HubSpot
O que é este Node?
O HUBSPOT_DEAL_GET é o node responsável por buscar informações detalhadas de um deal específico no HubSpot CRM usando seu ID.
Por que este Node existe?
O HUBSPOT_DEAL_GET existe para:
- Consultar Status: Verificar estágio atual do deal
- Personalização: Buscar dados para personalizar conversa
- Decisões Condicionais: Direcionar flow baseado em propriedades do deal
- Atualização Contextual: Carregar dados antes de atualizar
Como funciona internamente?
Código interno (hubspot.executor.ts:129-136):
case 'get': {
const dealId = this.replaceVariables(data.dealId, context.variables);
const response = await axios.get(
`${baseUrl}/${dealId}`,
{ headers: { 'Authorization': `Bearer ${apiKey}` } }
);
return response.data;
}
Quando você DEVE usar este Node?
Casos de uso
- Verificar progresso: Checar em que estágio está o deal
- Consultar valor: Ver valor atual da oportunidade
- Decisões condicionais: Direcionar flow baseado em dealstage
- Atualização informada: Buscar dados antes de modificar
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| resource | string | Sim | Deve ser "deals" |
| operation | string | Sim | Deve ser "get" |
| config.apiKey | string | Sim | API Key do HubSpot |
| dealId | string | Sim | ID do deal a buscar |
| responseVariable | string | Não | Variável para resultado |
Exemplo: Verificar Status do Deal
{
"name": "HubSpot - Verificar Deal",
"nodes": [
{"id": "start_1", "type": "start", "position": {"x": 100, "y": 100}, "data": {"label": "Início"}},
{"id": "input_1", "type": "input", "position": {"x": 300, "y": 100}, "data": {"label": "Deal ID", "parameters": {"message": "Digite o ID do deal:", "variableName": "deal_id"}}},
{"id": "hubspot_1", "type": "hubspot", "position": {"x": 500, "y": 100}, "data": {"label": "Buscar Deal", "parameters": {"resource": "deals", "operation": "get", "config": {"apiKey": "{{hubspot_api_key}}"}, "dealId": "{{deal_id}}", "responseVariable": "deal_data"}}},
{"id": "message_1", "type": "message", "position": {"x": 700, "y": 100}, "data": {"label": "Mostrar", "parameters": {"message": "Deal: {{deal_data.properties.dealname}}\nValor: R${{deal_data.properties.amount}}\nEstágio: {{deal_data.properties.dealstage}}"}}},
{"id": "end_1", "type": "end", "position": {"x": 900, "y": 100}, "data": {"label": "Fim"}}
],
"edges": [
{"source": "start_1", "target": "input_1"},
{"source": "input_1", "target": "hubspot_1"},
{"source": "hubspot_1", "target": "message_1"},
{"source": "message_1", "target": "end_1"}
]
}
Resposta do Node
{
"id": "98765432109",
"properties": {
"dealname": "Deal - Plano Enterprise",
"amount": "50000",
"dealstage": "presentationscheduled",
"closedate": "2025-02-15",
"createdate": "2025-01-15T10:30:00.000Z"
}
}
Boas Práticas
✅ SIM: Verificar se deal existe antes de acessar propriedades, usar para decisões condicionais, cachear resultado
❌ NÃO: Buscar repetidamente, assumir que propriedades sempre existem, usar IDs hardcoded
Próximos Nodes
→ HUBSPOT_DEAL_UPDATE - Atualizar deal → HUBSPOT_DEAL_SEARCH - Buscar deals por filtros