Pular para conteúdo

HUBSPOT_DEAL_CREATE - Criar Negócio no HubSpot

O que é este Node?

O HUBSPOT_DEAL_CREATE é o node responsável por criar deals (negócios/oportunidades) no HubSpot CRM, permitindo registrar oportunidades de vendas e gerenciar pipeline diretamente do WhatsApp.

Por que este Node existe?

Gerenciar oportunidades de venda é essencial para fechar negócios. O HUBSPOT_DEAL_CREATE existe para:

  1. Pipeline Automatizado: Criar oportunidades automaticamente durante conversas de vendas
  2. Rastreamento de Receita: Registrar valor potencial e estágio de cada negócio
  3. Associação com Contatos: Vincular deals a contatos e empresas
  4. Gestão de Vendas: Permitir que equipe de vendas acompanhe progresso

Como funciona internamente?

Quando o HUBSPOT_DEAL_CREATE é executado, o sistema:

  1. Recebe properties e associations: Dados do deal e vínculos com contatos/empresas
  2. Processa variáveis: Substitui variáveis do contexto
  3. Monta payload: Cria objeto com properties e associations
  4. Autentica na API: Usa Bearer Token
  5. Faz requisição POST: Cria deal em /crm/v3/objects/deals
  6. Retorna ID do deal: HubSpot responde com deal criado
  7. Armazena resultado: Salva na variável configurada

Código interno (hubspot.executor.ts:118-127):

case 'create': {
  const properties = JSON.parse(this.replaceVariables(JSON.stringify(data.properties), context.variables));
  const associations = data.associations ? JSON.parse(this.replaceVariables(JSON.stringify(data.associations), context.variables)) : undefined;
  const response = await axios.post(
    baseUrl,
    { properties, associations },
    { headers: { 'Authorization': `Bearer ${apiKey}`, 'Content-Type': 'application/json' } }
  );
  return response.data;
}

Quando você DEVE usar este Node?

Use HUBSPOT_DEAL_CREATE quando precisar registrar oportunidades de venda:

Casos de uso

  1. Interesse em produto: Cliente manifesta interesse, cria deal automaticamente
  2. Solicitação de proposta: Criar deal quando cliente solicita orçamento
  3. Upsell/Cross-sell: Registrar oportunidade de venda adicional para cliente existente
  4. Conversão de lead: Transformar lead qualificado em oportunidade de venda
  5. Renovação: Criar deal para renovação de contrato

Quando NÃO usar HUBSPOT_DEAL_CREATE

  • Deal já existe: Use HUBSPOT_DEAL_UPDATE para atualizar
  • Só quer consultar: Use HUBSPOT_DEAL_GET ou HUBSPOT_DEAL_SEARCH

Parâmetros Detalhados

properties (object, obrigatório)

O que é: Propriedades do deal.

Propriedades comuns: - dealname (string): Nome do negócio - amount (number): Valor em dinheiro - closedate (date): Data prevista de fechamento - dealstage (string): Estágio no pipeline - pipeline (string): ID do pipeline - hubspot_owner_id (string): ID do vendedor responsável

associations (array, opcional)

O que é: Array para associar deal a contatos ou empresas.

Formato:

{
  "associations": [
    {
      "to": { "id": "12345" },
      "types": [
        {
          "associationCategory": "HUBSPOT_DEFINED",
          "associationTypeId": 3
        }
      ]
    }
  ]
}

AssociationTypeId: - 3: Deal to Contact - 5: Deal to Company

Parâmetros

Campo Tipo Obrigatório Descrição
resource string Sim Deve ser "deals"
operation string Sim Deve ser "create"
config.apiKey string Sim API Key do HubSpot
properties object Sim Propriedades do deal
associations array Não Associações com contacts/companies
responseVariable string Não Variável para resultado

Exemplo 1: Criar Deal Simples

Objetivo: Criar oportunidade de venda básica

JSON para Importar

