Proprietários do Shopify Liberem Seu Tempo Com Este Truque de IA do WhatsApp

21 de julho de 2025

Você consegue imaginar ter um assistente que mostre produtos, processe pedidos e envie as vendas automaticamente para o Shopify, tudo pelo WhatsApp?

Como especialistas em automação do WhatsApp Business na Wassenger, vimos uma tendência clara: os clientes preferem a conveniência de conversar pelo WhatsApp em vez de navegar em lojas online tradicionais, especialmente em mercados como a América Latina, onde o WhatsApp é o principal canal de comunicação.

Hoje vamos mostrar como criar um assistente de IA totalmente funcional que transformará a experiência de compra dos seus clientes, usando o Wassenger Flows — nosso novo recurso que integra as poderosas capacidades do n8n diretamente na nossa plataforma.

👉 Comece seu teste gratuito de 7 dias no Wassenger e aproveite nossos poderosos fluxos de automação do WhatsApp para transformar seu atendimento ao cliente hoje! ⚡

Por que você precisa deste assistente?

Antes de mergulharmos no tutorial, deixe-me explicar por que isso é um divisor de águas:

  • Seus clientes já estão no WhatsApp: Não precisam baixar apps adicionais
  • Experiência conversacional natural: Eles perguntam como falariam com um vendedor de verdade
  • Processamento automático de pedidos: Da conversa direto para o Shopify
  • Disponibilidade 24/7: Seu assistente nunca dorme
  • Menos atrito: Menos etapas entre o interesse e a compra

O que você alcançará ao final

Seu assistente será capaz de:

  • ✅ Exibir catálogo de produtos com imagens e preços
  • ✅ Responder perguntas específicas sobre produtos
  • ✅ Processar pedidos com múltiplos produtos
  • ✅ Coletar automaticamente dados dos clientes
  • ✅ Gerar links de pagamento seguros
  • ✅ Enviar pedidos diretamente para o Shopify

👉 Comece seu teste gratuito de 7 dias no Wassenger e aproveite nossos poderosos fluxos de automação do WhatsApp para transformar seu atendimento ao cliente hoje! ⚡

Requisitos

  • Uma conta Wassenger (teste gratuito de 7 dias disponível, sem cartão de crédito)
  • Uma conta OpenAI ou Gemini para capacidades de IA (ou outro provedor de IA)
  • Uma loja Shopify ativa (Se você não tiver uma, mostraremos como criá-la neste tutorial)

Etapa 1: Configure sua Aplicação no Shopify

O primeiro passo é criar um aplicativo privado no Shopify para obter acesso à API.

1.1 Crie o aplicativo

  1. Vá ao seu painel do Shopify
  2. Procure por “App Development” na seção de desenvolvedores

  1. Clique em “Create App”

  1. Atribua um nome descritivo (por exemplo, “Wassenger Assistant”)

1.2 Configure as permissões

Para que nosso assistente funcione corretamente, precisamos conceder as seguintes permissões:

Store Data:

  • Products (Read)
  • Orders (Read/Write)
  • Customers (Read/Write)

Admin API:

  • Orders (Read/Write)
  • Products (Read)
  • Customers (Read/Write)

💡 Dica: É recomendado conceder todas as permissões inicialmente para evitar problemas durante o desenvolvimento.

1.3 Instale e obtenha as credenciais

  1. Clique em “Install” para instalar o aplicativo

  1. IMPORTANTE! Salve o Admin API Access Token que aparecer

  1. Você também precisará da API Secret Key

  2. Anote seu subdomínio do Shopify (as letras depois de “store” na sua URL)

⚠️ Aviso: o Shopify mostra esses tokens apenas uma vez. Se você os perder, terá que criar um novo aplicativo.

👉 Comece seu teste gratuito de 7 dias no Wassenger e aproveite nossos poderosos fluxos de automação do WhatsApp para transformar seu atendimento ao cliente hoje! ⚡

Etapa 2: Configure o Wassenger Flows

É aqui que a mágica acontece. O Wassenger Flows permite criar fluxos de trabalho complexos sem sair da nossa plataforma.

