Pular para conteúdo

HUBSPOT_CONTACT_DELETE - Excluir Contato no HubSpot

O que é este Node?

O HUBSPOT_CONTACT_DELETE é o node responsável por excluir contatos do HubSpot CRM, movendo-os para a lixeira (podem ser recuperados por 90 dias).

Por que este Node existe?

Gerenciar dados LGPD e limpar contatos inválidos é essencial. O HUBSPOT_CONTACT_DELETE existe para:

  1. Conformidade LGPD/GDPR: Atender solicitações de exclusão de dados pessoais
  2. Limpeza de Base: Remover contatos duplicados, inválidos ou de teste
  3. Gestão de Dados: Manter base limpa e organizada
  4. Automação de Exclusão: Excluir automaticamente contatos inativos ou que solicitaram remoção

Como funciona internamente?

Quando o HUBSPOT_CONTACT_DELETE é executado, o sistema:

  1. Recebe o contactId: ID do contato a ser excluído
  2. Processa variáveis: Substitui {{contact_id}} pelo valor real
  3. Autentica na API: Usa Bearer Token (API Key)
  4. Faz requisição DELETE: Remove contato via /crm/v3/objects/contacts/{contactId}
  5. Move para lixeira: Contato fica arquivado por 90 dias (recuperável)
  6. Retorna confirmação: Responde com success e contactId excluído
  7. Em caso de erro: Lança exceção se contato não existir

Código interno (hubspot.executor.ts:81-88):

case 'delete': {
  const contactId = this.replaceVariables(data.contactId, context.variables);
  await axios.delete(
    `${baseUrl}/${contactId}`,
    { headers: { 'Authorization': `Bearer ${apiKey}` } }
  );
  return { success: true, contactId };
}

Quando você DEVE usar este Node?

Use HUBSPOT_CONTACT_DELETE quando precisar remover contatos permanentemente:

Casos de uso

  1. Solicitação de exclusão (LGPD): Usuário solicita remoção de seus dados
  2. Limpeza de duplicatas: Remover contatos duplicados após merge
  3. Contatos de teste: Limpar contatos criados em testes
  4. Inatividade prolongada: Excluir contatos inativos após período definido
  5. Dados inválidos: Remover contatos com informações completamente incorretas

Quando NÃO usar HUBSPOT_CONTACT_DELETE

  • Quer apenas arquivar: Use update com propriedade de arquivamento customizada
  • Não tem certeza: Sempre confirme antes de excluir
  • Contato tem deals ativos: Verifique dependências antes de excluir

Parâmetros

Campo Tipo Obrigatório Descrição
resource string Sim Deve ser "contacts"
operation string Sim Deve ser "delete"
config.apiKey string Sim API Key com permissão crm.objects.contacts.write
contactId string Sim ID do contato a excluir
responseVariable string Não Variável para armazenar resultado

Exemplo: Solicitação de Exclusão LGPD

Objetivo: Permitir que usuário solicite exclusão de seus dados

JSON para Importar

{
  "name": "HubSpot - Exclusão LGPD",
  "nodes": [
    {
      "id": "start_1",
      "type": "start",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "Início" }
    },
    {
      "id": "message_1",
      "type": "message",
      "position": { "x": 300, "y": 100 },
      "data": {
        "label": "Aviso",
        "parameters": {
          "message": "⚠️ ATENÇÃO: Esta ação excluirá permanentemente seus dados. Deseja continuar? (Digite SIM para confirmar)"
        }
      }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Confirmação",
        "parameters": {
          "message": "Digite SIM para confirmar:",
          "variableName": "confirmacao"
        }
      }
    },
    {
      "id": "condition_1",
      "type": "condition",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Verificar",
        "parameters": {
          "variable": "{{confirmacao}}",
          "operator": "equals",
          "value": "SIM"
        }
      }
    },
    {
      "id": "hubspot_1",
      "type": "hubspot",
      "position": { "x": 900, "y": 50 },
      "data": {
        "label": "Excluir Contato",
        "parameters": {
          "resource": "contacts",
          "operation": "delete",
          "config": {
            "apiKey": "{{hubspot_api_key}}"
          },
          "contactId": "{{user_contact_id}}"
        }
      }
    },
    {
      "id": "message_2",
      "type": "message",
      "position": { "x": 1100, "y": 50 },
      "data": {
        "label": "Confirmado",
        "parameters": {
          "message": "✅ Seus dados foram excluídos conforme solicitado. Você tem 90 dias para solicitar recuperação caso mude de ideia."
        }
      }
    },
    {
      "id": "message_3",
      "type": "message",
      "position": { "x": 900, "y": 150 },
      "data": {
        "label": "Cancelado",
        "parameters": {
          "message": "Operação cancelada. Seus dados foram mantidos."
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1300, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "message_1" },
    { "source": "message_1", "target": "input_1" },
    { "source": "input_1", "target": "condition_1" },
    { "source": "condition_1", "target": "hubspot_1", "label": "true" },
    { "source": "condition_1", "target": "message_3", "label": "false" },
    { "source": "hubspot_1", "target": "message_2" },
    { "source": "message_2", "target": "end_1" },
    { "source": "message_3", "target": "end_1" }
  ]
}

Resposta do Node

{
  "success": true,
  "contactId": "12345678901"
}

Boas Práticas

SIM: - Sempre implemente confirmação dupla antes de excluir - Registre exclusões em log/auditoria - Verifique dependências (deals, tickets) antes de excluir - Informe usuário sobre período de recuperação (90 dias) - Use para atender solicitações LGPD documentadas

NÃO: - Excluir sem confirmação explícita do usuário - Excluir em massa sem verificação - Usar para "arquivar" - use propriedade customizada - Ignorar implicações em deals e associações

Dicas

💡 Dica 1: Implemente processo de confirmação com código único enviado por email antes de permitir exclusão.

💡 Dica 2: Crie backup em sistema externo antes de excluir para compliance e auditoria.

💡 Dica 3: Informe usuário que dados podem ser recuperados em até 90 dias entrando em contato.

Próximos Nodes

HUBSPOT_CONTACT_GET - Verificar dados antes de excluir → HUBSPOT_CONTACT_SEARCH - Encontrar contato a excluir → HUBSPOT_CONTACT_CREATE - Criar novo contato