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:
- Conformidade LGPD/GDPR: Atender solicitações de exclusão de dados pessoais
- Limpeza de Base: Remover contatos duplicados, inválidos ou de teste
- Gestão de Dados: Manter base limpa e organizada
- 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:
- Recebe o contactId: ID do contato a ser excluído
- Processa variáveis: Substitui
{{contact_id}}pelo valor real - Autentica na API: Usa Bearer Token (API Key)
- Faz requisição DELETE: Remove contato via
/crm/v3/objects/contacts/{contactId} - Move para lixeira: Contato fica arquivado por 90 dias (recuperável)
- Retorna confirmação: Responde com success e contactId excluído
- 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
- Solicitação de exclusão (LGPD): Usuário solicita remoção de seus dados
- Limpeza de duplicatas: Remover contatos duplicados após merge
- Contatos de teste: Limpar contatos criados em testes
- Inatividade prolongada: Excluir contatos inativos após período definido
- 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