Pular para conteúdo

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:

  1. Automatização de Cadastro: Criar usuários automaticamente a partir de contatos do WhatsApp
  2. Gestão Centralizada: Manter base unificada de clientes no Zendesk
  3. Rastreamento: Associar tickets a usuários específicos para histórico
  4. Segmentação: Criar diferentes tipos de usuários (end-user, agent, admin)

Como funciona internamente?

Quando o ZENDESK USER CREATE é executado, o sistema:

  1. Valida Credenciais: Verifica subdomain, email e API token
  2. Substitui Variáveis: Processa name, email e role com valores do contexto
  3. Prepara Dados: Monta objeto user com informações fornecidas
  4. Cria Cliente HTTP: Configura autenticação Basic Auth
  5. Envia Request POST: Cria usuário em /api/v2/users.json
  6. Se email já existe: Pode retornar erro (depende das configurações do Zendesk)
  7. 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

  1. Primeiro Contato: "Cliente inicia conversa no WhatsApp → criar usuário automaticamente"
  2. Cadastro de Agentes: "Novo funcionário contratado → criar conta de agente"
  3. 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}})
email 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