Pular para conteúdo

HUBSPOT_DEAL_UPDATE - Atualizar Negócio no HubSpot

O que é este Node?

O HUBSPOT_DEAL_UPDATE é o node responsável por atualizar informações de deals existentes no HubSpot CRM.

Por que este Node existe?

O HUBSPOT_DEAL_UPDATE existe para:

  1. Avançar Pipeline: Mover deal para próximo estágio
  2. Atualizar Valor: Modificar amount conforme negociação evolui
  3. Alterar Datas: Ajustar closedate conforme mudanças
  4. Enriquecer Dados: Adicionar informações ao longo da venda

Como funciona internamente?

Código interno (hubspot.executor.ts:138-147):

case 'update': {
  const dealId = this.replaceVariables(data.dealId, context.variables);
  const properties = JSON.parse(this.replaceVariables(JSON.stringify(data.properties), context.variables));
  const response = await axios.patch(
    `${baseUrl}/${dealId}`,
    { properties },
    { 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 "update"
config.apiKey string Sim API Key do HubSpot
dealId string Sim ID do deal a atualizar
properties object Sim Propriedades a atualizar
responseVariable string Não Variável para resultado

Exemplo: Avançar Deal no Pipeline

{
  "name": "HubSpot - Avançar Deal",
  "nodes": [
    {"id": "start_1", "type": "start", "position": {"x": 100, "y": 100}, "data": {"label": "Início"}},
    {"id": "variable_1", "type": "variable", "position": {"x": 300, "y": 100}, "data": {"label": "Deal ID", "parameters": {"variableName": "deal_id", "value": "98765432109"}}},
    {"id": "message_1", "type": "message", "position": {"x": 500, "y": 100}, "data": {"label": "Confirmação", "parameters": {"message": "Proposta enviada? Vou avançar o deal para 'Proposal Sent'."}}},
    {"id": "hubspot_1", "type": "hubspot", "position": {"x": 700, "y": 100}, "data": {"label": "Avançar Estágio", "parameters": {"resource": "deals", "operation": "update", "config": {"apiKey": "{{hubspot_api_key}}"}, "dealId": "{{deal_id}}", "properties": {"dealstage": "presentationscheduled"}}}},
    {"id": "message_2", "type": "message", "position": {"x": 900, "y": 100}, "data": {"label": "Sucesso", "parameters": {"message": "✅ Deal atualizado para próximo estágio!"}}},
    {"id": "end_1", "type": "end", "position": {"x": 1100, "y": 100}, "data": {"label": "Fim"}}
  ],
  "edges": [
    {"source": "start_1", "target": "variable_1"},
    {"source": "variable_1", "target": "message_1"},
    {"source": "message_1", "target": "hubspot_1"},
    {"source": "hubspot_1", "target": "message_2"},
    {"source": "message_2", "target": "end_1"}
  ]
}

Boas Práticas

SIM: Enviar apenas propriedades que mudaram, validar dealstage antes de atualizar, registrar mudanças em log

NÃO: Atualizar sem verificar se deal existe, mover para estágio inexistente, sobrescrever dados importantes sem confirmar

Próximos Nodes

HUBSPOT_DEAL_GET - Buscar antes de atualizar → HUBSPOT_DEAL_DELETE - Excluir deal