ZENDESK TICKET DELETE - Deletar Ticket
O que é este Node?
O ZENDESK TICKET DELETE é o node responsável por remover permanentemente tickets do Zendesk, útil para limpar tickets de teste, spam ou dados incorretos.
Por que este Node existe?
Nem todos os tickets devem permanecer no sistema permanentemente. O ZENDESK TICKET DELETE existe para:
- Limpeza de Testes: Remover tickets criados durante testes e desenvolvimento
- Remoção de Spam: Deletar tickets criados por bots ou spam
- Correção de Erros: Remover tickets criados por engano ou com dados incorretos
- Conformidade LGPD/GDPR: Deletar dados quando solicitado por clientes
Como funciona internamente?
Quando o ZENDESK TICKET DELETE é executado, o sistema:
- Valida Credenciais: Verifica subdomain, email e API token
- Substitui Variáveis: Processa ticketId com valores do contexto
- Cria Cliente HTTP: Configura autenticação Basic Auth
- Envia Request DELETE: Remove ticket em /api/v2/tickets/{id}.json
- Se ticket não existe: Retorna erro 404
- Se sucesso: Retorna confirmação de deleção
- Ticket é removido permanentemente: Não pode ser recuperado
Código interno (zendesk.executor.ts:113-116):
case 'delete':
const deleteTicketId = this.replaceVariables(data.ticketId, context.variables);
await client.delete(`/tickets/${deleteTicketId}.json`);
return { deleted: true };
Quando você DEVE usar este Node?
Use ZENDESK TICKET DELETE apenas quando precisar remover permanentemente um ticket:
Casos de uso
- Limpeza Pós-Testes: "Remover 50 tickets de teste criados durante desenvolvimento"
- Filtro Anti-Spam: "Deletar automaticamente tickets identificados como spam"
- Solicitação de Deleção: "Cliente solicitou remoção de seus dados (LGPD)"
Quando NÃO usar ZENDESK TICKET DELETE
- Ticket Resolvido: Use ZENDESK TICKET UPDATE com status "solved" ou "closed" ao invés
- Arquivamento: Melhor marcar como "closed" do que deletar (mantém histórico)
- Tickets Legítimos: NUNCA delete tickets reais de clientes
Parâmetros Detalhados
config (object, obrigatório)
O que é: Objeto com credenciais de autenticação do Zendesk.
Estrutura:
{
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_aqui"
}
Flow completo para testar:
{
"name": "Teste Zendesk - Delete Config",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 250, "y": 100 },
"data": {
"label": "ID de Teste",
"parameters": {
"variableName": "ticket_teste_id",
"value": "99999"
}
}
},
{
"id": "zendesk_1",
"type": "zendesk",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Deletar Ticket",
"resource": "ticket",
"operation": "delete",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"ticketId": "{{ticket_teste_id}}",
"responseVariable": "resultado"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 550, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Ticket deletado: {{resultado.deleted}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "zendesk_1" },
{ "source": "zendesk_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Use ID de ticket de teste → veja confirmação de deleção
ticketId (string, obrigatório)
O que é: ID do ticket a ser deletado permanentemente.
Suporta variáveis: Sim, use {{variavel}}.
⚠️ ATENÇÃO: Operação irreversível! Ticket não pode ser recuperado após deleção.
Flow completo para testar:
{
"name": "Teste Zendesk - Delete com Confirmação",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 250, "y": 100 },
"data": {
"label": "ID do Ticket",
"parameters": {
"message": "Digite o ID do ticket de TESTE a deletar:",
"variable": "id_deletar"
}
}
},
{
"id": "message_warning",
"type": "message",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Aviso",
"parameters": {
"message": "⚠️ ATENÇÃO: Esta operação é IRREVERSÍVEL!\n\nTicket #{{id_deletar}} será deletado permanentemente.\n\nDigite CONFIRMAR para prosseguir:"
}
}
},
{
"id": "input_2",
"type": "input",
"position": { "x": 550, "y": 100 },
"data": {
"label": "Confirmação",
"parameters": {
"message": "Digite CONFIRMAR:",
"variable": "confirmacao"
}
}
},
{
"id": "condition_1",
"type": "condition",
"position": { "x": 700, "y": 50 },
"data": {
"label": "Verificar Confirmação",
"parameters": {
"conditions": [
{
"variable": "confirmacao",
"operator": "equals",
"value": "CONFIRMAR"
}
]
}
}
},
{
"id": "zendesk_delete",
"type": "zendesk",
"position": { "x": 850, "y": 50 },
"data": {
"label": "Executar Deleção",
"resource": "ticket",
"operation": "delete",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"ticketId": "{{id_deletar}}",
"responseVariable": "resultado"
}
},
{
"id": "message_deleted",
"type": "message",
"position": { "x": 1000, "y": 50 },
"data": {
"label": "Sucesso",
"parameters": {
"message": "✅ Ticket #{{id_deletar}} deletado permanentemente."
}
}
},
{
"id": "message_cancelled",
"type": "message",
"position": { "x": 850, "y": 150 },
"data": {
"label": "Cancelado",
"parameters": {
"message": "❌ Operação cancelada. Ticket NÃO foi deletado."
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1150, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "message_warning" },
{ "source": "message_warning", "target": "input_2" },
{ "source": "input_2", "target": "condition_1" },
{ "source": "condition_1", "target": "zendesk_delete", "label": "true" },
{ "source": "condition_1", "target": "message_cancelled", "label": "false" },
{ "source": "zendesk_delete", "target": "message_deleted" },
{ "source": "message_deleted", "target": "end_1" },
{ "source": "message_cancelled", "target": "end_1" }
]
}
Teste: Digite ID → confirme → veja ticket sendo deletado
responseVariable (string, opcional)
O que é: Nome da variável onde o resultado da deleção será armazenado.
Valor retornado: { deleted: true }
Flow completo para testar:
{
"name": "Teste Zendesk - Response Variable",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 250, "y": 100 },
"data": {
"label": "ID",
"parameters": {
"variableName": "id",
"value": "99999"
}
}
},
{
"id": "zendesk_1",
"type": "zendesk",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Deletar",
"resource": "ticket",
"operation": "delete",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"ticketId": "{{id}}",
"responseVariable": "delecao"
}
},
{
"id": "condition_1",
"type": "condition",
"position": { "x": 550, "y": 50 },
"data": {
"label": "Verificar Sucesso",
"parameters": {
"conditions": [
{
"variable": "delecao.deleted",
"operator": "equals",
"value": true
}
]
}
}
},
{
"id": "message_success",
"type": "message",
"position": { "x": 700, "y": 50 },
"data": {
"label": "Sucesso",
"parameters": {
"message": "✅ Ticket deletado com sucesso!"
}
}
},
{
"id": "message_error",
"type": "message",
"position": { "x": 700, "y": 150 },
"data": {
"label": "Erro",
"parameters": {
"message": "❌ Falha ao deletar ticket"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 850, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "zendesk_1" },
{ "source": "zendesk_1", "target": "condition_1" },
{ "source": "condition_1", "target": "message_success", "label": "true" },
{ "source": "condition_1", "target": "message_error", "label": "false" },
{ "source": "message_success", "target": "end_1" },
{ "source": "message_error", "target": "end_1" }
]
}
Teste: Execute → veja verificação de sucesso da deleção
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| config.subdomain | string | Sim | Subdomínio do Zendesk |
| config.email | string | Sim | Email da conta Zendesk |
| config.apiToken | string | Sim | Token de API |
| ticketId | string | Sim | ID do ticket a deletar (suporta {{variáveis}}) |
| responseVariable | string | Não | Nome da variável para armazenar resposta |
Exemplo 1: Limpeza de Tickets de Teste
Objetivo: Deletar múltiplos tickets de teste após desenvolvimento
JSON para Importar
{
"name": "Limpeza de Tickets de Teste",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "variable_1",
"type": "variable",
"position": { "x": 250, "y": 100 },
"data": {
"label": "IDs de Teste",
"parameters": {
"variableName": "tickets_teste",
"value": "[99001, 99002, 99003, 99004, 99005]"
}
}
},
{
"id": "loop_1",
"type": "loop",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Para Cada Ticket",
"parameters": {
"array": "{{tickets_teste}}",
"itemVariable": "ticket_id",
"indexVariable": "index"
}
}
},
{
"id": "zendesk_delete",
"type": "zendesk",
"position": { "x": 550, "y": 100 },
"data": {
"label": "Deletar Ticket",
"resource": "ticket",
"operation": "delete",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"ticketId": "{{ticket_id}}",
"responseVariable": "resultado"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Log",
"parameters": {
"message": "✅ Ticket #{{ticket_id}} deletado"
}
}
},
{
"id": "delay_1",
"type": "delay",
"position": { "x": 850, "y": 100 },
"data": {
"label": "Aguardar",
"parameters": {
"duration": 500
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1000, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "loop_1" },
{ "source": "loop_1", "target": "zendesk_delete" },
{ "source": "zendesk_delete", "target": "message_1" },
{ "source": "message_1", "target": "delay_1" },
{ "source": "delay_1", "target": "loop_1" },
{ "source": "loop_1", "target": "end_1", "label": "done" }
]
}
Saída esperada:
Sistema: ✅ Ticket #99001 deletado
Sistema: ✅ Ticket #99002 deletado
Sistema: ✅ Ticket #99003 deletado
Sistema: ✅ Ticket #99004 deletado
Sistema: ✅ Ticket #99005 deletado
Exemplo 2: Anti-Spam Automatizado
Objetivo: Identificar e deletar automaticamente tickets de spam
JSON para Importar
{
"name": "Filtro Anti-Spam de Tickets",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "zendesk_getall",
"type": "zendesk",
"position": { "x": 250, "y": 100 },
"data": {
"label": "Buscar Novos Tickets",
"resource": "ticket",
"operation": "getAll",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"limit": 100,
"responseVariable": "todos_tickets"
}
},
{
"id": "calculator_1",
"type": "calculator",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Filtrar Spam",
"parameters": {
"operation": "custom",
"expression": "todos_tickets.tickets.filter(t => t.subject.toLowerCase().includes('viagra') || t.subject.toLowerCase().includes('casino') || t.description.toLowerCase().includes('buy now'))",
"resultVariable": "tickets_spam"
}
}
},
{
"id": "condition_1",
"type": "condition",
"position": { "x": 550, "y": 50 },
"data": {
"label": "Tem Spam?",
"parameters": {
"conditions": [
{
"variable": "tickets_spam",
"operator": "greater_than",
"value": "0"
}
]
}
}
},
{
"id": "loop_1",
"type": "loop",
"position": { "x": 700, "y": 50 },
"data": {
"label": "Para Cada Spam",
"parameters": {
"array": "{{tickets_spam}}",
"itemVariable": "spam_ticket",
"indexVariable": "i"
}
}
},
{
"id": "zendesk_delete",
"type": "zendesk",
"position": { "x": 850, "y": 50 },
"data": {
"label": "Deletar Spam",
"resource": "ticket",
"operation": "delete",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"ticketId": "{{spam_ticket.id}}",
"responseVariable": "deleted"
}
},
{
"id": "message_deleted",
"type": "message",
"position": { "x": 1000, "y": 50 },
"data": {
"label": "Log Spam",
"parameters": {
"message": "🗑️ Spam deletado: #{{spam_ticket.id}} - {{spam_ticket.subject}}"
}
}
},
{
"id": "message_clean",
"type": "message",
"position": { "x": 700, "y": 150 },
"data": {
"label": "Sem Spam",
"parameters": {
"message": "✅ Nenhum spam detectado!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1150, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "zendesk_getall" },
{ "source": "zendesk_getall", "target": "calculator_1" },
{ "source": "calculator_1", "target": "condition_1" },
{ "source": "condition_1", "target": "loop_1", "label": "true" },
{ "source": "condition_1", "target": "message_clean", "label": "false" },
{ "source": "loop_1", "target": "zendesk_delete" },
{ "source": "zendesk_delete", "target": "message_deleted" },
{ "source": "message_deleted", "target": "loop_1" },
{ "source": "loop_1", "target": "end_1", "label": "done" },
{ "source": "message_clean", "target": "end_1" }
]
}
Saída esperada:
Sistema: 🗑️ Spam deletado: #12301 - Buy viagra now!!!
Sistema: 🗑️ Spam deletado: #12305 - Online casino best deals
Exemplo 3: Solicitação LGPD de Deleção
Objetivo: Cliente solicita remoção de seus dados (direito ao esquecimento)
JSON para Importar
{
"name": "Solicitação LGPD - Deletar Dados",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "message_1",
"type": "message",
"position": { "x": 250, "y": 100 },
"data": {
"label": "Informar LGPD",
"parameters": {
"message": "Você solicitou a remoção dos seus dados (LGPD).\n\nVou processar a exclusão dos seus tickets."
}
}
},
{
"id": "email_1",
"type": "email",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Confirmar Email",
"parameters": {
"message": "Digite seu email para confirmação:",
"variable": "email_cliente"
}
}
},
{
"id": "zendesk_search",
"type": "zendesk",
"position": { "x": 550, "y": 100 },
"data": {
"label": "Buscar Tickets do Cliente",
"resource": "user",
"operation": "search",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"query": "{{email_cliente}}",
"responseVariable": "user_data"
}
},
{
"id": "zendesk_getall",
"type": "zendesk",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Buscar Todos Tickets",
"resource": "ticket",
"operation": "getAll",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"limit": 100,
"responseVariable": "todos_tickets"
}
},
{
"id": "calculator_1",
"type": "calculator",
"position": { "x": 850, "y": 100 },
"data": {
"label": "Filtrar Tickets do Cliente",
"parameters": {
"operation": "custom",
"expression": "todos_tickets.tickets.filter(t => t.requester_id === user_data.users[0].id)",
"resultVariable": "tickets_cliente"
}
}
},
{
"id": "loop_1",
"type": "loop",
"position": { "x": 1000, "y": 100 },
"data": {
"label": "Deletar Cada Ticket",
"parameters": {
"array": "{{tickets_cliente}}",
"itemVariable": "ticket",
"indexVariable": "i"
}
}
},
{
"id": "zendesk_delete",
"type": "zendesk",
"position": { "x": 1150, "y": 100 },
"data": {
"label": "Deletar Ticket",
"resource": "ticket",
"operation": "delete",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"ticketId": "{{ticket.id}}",
"responseVariable": "deleted"
}
},
{
"id": "message_final",
"type": "message",
"position": { "x": 1300, "y": 100 },
"data": {
"label": "Confirmar LGPD",
"parameters": {
"message": "✅ Seus dados foram removidos conforme LGPD.\n\nTotal de tickets deletados: {{tickets_cliente.length}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1450, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "message_1" },
{ "source": "message_1", "target": "email_1" },
{ "source": "email_1", "target": "zendesk_search" },
{ "source": "zendesk_search", "target": "zendesk_getall" },
{ "source": "zendesk_getall", "target": "calculator_1" },
{ "source": "calculator_1", "target": "loop_1" },
{ "source": "loop_1", "target": "zendesk_delete" },
{ "source": "zendesk_delete", "target": "loop_1" },
{ "source": "loop_1", "target": "message_final", "label": "done" },
{ "source": "message_final", "target": "end_1" }
]
}
Saída esperada:
Sistema: Você solicitou a remoção dos seus dados (LGPD).
Vou processar a exclusão dos seus tickets.
Sistema: Digite seu email para confirmação:
Usuário: joao@email.com
Sistema: ✅ Seus dados foram removidos conforme LGPD.
Total de tickets deletados: 3
Resposta do Node
{
"deleted": true
}
Boas Práticas
✅ SIM:
- SEMPRE confirme antes de deletar (use CONDITION com confirmação)
- Use DELETE apenas para tickets de teste, spam ou dados incorretos
- Mantenha log de tickets deletados (especialmente para conformidade)
- Combine com USER SEARCH para encontrar todos os tickets de um cliente (LGPD)
- Adicione delay entre múltiplas deleções para evitar rate limiting
❌ NÃO:
- NUNCA delete tickets legítimos de clientes reais
- Não delete sem confirmação explícita
- Não use DELETE como forma de "arquivar" - use status "closed" ao invés
- Não delete tickets que possam ter valor histórico ou legal
- Não faça deleção em massa sem validação cuidadosa
Dicas
💡 Dica 1: Para "arquivar" tickets, use UPDATE com status "closed" ao invés de DELETE - mantém histórico
💡 Dica 2: Implemente processo de confirmação dupla para operações de deleção (segurança extra)
💡 Dica 3: Use LOOP com DELAY para deletar múltiplos tickets sem sobrecarregar a API do Zendesk
💡 Dica 4: Mantenha lista de IDs deletados em variável para auditoria e logs
💡 Dica 5: Para conformidade LGPD/GDPR, combine USER SEARCH + TICKET GETALL + filtro + DELETE para remover todos os dados de um cliente
Próximo Node
→ ZENDESK TICKET CREATE - Criar novo ticket → ZENDESK TICKET UPDATE - Atualizar ticket (alternativa ao delete) → ZENDESK USER DELETE - Deletar usuário