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

Alfred (funcional). Uses gmailTool, googleCalendarTool, gmail, embeddingsOpenAi. Event-driven trigger; 83 nodes.

Gmail Tool, Google Calendar Tool, Gmail +24
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

My workflow 2529. Uses lmChatOpenAi, documentDefaultDataLoader, embeddingsOpenAi, googleDrive. Event-driven trigger; 54 nodes.

OpenAI Chat, Document Default Data Loader, OpenAI Embeddings +11
AI & RAG

05. Base_To_Copy. Uses lmChatOpenAi, documentDefaultDataLoader, embeddingsOpenAi, googleDrive. Event-driven trigger; 54 nodes.

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