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:
- Avançar Pipeline: Mover deal para próximo estágio
- Atualizar Valor: Modificar amount conforme negociação evolui
- Alterar Datas: Ajustar closedate conforme mudanças
- 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