2.1 Acesse os Flows

  1. Faça login na sua conta Wassenger
  2. Vá para a seção Flows na barra lateral
  3. Clique em “Create new Flow”
  4. Selecione “E-commerce Assistant” como template base

2.2 Configure o agente base

No Wassenger Flows, você já tem pré-configurado:

  • ✅ Conexão com o WhatsApp
  • ✅ Processamento de mensagens
  • ✅ Transcrição de áudio
  • ✅ Análise de imagens
  • ✅ Memória conversacional

Isso significa que você pode focar exclusivamente na integração com o Shopify.

Encontre o Workflow aqui

👉 Comece seu teste gratuito de 7 dias no Wassenger e aproveite nossos poderosos fluxos de automação do WhatsApp para transformar seu atendimento ao cliente hoje! ⚡

Etapa 3: Integre o Shopify ao seu Flow

3.1 Adicione o nó de produtos

  1. No seu Flow, pesquise por “Shopify” na biblioteca de nós

  1. Selecione “Product”“Get Many”

  1. Isso permitirá que seu assistente acesse todo o seu catálogo

3.2 Configure as credenciais do Shopify

  1. Clique em “Create New Credential”

  1. Preencha os campos:
  • Subdomain: Seu subdomínio do Shopify
  • Access Token: O token que você salvou na Etapa 1
  • API Secret Key: A chave secreta do aplicativo

  1. Clique em “Test Connection” para verificar

✅ Se você vir “Connection tested successfully”, perfeito!

3.3 Adicione o nó de pedidos

  1. Adicione outro nó Shopify
  2. Selecione “Order”“Create”

  1. Configure os campos básicos:
  • Shipping Address: Será preenchido automaticamente
  • Items: Produtos selecionados pelo cliente
  • Customer Info: Dados coletados na conversa

💡 Ponto chave: o campo Product ID deve usar uma expressão que extraia o ID exato obtido no nó “Get Products”.

👉 Comece seu teste gratuito de 7 dias no Wassenger e aproveite nossos poderosos fluxos de automação do WhatsApp para transformar seu atendimento ao cliente hoje! ⚡

Etapa 4: Programe a Inteligência do Assistente

4.1 Instruções do sistema

No Wassenger Flows, vá para o nó “AI Agent” e configure as instruções do sistema:

# Shopify E-commerce AI Agent Instructions

## System Overview

You are an AI agent specialized in e-commerce that helps customers navigate, search for products, and place orders in a Shopify store.You have access to specific tools to interact with the Shopify API.

## Available Tools

### 1.`getProducts`

- **Purpose**: Retrieve detailed product information
- **Usage**: Search for products by name, category, price, etc.
- **Key information returned**:
- `productId`(CRITICAL for orders)
- Product name
- Price
- Description
- Available stock
- Variants(sizes, colors, etc.)
- Images

### 2.`createOrder`

- **Purpose**: Generate orders in Shopify
- **MANDATORY requirement**: Must use exact `productId` obtained from `getProducts`
- **Required information**:
- List of products with their `productId`
- Quantities for each product
- Customer shipping information
- Billing information

## Mandatory Workflow

### Step 1: Product Search

Customer requests product → Use getProducts → Present options with details


**Required actions**:

- Always use `getProducts` before mentioning any specific product
- Temporarily store the `productId` of displayed products
- Present products with clear information: name, price, description, stock

### Step 2: Selection Confirmation

Customer selects products → Confirm details → Verify stock


**Required actions**:

- Confirm each selected product with its corresponding `productId`
- Verify stock availability
- Calculate order total

### Step 3: Order Creation

Collect customer data → Use createOrder with correct productId


**Required customer information**:

- Full name
- Complete shipping address
- Contact phone number
- Email address
- Preferred payment method

## Critical Rules

### ⚠️ FUNDAMENTAL RULE: ProductId

- **NEVER** create an order without using `getProducts` first
- **ALWAYS** use the exact `productId` returned by `getProducts`
- **DO NOT** invent or assume productIds
- **VERIFY** that the `productId` corresponds to the requested product

### Error Handling

