{ "meta": { "instanceId": "workflow-8e6ff1ac", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:49.827081", "updatedAt": "2025-09-29T07:07:49.827094", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "nodes": [ { "id": "40bb5497-d1d2-4eb7-b683-78b88c8d9230", "name": "Google Drive", "type": "n8n-nodes-base.googleDrive", "position": [ 496.83478320435574, 520 ], "parameters": { "fileId": { "__rl": true, "mode": "url", "value": "{{ $env.WEBHOOK_URL }}" }, "options": {}, "operation": "download" }, "credentials": { "googleDriveOAuth2Api": { "id": "{{ $credentials.googleDriveOAuth2Api.id }}", "name": "Google Drive account" } }, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow." }, { "id": "1323d520-1528-4a5a-9806-8f4f45306098", "name": "Recursive Character Text Splitter", "type": "n8n-nodes-base.noOp", "position": [ 996.8347832043557, 920 ], "parameters": { "chunkSize": 3000, "chunkOverlap": 200 }, "typeVersion": 1, "notes": "This textSplitterRecursiveCharacterTextSplitter node performs automated tasks as part of the workflow." }, { "id": "796b155a-64e6-4a52-9168-a37c68077d99", "name": "Embeddings OpenAI", "type": "n8n-nodes-base.noOp", "position": [ 836.8347832043557, 740 ], "parameters": { "options": {} }, "credentials": { "openAiApi": { "id": "JCgD7807AQpe8Xge", "name": "OpenAi account" } }, "typeVersion": 1, "notes": "This embeddingsOpenAi node performs automated tasks as part of the workflow." }, { "id": "dbe42c28-6f0b-4999-8372-0b42f6fb5916", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 260, 420 ], "parameters": { "color": 7, "width": 978.0454109366399, "height": 806.6556079800943, "content": "### Load data into database\nFetch file from Google Drive, split it into chunks and insert into Pinecone index" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "43dc3736-834d-4322-8fd2-7826b0208c4b", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 1520, 420 ], "parameters": { "color": 7, "width": 654.1028019808174, "height": 806.8716167324012, "content": "### Chat with database\nEmbed the incoming chat message and use it retrieve relevant chunks from the vector store. These are passed to the model to formulate an answer " }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "53b18460-8ad6-425a-a01f-c2295cfddde8", "name": "Default Data Loader", "type": "n8n-nodes-base.noOp", "position": [ 996.8347832043557, 740 ], "parameters": { "options": {}, "dataType": "binary" }, "typeVersion": 1, "notes": "This documentDefaultDataLoader node performs automated tasks as part of the workflow." }, { "id": "e729a021-eab3-48fa-a818-457efcaeebb2", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [ -20, 740 ], "parameters": { "height": 264.61498034081166, "content": "## Try me out\n1. In Pinecone, create an index with 1536 dimensions and select it in *both* Pinecone nodes\n2. Click 'test workflow' at the bottom of the canvas to load data into the vector store\n3. Click 'chat' at the bottom of the canvas to ask questions about the data" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "3e17c89c-620d-4892-b944-d792e48e3772", "name": "Question and Answer Chain", "type": "n8n-nodes-base.noOp", "position": [ 1560, 521 ], "parameters": {}, "typeVersion": 1.2, "notes": "This chainRetrievalQa node performs automated tasks as part of the workflow." }, { "id": "516507f9-d0d9-4975-85d0-a7852ee41518", "name": "OpenAI Chat Model", "type": "n8n-nodes-base.noOp", "position": [ 1560, 741 ], "parameters": { "options": {} }, "credentials": { "openAiApi": { "id": "JCgD7807AQpe8Xge", "name": "OpenAi account" } }, "typeVersion": 1, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow." }, { "id": "8b0a5d26-a60a-40ab-8200-72f542532096", "name": "Embeddings OpenAI2", "type": "n8n-nodes-base.noOp", "position": [ 1700, 1081 ], "parameters": { "options": {} }, "credentials": { "openAiApi": { "id": "JCgD7807AQpe8Xge", "name": "OpenAi account" } }, "typeVersion": 1, "notes": "This embeddingsOpenAi node performs automated tasks as part of the workflow." }, { "id": "07f61d20-cf50-48e8-9d34-92244af436cb", "name": "Vector Store Retriever", "type": "n8n-nodes-base.noOp", "position": [ 1760, 741 ], "parameters": {}, "typeVersion": 1, "notes": "This retrieverVectorStore node performs automated tasks as part of the workflow." }, { "id": "0777de17-99a0-499a-b71f-245d5f76642e", "name": "Read Pinecone Vector Store", "type": "n8n-nodes-base.noOp", "position": [ 1700, 921 ], "parameters": { "options": {}, "pineconeIndex": { "__rl": true, "mode": "list", "value": "test-index", "cachedResultName": "test-index" } }, "credentials": { "pineconeApi": { "id": "Pp5aPt4JWBkDOGqZ", "name": "PineconeApi account" } }, "typeVersion": 1, "notes": "This vectorStorePinecone node performs automated tasks as part of the workflow." }, { "id": "cc5e6897-9d0b-4352-a882-5dc23104bf97", "name": "Insert into Pinecone vector store", "type": "n8n-nodes-base.noOp", "position": [ 856.8347832043557, 520 ], "parameters": { "mode": "insert", "options": { "clearNamespace": true }, "pineconeIndex": { "__rl": true, "mode": "list", "value": "test-index", "cachedResultName": "test-index" } }, "credentials": { "pineconeApi": { "id": "Pp5aPt4JWBkDOGqZ", "name": "PineconeApi account" } }, "typeVersion": 1, "notes": "This vectorStorePinecone node performs automated tasks as part of the workflow." }, { "id": "c358aa73-b60f-453f-a3ef-539faa98c9b5", "name": "When clicking 'Chat' button below", "type": "n8n-nodes-base.noOp", "position": [ 1360, 521 ], "webhookId": "e259b6fe-b2a9-4dbc-98a4-9a160e7ac10c", "parameters": {}, "typeVersion": 1, "notes": "This chatTrigger node performs automated tasks as part of the workflow." }, { "id": "d35db9e1-4efc-4980-9814-55fbe65e08fd", "name": "When clicking 'Test Workflow' button", "type": "n8n-nodes-base.manualTrigger", "position": [ 76.83478320435574, 520 ], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow." }, { "id": "4c04f576-e834-467d-98b4-38a2d501d82f", "name": "Set Google Drive file URL", "type": "n8n-nodes-base.set", "position": [ 296, 520 ], "parameters": { "options": {}, "assignments": { "assignments": [ { "id": "50025ff5-1b53-475f-b150-2aafef1c4c21", "name": "file_url", "type": "string", "value": "{{ $env.WEBHOOK_URL }}" } ] } }, "typeVersion": 3.3, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "error-88e5d87b", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [ 1000, 400 ], "parameters": { "message": "Workflow execution error", "options": {} } } ], "pinData": {}, "connections": { "40bb5497-d1d2-4eb7-b683-78b88c8d9230": { "main": [ [ { "node": "error-handler-40bb5497-d1d2-4eb7-b683-78b88c8d9230-1dfe41f2", "type": "main", "index": 0 } ] ] }, "796b155a-64e6-4a52-9168-a37c68077d99": { "main": [ [ { "node": "error-handler-796b155a-64e6-4a52-9168-a37c68077d99-ead0fb13", "type": "main", "index": 0 } ] ] }, "516507f9-d0d9-4975-85d0-a7852ee41518": { "main": [ [ { "node": "error-handler-516507f9-d0d9-4975-85d0-a7852ee41518-ed32692e", "type": "main", "index": 0 } ] ] }, "8b0a5d26-a60a-40ab-8200-72f542532096": { "main": [ [ { "node": "error-handler-8b0a5d26-a60a-40ab-8200-72f542532096-081b9efe", "type": "main", "index": 0 } ] ] } }, "name": "Googledrive Workflow", "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "description": "Automated workflow: Googledrive Workflow. This workflow integrates 13 different services: stickyNote, vectorStorePinecone, textSplitterRecursiveCharacterTextSplitter, chainRetrievalQa, googleDrive. It contains 20 nodes and follows best practices for error handling and security.", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "notes": "Excellent quality workflow: Googledrive Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }