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
- Vá ao seu painel do Shopify
- Procure por “App Development” na seção de desenvolvedores
- Clique em “Create App”
- 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
- Clique em “Install” para instalar o aplicativo
- IMPORTANTE! Salve o Admin API Access Token que aparecer
Você também precisará da API Secret Key
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
- Faça login na sua conta Wassenger
- Vá para a seção “Flows” na barra lateral
- Clique em “Create new Flow”
- 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
- No seu Flow, pesquise por “Shopify” na biblioteca de nós
- Selecione “Product” → “Get Many”
- Isso permitirá que seu assistente acesse todo o seu catálogo
3.2 Configure as credenciais do Shopify
- Clique em “Create New Credential”
- 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
- Clique em “Test Connection” para verificar
✅ Se você vir “Connection tested successfully”, perfeito!
3.3 Adicione o nó de pedidos
- Adicione outro nó Shopify
- Selecione “Order” → “Create”
- 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
- Cliente confirma o pedido
- Assistente gera um link de pagamento seguro
- Cliente realiza o pagamento
- Webhook confirma o pagamento
- O pedido é enviado automaticamente para o Shopify
Etapa 6: Teste seu Assistente
6.1 Testes básicos
- Consulta de produto: “Que brinquedos vocês têm para crianças?”
- Informação específica: “Me fale mais sobre a escavadeira com controle remoto”
- 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.





