{
  "name": "HubSpot - Criar Deal Básico",
  "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": "Nome do Deal",
        "parameters": {
          "message": "Qual produto/serviço interessa?",
          "variableName": "produto"
        }
      }
    },
    {
      "id": "number_1",
      "type": "number",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Valor",
        "parameters": {
          "message": "Qual o valor estimado (R$)?",
          "variableName": "valor",
          "min": 0,
          "decimals": 2
        }
      }
    },
    {
      "id": "hubspot_1",
      "type": "hubspot",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Criar Deal",
        "parameters": {
          "resource": "deals",
          "operation": "create",
          "config": {
            "apiKey": "{{hubspot_api_key}}"
          },
          "properties": {
            "dealname": "Deal - {{produto}}",
            "amount": "{{valor}}",
            "dealstage": "appointmentscheduled",
            "pipeline": "default"
          },
          "responseVariable": "new_deal"
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Confirmação",
        "parameters": {
          "message": "✅ Oportunidade criada! Nossa equipe entrará em contato para discutir {{produto}} no valor de R${{valor}}."
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1100, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "input_1" },
    { "source": "input_1", "target": "number_1" },
    { "source": "number_1", "target": "hubspot_1" },
    { "source": "hubspot_1", "target": "message_1" },
    { "source": "message_1", "target": "end_1" }
  ]
}

Saída esperada:

Sistema: Qual produto/serviço interessa?
Usuário: Plano Enterprise
Sistema: Qual o valor estimado (R$)?
Usuário: 50000
Sistema: ✅ Oportunidade criada! Nossa equipe entrará em contato para discutir Plano Enterprise no valor de R$50000.

Exemplo 2: Deal Associado a Contato

Objetivo: Criar deal e vincular a contato existente

JSON para Importar

{
  "name": "HubSpot - Deal com Associação",
  "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": "Set Contact ID",
        "parameters": {
          "variableName": "contact_id",
          "value": "12345678901"
        }
      }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Nome Deal",
        "parameters": {
          "message": "Qual o nome da oportunidade?",
          "variableName": "deal_name"
        }
      }
    },
    {
      "id": "hubspot_1",
      "type": "hubspot",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Criar Deal Associado",
        "parameters": {
          "resource": "deals",
          "operation": "create",
          "config": {
            "apiKey": "{{hubspot_api_key}}"
          },
          "properties": {
            "dealname": "{{deal_name}}",
            "amount": "10000",
            "dealstage": "qualifiedtobuy"
          },
          "associations": [
            {
              "to": { "id": "{{contact_id}}" },
              "types": [
                {
                  "associationCategory": "HUBSPOT_DEFINED",
                  "associationTypeId": 3
                }
              ]
            }
          ]
        }
      }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Sucesso",
        "parameters": {
          "message": "Deal {{deal_name}} criado e associado ao contato!"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1100, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "variable_1" },
    { "source": "variable_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": "appointmentscheduled",
    "createdate": "2025-01-15T10:30:00.000Z"
  },
  "createdAt": "2025-01-15T10:30:00.000Z"
}

Boas Práticas

SIM: - Sempre defina dealname descritivo - Especifique amount quando possível - Use dealstage apropriado para o estágio atual - Associe a contato ou empresa existente - Defina closedate estimada - Atribua a vendedor responsável (hubspot_owner_id)

NÃO: - Criar deals sem valor definido - Esquecer de associar a contato - Usar dealstage inexistente no pipeline - Criar duplicatas - busque antes

Dicas

💡 Dica 1: Combine HUBSPOT_CONTACT_CREATE → HUBSPOT_DEAL_CREATE para criar lead e oportunidade juntos.

💡 Dica 2: Use propriedades customizadas para rastrear origem do deal (WhatsApp, Website, etc.).

💡 Dica 3: Após criar deal, use HUBSPOT_TASK_CREATE para criar tarefa de follow-up.

Próximos Nodes

HUBSPOT_DEAL_UPDATE - Atualizar deal existente → HUBSPOT_DEAL_GET - Buscar dados do deal → HUBSPOT_CONTACT_CREATE - Criar contato antes do deal