¿Te imaginas tener un asistente que muestre productos, procese pedidos y suba las ventas automáticamente a Shopify, todo a través de WhatsApp?
Como especialistas en automatización de WhatsApp Business en Wassenger, hemos detectado una tendencia clara: los clientes prefieren la comodidad de chatear por WhatsApp en lugar de navegar por tiendas online tradicionales, especialmente en mercados como América Latina, donde WhatsApp es el canal de comunicación principal.
Hoy te mostraremos cómo crear un asistente de IA completamente funcional que transformará la experiencia de compra de tus clientes, usando Wassenger Flows — nuestra nueva función que integra las potentes capacidades de n8n directamente en nuestra plataforma.
👉 Comienza tu prueba gratuita de 7 días en Wassenger y aprovecha nuestros potentes flows de automatización para WhatsApp para transformar tu servicio al cliente hoy mismo! ⚡
¿Por qué necesitas este asistente?
Antes de entrar en el tutorial, déjame contarte por qué esto es un cambio radical:
- Tus clientes ya están en WhatsApp: No necesitan descargar aplicaciones adicionales
- Experiencia conversacional natural: Preguntan como si hablaran con un vendedor real
- Procesamiento automático de pedidos: De la conversación directo a Shopify
- Disponibilidad 24/7: Tu asistente nunca duerme
- Menos fricción: Menos pasos entre el interés y la compra
Qué lograrás al final
Tu asistente podrá:
- ✅ Mostrar catálogo de productos con imágenes y precios
- ✅ Responder preguntas específicas sobre productos
- ✅ Procesar pedidos con múltiples productos
- ✅ Recopilar datos del cliente automáticamente
- ✅ Generar enlaces de pago seguros
- ✅ Subir pedidos directamente a Shopify
👉 Comienza tu prueba gratuita de 7 días en Wassenger y aprovecha nuestros potentes flows de automatización para WhatsApp para transformar tu servicio al cliente hoy mismo! ⚡
Requisitos
- Una cuenta de Wassenger (prueba gratuita de 7 días disponible, no se requiere tarjeta de crédito)
- Una cuenta de OpenAI, o Gemini para capacidades de IA (u otro proveedor de servicios de IA)
- Una tienda Shopify activa (Si no tienes una, te mostraremos cómo crearla en este tutorial)
Paso 1: Configura tu aplicación de Shopify
El primer paso es crear una aplicación privada en Shopify para obtener acceso a la API.
1.1 Crea la aplicación
- Ve a tu panel de Shopify
- Busca “App Development” en la sección de desarrolladores
- Haz clic en “Create App”
- Asigna un nombre descriptivo (por ejemplo, “Wassenger Assistant”)
1.2 Configura permisos
Para que nuestro asistente funcione correctamente, necesitamos otorgar los siguientes permisos:
Datos de la tienda:
- Products (Read)
- Orders (Read/Write)
- Customers (Read/Write)
Admin API:
- Orders (Read/Write)
- Products (Read)
- Customers (Read/Write)
💡 Consejo: Se recomienda dar todos los permisos inicialmente para evitar problemas durante el desarrollo.
1.3 Instala y obtén credenciales
- Haz clic en “Install” para instalar la aplicación
- ¡IMPORTANTE! Guarda el Admin API Access Token que aparece
También necesitarás la API Secret Key
Anota tu subdominio de Shopify (las letras después de “store” en tu URL)
⚠️ Advertencia: Shopify muestra estos tokens solo una vez. Si los pierdes, tendrás que crear una nueva aplicación.
👉 Comienza tu prueba gratuita de 7 días en Wassenger y aprovecha nuestros potentes flows de automatización para WhatsApp para transformar tu servicio al cliente hoy mismo! ⚡
Paso 2: Configura Wassenger Flows
Aquí es donde sucede la magia. Wassenger Flows te permite crear flujos de trabajo complejos sin salir de nuestra plataforma.
2.1 Accede a Flows
- Inicia sesión en tu cuenta de Wassenger
- Ve a la sección “Flows” en la barra lateral
- Haz clic en “Create new Flow”
- Selecciona “E-commerce Assistant” como plantilla base
2.2 Configura el agente base
En Wassenger Flows, ya tienes preconfigurado:
- ✅ Conexión con WhatsApp
- ✅ Procesamiento de mensajes
- ✅ Transcripción de audio
- ✅ Análisis de imágenes
- ✅ Memoria conversacional
Esto significa que puedes enfocarte únicamente en la integración con Shopify.
Encuentra el Workflow aquí
👉 Comienza tu prueba gratuita de 7 días en Wassenger y aprovecha nuestros potentes flows de automatización para WhatsApp para transformar tu servicio al cliente hoy mismo! ⚡
Paso 3: Integra Shopify con tu Flow
3.1 Añade el nodo de productos
- En tu Flow, busca “Shopify” en la biblioteca de nodos
- Selecciona “Product” → “Get Many”
- Esto permitirá que tu asistente acceda a todo tu catálogo
3.2 Configura las credenciales de Shopify
- Haz clic en “Create New Credential”
- Completa los campos:
- Subdomain: Tu subdominio de Shopify
- Access Token: El token que guardaste en el Paso 1
- API Secret Key: La clave secreta de la aplicación
- Haz clic en “Test Connection” para verificar
✅ Si ves “Connection tested successfully”, ¡perfecto!
3.3 Añade el nodo de pedidos
- Añade otro nodo Shopify
- Selecciona “Order” → “Create”
- Configura los campos básicos:
- Shipping Address: Se completará automáticamente
- Items: Productos seleccionados por el cliente
- Customer Info: Datos recopilados en la conversación
💡 Punto clave: El campo Product ID debe usar una expresión que tome el ID exacto obtenido del nodo “Get Products”.
👉 Comienza tu prueba gratuita de 7 días en Wassenger y aprovecha nuestros potentes flows de automatización para WhatsApp para transformar tu servicio al cliente hoy mismo! ⚡
Paso 4: Programa la Inteligencia del Asistente
4.1 Instrucciones del sistema
En Wassenger Flows, ve al nodo “AI Agent” y configura las instrucciones del 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
2Validate format of sent data
3Check error logs if available
4Inform 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 Personaliza las respuestas
Adapta el tono y estilo según tu marca:
- Formal vs. casual
- Emojis y expresiones locales
- Información específica de envío y pago
👉 Comienza tu prueba gratuita de 7 días en Wassenger y aprovecha nuestros potentes flows de automatización para WhatsApp para transformar tu servicio al cliente hoy mismo! ⚡
Paso 5: Implementa el procesamiento de pagos
5.1 Integra la pasarela de pagos
Wassenger Flows incluye conectores nativos para:
- Stripe
- PayPal
- Mercado Pago
- Wompi (para Colombia)
- Otros procesadores regionales
5.2 Flujo de pago
- El cliente confirma el pedido
- El asistente genera un enlace de pago seguro
- El cliente paga
- Un webhook confirma el pago
- El pedido se sube automáticamente a Shopify
Paso 6: Prueba tu Asistente
6.1 Pruebas básicas
- Consulta de producto: “¿Qué juguetes tienen para niños?”
- Información específica: “Cuéntame más sobre la excavadora con control remoto”
- Proceso de pedido: “Quiero comprar 2 excavadoras”
6.2 Casos avanzados
- Pedidos con múltiples productos diferentes
- Cambios al pedido antes del pago
- Consultas de stock
- Seguimiento de pedidos existentes
Casos de uso reales
📱 Tienda de Juguetes (Colombia)
“Implementamos este asistente y aumentamos las conversiones en un 340%. Los clientes prefieren preguntar por WhatsApp en lugar de buscar en la web.”
👗 Boutique de Moda (México)
“Nuestro asistente procesa más de 200 pedidos diarios. A los clientes les encanta poder ver fotos y realizar pedidos sin salir de WhatsApp.”
🏠 Hogar y Decoración (Argentina)
“Reducimos el tiempo de respuesta de 4 horas a inmediato. Las ventas nocturnas aumentaron un 150%.”
👉 Comienza tu prueba gratuita de 7 días en Wassenger y aprovecha nuestros potentes flows de automatización para WhatsApp para transformar tu servicio al cliente hoy mismo! ⚡
Optimizaciones avanzadas
Gestión de inventario en tiempo real
// Check stock before processing order
if (product.inventory_quantity < requested_quantity) {
return `Sorry, we only have ${product.inventory_quantity} units available`;
}
OBTÉN EL WORKFLOW COMPLETO AQUÍ:
{
"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\n2Validate format of sent data\n3Check error logs if available\n4Inform 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": []
}
Recomendaciones inteligentes
- Productos complementarios
- Ofertas basadas en el historial
- Descuentos por volumen
Analíticas integradas
Wassenger proporciona métricas detalladas:
- Productos más consultados
- Tasa de conversión por producto
- Horas de mayor actividad
- Razones de abandono de carrito
¿Por qué Wassenger Flows?
Ventajas sobre soluciones tradicionales:
🚀 Velocidad de implementación
- Configuración en minutos, no días
- Plantillas preconfiguradas
- Integraciones nativas
💰 Rentable
- Plataforma única para todo
- Precios transparentes
- Sin costos ocultos de desarrollo
🔧 Mantenimiento sencillo
- Interfaz visual intuitiva
- Actualizaciones automáticas
- Soporte técnico especializado
📊 Analíticas integradas
- Métricas de conversación
- ROI en tiempo real
- Insights de comportamiento
¿Necesitas ayuda? Nuestro equipo de especialistas está disponible para acompañarte en cada paso aquí
¿Te pareció útil este tutorial? Compártelo con otros emprendedores que puedan beneficiarse. Y si implementas este asistente, nos encantaría conocer tus resultados.





















