Pular para conteúdo

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:

  1. Consultar Status: Verificar estágio atual do deal
  2. Personalização: Buscar dados para personalizar conversa
  3. Decisões Condicionais: Direcionar flow baseado em propriedades do deal
  4. 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

  1. Verificar progresso: Checar em que estágio está o deal
  2. Consultar valor: Ver valor atual da oportunidade
  3. Decisões condicionais: Direcionar flow baseado em dealstage
  4. 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