ZENDESK USER CREATE - Criar Usuário
O que é este Node?
O ZENDESK USER CREATE é o node responsável por criar novos usuários no Zendesk, permitindo registrar clientes, agentes ou administradores no sistema de suporte.
Por que este Node existe?
Ao integrar WhatsApp com Zendesk, é essencial criar usuários automaticamente quando novos clientes iniciam conversas. O ZENDESK USER CREATE existe para:
- Automatização de Cadastro: Criar usuários automaticamente a partir de contatos do WhatsApp
- Gestão Centralizada: Manter base unificada de clientes no Zendesk
- Rastreamento: Associar tickets a usuários específicos para histórico
- Segmentação: Criar diferentes tipos de usuários (end-user, agent, admin)
Como funciona internamente?
Quando o ZENDESK USER CREATE é executado, o sistema:
- Valida Credenciais: Verifica subdomain, email e API token
- Substitui Variáveis: Processa name, email e role com valores do contexto
- Prepara Dados: Monta objeto user com informações fornecidas
- Cria Cliente HTTP: Configura autenticação Basic Auth
- Envia Request POST: Cria usuário em /api/v2/users.json
- Se email já existe: Pode retornar erro (depende das configurações do Zendesk)
- Se sucesso: Retorna objeto user completo criado
Código interno (zendesk.executor.ts:130-138):
case 'create':
const userData = {
name: this.replaceVariables(data.name, context.variables),
email: this.replaceVariables(data.email, context.variables),
role: data.role || 'end-user',
};
const { data: createResponse } = await client.post('/users.json', { user: userData });
return createResponse.user;
Quando você DEVE usar este Node?
Use ZENDESK USER CREATE sempre que precisar registrar um novo usuário no Zendesk:
Casos de uso
- Primeiro Contato: "Cliente inicia conversa no WhatsApp → criar usuário automaticamente"
- Cadastro de Agentes: "Novo funcionário contratado → criar conta de agente"
- Integração Externa: "Sistema externo cria usuário no Zendesk via API"
Quando NÃO usar ZENDESK USER CREATE
- Usuário Já Existe: Use ZENDESK USER SEARCH para verificar existência primeiro
- Atualizar Dados: Use ZENDESK USER UPDATE ao invés
- Consultar Usuário: Use ZENDESK USER GET
Parâmetros Detalhados
name (string, obrigatório)
O que é: Nome completo do usuário.
Suporta variáveis: Sim, use {{variavel}}.
email (string, obrigatório)
O que é: Email do usuário (deve ser único no Zendesk).
Suporta variáveis: Sim, use {{variavel}}.
role (string, opcional)
O que é: Tipo/função do usuário.
Valores possíveis: "end-user", "agent", "admin"
Padrão: "end-user"
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| config.subdomain | string | Sim | Subdomínio do Zendesk |
| config.email | string | Sim | Email da conta Zendesk (admin) |
| config.apiToken | string | Sim | Token de API |
| name | string | Sim | Nome completo do usuário (suporta {{variáveis}}) |
| string | Sim | Email do usuário (suporta {{variáveis}}) | |
| role | string | Não | Tipo: end-user, agent, admin (padrão: end-user) |
| responseVariable | string | Não | Nome da variável para armazenar resposta |
Exemplo 1: Criar Usuário Automaticamente no Primeiro Contato
Objetivo: Cliente inicia conversa e sistema cria usuário no Zendesk
JSON para Importar
{
"name": "Criar Usuário Automaticamente",
"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": "Boas-vindas",
"parameters": {
"message": "Olá! Vou cadastrar você no nosso sistema."
}
}
},
{
"id": "input_name",
"type": "input",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Nome",
"parameters": {
"message": "Qual seu nome completo?",
"variable": "nome_cliente"
}
}
},
{
"id": "email_1",
"type": "email",
"position": { "x": 550, "y": 100 },
"data": {
"label": "Email",
"parameters": {
"message": "Qual seu email?",
"variable": "email_cliente"
}
}
},
{
"id": "zendesk_1",
"type": "zendesk",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Criar Usuário",
"resource": "user",
"operation": "create",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"name": "{{nome_cliente}}",
"email": "{{email_cliente}}",
"role": "end-user",
"responseVariable": "usuario_criado"
}
},
{
"id": "message_2",
"type": "message",
"position": { "x": 850, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "✅ Cadastro realizado com sucesso!\n\nUsuário ID: {{usuario_criado.id}}\n\nAgora você pode abrir tickets de suporte."
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1000, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "message_1" },
{ "source": "message_1", "target": "input_name" },
{ "source": "input_name", "target": "email_1" },
{ "source": "email_1", "target": "zendesk_1" },
{ "source": "zendesk_1", "target": "message_2" },
{ "source": "message_2", "target": "end_1" }
]
}
Saída esperada:
Sistema: Olá! Vou cadastrar você no nosso sistema.
Sistema: Qual seu nome completo?
Usuário: João Silva
Sistema: Qual seu email?
Usuário: joao@email.com
Sistema: ✅ Cadastro realizado com sucesso!
Usuário ID: 12345
Agora você pode abrir tickets de suporte.
Exemplo 2: Verificar e Criar se Não Existir
Objetivo: Buscar usuário por email, criar somente se não existir
JSON para Importar
{
"name": "Verificar e Criar Usuário",
"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": "Dados do Cliente",
"parameters": {
"variableName": "email",
"value": "{{user_phone}}@whatsapp.temp"
}
}
},
{
"id": "variable_2",
"type": "variable",
"position": { "x": 400, "y": 100 },
"data": {
"label": "Nome",
"parameters": {
"variableName": "nome",
"value": "{{user_name}}"
}
}
},
{
"id": "zendesk_search",
"type": "zendesk",
"position": { "x": 550, "y": 100 },
"data": {
"label": "Buscar Usuário",
"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": 700, "y": 50 },
"data": {
"label": "Usuário Existe?",
"parameters": {
"conditions": [
{
"variable": "busca.count",
"operator": "greater_than",
"value": "0"
}
]
}
}
},
{
"id": "message_exists",
"type": "message",
"position": { "x": 850, "y": 50 },
"data": {
"label": "Já Existe",
"parameters": {
"message": "Usuário já cadastrado!"
}
}
},
{
"id": "zendesk_create",
"type": "zendesk",
"position": { "x": 850, "y": 150 },
"data": {
"label": "Criar Novo",
"resource": "user",
"operation": "create",
"config": {
"subdomain": "sua-empresa",
"email": "admin@empresa.com",
"apiToken": "seu_token_api"
},
"name": "{{nome}}",
"email": "{{email}}",
"role": "end-user",
"responseVariable": "usuario"
}
},
{
"id": "message_created",
"type": "message",
"position": { "x": 1000, "y": 150 },
"data": {
"label": "Criado",
"parameters": {
"message": "✅ Novo usuário criado! ID: {{usuario.id}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1150, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "variable_1" },
{ "source": "variable_1", "target": "variable_2" },
{ "source": "variable_2", "target": "zendesk_search" },
{ "source": "zendesk_search", "target": "condition_1" },
{ "source": "condition_1", "target": "message_exists", "label": "true" },
{ "source": "condition_1", "target": "zendesk_create", "label": "false" },
{ "source": "message_exists", "target": "end_1" },
{ "source": "zendesk_create", "target": "message_created" },
{ "source": "message_created", "target": "end_1" }
]
}
Saída esperada (novo usuário):
Sistema: ✅ Novo usuário criado! ID: 12345
Resposta do Node
{
"id": 12345,
"name": "João Silva",
"email": "joao@email.com",
"role": "end-user",
"created_at": "2025-01-15T10:30:00Z",
"updated_at": "2025-01-15T10:30:00Z",
"url": "https://sua-empresa.zendesk.com/api/v2/users/12345.json"
}
Boas Práticas
✅ SIM:
- Verifique se usuário já existe antes de criar (use SEARCH primeiro)
- Use role "end-user" para clientes finais
- Armazene user ID para associar tickets posteriormente
- Use email único e válido
❌ NÃO:
- Não crie usuários duplicados sem verificar
- Não use role "admin" para clientes comuns
- Não ignore erros de email duplicado
Dicas
💡 Dica 1: Combine SEARCH + CREATE para evitar duplicatas
💡 Dica 2: Para WhatsApp, use padrão {{user_phone}}@whatsapp.temp como email temporário
💡 Dica 3: Armazene user.id para criar tickets associados ao usuário
Próximo Node
→ ZENDESK USER SEARCH - Buscar usuário por email → ZENDESK USER GET - Buscar usuário por ID → ZENDESK USER UPDATE - Atualizar dados do usuário