Pular para conteúdo

SHOPIFY CUSTOMER CREATE - Criar Cliente no Shopify

O que é este Node?

O SHOPIFY CUSTOMER CREATE é o node responsável por criar novos clientes na loja Shopify, registrando nome, email, telefone e endereço.

Por que este Node existe?

Gerenciar base de clientes é essencial para e-commerce. O SHOPIFY CUSTOMER CREATE existe para:

  1. Cadastro via WhatsApp: Criar cliente quando faz primeiro contato
  2. Sincronização: Importar clientes de outros sistemas
  3. Campanha de marketing: Cadastrar leads capturados
  4. Programa de fidelidade: Registrar membros do programa
  5. Integração: Manter base unificada entre sistemas

Como funciona internamente?

Quando executado, o sistema envia requisição POST para API Shopify criando novo cliente e retornando dados completos com ID gerado.

Código interno (shopify.executor.ts:88-92):

case 'create': {
  const customer = JSON.parse(this.replaceVariables(JSON.stringify(node.data.customer), context.variables));
  const response = await axios.post(`${baseUrl}/customers.json`, { customer }, { headers });
  result = response.data;
  break;
}

Parâmetros

Campo Tipo Obrigatório Descrição
config.shopName string Sim Nome da loja
config.accessToken string Sim Token de acesso
customer.email string Sim Email do cliente
customer.first_name string Não Nome
customer.last_name string Não Sobrenome
customer.phone string Não Telefone com código país
customer.addresses array Não Endereços de entrega
customer.tags string Não Tags separadas por vírgula
responseVariable string Não Variável (padrão: shopifyResult)

Exemplo: Cadastrar Cliente via WhatsApp

{
  "name": "Shopify - Cadastro de Cliente",
  "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": "Boas-vindas",
        "parameters": {
          "message": "Bem-vindo! Vamos fazer seu cadastro."
        }
      }
    },
    {
      "id": "input_1",
      "type": "input",
      "position": { "x": 500, "y": 100 },
      "data": {
        "label": "Nome",
        "parameters": {
          "message": "Qual é o seu nome completo?",
          "variable": "fullName"
        }
      }
    },
    {
      "id": "email_1",
      "type": "email",
      "position": { "x": 700, "y": 100 },
      "data": {
        "label": "Email",
        "parameters": {
          "message": "Digite seu email:",
          "variable": "customerEmail"
        }
      }
    },
    {
      "id": "phone_1",
      "type": "phone",
      "position": { "x": 900, "y": 100 },
      "data": {
        "label": "Telefone",
        "parameters": {
          "message": "Digite seu telefone com DDD:",
          "variable": "customerPhone"
        }
      }
    },
    {
      "id": "shopify_1",
      "type": "shopify",
      "position": { "x": 1100, "y": 100 },
      "data": {
        "label": "Criar Cliente",
        "operation": "create",
        "resource": "customers",
        "config": {
          "shopName": "minhaloja",
          "accessToken": "shpat_xxxxxxxxxxxxx"
        },
        "customer": {
          "first_name": "{{fullName}}",
          "email": "{{customerEmail}}",
          "phone": "{{customerPhone}}",
          "tags": "whatsapp, novo_cliente"
        },
        "responseVariable": "newCustomer"
      }
    },
    {
      "id": "message_2",
      "type": "message",
      "position": { "x": 1300, "y": 100 },
      "data": {
        "label": "Sucesso",
        "parameters": {
          "message": "✅ Cadastro realizado com sucesso!\n\nNome: {{fullName}}\nEmail: {{customerEmail}}\nID Cliente: {{newCustomer.customer.id}}\n\nVocê receberá nossas novidades e ofertas!"
        }
      }
    },
    {
      "id": "end_1",
      "type": "end",
      "position": { "x": 1500, "y": 100 },
      "data": { "label": "Fim" }
    }
  ],
  "edges": [
    { "source": "start_1", "target": "message_1" },
    { "source": "message_1", "target": "input_1" },
    { "source": "input_1", "target": "email_1" },
    { "source": "email_1", "target": "phone_1" },
    { "source": "phone_1", "target": "shopify_1" },
    { "source": "shopify_1", "target": "message_2" },
    { "source": "message_2", "target": "end_1" }
  ]
}

Resposta do Node

{
  "customer": {
    "id": 6234567890123,
    "email": "joao@example.com",
    "first_name": "João",
    "last_name": "Silva",
    "phone": "+5511999999999",
    "created_at": "2025-01-15T10:30:00-03:00",
    "updated_at": "2025-01-15T10:30:00-03:00",
    "tags": "whatsapp, novo_cliente",
    "addresses": [],
    "orders_count": 0,
    "total_spent": "0.00",
    "state": "enabled"
  }
}

Boas Práticas

SIM: - Valide email antes de criar cliente - Use tags para segmentar clientes (origem, tipo, etc.) - Verifique se email já existe antes de criar duplicado - Normalize telefone com código do país (+55) - Registre origem do cadastro em tags

NÃO: - Não crie clientes com emails inválidos - Não crie duplicados sem verificar - Não esqueça de tratar erros (email já existe) - Não envie dados sensíveis em tags

Dicas

Dica 1: Shopify valida email único - não permite duplicados.

Dica 2: Use tags para identificar origem: whatsapp, site, loja_fisica.

Dica 3: Telefone deve ter código do país: +5511999999999.

Dica 4: Cliente é criado com state: enabled por padrão.

Próximo Node

SHOPIFY CUSTOMER GET - Buscar cliente → SHOPIFY CUSTOMER UPDATE - Atualizar cliente → SHOPIFY CUSTOMER SEARCH - Buscar por email/nome