- If `getProducts` doesn't find a product, suggest alternatives
- If stock is insufficient, inform the customer and offer options
- If `createOrder` fails, verify that the `productId` values are valid

### Customer Communication

- Be clear and friendly
- Explain each step of the process
- Confirm details before processing orders
- Provide tracking numbers when available

## Workflow Examples

### Example 1: Simple Search

Customer: "I'm looking for red t-shirts" Agent: Use getProducts(query: "red t-shirt") Present results with stored productIds "I found these options: [list with prices and details]"


### Example 2: Order Creation

Customer: Selects "Red T-shirt Size M" Agent: Confirm productId for specific t-shirt Request shipping information Use createOrder(productId: "12345", quantity: 1, customerInfo: {...})


## Best Practices

### Inventory Management

- Verify stock before confirming orders
- Inform about products with limited stock
- Suggest alternatives for out-of-stock products

### Customer Experience

- Personalize recommendations based on previous searches
- Offer related or complementary products
- Provide detailed and accurate descriptions

### Security and Validation

- Validate all customer information before processing
- Confirm order details before final creation
- Handle errors gracefully and helpfully

## Backup Commands

If you encounter technical issues:
1.Verify connection with Shopify tools
2.Validate format of sent data
3.Check error logs if available
4.Inform customer about technical delays professionally

## Important Reminders

- **Always** obtain `productId` from `getProducts` before creating orders
- **Never** process orders without customer confirmation
- **Verify** all data before executing `createOrder`
- **Keep** customer information secure and private

## Response Templates

### Product Search Response

"I found [X] products matching your search.Here are the options: 1.[Product Name] - $[Price]

  • Description: [Brief description]
  • Stock: [Available quantity]
  • [Additional details] Would you like more details about any of these products?"

### Order Confirmation

"Let me confirm your order:

  • Product: [Product Name](Quantity: [X])
  • Total: $[Amount]
  • Shipping to: [Address] Is this information correct? I'll process the order once you confirm."

### Error Handling

"I apologize, but I couldn't find that specific product.However, I found these similar options that might interest you: [alternatives]"


## Integration Notes

- Ensure all `productId` values are strings/integers as expected by Shopify API
- Handle product variants correctly(different sizes/colors may have different productIds)
- Maintain session state to track customer's shopping journey
- Log all successful transactions for audit purposes

4.2 Personalize as respostas

Adapte o tom e o estilo de acordo com a sua marca:

  • Formal vs. informal
  • Emojis e expressões locais
  • Informações específicas de frete e pagamento

👉 Comece seu teste gratuito de 7 dias no Wassenger e aproveite nossos poderosos fluxos de automação do WhatsApp para transformar seu atendimento ao cliente hoje! ⚡

Etapa 5: Implemente o processamento de pagamentos

5.1 Integre o gateway de pagamento

O Wassenger Flows inclui conectores nativos para:

  • Stripe
  • PayPal
  • Mercado Pago
  • Wompi (para Colômbia)
  • Outros processadores regionais

5.2 Fluxo de pagamento

  1. Cliente confirma o pedido
  2. Assistente gera um link de pagamento seguro
  3. Cliente realiza o pagamento
  4. Webhook confirma o pagamento
  5. O pedido é enviado automaticamente para o Shopify

Etapa 6: Teste seu Assistente

6.1 Testes básicos

  1. Consulta de produto: “Que brinquedos vocês têm para crianças?”
  2. Informação específica: “Me fale mais sobre a escavadeira com controle remoto”
  3. Processo de pedido: “Quero comprar 2 escavadeiras”

6.2 Casos avançados

  • Pedidos com múltiplos produtos diferentes
  • Alterações no pedido antes do pagamento
  • Consultas de estoque
  • Rastreio de pedidos existentes

Casos reais de uso

📱 Loja de Brinquedos (Colômbia)

“Implementamos este assistente e aumentamos as conversões em 340%. Os clientes preferem perguntar pelo WhatsApp em vez de buscar na web.”

👗 Boutique de Moda (México)

“Nosso assistente processa mais de 200 pedidos por dia. Os clientes adoram poder ver fotos e fazer pedidos sem sair do WhatsApp.”

