This workflow follows the Agent → OpenAI Embeddings recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"active": false,
"activeVersion": null,
"activeVersionId": null,
"connections": {
"Filtra Os Dados": {
"main": [
[
{
"node": "ConsultaCliente",
"type": "main",
"index": 0
}
]
]
},
"ConsultaCliente": {
"main": [
[
{
"node": "ClienteExiste?",
"type": "main",
"index": 0
}
]
]
},
"ClienteExiste?": {
"main": [
[
{
"node": "Verifica se \u00e9 Image, Texto ou \u00c1udio",
"type": "main",
"index": 0
}
],
[
{
"node": "Cria Cliente",
"type": "main",
"index": 0
}
]
]
},
"Cria Cliente": {
"main": [
[
{
"node": "ConsultaCliente",
"type": "main",
"index": 0
}
]
]
},
"RegistraMsgFila": {
"main": [
[
{
"node": "BuscaMensagens",
"type": "main",
"index": 0
}
]
]
},
"BuscaMensagens": {
"main": [
[
{
"node": "VerificaSe\u00c9MaiorQue1",
"type": "main",
"index": 0
}
]
]
},
"VerificaSe\u00c9MaiorQue1": {
"main": [
[
{
"node": "N\u00e3o faz nada, j\u00e1 tem mensagem processando",
"type": "main",
"index": 0
}
],
[
{
"node": "Aguarda 13 segundos",
"type": "main",
"index": 0
}
]
]
},
"VerificaMensagens": {
"main": [
[
{
"node": "OrganizaMensagem",
"type": "main",
"index": 0
}
]
]
},
"OrganizaMensagem": {
"main": [
[
{
"node": "ResetaFila",
"type": "main",
"index": 0
}
]
]
},
"ResetaFila": {
"main": [
[
{
"node": "AI Agent1",
"type": "main",
"index": 0
}
]
]
},
"If": {
"main": [
[
{
"node": "Filtra Os Dados",
"type": "main",
"index": 0
}
]
]
},
"Verifica se \u00e9 Image, Texto ou \u00c1udio": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
],
[
{
"node": "Junta mensagem",
"type": "main",
"index": 1
}
],
[
{
"node": "Pega o base64 da imagem",
"type": "main",
"index": 0
}
]
]
},
"Transcreve": {
"main": [
[
{
"node": "Junta mensagem",
"type": "main",
"index": 0
}
]
]
},
"Pega o base64 da imagem": {
"main": [
[
{
"node": "Baixa a imagem",
"type": "main",
"index": 0
}
]
]
},
"Baixa a imagem": {
"main": [
[
{
"node": "Descreve o que est\u00e1 na imagem",
"type": "main",
"index": 0
}
]
]
},
"Descreve o que est\u00e1 na imagem": {
"main": [
[
{
"node": "Junta mensagem",
"type": "main",
"index": 2
}
]
]
},
"Prepara Mensagem": {
"main": [
[
{
"node": "Responde Cliente",
"type": "main",
"index": 0
}
]
]
},
"Responde Cliente": {
"main": [
[
{
"node": "Aguarda 1 segundo",
"type": "main",
"index": 0
}
]
]
},
"RecebeMensagem": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Aguarda 13 segundos": {
"main": [
[
{
"node": "VerificaMensagens",
"type": "main",
"index": 0
}
]
]
},
"Separa a mensagem em v\u00e1rias": {
"main": [
[
{
"node": "Quebra a mensagem em v\u00e1rias mensagens",
"type": "main",
"index": 0
}
]
]
},
"Quebra a mensagem em v\u00e1rias mensagens": {
"main": [
[
{
"node": "Separa 1 mensagem para enviar",
"type": "main",
"index": 0
}
]
]
},
"Separa 1 mensagem para enviar": {
"main": [
[],
[
{
"node": "Prepara Mensagem",
"type": "main",
"index": 0
}
]
]
},
"Repete": {
"main": [
[
{
"node": "Separa 1 mensagem para enviar",
"type": "main",
"index": 0
}
]
]
},
"Aguarda 1 segundo": {
"main": [
[
{
"node": "Repete",
"type": "main",
"index": 0
}
]
]
},
"Junta mensagem": {
"main": [
[
{
"node": "RegistraMsgFila",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Convert to File",
"type": "main",
"index": 0
}
]
]
},
"Convert to File": {
"main": [
[
{
"node": "Transcreve",
"type": "main",
"index": 0
}
]
]
},
"Embeddings OpenAI1": {
"ai_embedding": [
[
{
"node": "consulta_produtos",
"type": "ai_embedding",
"index": 0
}
]
]
},
"consulta_pedido_shopify": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"Think": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"consulta_lista_produtos": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"encaminhar_atendente": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"Postgres Chat Memory": {
"ai_memory": [
[
{
"node": "AI Agent1",
"type": "ai_memory",
"index": 0
}
]
]
},
"Embeddings OpenAI": {
"ai_embedding": [
[
{
"node": "info_empresa",
"type": "ai_embedding",
"index": 0
}
]
]
},
"info_empresa": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"consulta_produtos": {
"ai_tool": [
[
{
"node": "AI Agent1",
"type": "ai_tool",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent1",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"AI Agent1": {
"main": [
[
{
"node": "Separa a mensagem em v\u00e1rias",
"type": "main",
"index": 0
}
]
]
}
},
"createdAt": "2025-07-08T18:59:41.984Z",
"id": "jYQpeoarbEVHmOVF",
"isArchived": false,
"meta": null,
"name": "Agente_Atendimento_E_commerce",
"nodes": [
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "b8e55076-37f5-4c10-b358-cfc4e66f025e",
"name": "cliente.NomeDoCliente",
"value": "={{ $json.body.data.pushName }}",
"type": "string"
},
{
"id": "daeccad7-a3cf-46c5-963d-389105647535",
"name": "cliente.N\u00famero",
"value": "={{ $json.body.data.key.remoteJid }}",
"type": "string"
},
{
"id": "f513c20a-df08-4201-956e-432e4c7af611",
"name": "wpp.Mensagem",
"value": "={{ $json.body.data.message?.base64 || $json.body.data.message.message?.base64 || $json.body.data.message.conversation || null }}",
"type": "string"
},
{
"id": "7295fdf1-a245-4653-8f78-a31e502af500",
"name": "wpp.TipoDeMensagem",
"value": "={{ $json.body.data.messageType }}",
"type": "string"
},
{
"id": "deb79e24-ecf6-458b-a2e7-e564935d961a",
"name": "cliente.Data",
"value": "={{ $json.body.date_time.toDateTime().format('dd/MM/yyyy') }}",
"type": "string"
},
{
"id": "0e9d6acc-f21a-4c9d-8eba-cb0768ed504d",
"name": "cliente.\u00daltimaMensagem",
"value": "={{ $json.body.data.key.fromMe }}",
"type": "boolean"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-400,
460
],
"id": "cf7ce149-9e36-488a-a73f-19c7c1e96d0f",
"name": "Filtra Os Dados"
},
{
"parameters": {
"operation": "create",
"databaseId": 194047,
"tableId": 469826,
"fieldsUi": {
"fieldValues": [
{
"fieldId": 3664460,
"fieldValue": "={{ $json.cliente.NomeDoCliente }}"
},
{
"fieldId": 3664461,
"fieldValue": "={{ $json.cliente['N\u00famero'] }}"
},
{
"fieldId": 3664548,
"fieldValue": "={{ $json.cliente.Data }}"
},
{
"fieldId": 3664550,
"fieldValue": "={{ $json.cliente['\u00daltimaMensagem'] }}"
}
]
}
},
"type": "n8n-nodes-base.baserow",
"typeVersion": 1,
"position": [
20,
620
],
"id": "f1bfae14-5cea-4e42-a98b-0499f483f013",
"name": "Cria Cliente"
},
{
"parameters": {
"databaseId": 194047,
"tableId": 469826,
"returnAll": true,
"additionalOptions": {
"filters": {
"fields": [
{
"field": 3664461,
"value": "={{ $json.cliente['N\u00famero'] }}"
}
]
}
}
},
"type": "n8n-nodes-base.baserow",
"typeVersion": 1,
"position": [
-200,
440
],
"id": "cd64f32d-d606-47c5-9a18-bbf9741b4261",
"name": "ConsultaCliente",
"alwaysOutputData": true
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "f6968e62-ef95-4787-ae54-bbb016c124d0",
"leftValue": "={{ $json }}",
"rightValue": "",
"operator": {
"type": "object",
"operation": "notEmpty",
"singleValue": true
}
},
{
"id": "1de27bce-81b4-468f-aa82-f8717512554b",
"leftValue": "={{ $json.AtendeHumano }}",
"rightValue": "",
"operator": {
"type": "boolean",
"operation": "false",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
40,
360
],
"id": "6ffa979b-7c5d-43c6-ac2f-24b789d39371",
"name": "ClienteExiste?"
},
{
"parameters": {
"operation": "get",
"propertyName": "Mensagem",
"key": "={{ $('Filtra Os Dados').item.json.cliente['N\u00famero'] }}",
"options": {}
},
"type": "n8n-nodes-base.redis",
"typeVersion": 1,
"position": [
-1280,
1300
],
"id": "5e408f75-ce12-4b45-ab4f-45139cdf5c0b",
"name": "BuscaMensagens"
},
{
"parameters": {
"operation": "push",
"list": "={{ $('Filtra Os Dados').item.json.cliente['N\u00famero'] }}",
"messageData": "={{ $json.values() }}"
},
"type": "n8n-nodes-base.redis",
"typeVersion": 1,
"position": [
-1280,
1100
],
"id": "d5a9a0e4-7613-4f75-883d-3be6aeaa5f42",
"name": "RegistraMsgFila"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "69ae624a-c135-4d58-b36c-94a66271b12d",
"leftValue": "={{ $json.Mensagem.length }}",
"rightValue": 1,
"operator": {
"type": "number",
"operation": "gt"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
-1060,
1220
],
"id": "ffff3cae-d28e-4816-bb89-16d7c737c618",
"name": "VerificaSe\u00c9MaiorQue1"
},
{
"parameters": {
"operation": "get",
"propertyName": "Mensagens",
"key": "={{ $('Filtra Os Dados').item.json.cliente['N\u00famero'] }}",
"options": {}
},
"type": "n8n-nodes-base.redis",
"typeVersion": 1,
"position": [
-680,
1400
],
"id": "0a610e68-7854-4da2-9817-30308051b77b",
"name": "VerificaMensagens"
},
{
"parameters": {
"operation": "delete",
"key": "={{ $('Filtra Os Dados').item.json.cliente['N\u00famero'] }}"
},
"type": "n8n-nodes-base.redis",
"typeVersion": 1,
"position": [
-460,
1000
],
"id": "0ddadf56-9b0e-4671-96ae-cd2620e97f6d",
"name": "Redis1"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "56d366b6-65c5-46aa-9fd8-849c56a25e7a",
"name": "Mensagens",
"value": "={{ $json.Mensagens.reverse() }}",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
-500,
1400
],
"id": "b075670d-3e11-49fb-b66e-4516f510b5d4",
"name": "OrganizaMensagem"
},
{
"parameters": {
"operation": "delete",
"key": "={{ $('Filtra Os Dados').item.json.cliente['N\u00famero'] }}"
},
"type": "n8n-nodes-base.redis",
"typeVersion": 1,
"position": [
-320,
1400
],
"id": "d8463680-7ba2-4795-8924-31baab15735c",
"name": "ResetaFila"
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "135b4bfa-cac2-40b0-9fc4-fbfd4ce59aca",
"leftValue": "={{ $json.body.data.key.remoteJid }}",
"rightValue": "555195877046@s.whatsapp.net",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
-620,
600
],
"id": "f140d37e-398c-43a1-b7ed-d7d51fdacdde",
"name": "If"
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"leftValue": "={{ $('Filtra Os Dados').item.json.wpp.TipoDeMensagem }}",
"rightValue": "audioMessage",
"operator": {
"type": "string",
"operation": "equals"
},
"id": "b2796cb1-10e0-4b9d-9a67-466b18af40ec"
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "\u00c1udio"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "2c018a87-f1c7-4136-bf4e-f3ef41dfbcc8",
"leftValue": "={{ $('Filtra Os Dados').item.json.wpp.TipoDeMensagem }}",
"rightValue": "conversation",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Texto"
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "af57697f-18ed-4e0f-ae46-8c897ed420e8",
"leftValue": "={{ $('Filtra Os Dados').item.json.wpp.TipoDeMensagem }}",
"rightValue": "imageMessage",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "Imagem"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.switch",
"typeVersion": 3.2,
"position": [
460,
500
],
"id": "e925b1f2-114b-4194-af33-cbc59ed3420f",
"name": "Verifica se \u00e9 Image, Texto ou \u00c1udio"
},
{
"parameters": {
"content": "# Passo 02: Verifica Se \u00e9 \u00c1udio, Texto ou Imagem",
"height": 640,
"width": 1760,
"color": 2
},
"type": "n8n-nodes-base.stickyNote",
"position": [
340,
220
],
"typeVersion": 1,
"id": "baf727de-5a7e-467d-ad92-0765bcc92ba4",
"name": "Sticky Note1"
},
{
"parameters": {
"content": "# Passo 03: Cria Fila de Mensagens",
"height": 640,
"width": 2000,
"color": 3
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-2120,
960
],
"typeVersion": 1,
"id": "c5cd11c7-5860-4124-8640-82b9bb75786c",
"name": "Sticky Note2"
},
{
"parameters": {
"content": "# Passo 04: Processa Resposta do Agente",
"height": 1700,
"width": 1480,
"color": 4
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
920
],
"typeVersion": 1,
"id": "85e74ae6-ccc2-4584-b56f-b921f2ecfe42",
"name": "Sticky Note3"
},
{
"parameters": {
"content": "# Passo 05: Envia Resposta para o Cliente",
"height": 640,
"width": 1440,
"color": 5
},
"type": "n8n-nodes-base.stickyNote",
"position": [
1460,
960
],
"typeVersion": 1,
"id": "1978dae0-7759-42bc-a18d-7eebf6a4e799",
"name": "Sticky Note4"
},
{
"parameters": {
"resource": "audio",
"operation": "transcribe",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
1160,
360
],
"id": "8135409f-4c92-4cdc-8176-3a8c02b5ee6c",
"name": "Transcreve"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "cbeb5f2a-a70d-40b3-9814-2c6e51ca7326",
"name": "base64",
"value": "={{ $('Filtra Os Dados').item.json.wpp.Mensagem.replaceAll('\\n') }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
700,
660
],
"id": "00f34bc2-9749-4880-b053-95e205142211",
"name": "Pega o base64 da imagem"
},
{
"parameters": {
"operation": "toBinary",
"sourceProperty": "base64",
"options": {}
},
"type": "n8n-nodes-base.convertToFile",
"typeVersion": 1.1,
"position": [
860,
660
],
"id": "8e11bd59-d264-4100-b645-eba071a037ad",
"name": "Baixa a imagem"
},
{
"parameters": {
"resource": "image",
"operation": "analyze",
"modelId": {
"__rl": true,
"value": "gpt-4o-2024-11-20",
"mode": "list",
"cachedResultName": "GPT-4O-2024-11-20"
},
"text": "O que h\u00e1 nessa imagem? me de a resposta como se fosse um cliente descrevendo na imagem, comece dizendo: te enviei uma imagem que... Sempre em primeira pessoa, como se voc\u00ea voc\u00ea o cliente. Ao inv\u00e9s de dizer voc\u00ea me enviou, diga eu te enviei.",
"inputType": "base64",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
1040,
660
],
"id": "5d4feb4e-41f3-4ee0-a188-f0412b7ea7c1",
"name": "Descreve o que est\u00e1 na imagem"
},
{
"parameters": {
"content": "# AGENTE DE ATENDIMENTO PARA E-COMMERCE\n# DOMINANDO AUTOMA\u00c7\u00d5ES ",
"height": 140,
"width": 860,
"color": 6
},
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"typeVersion": 1,
"id": "9572e7ba-bf45-42cb-b4f3-07b979c1bbe5",
"name": "Sticky Note5"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "affa7f7f-875d-4ba8-850a-5ca75be5b8c2",
"name": "Resposta",
"value": "={{ $json.Resposta.replaceAll('\"','\\\\\"').replaceAll('\\n','\\\\n').replaceAll('*','\\*').replaceAll('#','').replace(/[\\u0000-\\u001F\\u007F]/g, \"\") }}",
"type": "string"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
1580,
1320
],
"id": "5789b9ff-684c-42bf-a9fb-69453e4cac5c",
"name": "Prepara Mensagem"
},
{
"parameters": {
"method": "POST",
"url": "https://evolution.outoflow.online/message/sendText/JonathanRenanWork",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"number\": \"{{ $('Filtra Os Dados').item.json.cliente['N\u00famero'] }}\",\n \"text\": \"{{ $json.Resposta }}\"\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
1780,
1320
],
"id": "4297ed9e-aeb3-435b-8053-f1391cafc22a",
"name": "Responde Cliente"
},
{
"parameters": {
"content": "# Passo 01: Recebe Mensagem Consulta e Cadastra Cliente no Banco de Dados",
"height": 640,
"width": 1620
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-1300,
220
],
"typeVersion": 1,
"id": "fd8726d5-f80f-4b1e-ad89-f3b47b4fba92",
"name": "Sticky Note"
},
{
"parameters": {
"content": "## Passo 01: Recebe Mensagem Consulta e Cadastra Cliente no Banco de Dados \n\n### **Webhook recebe a mensagem**\n\n### **Filtra os dados do webhook**\n\n### **Verifica cliente se existe no banco**\n\n### **Se nao existe cadastra cliente**",
"height": 380,
"width": 440,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-1260,
380
],
"typeVersion": 1,
"id": "434eec1c-3d4b-4986-8f73-c02b4ce8c0a6",
"name": "Sticky Note6"
},
{
"parameters": {
"httpMethod": "POST",
"path": "1c96bca7-b8c9-4d6f-9cfa-b01d7e9d5695",
"options": {}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
-640,
380
],
"id": "c0550728-5ef7-46ac-8946-5aeb68045491",
"name": "RecebeMensagem"
},
{
"parameters": {
"content": "## Passo 02: Verifica Se \u00e9 \u00c1udio, Texto ou Imagem\n\n### Verifica com Switch se mensagem \u00e9 audio, imagem ou texto\n\n### Converte imagem e audio de base64 para arquivo\n\n### Transcreve o audio ou imagem com a openAI\n\n### Junta os dados com Merge",
"height": 360,
"width": 560,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [
1480,
300
],
"typeVersion": 1,
"id": "fed3332b-f03c-4f68-9461-94fa8e722285",
"name": "Sticky Note7"
},
{
"parameters": {
"content": "## Passo 03: Cria Fila de Mensagens\n\n### Registra mensagem no redis\n\n### Busca mensagem atuais no redis\n\n### Verifica se entrou novas mensagems\n\n### Se n\u00e3o entrou\n\n### Se nao entrou aguarda ver se vai entrar\n\n### Se entrou deleta a fila e organiza mensagem",
"height": 360,
"width": 560,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [
-2100,
1080
],
"typeVersion": 1,
"id": "860bbbc9-4063-44a9-95c9-7242c55a60c2",
"name": "Sticky Note8"
},
{
"parameters": {
"content": "## Passo 04: Processa Resposta do Agente\n\n### Conecta o agente de IA na automa\u00e7\u00e3o\n\n### Executa as ferramentas que o agente de IA tem a disposi\u00e7\u00e3o\n\n### Monta mensagem para responder o cliente",
"height": 240,
"width": 560,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
1280
],
"typeVersion": 1,
"id": "8ddb71a9-269d-4f98-9139-9d39213001eb",
"name": "Sticky Note9"
},
{
"parameters": {
"content": "## Passo 05: Envia Resposta para o Cliente\n\n### Quebra as mensagems para enviar 1 a 1\n\n### Formata mensagem para o cliente\n\n### Envia a primeira para o cliente\n\n### Aguarda e envia a segunda mensagem para o cliente",
"height": 300,
"width": 520,
"color": 7
},
"type": "n8n-nodes-base.stickyNote",
"position": [
2320,
1080
],
"typeVersion": 1,
"id": "c71653eb-5313-44f0-ba5b-8b7488e2b804",
"name": "Sticky Note10"
},
{
"parameters": {},
"type": "n8n-nodes-base.noOp",
"typeVersion": 1,
"position": [
-860,
1020
],
"id": "881ef930-4028-417b-a7e3-c14110322cbe",
"name": "N\u00e3o faz nada, j\u00e1 tem mensagem processando"
},
{
"parameters": {},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
-880,
1400
],
"id": "9f31153f-cfc5-4080-a6d7-11161eecc8ef",
"name": "Aguarda 13 segundos"
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "a85419b3-d3d8-47be-982c-b1633b6489c1",
"name": "Resposta",
"value": "={{ $json.output.split('\\n\\n') }}",
"type": "array"
}
]
},
"options": {}
},
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
760,
1060
],
"id": "25917c4b-7181-4697-aa29-3db766d04cc3",
"name": "Separa a mensagem em v\u00e1rias"
},
{
"parameters": {
"fieldToSplitOut": "Resposta",
"options": {}
},
"type": "n8n-nodes-base.splitOut",
"typeVersion": 1,
"position": [
1100,
1060
],
"id": "7398dc5f-1911-4d7d-b5bc-2ccf0854e0bf",
"name": "Quebra a mensagem em v\u00e1rias mensagens"
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.splitInBatches",
"typeVersion": 3,
"position": [
1560,
1080
],
"id": "8b1cc751-b904-4869-80fb-dcd7088c04c5",
"name": "Separa 1 mensagem para enviar"
},
{
"parameters": {},
"type": "n8n-nodes-base.noOp",
"name": "Repete",
"typeVersion": 1,
"position": [
2000,
1360
],
"id": "11a79612-7f12-4732-af48-096c8d892276"
},
{
"parameters": {
"amount": 1
},
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
2000,
1120
],
"id": "e729f5db-10ba-4307-93e9-27023dba2704",
"name": "Aguarda 1 segundo"
},
{
"parameters": {
"numberInputs": 3
},
"type": "n8n-nodes-base.merge",
"typeVersion": 3,
"position": [
1340,
660
],
"id": "c385a9fd-d4fc-4cbd-bec7-403381efccdf",
"name": "Junta mensagem"
},
{
"parameters": {
"method": "POST",
"url": "https://evolution.outoflow.online/chat/getBase64FromMediaMessage/JonathanRenanIA",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"message\": {\n \"key\": {\n \"id\": \"{{ $('Recebe Mensagem').item.json.body.data.key.id }}\"\n }\n },\n \"convertToMp4\": false\n}",
"options": {}
},
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
680,
340
],
"id": "34f420eb-3dac-44ea-960a-6b2d148abdbf",
"name": "HTTP Request"
},
{
"parameters": {
"operation": "toBinary",
"sourceProperty": "base64",
"options": {
"mimeType": "audio/ogg"
}
},
"type": "n8n-nodes-base.convertToFile",
"typeVersion": 1.1,
"position": [
920,
340
],
"id": "6f6fe024-d367-4995-bcc0-9abe716e28d5",
"name": "Convert to File"
},
{
"parameters": {
"promptType": "define",
"text": "={{ $('Filtra s\u00f3 a MSG').item.json.Conteudo }} Data e Hor\u00e1rio da Mensagem \u00e9: {{ $json.Data_Hora_Atual }}",
"options": {
"systemMessage": "=# TOOLS \n**Function:** `think` \n**Descri\u00e7\u00e3o:** racioc\u00ednio interno; n\u00e3o devolve nada. \u279c **SEMPRE** chame antes de responder.\n\n---\n\n## \ud83d\udfe3 IDENTIDADE & TOM \nVoc\u00ea \u00e9 **MAGIATENDE**, assistente virtual da marca **Doce Magia**. \n- Linguagem: **doce, encantadora, acolhedora e alegre** \ud83c\udf6d \n- Todas as respostas **\u2264 400 caracteres** com **emojis m\u00e1gicos** para humanizar. \n- Nunca cite marcas externas nem estoques. \n- Sempre destaque **benef\u00edcios** como frete, brindes ou parcelamento.\n\n---\n\n## \ud83d\udfe2 SAUDA\u00c7\u00c3O OBRIGAT\u00d3RIA (se for primeiro contato) \n> Ol\u00e1! Eu sou a MAGIATENDE \ud83c\udf6c\u2728 Como posso te encantar hoje?\n\n---\n\n## \ud83d\udee0 TOOLS DISPON\u00cdVEIS\n\n| Tool | Quando usar |\n|-----------------------------|---------------------------------------------------------------------------|\n| `think` | Sempre utilizar antes de responder. |\n| `consulta_pedido_shopify` | Ap\u00f3s receber e\u2011mail v\u00e1lido para status de pedido. |\n| `info_produtos` | Informa\u00e7\u00f5es sobre doces, kits, composi\u00e7\u00f5es ou ingredientes. |\n| `info_empresa` | Regras de devolu\u00e7\u00e3o, reembolso ou pol\u00edtica de trocas. |\n| `encaminhar_atendente` | Quando precisar de ajuda humana (veja regras abaixo). |\n| `consulta_lista_produtos` | Ver lista de produtos, pre\u00e7os ou links dos doces. |\n\n---\n\n## \ud83d\udd04 REGRAS DE TRANSFER\u00caNCIA \n1. Chamar a tool `encaminhar_atendente`. \n2. Usar a **resposta da tool** como resposta para o cliente.\n\n---\n\n## \ud83d\udce6 FLUXO \u2013 STATUS DE PEDIDO \n1. Solicite o e\u2011mail do cliente \u279c use `consulta_pedido_shopify`. \n2. Se o pedido n\u00e3o for encontrado: pe\u00e7a para validar e\u2011mail. \n3. Persistiu o problema? \u279c encaminhar para atendente.\n\n---\n\n## \ud83c\udf81 CUPONS & VANTAGENS \n- Primeira compra: **MAGIA10** (10% off) \n- Compras \u2265 R$ 199: **frete gr\u00e1tis Sul/Sudeste** \n- Brinde surpresa nos kits presente\u00e1veis \ud83c\udf81 \n- At\u00e9 **3\u00d7 sem juros**\n\n---\n\n## \ud83d\udd0d PERGUNTAS FREQUENTES\n\n| Tema | Resposta |\n|-----------------------------|-----------------------------------------------------------|\n| Parcerias/influenciadores | Fale com Lara \ud83c\udf1f (11 98765\u20114321) |\n| Trabalhe conosco | Envie curr\u00edculo para **encantos@docemagia.com.br** \u2728 |\n| Revenda | Cadastre-se em: https://lojistas.docemagia.com.br \ud83c\udf6b |\n\n---\n\n## \u274c N\u00c3O FAZER \n- Nunca informe prazo exato de entrega. \n- N\u00e3o gere QR Code/pagamento. \n- Nunca diga \u201caguarde\u201d \u2013 use a tool silenciosamente. \n- N\u00e3o ofere\u00e7a cupons que n\u00e3o estejam listados.\n\n---\n\n## \ud83d\udd12 PRIVACIDADE & DADOS \nUse `info_empresa` para trocas/devolu\u00e7\u00f5es. \n**Nunca** exiba dados sens\u00edveis do cliente.\n\n---\n\n## \ud83c\udfa8 EXEMPLO DE RESPOSTA INVESTIGATIVA \n> Que del\u00edcia! \ud83d\ude0b Me conta um pouquinho mais pra eu te ajudar rapidinho?\n\n---\n\n## \u26a0\ufe0f ATEN\u00c7\u00c3O \nSe o cliente mencionar **\u201csortidos\u201d**, confirme se est\u00e1 falando do **Kit Sortidos Doce Magia** ou se quer **variedade de produtos**.\n\n---\n\n## \u2728 FIM DO PROMPT \u2013 SEMPRE EXECUTE `think` ANTES DE RESPONDER \u2728"
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.7,
"position": [
260,
1600
],
"id": "1a8c8b74-c5ea-4c13-aa6d-020310aa309c",
"name": "AI Agent1"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"typeVersion": 1.1,
"position": [
760,
2060
],
"id": "4095d3bc-f435-4c71-9e25-85c6b2f2352c",
"name": "Embeddings OpenAI1"
},
{
"parameters": {
"toolDescription": "Util para consultar pedidos\n\nSe voc\u00ea n\u00e3o receber informa\u00e7\u00f5es de c\u00f3digo de rastreio e URL de rastreio pode ser que o pedido ainda n\u00e3o foi faturado, informar o cliente para aguardar 48hs \u00fateis para estar atualizado as informa\u00e7\u00f5es.\n\nO cliente receber\u00e1 o c\u00f3digo de rastreio, e ele dever\u00e1 consultar conforme a transportadora, o link est\u00e1 abaixo de cada transportadora, enviar para o cliente o c\u00f3digo de rastreio e a URL para rastrear conforme lista abaixo:\n\nTransportadora: TEX COURIER S/A - URL de rastreio: https://totalconecta.totalexpress.com.br/rastreamento\n\nTransportadora: J&T EXPRESS BRAZIL LTDA - URL de rastreio: https://www.jtexpress.com.br/trajectoryQuery - Obs.: Consulta no site deve ocorrer informando o CPF e N\u00famero do Rastreio.\n\nTransportadora: SEDEX CONTRATO AG - URL de rastreio: https://rastreamento.correios.com.br/app/index.php\n\nTransportadora: PAC CONTRATO AG - URL de rastreio: https://rastreamento.correios.com.br/app/index.php",
"method": "POST",
"url": "URL CONSULTA PEDIDOS",
"sendBody": true,
"parametersBody": {
"values": [
{
"name": "email"
}
]
}
},
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"typeVersion": 1.1,
"position": [
280,
1980
],
"id": "c78c61f1-0455-4ed8-beb1-78d63a731906",
"name": "consulta_pedido_shopify"
},
{
"parameters": {
"description": "Utilize para pensar sempre antes de gerar uma resposta"
},
"type": "@n8n/n8n-nodes-langchain.toolThink",
"typeVersion": 1,
"position": [
1000,
1860
],
"id": "8ec966f2-5de7-402d-8454-5739e8da24d0",
"name": "Think"
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "\u00fatil para consultar listagem completa de produtos, pre\u00e7o de produtos e url de produtos.",
"operation": "getAll",
"tableId": "produtos_pincbar",
"returnAll": true
},
"type": "n8n-nodes-base.supabaseTool",
"typeVersion": 1,
"position": [
1160,
1800
],
"id": "3d9eb3b2-8eee-4dff-82f3-c940cdb3a8da",
"name": "consulta_lista_produtos"
},
{
"parameters": {
"toolDescription": "=\u00fatil para passar conversa para o atendente ou consultor ou ser humano ou pessoa\n\n<atendente> \n1- RESPEITA AS REGRAS ABAIXO PARA PASSAR PARA UM ATENDENTE EM QUALQUER HIPOTESE:\n- Agora \u00e9 {{ $now.setLocale('pt-BR').format('HH:mm') }} e o dia \u00e9 {{ $now.setLocale('pt-BR').format('dd-MM-yyyy') }} e o hor\u00e1rio n\u00e3o estiver entre 09:00 \u00e1s 17:00 de segunda a sexta: \n - N\u00e3o transfira para um atendente. Use a mensagem padr\u00e3o: \n \u201cNo momento, estamos fora do nosso hor\u00e1rio de atendimento, que \u00e9 das 9h \u00e0s 17h. Por favor, envie sua solicita\u00e7\u00e3o para o e-mail contato@pincbar.com.br e responderemos o mais breve poss\u00edvel.\u201d\n- Quando for passar para atendente chama a tool \"encaminhar_atendente\". \n\n- Transfira para um consultor apenas quando: \n - O cliente tiver reclama\u00e7\u00f5es complexas ou solicita\u00e7\u00f5es fora do escopo da IA. \n - Confirmar que as informa\u00e7\u00f5es fornecidas (como e-mail) est\u00e3o corretas e o problema persista. \n\nMensagem ao transferir: \n\u201cAgora nosso time interno vai te auxiliar, ok? Estamos aqui para garantir sua satisfa\u00e7\u00e3o!\u201d \n</atendente> ",
"method": "POST",
"url": "https://n8n.outoflow.work/webhook/chama-outro-fluxo",
"sendBody": true,
"parametersBody": {
"values": [
{
"name": "motivo"
},
{
"name": "sessionId",
"valueProvider": "fieldValue",
"value": "={{ $('Compila Dados da Mensagem').item.json.Conversation_ID }}"
}
]
}
},
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"typeVersion": 1.1,
"position": [
880,
1900
],
"id": "c46480f8-101a-4b71-86d3-ac2d890e5fd3",
"name": "encaminhar_atendente"
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $('Compila Dados da Mensagem').item.json.Conversation_ID }}"
},
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
"typeVersion": 1.3,
"position": [
60,
2000
],
"id": "29124b40-6f8d-47ac-ac7c-b934c5a6133e",
"name": "Postgres Chat Memory"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"typeVersion": 1.2,
"position": [
440,
2260
],
"id": "ab242a85-4591-4a21-b437-ff8aaa545c5d",
"name": "Embeddings OpenAI"
},
{
"parameters": {
"mode": "retrieve-as-tool",
"toolName": "info_empresa",
"toolDescription": "\u00datil para consultar informa\u00e7\u00f5es sobre a empresa de maneira geral, e tamb\u00e9m sobre: trocas e devolu\u00e7\u00f5es, parcerias, influenciadores, prescritores, lojistas etc.",
"tableName": {
"__rl": true,
"value": "documents",
"mode": "list",
"cachedResultName": "documents"
},
"topK": 15,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"typeVersion": 1.1,
"position": [
440,
2080
],
"id": "070985d2-0942-4bb6-bf72-9d3cd5fac7dd",
"name": "info_empresa"
},
{
"parameters": {
"mode": "retrieve-as-tool",
"toolName": "consulta_produtos",
"toolDescription": "\u00datil para consulta de informa\u00e7\u00f5es sobre os produtos (exceto lista de produtos, pre\u00e7os e url de produto)",
"tableName": {
"__rl": true,
"value": "base_produtos_pincbar",
"mode": "list",
"cachedResultName": "base_produtos_pincbar"
},
"topK": 15,
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"typeVersion": 1.1,
"position": [
560,
1860
],
"id": "efe4baaa-0360-4787-aefb-b879aea5017b",
"name": "consulta_produtos"
},
{
"parameters": {
"model": "gpt-4.1-mini-2025-04-14",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1,
"position": [
0,
1800
],
"id": "8a666cc4-b038-4d81-9214-949c72fa8bf5",
"name": "OpenAI Chat Model1"
}
],
"settings": {
"executionOrder": "v1"
},
"shared": [
{
"updatedAt": "2025-07-08T18:59:41.984Z",
"createdAt": "2025-07-08T18:59:41.984Z",
"role": "workflow:owner",
"workflowId": "jYQpeoarbEVHmOVF",
"projectId": "o60HadikmqrvYZ9Z"
}
],
"staticData": null,
"tags": [
{
"updatedAt": "2025-07-08T18:59:36.172Z",
"createdAt": "2025-07-08T18:59:36.172Z",
"id": "uRo9zPyOtJUC7rm5",
"name": "dominandoautomacoes"
}
],
"triggerCount": 0,
"updatedAt": "2025-07-08T18:59:41.984Z",
"versionId": "21b9f743-5b9e-4190-b84d-296765aac09a"
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Agente_Atendimento_E_commerce. Uses baserow, redis, openAi, httpRequest. Webhook trigger; 52 nodes.
Source: https://github.com/diegohugo570/backup-n8n/blob/4b35f5dcf0af947eeb77275d3dcc3f4ff1d296b7/workflows/Agente_Atendimento_E_commerce.json — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Bread-Meat-Delivery. Uses lmChatOpenAi, agent, httpRequest, redis. Webhook trigger; 91 nodes.
Hi! I’m Amanda, a creator of intelligent automations using n8n and Make. I’ve been building AI-powered workflows for over 2 years, always focused on usability and innovation. This one here is very spe
This workflow automates multi-channel AI-driven sales engagement for lead qualification, service information delivery, and consultation booking. It integrates WhatsApp, Facebook Messenger, Instagram D
Corvus 3.2 Beta. Uses httpRequest, agent, lmChatOpenAi, vectorStoreSupabase. Webhook trigger; 48 nodes.
Indoor Farming Agent. Uses lmChatOpenAi, documentDefaultDataLoader, embeddingsOpenAi, toolVectorStore. Webhook trigger; 36 nodes.