AutomationFlowsAI & RAG › Agente Atendimento E Commerce

Agente Atendimento E Commerce

Agente_Atendimento_E_commerce. Uses baserow, redis, openAi, httpRequest. Webhook trigger; 52 nodes.

Webhook trigger★★★★★ complexityAI-powered52 nodesBaserowRedisOpenAIHTTP RequestAgentOpenAI EmbeddingsTool Http RequestTool Think
AI & RAG Trigger: Webhook Nodes: 52 Complexity: ★★★★★ AI nodes: yes Added:

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 →

Download .json
{
  "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"
}
Pro

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 →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Bread-Meat-Delivery. Uses lmChatOpenAi, agent, httpRequest, redis. Webhook trigger; 91 nodes.

OpenAI Chat, Agent, HTTP Request +14
AI & RAG

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

OpenAI Chat, Redis, OpenAI +11
AI & RAG

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

Agent, OpenAI Embeddings, OpenAI Chat +11
AI & RAG

Corvus 3.2 Beta. Uses httpRequest, agent, lmChatOpenAi, vectorStoreSupabase. Webhook trigger; 48 nodes.

HTTP Request, Agent, OpenAI Chat +5
AI & RAG

Indoor Farming Agent. Uses lmChatOpenAi, documentDefaultDataLoader, embeddingsOpenAi, toolVectorStore. Webhook trigger; 36 nodes.

OpenAI Chat, Document Default Data Loader, OpenAI Embeddings +16