{
  "meta": {
    "instanceId": "ad0113c344ee237399e44e9f11798b05baeb83a6196d514a9ae9d2ad71c3b5c9",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "a5c3ebce-f05b-4985-96ef-b98b8db66a22",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -1216,
        2176
      ],
      "webhookId": "ccaca032-7964-4a83-9417-91a223bc1485",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "c01659d9-5000-41a9-888e-69f341671baa",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -816,
        2544
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"language\": \"English\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "a18b9aa9-16d8-4a35-94f5-0858f3a494ca",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1120,
        2608
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-nano",
          "cachedResultName": "gpt-5-nano"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "credential-id",
          "name": "openAiApi Credential"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "038c0447-c2c3-44cd-8c32-191420a284d7",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        -480,
        2144
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "languages"
      },
      "typeVersion": 1
    },
    {
      "id": "574618a3-c10b-4acc-9599-a2c332151170",
      "name": "OpenAI Chat Model2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -224,
        2480
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-nano",
          "cachedResultName": "gpt-5-nano"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "credential-id",
          "name": "openAiApi Credential"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "a9c9d55b-708d-4404-bde5-646690b1be8e",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -32,
        2480
      ],
      "parameters": {
        "sessionKey": "={{ $('When chat message received').item.json.sessionId }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "e0b9ac67-8637-49f3-bdd6-e456823e91e6",
      "name": "Ecommerce Language Prompts",
      "type": "n8n-nodes-base.set",
      "position": [
        -752,
        2160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "languages",
              "name": "languages",
              "type": "array",
              "value": [
                {
                  "language": "english",
                  "system_prompt": "You are a friendly and professional ecommerce customer service assistant. Help customers with product inquiries, order tracking, returns, and general shopping questions. Always be polite, helpful, and aim to provide accurate information about products and services. If you cannot find specific information, guide the customer to the appropriate resources or suggest contacting human support. Keep responses concise but informative, and always prioritize customer satisfaction."
                },
                {
                  "language": "spanish",
                  "system_prompt": "Eres un asistente de servicio al cliente de comercio electrónico amigable y profesional. Ayuda a los clientes con consultas de productos, seguimiento de pedidos, devoluciones y preguntas generales de compras. Siempre sé cortés, útil y busca proporcionar información precisa sobre productos y servicios. Si no puedes encontrar información específica, guía al cliente a los recursos apropiados o sugiere contactar al soporte humano. Mantén las respuestas concisas pero informativas, y siempre prioriza la satisfacción del cliente."
                },
                {
                  "language": "french",
                  "system_prompt": "Vous êtes un assistant de service client e-commerce amical et professionnel. Aidez les clients avec les demandes de produits, le suivi des commandes, les retours et les questions générales d'achat. Soyez toujours poli, serviable et visez à fournir des informations précises sur les produits et services. Si vous ne trouvez pas d'informations spécifiques, guidez le client vers les ressources appropriées ou suggérez de contacter le support humain. Gardez les réponses concises mais informatives, et priorisez toujours la satisfaction du client."
                }
              ]
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b9266b06-fd77-420d-a320-570d58b3ab47",
      "name": "Keep Only Selected Language",
      "type": "n8n-nodes-base.merge",
      "position": [
        -480,
        2432
      ],
      "parameters": {
        "mode": "combine",
        "options": {
          "fuzzyCompare": false
        },
        "advanced": true,
        "mergeByFields": {
          "values": [
            {
              "field1": "language",
              "field2": "output.language"
            }
          ]
        }
      },
      "typeVersion": 3.2
    },
    {
      "id": "2943304d-2f38-4cde-b351-98eced80460a",
      "name": "Detect Language",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1040,
        2288
      ],
      "parameters": {
        "options": {
          "systemMessage": "Identify what language this is written in. output the language. \n\noutput like this. all lower case\n\n{\n\t\"language\": \"English\"\n}"
        },
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "a3d76522-3b39-4674-9312-2090643d1235",
      "name": "Chat Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -256,
        2208
      ],
      "parameters": {
        "text": "={{ $('When chat message received').item.json.chatInput }}",
        "options": {
          "systemMessage": "={{ $json.system_prompt }}"
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "900cadeb-ed9e-410b-bd03-6aefa132f100",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1728,
        1968
      ],
      "parameters": {
        "width": 400,
        "height": 784,
        "content": "## ⚙️ Setup Instructions\n\n### 1️⃣ Set Up OpenAI Connection\n#### Get API Key\n1. Go to [OpenAI Platform](https://platform.openai.com/api-keys)  \n2. Go to [OpenAI Billing](https://platform.openai.com/settings/organization/billing/overview)  \n3. Add funds to your billing account  \n4. Copy your API key into the **OpenAI credentials** in n8n  \n\n### 2️⃣ Configure Your Languages & Prompts\n- Open the **Set Node** named `Ecommerce Language Prompts`.  \n- Update or expand the list of languages and their **system prompts**.  \n- Example already includes:  \n  - English  \n  - Spanish  \n  - French  \n\n## 📬 Contact Information\nNeed help customizing this workflow or building similar automations?  \n\n📧 Email: [robert@ynteractive.com](mailto:robert@ynteractive.com)  \n🔗 LinkedIn: [Robert Breen](https://www.linkedin.com/in/robert-breen-29429625/)  \n🌐 Website: [ynteractive.com](https://ynteractive.com)  \n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "ed260a85-7b05-4c07-af6f-81621aaa5699",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1280,
        1968
      ],
      "parameters": {
        "color": 7,
        "width": 1392,
        "height": 784,
        "content": "# 🌍 Multilingual eCommerce Customer Service Chatbot (n8n Workflow)\n\nThis workflow creates a **multilingual eCommerce chatbot** that automatically detects the customer’s language and provides tailored responses. It is designed for online shops to improve customer support in English, Spanish, and French.\n\nThe chatbot is powered by **OpenAI’s GPT-5 Nano** and runs entirely inside **n8n**, with built-in memory to keep conversations contextual and helpful.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f83c5946-8ed3-410e-aad6-f81f6144afa3",
      "name": "Sticky Note12",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1232,
        2416
      ],
      "parameters": {
        "color": 3,
        "width": 288,
        "height": 304,
        "content": "### 1. Set Up OpenAI Connection\n\n#### Get API Key:\n1. Go to [OpenAI Platform](https://platform.openai.com/api-keys)\n1. Go to [OpenAI Billing](https://platform.openai.com/settings/organization/billing/overview)\n2. Add funds to your billing account & copy your api key into the openAI credentials\n"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Split Out": {
      "main": [
        [
          {
            "node": "Keep Only Selected Language",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "Chat Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Detect Language": {
      "main": [
        [
          {
            "node": "Keep Only Selected Language",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Detect Language",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model2": {
      "ai_languageModel": [
        [
          {
            "node": "Chat Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Detect Language",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Ecommerce Language Prompts": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Detect Language",
            "type": "main",
            "index": 0
          },
          {
            "node": "Ecommerce Language Prompts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Keep Only Selected Language": {
      "main": [
        [
          {
            "node": "Chat Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}