Workflow: Stickynote Workflow
Integrations: googleDrive, manualTrigger, noOp, respondToWebhook, stickyNote, webhook

{"meta": {"instanceId": "workflow-c384e1ac", "versionId": "1.0.0", "createdAt": "2025-09-29T07:08:00.193554", "updatedAt": "2025-09-29T07:08:00.193670", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "nodes": [{"id": "01730710-e299-4e66-93e9-6079fdf9b8b7", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [2120, 0], "parameters": {"color": 6, "width": 903.0896125323785, "height": 733.5099670584011, "content": "## Step 2: Setup the Q&A \n### The incoming message from the webhook is queried from the Supabase Vector Store.  The response is provided in the response webhook.  "}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "66aed89e-fd72-4067-82bf-d480be27e5d6", "name": "When clicking \"Execute Workflow\"", "type": "n8n-nodes-base.manualTrigger", "position": [840, 140], "parameters": {}, "typeVersion": 1, "notes": "This manualTrigger node performs automated tasks as part of the workflow."}, {"id": "9dc8f2a7-eeff-4a35-be52-05c42b71eee4", "name": "Google Drive", "type": "n8n-nodes-base.googleDrive", "position": [1140, 140], "parameters": {"fileId": {"__rl": true, "mode": "list", "value": "1LZezppYrWpMStr4qJXtoIX-Dwzvgehll", "cachedResultUrl": "{{ $env.WEBHOOK_URL }}", "cachedResultName": "crowdstrike.pdf"}, "options": {}, "operation": "download"}, "credentials": {"googleDriveOAuth2Api": {"id": "yOwz41gMQclOadgu", "name": "Google Drive account"}}, "typeVersion": 3, "notes": "This googleDrive node performs automated tasks as part of the workflow."}, {"id": "1dd3d3fd-6c2e-4e23-9c82-b0d07b199de3", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [1100, 0], "parameters": {"color": 6, "width": 772.0680602743597, "height": 732.3675002130781, "content": "## Step 1: Upserting the PDF\n### Fetch file from Google Drive, split it into chunks and insert into Supabase index\n\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "4796124f-bc12-4353-b7ea-ec8cd7653e68", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [0, 0], "parameters": {"color": 6, "width": 710.9124489067698, "height": 726.4452519516944, "content": "## Start here: Step-by Step Youtube Tutorial :star:\n\n[![Building an AI Crew to Analyze Financial Data with CrewAI and n8n]({{ $env.WEBHOOK_URL }}]({{ $env.WEBHOOK_URL }}\n"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "1e2ecc88-c8c7-4687-a2a1-b20b0da9b772", "name": "Default Data Loader", "type": "n8n-nodes-base.noOp", "position": [1400, 320], "parameters": {"options": {"splitPages": true}, "dataType": "binary"}, "typeVersion": 1, "notes": "This documentDefaultDataLoader node performs automated tasks as part of the workflow."}, {"id": "6dd8545d-df8c-49ff-acf6-f8c150723ee8", "name": "Recursive Character Text Splitter1", "type": "n8n-nodes-base.noOp", "position": [1400, 460], "parameters": {"options": {}, "chunkSize": 3000, "chunkOverlap": 200}, "typeVersion": 1, "notes": "This textSplitterRecursiveCharacterTextSplitter node performs automated tasks as part of the workflow."}, {"id": "6899e2d6-965a-40cd-a34f-a61de8fd32ef", "name": "Qdrant Vector Store", "type": "n8n-nodes-base.noOp", "position": [1480, 140], "parameters": {"mode": "insert", "options": {}, "qdrantCollection": {"__rl": true, "mode": "id", "value": "crowd"}}, "credentials": {"qdrantApi": {"id": "NyinAS3Pgfik66w5", "name": "QdrantApi account"}}, "typeVersion": 1.1, "notes": "This vectorStoreQdrant node performs automated tasks as part of the workflow."}, {"id": "6136c6fb-3d20-44a7-ab00-6c5671bafa10", "name": "When chat message received", "type": "n8n-nodes-base.noOp", "disabled": true, "position": [2180, 120], "webhookId": "551107fb-b349-4e2b-a888-febe5e282734", "parameters": {"options": {}}, "typeVersion": 1.1, "notes": "This chatTrigger node performs automated tasks as part of the workflow."}, {"id": "c970f654-4c79-4637-bec0-73f79a01ab59", "name": "Webhook", "type": "n8n-nodes-base.webhook", "position": [2180, 320], "webhookId": "55b825ad-8987-4618-ae92-d9b08966324b", "parameters": {"path": "19f5499a-3083-4783-93a0-e8ed76a9f742", "options": {}, "httpMethod": "POST", "responseMode": "responseNode"}, "typeVersion": 2, "notes": "This webhook node performs automated tasks as part of the workflow."}, {"id": "e05e9046-de17-4ca1-b1ac-2502ee123e5f", "name": "Retrieval QA Chain", "type": "n8n-nodes-base.noOp", "position": [2420, 120], "parameters": {"text": "={{ $json.chatInput || $json.body.input }}", "options": {}, "promptType": "define"}, "typeVersion": 1.5, "notes": "This chainRetrievalQa node performs automated tasks as part of the workflow."}, {"id": "ecf0d248-a8a9-45ed-8786-8864547f79b6", "name": "Vector Store Retriever", "type": "n8n-nodes-base.noOp", "position": [2580, 320], "parameters": {"topK": 5}, "typeVersion": 1, "notes": "This retrieverVectorStore node performs automated tasks as part of the workflow."}, {"id": "4fb1d8ac-bc6f-4f99-965f-7d38ea0680e0", "name": "Qdrant Vector Store1", "type": "n8n-nodes-base.noOp", "position": [2540, 460], "parameters": {"options": {}, "qdrantCollection": {"__rl": true, "mode": "id", "value": "={{ $json.body.company }}"}}, "credentials": {"qdrantApi": {"id": "NyinAS3Pgfik66w5", "name": "QdrantApi account"}}, "typeVersion": 1.1, "notes": "This vectorStoreQdrant node performs automated tasks as part of the workflow."}, {"id": "66868422-39c9-4e76-99b9-a77bb613b248", "name": "OpenAI Chat Model", "type": "n8n-nodes-base.noOp", "position": [2420, 340], "parameters": {"model": {"__rl": true, "mode": "list", "value": "gpt-4o-mini"}, "options": {}}, "credentials": {"openAiApi": {"id": "8gccIjcuf3gvaoEr", "name": "OpenAi account"}}, "typeVersion": 1.2, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"id": "f290f809-3b4e-42e3-bfb5-d505566d9275", "name": "Embeddings OpenAI1", "type": "n8n-nodes-base.noOp", "position": [2520, 580], "parameters": {"options": {}}, "credentials": {"openAiApi": {"id": "8gccIjcuf3gvaoEr", "name": "OpenAi account"}}, "typeVersion": 1.2, "notes": "This embeddingsOpenAi node performs automated tasks as part of the workflow."}, {"id": "c360f7b3-2ae4-4ebd-85ca-f64c3966e65d", "name": "Embeddings OpenAI", "type": "n8n-nodes-base.noOp", "position": [1700, 320], "parameters": {"options": {}}, "credentials": {"openAiApi": {"id": "8gccIjcuf3gvaoEr", "name": "OpenAi account"}}, "typeVersion": 1.2, "notes": "This embeddingsOpenAi node performs automated tasks as part of the workflow."}, {"id": "9223d119-b5a7-40d4-b8da-f85951b52bde", "name": "Respond to Webhook", "type": "n8n-nodes-base.respondToWebhook", "position": [2840, 120], "parameters": {"options": {}, "respondWith": "text", "responseBody": "={{ $json.response.text }}"}, "typeVersion": 1.1, "notes": "This respondToWebhook node performs automated tasks as part of the workflow."}], "pinData": {}, "connections": {"c970f654-4c79-4637-bec0-73f79a01ab59": {"main": [[{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59", "type": "main", "index": 0}], [{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59-fff4071a", "type": "main", "index": 0}], [{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59-11addf1b", "type": "main", "index": 0}], [{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59-1fca6f2c", "type": "main", "index": 0}], [{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59-ac3e0999", "type": "main", "index": 0}], [{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59-040ed533", "type": "main", "index": 0}], [{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59-433bb2b7", "type": "main", "index": 0}], [{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59-33b094b2", "type": "main", "index": 0}], [{"node": "error-handler-c970f654-4c79-4637-bec0-73f79a01ab59-86a3f7a0", "type": "main", "index": 0}]]}, "9223d119-b5a7-40d4-b8da-f85951b52bde": {"main": [[{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde", "type": "main", "index": 0}], [{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde-fb4a4839", "type": "main", "index": 0}], [{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde-026a291a", "type": "main", "index": 0}], [{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde-40a879bc", "type": "main", "index": 0}], [{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde-7140f75e", "type": "main", "index": 0}], [{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde-fde02002", "type": "main", "index": 0}], [{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde-e7c43982", "type": "main", "index": 0}], [{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde-911529b1", "type": "main", "index": 0}], [{"node": "error-handler-9223d119-b5a7-40d4-b8da-f85951b52bde-ac90d439", "type": "main", "index": 0}]]}, "9dc8f2a7-eeff-4a35-be52-05c42b71eee4": {"main": [[{"node": "error-handler-9dc8f2a7-eeff-4a35-be52-05c42b71eee4-39727cd4", "type": "main", "index": 0}]]}, "66868422-39c9-4e76-99b9-a77bb613b248": {"main": [[{"node": "error-handler-66868422-39c9-4e76-99b9-a77bb613b248-72a9bd42", "type": "main", "index": 0}]]}, "f290f809-3b4e-42e3-bfb5-d505566d9275": {"main": [[{"node": "error-handler-f290f809-3b4e-42e3-bfb5-d505566d9275-6a04050a", "type": "main", "index": 0}]]}, "c360f7b3-2ae4-4ebd-85ca-f64c3966e65d": {"main": [[{"node": "error-handler-c360f7b3-2ae4-4ebd-85ca-f64c3966e65d-519f326a", "type": "main", "index": 0}]]}}, "name": "Stickynote 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: Stickynote Workflow. This workflow integrates 14 different services: webhook, stickyNote, textSplitterRecursiveCharacterTextSplitter, vectorStoreQdrant, chainRetrievalQa. It contains 25 nodes and follows best practices for error handling and security.", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "notes": "Excellent quality workflow: Stickynote Workflow. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}