🎫 Zendesk Integration - Lumina Flow Builder
Visão Geral
A integração Zendesk permite conectar seus flows do WhatsApp com a plataforma de suporte Zendesk, automatizando criação de tickets, gestão de usuários e organizações diretamente de conversas no WhatsApp.
O que é Zendesk?
Zendesk é uma plataforma completa de atendimento ao cliente que oferece:
- 🎫 Gestão de Tickets: Sistema centralizado para rastreamento de solicitações
- 👥 Gestão de Usuários: Cadastro e organização de clientes
- 🏢 Organizações: Agrupamento de usuários por empresa
- 📊 Relatórios: Análise de desempenho e SLA
- 🔄 Automações: Workflows e regras de negócio
Por que usar Zendesk no Lumina?
Integrar Zendesk com WhatsApp permite:
- Suporte Automatizado 24/7: Clientes abrem tickets via WhatsApp automaticamente
- Rastreamento Centralizado: Todas as solicitações registradas em um único sistema
- Histórico Completo: Manter registro de todas as interações com clientes
- SLA e Priorização: Gerenciar urgências e prazos de atendimento
- Equipe Unificada: Time de suporte trabalha em interface conhecida (Zendesk)
Recursos Disponíveis
A integração Zendesk oferece 3 recursos principais com 16 operações no total:
🎫 Tickets (5 operações)
Gerenciamento completo de tickets de suporte:
- ticket-create - Criar novos tickets automaticamente
- ticket-get - Buscar ticket específico por ID
- ticket-getall - Listar múltiplos tickets
- ticket-update - Atualizar status, prioridade, adicionar comentários
- ticket-delete - Deletar tickets (testes, spam, LGPD)
👥 Users (6 operações)
Gestão de usuários (clientes, agentes, admins):
- user-create - Criar novos usuários automaticamente
- user-get - Buscar usuário por ID
- user-getall - Listar todos os usuários
- user-update - Atualizar dados de usuários
- user-delete - Deletar usuários (LGPD/GDPR)
- user-search - Buscar usuários por email/query
🏢 Organizations (5 operações)
Gestão de organizações/empresas:
- organization-create - Criar organizações
- organization-get - Buscar organização por ID
- organization-getall - Listar organizações
- organization-update - Atualizar dados
- organization-delete - Deletar organizações
Configuração Inicial
1. Obter Credenciais do Zendesk
Para usar a integração, você precisa:
- Subdomain: Seu subdomínio Zendesk (ex: "empresa" se sua URL é empresa.zendesk.com)
- Email Admin: Email de uma conta com permissões de administrador
- API Token: Token de API gerado nas configurações do Zendesk
2. Gerar API Token no Zendesk
- Acesse: Admin → Channels → API
- Ative Token Access
- Clique em Add API token
- Copie o token gerado (será mostrado apenas uma vez!)
- Guarde o token em local seguro
3. Configurar no Lumina Flow
Todas as operações Zendesk requerem objeto config:
{
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_aqui_abc123xyz"
}
}
Casos de Uso Comuns
🎯 Caso 1: Suporte Automatizado Completo
Objetivo: Cliente reporta problema via WhatsApp → Sistema cria usuário (se não existir) + cria ticket
Flow: 1. Cliente inicia conversa 2. Sistema busca se usuário já existe (USER SEARCH) 3. Se não existir → cria usuário (USER CREATE) 4. Coleta detalhes do problema (INPUT) 5. Cria ticket no Zendesk (TICKET CREATE) 6. Confirma número do ticket para o cliente
Benefício: Zero intervenção manual - tudo automatizado
🎯 Caso 2: Consulta de Status de Ticket
Objetivo: Cliente pergunta andamento do ticket
Flow: 1. Cliente envia mensagem com número do ticket 2. Sistema busca ticket (TICKET GET) 3. Verifica status atual 4. Informa cliente de forma amigável
Benefício: Cliente acompanha sozinho sem precisar ligar
🎯 Caso 3: Resolução Confirmada pelo Cliente
Objetivo: Cliente confirma que problema foi resolvido
Flow: 1. Sistema pergunta se problema foi resolvido 2. Cliente confirma (sim/não) 3. Se sim → atualiza ticket para "solved" (TICKET UPDATE) 4. Se não → aumenta prioridade e notifica equipe
Benefício: Fechamento automático de tickets resolvidos
🎯 Caso 4: Escalação Automática por Tempo
Objetivo: Tickets antigos são automaticamente priorizados
Flow: 1. Schedule executa diariamente 2. Busca todos os tickets (TICKET GETALL) 3. Filtra tickets abertos há mais de 24h 4. Aumenta prioridade automaticamente (TICKET UPDATE) 5. Adiciona comentário explicando escalação
Benefício: SLA mantido automaticamente
🎯 Caso 5: Conformidade LGPD
Objetivo: Cliente solicita remoção de dados
Flow: 1. Cliente solicita deleção (LGPD) 2. Sistema busca usuário por email (USER SEARCH) 3. Busca todos os tickets do usuário (TICKET GETALL + filtro) 4. Deleta todos os tickets (TICKET DELETE em loop) 5. Deleta o usuário (USER DELETE) 6. Confirma deleção para o cliente
Benefício: Conformidade automática com LGPD/GDPR
Exemplos de Flows Completos
Exemplo 1: Criar Ticket Básico
{
"name": "Criar Ticket Simples",
"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": "Descrever Problema",
"parameters": {
"message": "Descreva seu problema:",
"variable": "problema"
}
}
},
{
"id": "zendesk_1",
"type": "zendesk",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Criar Ticket",
"resource": "ticket",
"operation": "create",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"subject": "Suporte WhatsApp - {{user_name}}",
"description": "{{problema}}",
"priority": "normal",
"status": "new",
"type": "problem",
"responseVariable": "ticket"
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 550, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "Ticket #{{ticket.id}} criado!"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 700, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "zendesk_1" },
{ "source": "zendesk_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Exemplo 2: Buscar ou Criar Usuário
{
"name": "Buscar ou Criar Usuário",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "email_1",
"type": "email",
"position": { "x": 250, "y": 100 },
"data": {
"label": "Email",
"parameters": {
"message": "Digite seu email:",
"variable": "email"
}
}
},
{
"id": "zendesk_search",
"type": "zendesk",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Buscar",
"resource": "user",
"operation": "search",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"query": "{{email}}",
"responseVariable": "busca"
}
},
{
"id": "condition_1",
"type": "condition",
"position": { "x": 550, "y": 50 },
"data": {
"label": "Existe?",
"parameters": {
"conditions": [
{
"variable": "busca.count",
"operator": "greater_than",
"value": "0"
}
]
}
}
},
{
"id": "message_found",
"type": "message",
"position": { "x": 700, "y": 50 },
"data": {
"label": "Encontrado",
"parameters": {
"message": "Bem-vindo de volta!"
}
}
},
{
"id": "zendesk_create",
"type": "zendesk",
"position": { "x": 700, "y": 150 },
"data": {
"label": "Criar",
"resource": "user",
"operation": "create",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"name": "{{user_name}}",
"email": "{{email}}",
"role": "end-user",
"responseVariable": "usuario"
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 850, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "email_1" },
{ "source": "email_1", "target": "zendesk_search" },
{ "source": "zendesk_search", "target": "condition_1" },
{ "source": "condition_1", "target": "message_found", "label": "true" },
{ "source": "condition_1", "target": "zendesk_create", "label": "false" },
{ "source": "message_found", "target": "end_1" },
{ "source": "zendesk_create", "target": "end_1" }
]
}
Boas Práticas Gerais
✅ Faça
- Sempre use USER SEARCH antes de USER CREATE para evitar duplicatas
- Armazene IDs em variáveis (ticket_id, user_id) para uso posterior
- Adicione contexto nos comentários (canal: WhatsApp, telefone, horário)
- Use prioridades de forma inteligente - não abuse de "urgent"
- Implemente confirmação para DELETE - operação irreversível
- Trate erros - use CONDITION para verificar se operações foram bem-sucedidas
- Use variáveis dinâmicas nos subject/description ({{user_name}}, {{user_phone}})
❌ Não Faça
- Não exponha API tokens em logs ou mensagens ao cliente
- Não crie tickets duplicados - sempre verifique antes
- Não delete dados sem confirmação - especialmente tickets reais
- Não ignore rate limits - adicione DELAY entre operações em massa
- Não assuma que operações sempre funcionam - trate erros
- Não use status "closed" ao criar tickets - use "new"
- Não faça múltiplas chamadas quando pode fazer uma - agrupe updates
Campos Comuns
Status de Ticket
new- Ticket recém-criado, não atribuídoopen- Em atendimentopending- Aguardando resposta do clientehold- Em esperasolved- Problema resolvidoclosed- Ticket fechado permanentemente
Prioridades
low- Baixa prioridadenormal- Prioridade padrãohigh- Alta prioridadeurgent- Urgente - requer atenção imediata
Tipos de Ticket
problem- Problema técnicoincident- Incidente relacionado a outro problemaquestion- Dúvida/perguntatask- Tarefa/solicitação
Roles de Usuário
end-user- Cliente final (padrão)agent- Agente de suporteadmin- Administrador
Troubleshooting
Erro: "Subdomain not found"
Causa: Subdomain incorreto no config
Solução: Verifique se o subdomain está correto (ex: se sua URL é empresa.zendesk.com, use "subdomain": "empresa")
Erro: "Authentication failed"
Causa: Email ou API token incorretos
Solução:
1. Verifique se o email tem permissões de admin
2. Gere novo API token no Zendesk
3. Confirme que está usando o formato correto: email/token:api_token
Erro: "Record not found" (404)
Causa: Ticket/User/Organization ID não existe
Solução: Use SEARCH ou GET antes para verificar existência
Erro: "Email already exists"
Causa: Tentando criar usuário com email já cadastrado
Solução: Use USER SEARCH antes de CREATE para verificar duplicata
Erro: "Rate limit exceeded"
Causa: Muitas requisições em pouco tempo
Solução: Adicione DELAY entre operações em loops
Performance e Limites
Limites da API Zendesk
- Rate Limit: 700 requisições por minuto
- Paginação: Máximo 100 registros por página (getAll)
- Timeout: Requisições > 30s podem falhar
Otimizações
- Cache de Dados: Armazene resultados em variáveis para reutilizar
- Batch Operations: Agrupe múltiplas atualizações em uma chamada
- Filtros Locais: Use CALCULATOR para filtrar após GETALL ao invés de múltiplos GETs
- Delays Inteligentes: Adicione DELAY em loops para respeitar rate limits
Segurança
Proteção de Credenciais
- Nunca exponha tokens em mensagens ao cliente
- Use variáveis de ambiente para armazenar credenciais (se possível)
- Rotacione tokens periodicamente
- Limite permissões do usuário API ao mínimo necessário
Conformidade LGPD/GDPR
A integração oferece operações DELETE para conformidade com:
- Direito ao Esquecimento: USER DELETE + TICKET DELETE
- Portabilidade: GET/GETALL para exportar dados
- Correção: UPDATE para corrigir dados incorretos
Suporte e Recursos
Documentação Oficial Zendesk
Documentação Lumina
- DOCUMENTATION_GUIDE.md - Guia completo de documentação
- INDEX_ALL_TOOLS.md - Índice de todas as ferramentas
Links Rápidos
Total de Operações Documentadas: 16
Última Atualização: 2025-01-15
Status: ✅ Documentação Completa