AutomationFlowsAI & RAG › Build a Document Qa System with Google Drive, Pinecone, and Openai RAG

Build a Document Qa System with Google Drive, Pinecone, and Openai RAG

ByAbdullahi Osman @abdosman06 on n8n.io

RAG AI Agent for Documents in Google Drive → Pinecone → OpenAI Chat (n8n workflow)

Event trigger★★★★☆ complexityAI-powered19 nodesGoogle Drive TriggerGoogle DrivePinecone Vector StoreOpenAI EmbeddingsDocument Default Data LoaderText Splitter Recursive Character Text SplitterChat TriggerOpenAI Chat
AI & RAG Trigger: Event Nodes: 19 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9050 — 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
{
  "nodes": [
    {
      "id": "56745855-bde9-45f2-bb9a-37c8a5544056",
      "name": "Google Drive Trigger",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -112,
        592
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "id",
          "value": "=Choose your folder"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "31b61802-30e6-4898-8a3b-881ddc96c127",
      "name": "Download file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        160,
        592
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "url",
          "value": "=Choose your folder"
        },
        "options": {},
        "operation": "download"
      },
      "typeVersion": 3
    },
    {
      "id": "4d6b1ba5-38eb-4db1-a43c-e508ad192ff3",
      "name": "Pinecone Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        432,
        592
      ],
      "parameters": {
        "mode": "insert",
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "mode": "id",
          "value": "=Choose you index"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "3b3adc2c-f566-4c6d-8dad-2bff56fdc83d",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        160,
        1024
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "3b3b0ebc-7972-4d4b-88fd-a7d9df5a30d8",
      "name": "Default Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        608,
        848
      ],
      "parameters": {
        "options": {},
        "textSplittingMode": "custom"
      },
      "typeVersion": 1.1
    },
    {
      "id": "a95ab7b7-8624-4fb7-8238-45147bf8acd3",
      "name": "Recursive Character Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        464,
        1056
      ],
      "parameters": {
        "options": {},
        "chunkOverlap": 100
      },
      "typeVersion": 1
    },
    {
      "id": "fd460847-a8aa-4c2d-946f-7deddfc2c64e",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        1040,
        672
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "f796fa38-a472-4c68-81b7-78874d6b47fa",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1264,
        896
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "7f2d4746-be6c-4dc3-bbf8-979a0e2cf2b5",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1392,
        896
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "677e0550-9d7f-4d55-a18e-694ca2d9ae55",
      "name": "Pinecone Vector Store1",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        1520,
        896
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "options": {},
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "databases",
          "cachedResultName": "databases"
        },
        "toolDescription": "Use this as a knowledge base to answer the user message"
      },
      "typeVersion": 1.3
    },
    {
      "id": "22033102-58b8-4ec5-899c-8fc4ba290782",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -192,
        528
      ],
      "parameters": {
        "color": 5,
        "width": 1056,
        "height": 688,
        "content": "## Document inserting"
      },
      "typeVersion": 1
    },
    {
      "id": "4a3f3dc6-e6f7-4357-b0ce-538ad5c4af7b",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        96,
        960
      ],
      "parameters": {
        "color": 4,
        "width": 208,
        "height": 208,
        "content": "## Embeddings"
      },
      "typeVersion": 1
    },
    {
      "id": "ef37ed33-f7b8-412c-b534-0c949d48a0e1",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        544
      ],
      "parameters": {
        "width": 320,
        "height": 176,
        "content": "## Storing"
      },
      "typeVersion": 1
    },
    {
      "id": "69048fc8-1479-4efe-980d-5a40b71c2fc2",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        528
      ],
      "parameters": {
        "width": 992,
        "height": 560,
        "content": "## Test here\n\n* you can change the trigger as you need."
      },
      "typeVersion": 1
    },
    {
      "id": "843bcd47-d995-4a77-b6ac-7e81dd35b0d8",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1504,
        832
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "height": 192,
        "content": "## Get the Database"
      },
      "typeVersion": 1
    },
    {
      "id": "b5fbdc8b-c696-417f-8e51-f03e0b65bbd8",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        528
      ],
      "parameters": {
        "width": 432,
        "height": 704,
        "content": "## Credential Setup (Critical)\n\nYou'll need to create credentials for the following services. Click the link next to each one for the full setup guide from the n8n documentation:\n\nGoogle Drive OAuth2 API (Used by: Google Drive Trigger, Download file):\n\nLink: https://docs.n8n.io/integrations/builtin/credentials/google/oauth-generic/\n\nAction: You need to set up an OAuth application in the Google Cloud Console to grant n8n access to your Google Drive files.\n\nPinecone API (Used by: Pinecone Vector Store, Pinecone Vector Store1):\n\nLink: https://docs.n8n.io/integrations/builtin/credentials/pinecone/\n\nAction: You'll need to get your API Key and Environment from your Pinecone account dashboard and enter them into the n8n credential setup.\n\nOpenAI API (Used by: Embeddings OpenAI, OpenAI Chat Model):\n\nLink: https://docs.n8n.io/integrations/builtin/credentials/openai/\n\nAction: You'll need to generate a Secret API Key from your OpenAI account to use for embeddings and the chat model.\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "aafc6b73-18de-4934-b61b-e55556f12cd6",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        176
      ],
      "parameters": {
        "color": 4,
        "width": 672,
        "height": 336,
        "content": "### **RAG system**\n\n### **How It Works**\n\n* **Summarize the Flow:** Distill the function of your entire workflow into a few high-level, easy-to-understand steps.\n\n### **Set Up Steps**\n\n* **Set Expectations:** Give users a clear idea of how long the setup will take.\n* **Keep It Concise:** Don't describe every minute detail in the main setup guide.\n* **Use Sticky Notes:** Place all detailed descriptions and complex instructions within **sticky notes** directly inside the n8n workflow itself, keeping the main documentation clean and brief."
      },
      "typeVersion": 1
    },
    {
      "id": "b99dc201-c075-4b5c-9433-2a8e69c86404",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        80
      ],
      "parameters": {
        "color": 6,
        "width": 224,
        "height": 80,
        "content": "## workflow builder [Abdullah Ahmed](https://www.youtube.com/@gureyosman06)"
      },
      "typeVersion": 1
    },
    {
      "id": "56750d09-170d-4bcb-9831-7ee9e2f8d61b",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1328,
        672
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are a helpful assistant"
        },
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    }
  ],
  "connections": {
    "Download file": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_embedding",
            "index": 0
          },
          {
            "node": "Pinecone Vector Store1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Trigger": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store1": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

RAG AI Agent for Documents in Google Drive → Pinecone → OpenAI Chat (n8n workflow)

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

Your AI workforce is ready. Are you?

Google Sheets Tool, Mcp Trigger, Google Drive +29
AI & RAG

This advanced n8n workflow automates the full lead enrichment, qualification, and personalized outreach process tailored specifically for the B2B real estate sector. Integrating top platforms like Api

N8N Nodes Fillout, OpenAI Chat, Pinecone Vector Store +11
AI & RAG

This n8n template automatically classifies incoming emails (Sales, Support, Internal, Finance, Promotions) and routes them to a dedicated OpenAI LLM Agent for processing. Depending on the category, th

OpenAI, Gmail, Text Classifier +16
AI & RAG

Automate Outreach Prospect automates finding, enriching, and messaging potential partners (like restaurants, malls, and bars) using Apify Google Maps scraping, Perplexity enrichment, OpenAI LLMs, Goog

@Devlikeapro/N8N Nodes Waha, Google Drive Trigger, @Apify/N8N Nodes Apify +14