AutomationFlowsAI & RAG › Match Medical Symptoms to Products with Openai, Qdrant & Google Sheets RAG

Match Medical Symptoms to Products with Openai, Qdrant & Google Sheets RAG

ByZain Ali @zain104 on n8n.io

This workflow is perfect for: Healthcare ecommerce businesses that want to automate product recommendations. Founders or developers building an AI assistant using retrieval-augmented generation (RAG) with product data. Anyone wanting to combine OpenAI, Qdrant vector search, and…

Event trigger★★★★☆ complexityAI-powered17 nodesAgentQdrant Vector StoreOpenAI EmbeddingsDocument Default Data LoaderText Splitter Character Text SplitterChat TriggerOpenAI ChatMemory Buffer Window
AI & RAG Trigger: Event Nodes: 17 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #6699 — we link there as the canonical source.

This workflow follows the Agent → Chat Trigger 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
{
  "id": "npjeGNOHqwXLz1AX",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Product Recommendation RAG",
  "tags": [],
  "nodes": [
    {
      "id": "ab7e0eb2-1a72-4dee-8b6a-c6a836fce257",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1360,
        -16
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "8882b64e-5caf-4a05-a7f3-d78b93d9f30c",
      "name": "RAG Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -896,
        160
      ],
      "parameters": {},
      "typeVersion": 1.7
    },
    {
      "id": "3788a0b5-4f73-4bd1-bdca-b659a49710f5",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        176,
        192
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ec896b04-a5cc-4cc4-b7ce-3b552e2fe258",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -96,
        -32
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "cc6b47eb-87b1-44a8-8319-c5a0254b83ba",
      "name": "Qdrant Vector Database",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        256,
        544
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "6b5d2b60-f65a-4075-b5a6-415c1fb1dcc8",
      "name": "Create Embedding",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        192,
        752
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "9db5b8ae-a9c9-4465-a426-71bb9cda333d",
      "name": "Set Data Properly in vector database",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        384,
        784
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "186a5ebf-57fd-4aa4-8031-89c503603431",
      "name": "Split text into chunks",
      "type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
      "position": [
        464,
        960
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b969d3a6-f663-46bd-9207-666861aa4e49",
      "name": "Create Embedding2",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        -560,
        640
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "37d1974e-0e65-441d-9a22-977035e6e1af",
      "name": "Loop over each product",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        800,
        192
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "d6cff138-2513-4acd-bf37-3e6691b3cf07",
      "name": "Get data from Qdrant database",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        -656,
        464
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "bf1668c5-cc6a-4ab3-9f97-e9cd701df1ed",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -1120,
        160
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "e05d5065-dec0-435e-a65d-e4f831541388",
      "name": "OpenAI LLM",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -976,
        384
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "e14dc3fe-f0e4-479b-ad7e-d5477d478e20",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        96
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "95f86512-e0f7-48e0-bb44-9b727ecb320a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        448
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "672df8d1-81bd-4709-b7be-76cf04c92593",
      "name": "Store Chats",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -816,
        384
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "28d9b9f0-0b67-4828-b502-71e6f7c55ad8",
      "name": "Get all products",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        416,
        192
      ],
      "parameters": {},
      "typeVersion": 4.6
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "3cc040a0-9a81-4134-ae19-3efbfb3a8133",
  "connections": {
    "RAG Agent": {
      "main": [
        []
      ]
    },
    "OpenAI LLM": {
      "ai_languageModel": [
        [
          {
            "node": "RAG Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Store Chats": {
      "ai_memory": [
        [
          {
            "node": "RAG Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Create Embedding": {
      "ai_embedding": [
        [
          {
            "node": "Qdrant Vector Database",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Get all products": {
      "main": [
        [
          {
            "node": "Loop over each product",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Embedding2": {
      "ai_embedding": [
        [
          {
            "node": "Get data from Qdrant database",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Loop over each product": {
      "main": [
        [],
        [
          {
            "node": "Qdrant Vector Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Qdrant Vector Database": {
      "main": [
        [
          {
            "node": "Loop over each product",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split text into chunks": {
      "ai_textSplitter": [
        [
          {
            "node": "Set Data Properly in vector database",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "RAG Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get data from Qdrant database": {
      "ai_tool": [
        [
          {
            "node": "RAG Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Set Data Properly in vector database": {
      "ai_document": [
        [
          {
            "node": "Qdrant Vector Database",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Get all products",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow is perfect for: Healthcare ecommerce businesses that want to automate product recommendations. Founders or developers building an AI assistant using retrieval-augmented generation (RAG) with product data. Anyone wanting to combine OpenAI, Qdrant vector search, and…

Source: https://n8n.io/workflows/6699/ — 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

Chat with docs - 5minAI New version. Uses httpRequest, documentDefaultDataLoader, textSplitterRecursiveCharacterTextSplitter, embeddingsOpenAi. Event-driven trigger; 62 nodes.

HTTP Request, Document Default Data Loader, Text Splitter Recursive Character Text Splitter +10
AI & RAG

I prepared a detailed guide that illustrates the entire process of building an AI agent using Supabase and Google Drive within N8N workflows.

HTTP Request, Document Default Data Loader, Text Splitter Recursive Character Text Splitter +10
AI & RAG

OIL Rag. Uses lmChatOpenAi, embeddingsOpenAi, agent, telegramTrigger. Event-driven trigger; 53 nodes.

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

Code Extractfromfile. Uses manualTrigger, sort, httpRequest, compression. Event-driven trigger; 50 nodes.

HTTP Request, Compression, Edit Image +15
AI & RAG

🤖 AI Powered RAG Chatbot for Your Docs + Google Drive + Gemini + Qdrant. Uses documentDefaultDataLoader, textSplitterTokenSplitter, vectorStoreQdrant, splitInBatches. Event-driven trigger; 50 nodes.

Document Default Data Loader, Text Splitter Token Splitter, Qdrant Vector Store +10