AutomationFlowsAI & RAG › Ai-powered Company Documents Q&a Assistant with Google Drive and Gpt-4 Mini

Ai-powered Company Documents Q&a Assistant with Google Drive and Gpt-4 Mini

ByRoshan Ramani @rawsun007 on n8n.io

This workflow is designed for companies looking to onboard new employees and interns efficiently. It's perfect for HR teams, team leaders, and organizations that want to provide instant access to company knowledge without manual intervention. Whether you're a startup or an…

Event trigger★★★★☆ complexityAI-powered15 nodesOpenAI ChatGoogle Drive TriggerGoogle DriveIn-Memory Vector StoreDocument Default Data LoaderText Splitter Recursive Character Text SplitterOpenAI EmbeddingsAgent
AI & RAG Trigger: Event Nodes: 15 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Agent → Documentdefaultdataloader 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
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "d1ec41c9-88e2-42aa-b3d9-8f1f65a964fd",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -1072,
        -48
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "typeVersion": 1.3
    },
    {
      "id": "4966431c-87a2-4afe-bc0d-4120062885cc",
      "name": "Watch Company Docs Folder",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        -400,
        -256
      ],
      "parameters": {
        "event": "fileCreated",
        "options": {},
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "triggerOn": "specificFolder",
        "folderToWatch": {
          "__rl": true,
          "mode": "list",
          "value": ""
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b787795b-d183-4e33-9074-7ebfef517eb2",
      "name": "Fetch New Document",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        -160,
        -256
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {
          "binaryPropertyName": "data"
        },
        "operation": "download",
        "authentication": "serviceAccount"
      },
      "typeVersion": 3
    },
    {
      "id": "4c91fd55-c584-4f9b-a4ae-b1546044a84d",
      "name": "Store in Knowledge Base",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
      "position": [
        80,
        -256
      ],
      "parameters": {
        "mode": "insert",
        "memoryKey": {
          "__rl": true,
          "mode": "list",
          "value": "company docs",
          "cachedResultName": "company docs"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "3293c954-3568-4c37-8a2c-b43d6961360e",
      "name": " Load Document Content",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        176,
        -32
      ],
      "parameters": {
        "options": {},
        "dataType": "binary",
        "binaryMode": "specificField",
        "textSplittingMode": "custom"
      },
      "typeVersion": 1.1
    },
    {
      "id": "ca2b0852-a98c-4a45-ae3c-6d31c955574f",
      "name": "Split into Searchable Chunks",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        224,
        176
      ],
      "parameters": {
        "options": {},
        "chunkOverlap": 200
      },
      "typeVersion": 1
    },
    {
      "id": "c79fccdf-931e-4f50-9b16-3bc019f9a06b",
      "name": "Generate Document Embeddings",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        -464,
        272
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "bb4d9fff-c7ea-4f40-89b4-979ec4219a30",
      "name": "Company Knowledge Assistant",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -1040,
        -256
      ],
      "parameters": {
        "text": "={{ $json.body.data }}",
        "options": {
          "systemMessage": "You are a helpful company assistant with access to company documents stored in a knowledge base.\n\nYour task is to:\n1. Answer user questions accurately using information from the company documents\n2. Use the Vector Store tool to search for relevant information when needed\n3. Cite specific documents or sections when providing answers\n4. If you cannot find relevant information, politely say so and offer to help with something else\n5. Be professional, concise, and helpful in all responses\n\nAlways prioritize accuracy over speculation."
        },
        "promptType": "define"
      },
      "typeVersion": 3
    },
    {
      "id": "b5470c8d-d729-46c8-bdb3-f45779735a27",
      "name": "Search Company Documents",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
      "position": [
        -896,
        80
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "topK": 5,
        "memoryKey": {
          "__rl": true,
          "mode": "list",
          "value": "company docs"
        },
        "toolDescription": "Search company documents and knowledge base for relevant information. Use this when users ask questions about company policies, procedures, or any documented information."
      },
      "typeVersion": 1.3
    },
    {
      "id": "4e027156-55e9-4875-9166-fb94b314ba32",
      "name": "Receive User Question",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -1280,
        -256
      ],
      "parameters": {
        "path": "chat-input",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "d330e63d-fb0c-4399-810f-cca702679bb3",
      "name": "Conversation History",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        -960,
        -80
      ],
      "parameters": {
        "sessionKey": "={{ $json.body.session_id }}",
        "sessionIdType": "customKey",
        "contextWindowLength": 10
      },
      "typeVersion": 1.3
    },
    {
      "id": "0eabe2dc-de90-4021-aa72-b48724b2ad2f",
      "name": "Send Answer to User",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -688,
        -256
      ],
      "parameters": {
        "options": {},
        "respondWith": "text",
        "responseBody": "={{ $json.output }}"
      },
      "typeVersion": 1.4
    },
    {
      "id": "41d2d50c-c6e7-4d34-b567-30448b0e873e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1872,
        -352
      ],
      "parameters": {
        "width": 432,
        "height": 672,
        "content": "## How it works\n\nThis workflow creates an AI assistant that answers questions using your company's documents. It has two independent flows:\n\n**Document Processing**: Monitors a Google Drive folder for new files. When detected, documents are downloaded, split into chunks, converted to embeddings, and stored in an in-memory vector database for semantic search.\n\n**Chat Interface**: Users send questions via webhook. The AI agent searches the knowledge base, retrieves relevant context, and generates accurate answers with source citations. Conversation history is maintained for context-aware responses.\n\n## Setup steps\n\n1. Connect your Google Drive OAuth2 credentials to the trigger node\n2. Select the folder to monitor in \"Watch Company Docs Folder\"\n3. Add your OpenAI API key to both the Chat Model and Embeddings nodes\n4. Configure Google Service Account for document downloads\n5. Test the webhook endpoint with a POST request containing `{\"data\": \"your question\", \"session_id\": \"user123\"}`"
      },
      "typeVersion": 1
    },
    {
      "id": "52aea4b4-6923-4778-9fc1-accdf0d6d1f0",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1328,
        -448
      ],
      "parameters": {
        "color": 6,
        "width": 688,
        "height": 112,
        "content": "## Chat Flow\nWebhook receives questions \u2192 AI agent searches vector store \u2192 GPT-4 generates answers with citations \u2192 Response sent back to user"
      },
      "typeVersion": 1
    },
    {
      "id": "1967eeaf-3615-497d-8b24-5ca4cdfe3ec0",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -448,
        -448
      ],
      "parameters": {
        "color": 6,
        "width": 752,
        "height": 112,
        "content": "## Document Processing\nDrive trigger detects new files \u2192 Downloads document \u2192 Extracts and chunks text \u2192 Generates embeddings \u2192 Stores in vector database"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Company Knowledge Assistant",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Fetch New Document": {
      "main": [
        [
          {
            "node": "Store in Knowledge Base",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Conversation History": {
      "ai_memory": [
        [
          {
            "node": "Company Knowledge Assistant",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Receive User Question": {
      "main": [
        [
          {
            "node": "Company Knowledge Assistant",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    " Load Document Content": {
      "ai_document": [
        [
          {
            "node": "Store in Knowledge Base",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Search Company Documents": {
      "ai_tool": [
        [
          {
            "node": "Company Knowledge Assistant",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Watch Company Docs Folder": {
      "main": [
        [
          {
            "node": "Fetch New Document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Company Knowledge Assistant": {
      "main": [
        [
          {
            "node": "Send Answer to User",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Document Embeddings": {
      "ai_embedding": [
        [
          {
            "node": "Store in Knowledge Base",
            "type": "ai_embedding",
            "index": 0
          },
          {
            "node": "Search Company Documents",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Split into Searchable Chunks": {
      "ai_textSplitter": [
        [
          {
            "node": " Load Document Content",
            "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

This workflow is designed for companies looking to onboard new employees and interns efficiently. It's perfect for HR teams, team leaders, and organizations that want to provide instant access to company knowledge without manual intervention. Whether you're a startup or an…

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