🏠 Utilidades para Casa (Argentina)

“Reduzimos o tempo de resposta de 4 horas para imediato. As vendas noturnas aumentaram 150%.”

👉 Comece seu teste gratuito de 7 dias no Wassenger e aproveite nossos poderosos fluxos de automação do WhatsApp para transformar seu atendimento ao cliente hoje! ⚡

Otimizações avançadas

Gestão de inventário em tempo real

// Check stock before processing order
if (product.inventory_quantity < requested_quantity) {
  return `Sorry, we only have ${product.inventory_quantity} units available`;
}

O FLUXO COMPLETO AQUI:

{
  "name": "WhatsApp Shopify",
  "nodes": [
    {
      "parameters": {
        "device": "YOUR_DEVICE_ID",
        "events": ["message:in:new"],
        "sampleEvent": "inbound-text"
      },
      "type": "n8n-nodes-wassenger.wassengerTrigger",
      "typeVersion": 1,
      "position": [-580, 400],
      "id": "e729433a-e689-4792-848e-ada56fceaae2",
      "name": "Wassenger Trigger",
      "webhookId": "YOUR_WEBHOOK_ID",
      "credentials": {
        "wassengerApiKey": {
          "id": "YOUR_WASSENGER_CREDENTIAL_ID",
          "name": "Wassenger API Key"
        }
      }
    },
    {
      "parameters": {
        "device": "=YOUR_DEVICE_ID",
        "phone": "={{ $('Switch').item.json.data.fromNumber }}",
        "message": "={{ $json.output }}",
        "options": {}
      },
      "type": "n8n-nodes-wassenger.wassenger",
      "typeVersion": 1,
      "position": [1420, 420],
      "id": "f668f6cb-a4ff-43aa-aab9-aae7e86a9176",
      "name": "Wassenger",
      "credentials": {
        "wassengerApiKey": {
          "id": "YOUR_WASSENGER_CREDENTIAL_ID",
          "name": "Wassenger API Key"
        }
      }
    },
    {
      "parameters": {
        "rules": {
          "values": [
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "leftValue": "={{ $json.data.media.type }}",
                    "rightValue": "audio",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "id": "94a56d29-cb88-4eb0-8d6b-07b1b91bfc3f"
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Voice message"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "e14c0da3-f892-46c2-af90-c81c963a0df5",
                    "leftValue": "={{ $json.data.media.type }}",
                    "rightValue": "image",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Image message"
            },
            {
              "conditions": {
                "options": {
                  "caseSensitive": true,
                  "leftValue": "",
                  "typeValidation": "strict",
                  "version": 2
                },
                "conditions": [
                  {
                    "id": "6ce0d87f-bdfc-4c65-a3fb-8d86bb682c4e",
                    "leftValue": "={{ $json.data.type }}",
                    "rightValue": "text",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    }
                  }
                ],
                "combinator": "and"
              },
              "renameOutput": true,
              "outputKey": "Text message"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.switch",
      "typeVersion": 3.2,
      "position": [-340, 400],
      "id": "53e9d9cd-1d77-4d7e-8ca5-ce192cd027e2",
      "name": "Switch"
    },
    {
      "parameters": {
        "resource": "chat-files",
        "operation": "getDeviceFileDetails",
        "device": "={{ $json.device.id }}",
        "fileId": "={{ $json.data.media.id }}"
      },
      "type": "n8n-nodes-wassenger.wassenger",
      "typeVersion": 1,
      "position": [-60, 0],
      "id": "e38e6c6b-1a37-4577-8057-06b9e595e630",
      "name": "Download Audio",
      "credentials": {
        "wassengerApiKey": {
          "id": "YOUR_WASSENGER_CREDENTIAL_ID",
          "name": "Wassenger API Key"
        }
      }
    },
    {
      "parameters": {
        "url": "=https://api.wassenger.com{{ $('Wassenger Trigger').item.json.data.media.links.download }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [180, 0],
      "id": "6e8537c9-f122-410b-89d9-df198ae71625",
      "name": "Download Audio1",
      "credentials": {
        "httpHeaderAuth": {
          "id": "YOUR_HTTP_HEADER_AUTH_ID",
          "name": "HTTP Header Auth"
        }
      }
    },
    {
      "parameters": {
        "resource": "audio",
        "operation": "transcribe",
        "binaryPropertyName": "=data",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [420, 0],
      "id": "2567ff07-21e6-49aa-bdbc-08002cfc74a5",
      "name": "Audio transcription",
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "name": "OpenAI API Key"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "4aeaa661-b3e8-4587-851e-dac366a37d0c",
              "name": "data.body",
              "value": "={{ $json.text }}",
              "type": "string"
            }
          ]
        },
        "includeOtherFields": "=",
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [660, 0],
      "id": "0e1ebe85-7b4f-44e8-bd51-12c99d0bb6b0",
      "name": "Edit Fields"
    },
    {
      "parameters": {
        "resource": "chat-files",
        "operation": "downloadDeviceFileDetails",
        "device": "={{ $json.device.id }}",
        "fileId": "={{ $json.data.media.id }}"
      },
      "type": "n8n-nodes-wassenger.wassenger",
      "typeVersion": 1,
      "position": [-60, 220],
      "id": "f7219f24-228a-405c-ae66-f3d906a52591",
      "name": "Download image",
      "credentials": {
        "wassengerApiKey": {
          "id": "YOUR_WASSENGER_CREDENTIAL_ID",
          "name": "Wassenger API Key"
        }
      }
    },
    {
      "parameters": {
        "url": "=https://api.wassenger.com{{ $('Wassenger Trigger').item.json.data.media.links.download }}",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [180, 220],
      "id": "f1c26cce-d7cb-45d7-b617-2da9157998f8",
      "name": "Download API audio",
      "credentials": {
        "httpHeaderAuth": {
          "id": "YOUR_HTTP_HEADER_AUTH_ID",
          "name": "HTTP Header Auth"
        }
      }
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "id": "dcf61ad5-2b19-411d-8e84-b9a4cd9bc74c",
              "name": "data.body",
              "value": "=# The user provided the following image and text.\n\n## Image Description:\n{{ $json.content }}\n\n## User Message:\n{{ $('Wassenger Trigger').item.json.data.media.caption }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [660, 220],
      "id": "aa5a2ca7-17ce-4401-9296-6775aa35bab9",
      "name": "Image + Text Prompt"
    },
    {
      "parameters": {
        "resource": "image",
        "operation": "analyze",
        "modelId": {
          "__rl": true,
          "value": "chatgpt-4o-latest",
          "mode": "list",
          "cachedResultName": "CHATGPT-4O-LATEST"
        },
        "text": "Analyze the image",
        "inputType": "base64",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [420, 220],
      "id": "8c975f3c-7d58-4b08-a1fd-5c77cddf45c1",
      "name": "Analyze Image",
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "name": "OpenAI API Key"
        }
      }
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "={{ $json.data.body }}",
        "options": {
          "systemMessage": "=# Shopify E-commerce AI Agent Instructions\n\n## System Overview\nYou are an AI agent specialized in e-commerce that helps customers navigate, search for products, and place orders in a Shopify store.You have access to specific tools to interact with the Shopify API.\n\n## Available Tools\n\n### 1.`getProducts`\n- **Purpose**: Retrieve detailed product information\n- **Usage**: Search for products by name, category, price, etc.\n- **Key information returned**: \n - `productId`(CRITICAL for orders)\n - Product name\n - Price\n - Description\n - Available stock\n - Variants(sizes, colors, etc.)\n - Images\n\n### 2.`createOrder`\n- **Purpose**: Generate orders in Shopify\n- **MANDATORY requirement**: Must use exact `productId` obtained from `getProducts`\n- **Required information**:\n - List of products with their `productId`\n - Quantities for each product\n - Customer shipping information\n - Billing information\n\n## Mandatory Workflow\n\n### Step 1: Product Search\n```\nCustomer requests product → Use getProducts → Present options with details\n```\n\n**Required actions**:\n- Always use `getProducts` before mentioning any specific product\n- Temporarily store the `productId` of displayed products\n- Present products with clear information: name, price, description, stock\n\n### Step 2: Selection Confirmation\n```\nCustomer selects products → Confirm details → Verify stock\n```\n\n**Required actions**:\n- Confirm each selected product with its corresponding `productId`\n- Verify stock availability\n- Calculate order total\n\n### Step 3: Order Creation\n```\nCollect customer data → Use createOrder with correct productId\n```\n\n**Required customer information**:\n- Full name\n- Complete shipping address\n- Contact phone number\n- Email address\n- Preferred payment method\n\n## Critical Rules\n\n### ⚠️ FUNDAMENTAL RULE: ProductId\n- **NEVER** create an order without using `getProducts` first\n- **ALWAYS** use the exact `productId` returned by `getProducts`\n- **DO NOT** invent or assume productIds\n- **VERIFY** that the `productId` corresponds to the requested product\n\n### Error Handling\n- If `getProducts` doesn't find a product, suggest alternatives\n- If stock is insufficient, inform the customer and offer options\n- If `createOrder` fails, verify that the `productId` values are valid\n\n### Customer Communication\n- Be clear and friendly\n- Explain each step of the process\n- Confirm details before processing orders\n- Provide tracking numbers when available\n\n## Workflow Examples\n\n### Example 1: Simple Search\n```\nCustomer: \"I'm looking for red t-shirts\"\nAgent: Use getProducts(query: \"red t-shirt\")\n Present results with stored productIds\n \"I found these options: [list with prices and details]\"\n```\n\n### Example 2: Order Creation\n```\nCustomer: Selects \"Red T-shirt Size M\"\nAgent: Confirm productId for specific t-shirt\n Request shipping information\n Use createOrder(productId: \"12345\", quantity: 1, customerInfo: {...})\n```\n\n## Best Practices\n\n### Inventory Management\n- Verify stock before confirming orders\n- Inform about products with limited stock\n- Suggest alternatives for out-of-stock products\n\n### Customer Experience\n- Personalize recommendations based on previous searches\n- Offer related or complementary products\n- Provide detailed and accurate descriptions\n\n### Security and Validation\n- Validate all customer information before processing\n- Confirm order details before final creation\n- Handle errors gracefully and helpfully\n\n## Backup Commands\n\nIf you encounter technical issues:\n1.Verify connection with Shopify tools\n2.Validate format of sent data\n3.Check error logs if available\n4.Inform customer about technical delays professionally\n\n## Important Reminders\n\n- **Always** obtain `productId` from `getProducts` before creating orders\n- **Never** process orders without customer confirmation\n- **Verify** all data before executing `createOrder`\n- **Keep** customer information secure and private\n\n## Response Templates\n\n### Product Search Response\n```\n\"I found [X] products matching your search.Here are the options:\n\n1.[Product Name] - $[Price]\n - Description: [Brief description]\n - Stock: [Available quantity]\n - [Additional details]\n\nWould you like more details about any of these products?\"\n```\n\n### Order Confirmation\n```\n\"Let me confirm your order:\n- Product: [Product Name](Quantity: [X])\n- Total: $[Amount]\n- Shipping to: [Address]\n\nIs this information correct? I'll process the order once you confirm.\"\n```\n\n### Error Handling\n```\n\"I apologize, but I couldn't find that specific product.However, I found these similar options that might interest you: [alternatives]\"\n```\n\n## Integration Notes\n\n- Ensure all `productId` values are strings/integers as expected by Shopify API\n- Handle product variants correctly(different sizes/colors may have different productIds)\n- Maintain session state to track customer's shopping journey\n- Log all successful transactions for audit purposes"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 1.9,
      "position": [940, 420],
      "id": "945141e4-0d98-481d-92d5-87cb0ca6ae50",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "typeVersion": 1.2,
      "position": [760, 740],
      "id": "30f0c586-017b-4d57-922c-c54853f75efd",
      "name": "OpenAI Chat Model",
      "credentials": {
        "openAiApi": {
          "id": "YOUR_OPENAI_CREDENTIAL_ID",
          "name": "OpenAI API Key"
        }
      }
    },
    {
      "parameters": {
        "sessionIdType": "customKey",
        "sessionKey": "={{ $('Wassenger Trigger') }}",
        "contextWindowLength": 20
      },
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [900, 740],
      "id": "0a58e1a0-c166-4f67-8679-1da20fbfb1dc",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "authentication": "accessToken",
        "resource": "product",
        "operation": "getAll",
        "returnAll": true,
        "additionalFields": {}
      },
      "type": "n8n-nodes-base.shopifyTool",
      "typeVersion": 1,
      "position": [1020, 740],
      "id": "1450c2f7-226f-4b31-8e6d-a27fba82a156",
      "name": "Get Products",
      "credentials": {
        "shopifyAccessTokenApi": {
          "id": "YOUR_SHOPIFY_CREDENTIAL_ID",
          "name": "Shopify Access Token"
        }
      }
    },
    {
      "parameters": {
        "authentication": "accessToken",
        "additionalFields": {
          "shippingAddressUi": {
            "shippingAddressValues": {
              "firstName": "={{ $('Switch').item.json.data.chat.name }}",
              "lastName": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Last_Name', ``, 'string') }}",
              "company": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Company', ``, 'string') }}",
              "country": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Country', ``, 'string') }}",
              "address1": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Address_Line_1', ``, 'string') }}",
              "address2": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Address_Line_2', ``, 'string') }}",
              "city": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('City', ``, 'string') }}",
              "province": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Province', ``, 'string') }}",
              "zip": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Zip_Code', ``, 'string') }}",
              "phone": "={{ $('Switch').item.json.data.fromNumber }}"
            }
          }
        },
        "limeItemsUi": {
          "lineItemValues": [
            {
              "productId": "={{ $fromAI('productId', ``, 'string') }}"
            }
          ]
        }
      },
      "type": "n8n-nodes-base.shopifyTool",
      "typeVersion": 1,
      "position": [1140, 740],
      "id": "81b7bc24-ca23-4cf3-989f-9270d6fa5de0",
      "name": "Create Order",
      "credentials": {
        "shopifyAccessTokenApi": {
          "id": "YOUR_SHOPIFY_CREDENTIAL_ID",
          "name": "Shopify Access Token"
        }
      }
    },
    {
      "parameters": {
        "content": "# WhatsApp Shopify E-commerce Workflow\n\n## Overview\n\nThis n8n workflow transforms WhatsApp into a complete e-commerce chatbot for Shopify stores.It handles text, voice, and image messages, enabling customers to browse products, get recommendations, and place orders directly through WhatsApp.\n\n## How It Works\n\n1.**Message Reception**: Receives WhatsApp messages via Wassenger trigger\n2.**Media Processing**: \n - **Voice messages**: Downloads and transcribes audio to text\n - **Images**: Downloads and analyzes images with AI vision\n - **Text messages**: Processes directly\n3.**AI Shopping Assistant**: Handles customer inquiries using specialized e-commerce prompts\n4.**Shopify Integration**: Searches products and creates orders automatically\n5.**Response Delivery**: Sends personalized responses back to customers\n\n## Key Features\n\n- **Multi-format support**: Text, voice, and image messages\n- **AI-powered product search** with Shopify integration\n- **Automated order creation** with customer data collection\n- **Conversation memory** for personalized shopping experience\n- **Image analysis** for visual product searches\n\n## Components\n\n### Media Processing\n- **Audio Transcription**: OpenAI Whisper converts voice to text\n- **Image Analysis**: GPT-4o analyzes product images and descriptions\n- **Download Management**: Handles media file downloads from Wassenger\n\n### AI Shopping Assistant\n- **Product Search**: Retrieves Shopify products with detailed information\n- **Order Processing**: Creates orders with customer shipping/billing data\n- **Conversation Context**: Maintains shopping session memory\n- **Smart Recommendations**: Suggests products based on customer needs\n\n### Shopify Tools\n- **Get Products**: Searches and retrieves product catalog\n- **Create Order**: Processes customer orders with full details\n\n## Use Cases\n\nPerfect for:\n- **E-commerce stores** wanting WhatsApp sales integration\n- **Product discovery** through voice and image searches\n- **Order management** without leaving WhatsApp\n- **Customer service** with intelligent product recommendations\n- **Mobile-first shopping** experiences\n\n## Configuration Requirements\n\n- **Wassenger Account**: WhatsApp Business API access\n- **OpenAI API**: For transcription and image analysis\n- **Shopify Store**: With API access tokens\n- **n8n Instance**: To run the workflow\n\n## Setup Instructions\n\n1.Replace all placeholder values with your actual credentials:\n - `YOUR_DEVICE_ID`: Your Wassenger device ID\n - `YOUR_WEBHOOK_ID`: Your webhook ID\n - `YOUR_WASSENGER_CREDENTIAL_ID`: Your Wassenger API credential\n - `YOUR_OPENAI_CREDENTIAL_ID`: Your OpenAI API credential\n - `YOUR_SHOPIFY_CREDENTIAL_ID`: Your Shopify API credential\n - `YOUR_HTTP_HEADER_AUTH_ID`: Your HTTP header authentication credential\n\n2.Configure credentials in n8n:\n - Add Wassenger API key\n - Add OpenAI API key\n - Add Shopify access token\n - Add HTTP header authentication for Wassenger downloads\n\n3.Test the workflow with different message types(text, voice, image)\n\n4.Monitor and adjust the AI agent prompts based on your store's needs",
        "height": 1500,
        "width": 980
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [-1800, -300],
      "id": "05a4d839-87cd-4350-b87d-cf27a10952d8",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "content": "# AI Agent",
        "height": 740,
        "width": 2360,
        "color": 5
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [-680, -100],
      "id": "579650e7-aadd-49a6-8d72-f50cd7769fa6",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n# Shopify Agent",
        "height": 280,
        "width": 820,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [860, 680],
      "id": "c5a9eee7-3435-4939-99b1-dc30898ed52e",
      "name": "Sticky Note2"
    }
  ],
  "pinData": {},
  "connections": {
    "Wassenger Trigger": {
      "main": [
        [
          {
            "node": "Switch",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Switch": {
      "main": [
        [
          {
            "node": "Download Audio",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download image",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Audio": {
      "main": [
        [
          {
            "node": "Download Audio1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download Audio1": {
      "main": [
        [
          {
            "node": "Audio transcription",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Audio transcription": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download image": {
      "main": [
        [
          {
            "node": "Download API audio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download API audio": {
      "main": [
        [
          {
            "node": "Analyze Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Image + Text Prompt": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Analyze Image": {
      "main": [
        [
          {
            "node": "Image + Text Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Wassenger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Get Products": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create Order": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "WORKFLOW_VERSION_ID",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "YOUR_INSTANCE_ID"
  },
  "id": "YOUR_WORKFLOW_ID",
  "tags": []
}

Recomendações inteligentes

  • Produtos complementares
  • Ofertas baseadas no histórico
  • Descontos por volume

Analytics integrados

O Wassenger fornece métricas detalhadas:

  • Produtos mais consultados
  • Taxa de conversão por produto
  • Horários de pico de atividade
  • Motivos de abandono de carrinho

Por que o Wassenger Flows?

Vantagens sobre soluções tradicionais:

🚀 Velocidade de implementação

  • Configure em minutos, não dias
  • Templates pré-configurados
  • Integrações nativas

💰 Custo-benefício

  • Plataforma única para tudo
  • Preços transparentes
  • Sem custos de desenvolvimento escondidos

🔧 Manutenção fácil

  • Interface visual intuitiva
  • Atualizações automáticas
  • Suporte técnico especializado

📊 Analytics integrados

  • Métricas de conversação
  • ROI em tempo real
  • Insights comportamentais

Precisa de ajuda? Nossa equipe de especialistas está disponível para acompanhar você em cada etapa aqui

Achou este tutorial útil? Compartilhe com outros empreendedores que possam se beneficiar. E se você implementar este assistente, adoraríamos saber seus resultados.

Ready to transform your WhatsApp communication?

Start automating your customer interactions today with Wassenger

Get Started Free