AI知识库assistant与OpenAI、Supabase及Google Drive文档synchronisation
Ceci est unInternal Wiki, AI RAGworkflow d'automatisation du domainecontenant 49 nœuds.Utilise principalement des nœuds comme Set, Limit, Switch, Supabase, Telegram. AI知识库assistant与OpenAI、Supabase及Google Drive文档synchronisation
- •URL et Clé API Supabase
- •Token Bot Telegram
- •Informations d'identification Google Drive API
- •Clé API OpenAI
Nœuds utilisés (49)
Catégorie
{
"meta": {
"instanceId": "a88d54d0dc140647df8f628579b3d5aae0dedb13c983a1f5c11ee14f54f18774",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "c9437f3c-edbc-431c-be65-bc485d9fd6ad",
"name": "Définir l'ID",
"type": "n8n-nodes-base.set",
"position": [
860,
760
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "e556566e-20a1-48b4-b01e-197a402b5a5f",
"name": "id",
"type": "string",
"value": "={{ $json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "fc3b2696-d0c1-40e4-a13b-5d274b0b8c69",
"name": "Supabase Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"position": [
1600,
760
],
"parameters": {
"mode": "insert",
"options": {
"queryName": "match_documents"
},
"tableName": {
"__rl": true,
"mode": "list",
"value": "documents",
"cachedResultName": "documents"
}
},
"credentials": {
"supabaseApi": {
"id": "0xwwr9KuQRNxpYYg",
"name": "Marketing Ladder"
}
},
"typeVersion": 1
},
{
"id": "71b61728-b87c-40f3-850b-81af6d544b75",
"name": "Chargeur de données par défaut",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
1740,
980
],
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "=file_id",
"value": "={{ $('Set ID').item.json.id }}"
}
]
}
}
},
"typeVersion": 1
},
{
"id": "36fdd0a5-b95c-4fc3-9427-e67de0f3985f",
"name": "Séparateur de texte récursif",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
1840,
1140
],
"parameters": {
"options": {},
"chunkSize": 500,
"chunkOverlap": 100
},
"typeVersion": 1
},
{
"id": "66dd34df-763f-4497-bd73-b2dd78890eb4",
"name": "Intégrations OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
1560,
980
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "E9waf1c33TsN4RCh",
"name": "OpenAi account"
}
},
"typeVersion": 1.1
},
{
"id": "3623a178-af67-4f07-b1d6-90ac07857f28",
"name": "Nouveau fichier",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
560,
760
],
"parameters": {
"event": "fileCreated",
"options": {},
"pollTimes": {
"item": [
{}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "1UHQhCrwZg_ZEzBIKv4LR_RWtAyHbxZsg",
"cachedResultUrl": "https://drive.google.com/drive/folders/1UHQhCrwZg_ZEzBIKv4LR_RWtAyHbxZsg",
"cachedResultName": "Marketing Ladder Knowledge Base"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "VtotuTJiDPvuSK66",
"name": "Google Drive account"
}
},
"typeVersion": 1
},
{
"id": "5a9c99b2-2876-4fd3-82e1-9212303151ae",
"name": "Télécharger un fichier",
"type": "n8n-nodes-base.googleDrive",
"position": [
1100,
760
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "text/plain"
}
}
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "VtotuTJiDPvuSK66",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "2493e003-7c9e-4a98-8148-114abd2899ad",
"name": "Note autocollante",
"type": "n8n-nodes-base.stickyNote",
"position": [
500,
560
],
"parameters": {
"color": 4,
"width": 820,
"height": 80,
"content": "# Upload New File into Knowledge Base\n\n"
},
"typeVersion": 1
},
{
"id": "3d7f646d-0de0-44da-8cab-568cfa3ead02",
"name": "Extraire du fichier",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1280,
760
],
"parameters": {
"options": {},
"operation": "text"
},
"typeVersion": 1
},
{
"id": "8b949a8f-5dee-4c48-86fa-dc87cdd83198",
"name": "Note autocollante4",
"type": "n8n-nodes-base.stickyNote",
"position": [
800,
680
],
"parameters": {
"color": 5,
"height": 260,
"content": "## Fix Formatting\n"
},
"typeVersion": 1
},
{
"id": "2ce675ef-7791-4fe4-86d4-0eeabd827531",
"name": "Note autocollante5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1060,
680
],
"parameters": {
"color": 5,
"width": 420,
"height": 260,
"content": "## Extract File Text\n\n"
},
"typeVersion": 1
},
{
"id": "1d23677f-e268-4f66-8170-a5c28b4049b5",
"name": "Note autocollante6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1500,
680
],
"parameters": {
"color": 5,
"width": 560,
"height": 580,
"content": "## Update Vector Database\n\n"
},
"typeVersion": 1
},
{
"id": "f29a335e-e6a5-4a75-8158-0c83e69e25bb",
"name": "Fichier mis à jour",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
560,
1500
],
"parameters": {
"event": "fileUpdated",
"options": {},
"pollTimes": {
"item": [
{}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "1UHQhCrwZg_ZEzBIKv4LR_RWtAyHbxZsg",
"cachedResultUrl": "https://drive.google.com/drive/folders/1UHQhCrwZg_ZEzBIKv4LR_RWtAyHbxZsg",
"cachedResultName": "Marketing Ladder Knowledge Base"
}
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "VtotuTJiDPvuSK66",
"name": "Google Drive account"
}
},
"typeVersion": 1
},
{
"id": "ae95c1ce-bcf7-47fb-a3e3-2b6c6d02aa9e",
"name": "Supprimer la ou les lignes",
"type": "n8n-nodes-base.supabase",
"position": [
840,
1500
],
"parameters": {
"tableId": "documents",
"operation": "delete",
"filterType": "string",
"filterString": "=metadata->>file_id=like.*{{ $json.id }}*"
},
"credentials": {
"supabaseApi": {
"id": "0xwwr9KuQRNxpYYg",
"name": "Marketing Ladder"
}
},
"typeVersion": 1
},
{
"id": "c6f252c0-e81c-48f5-9a7b-6507b467c54d",
"name": "Obtenir l'ID du fichier",
"type": "n8n-nodes-base.set",
"position": [
1120,
1500
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "b4433ac7-0b70-4405-a564-f3f78f784470",
"name": "file_id",
"type": "string",
"value": "={{ $('File Updated').item.json.id }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "4d5bcbf0-fe14-4d24-81f5-72b84712c09d",
"name": "Reformater",
"type": "n8n-nodes-base.limit",
"position": [
1320,
1500
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f55697b5-191d-4865-9970-3462abeb05ef",
"name": "Télécharger le fichier1",
"type": "n8n-nodes-base.googleDrive",
"position": [
1520,
1500
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Get FIle ID').item.json.file_id }}"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "text/plain"
}
}
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "VtotuTJiDPvuSK66",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "4fcc245c-e57c-461e-ba04-18122933eacb",
"name": "Note autocollante1",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
1280
],
"parameters": {
"color": 4,
"width": 640,
"height": 80,
"content": "# Update File in Knowledge Base \n"
},
"typeVersion": 1
},
{
"id": "78e0be5d-aa5b-49b3-8b52-2fb2db7dd8be",
"name": "Note autocollante7",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
1400
],
"parameters": {
"color": 5,
"width": 280,
"height": 260,
"content": "## Get File to Update\n \n"
},
"typeVersion": 1
},
{
"id": "35de9387-b80a-4274-aa57-622d85a60064",
"name": "Note autocollante8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1040,
1400
],
"parameters": {
"color": 5,
"width": 400,
"height": 260,
"content": "## Fix Formatting\n"
},
"typeVersion": 1
},
{
"id": "8ffe865f-09ef-426d-9f5c-e7273a13441d",
"name": "Note autocollante9",
"type": "n8n-nodes-base.stickyNote",
"position": [
1460,
1400
],
"parameters": {
"color": 5,
"width": 420,
"height": 260,
"content": "## Extract File Text\n\n"
},
"typeVersion": 1
},
{
"id": "35aecaa8-b327-493f-8526-fbd019bc078d",
"name": "Note autocollante10",
"type": "n8n-nodes-base.stickyNote",
"position": [
1920,
1400
],
"parameters": {
"color": 5,
"width": 600,
"height": 580,
"content": "## Update Vector Database\n\n"
},
"typeVersion": 1
},
{
"id": "05d5c49a-8eee-4b90-9ec7-2ac6f20cd259",
"name": "Séparateur de texte récursif1",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
2320,
1840
],
"parameters": {
"options": {},
"chunkSize": 300,
"chunkOverlap": 50
},
"typeVersion": 1
},
{
"id": "88c403af-3425-4be3-9cc9-c79196df5115",
"name": "Extraire du fichier1",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1700,
1500
],
"parameters": {
"options": {},
"operation": "text"
},
"typeVersion": 1
},
{
"id": "a4c44cc1-54c8-4d32-9d25-6b9b7bedb7a2",
"name": "Intégrations OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
2040,
1700
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "E9waf1c33TsN4RCh",
"name": "OpenAi account"
}
},
"typeVersion": 1.1
},
{
"id": "1784fe6a-6b2e-4fc9-9e28-05284e5f9e15",
"name": "Chargeur de données par défaut1",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
2220,
1700
],
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "file_id",
"value": "={{ $('Reformat').item.json.file_id }}"
}
]
}
}
},
"typeVersion": 1
},
{
"id": "83950e53-fab5-4f58-af8d-11126c1bfb3f",
"name": "Supabase Vector Store1",
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"position": [
2060,
1500
],
"parameters": {
"mode": "insert",
"options": {
"queryName": "match_documents"
},
"tableName": {
"__rl": true,
"mode": "list",
"value": "documents",
"cachedResultName": "documents"
}
},
"credentials": {
"supabaseApi": {
"id": "0xwwr9KuQRNxpYYg",
"name": "Marketing Ladder"
}
},
"typeVersion": 1
},
{
"id": "22c08877-6bb1-4cfa-acda-df2b5814afa0",
"name": "Note autocollante2",
"type": "n8n-nodes-base.stickyNote",
"position": [
500,
680
],
"parameters": {
"color": 5,
"width": 280,
"height": 260,
"content": "## Get New File \n"
},
"typeVersion": 1
},
{
"id": "d16c74c1-ccdb-4bc2-b607-c846b56b07d1",
"name": "Note autocollante11",
"type": "n8n-nodes-base.stickyNote",
"position": [
760,
1400
],
"parameters": {
"color": 5,
"width": 280,
"height": 260,
"content": "## Delete Rows\n \n"
},
"typeVersion": 1
},
{
"id": "7d163045-13c3-42d7-9c51-0045c3056a6e",
"name": "Re transcrire",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-1060,
840
],
"parameters": {
"options": {},
"resource": "audio",
"operation": "transcribe"
},
"credentials": {
"openAiApi": {
"id": "E9waf1c33TsN4RCh",
"name": "OpenAi account"
}
},
"typeVersion": 1.6
},
{
"id": "14ac063c-0f77-4e3d-a603-7cf95d3701c4",
"name": "Texte",
"type": "n8n-nodes-base.set",
"position": [
-1160,
1040
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "fe7ecc99-e1e8-4a5e-bdd6-6fce9757b234",
"name": "text",
"type": "string",
"value": "={{ $json.message.text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "dccda445-c531-4009-bb3e-19b927d31d01",
"name": "Voix ou texte",
"type": "n8n-nodes-base.switch",
"position": [
-1460,
980
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "voice",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "281588e5-cab1-47c7-b42a-f75b8e7b659e",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.voice.file_id }}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "Text",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8c844924-b2ed-48b0-935c-c66a8fd0c778",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.text }}",
"rightValue": ""
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "4ab95976-d1d8-438f-8112-99395823166c",
"name": "Réponse",
"type": "n8n-nodes-base.telegram",
"position": [
-20,
960
],
"webhookId": "5dced4b9-5066-4036-a4d4-14fc07edd53c",
"parameters": {
"text": "={{ $json.output }}",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"additionalFields": {
"appendAttribution": false
}
},
"credentials": {
"telegramApi": {
"id": "fe6BsXsaL9M04IQi",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "e38d614d-09eb-4f42-9229-6b037ecdc264",
"name": "Note autocollante3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
800
],
"parameters": {
"color": 5,
"width": 680,
"height": 460,
"content": "## Convert Message to Text\n\n"
},
"typeVersion": 1
},
{
"id": "136f7bd7-aa99-4460-b24f-30d65c932cb3",
"name": "Agent RAG",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-640,
960
],
"parameters": {
"text": "={{ $json.text }}",
"options": {
"systemMessage": "=# Overview\nYou are a RAG assistant. Your job is to search for queries from a vector database and pass on the search results.\n\n# Tools\n**MarketingLadder** \n- This is the vector store that you must query to find answers. \n- Use the search findings from the vector store to create an answer to the input query.\n\n## Final Notes\n- If you can't find an answer from the database, then just say you couldn't find an answer. Never use your own knowledge. "
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "5e87da8f-4677-483e-b41c-a79ff11e2750",
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-1700,
980
],
"webhookId": "2e5e253b-982e-4fe3-8048-b64897e77535",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"id": "fe6BsXsaL9M04IQi",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "2b8470fb-2b8d-4490-8a40-c3479cb0865e",
"name": "Mémoire tampon de fenêtre1",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-580,
1160
],
"parameters": {
"sessionKey": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"sessionIdType": "customKey"
},
"typeVersion": 1.3
},
{
"id": "3e2e080a-62ab-4ab8-889d-d357d250d68d",
"name": "Télécharger le fichier2",
"type": "n8n-nodes-base.telegram",
"position": [
-1240,
840
],
"webhookId": "83bb7385-33f6-4105-8294-1a91c0ebbee5",
"parameters": {
"fileId": "={{ $json.message.voice.file_id }}",
"resource": "file"
},
"credentials": {
"telegramApi": {
"id": "fe6BsXsaL9M04IQi",
"name": "Telegram account"
}
},
"typeVersion": 1.2
},
{
"id": "da9bebc8-452f-493f-aefc-81dcd789f355",
"name": "Supabase Vector Store3",
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"position": [
-620,
1340
],
"parameters": {
"options": {
"queryName": "match_documents"
},
"tableName": {
"__rl": true,
"mode": "list",
"value": "documents",
"cachedResultName": "documents"
}
},
"credentials": {
"supabaseApi": {
"id": "0xwwr9KuQRNxpYYg",
"name": "Marketing Ladder"
}
},
"typeVersion": 1
},
{
"id": "0360fb6a-ac93-4e83-abb3-b19a5e614a76",
"name": "OpenAI Chat Model2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-240,
1340
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "E9waf1c33TsN4RCh",
"name": "OpenAi account"
}
},
"typeVersion": 1.1
},
{
"id": "302c2316-d91e-4b57-80d1-8678bcdc718a",
"name": "Note autocollante12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1800,
700
],
"parameters": {
"color": 4,
"width": 280,
"height": 80,
"content": "# RAG Chatbot\n"
},
"typeVersion": 1
},
{
"id": "9d0d4d0d-ec09-4f0f-bb14-bd6d5ea56c5a",
"name": "Intégrations OpenAI3",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
-660,
1520
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "E9waf1c33TsN4RCh",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "ea8349d1-8566-4f67-9e83-3a9b41f94d6b",
"name": "Note autocollante13",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1820,
920
],
"parameters": {
"color": 5,
"width": 280,
"height": 260,
"content": "## Get New Message\n"
},
"typeVersion": 1
},
{
"id": "d1a77833-3d99-4cc3-80a8-2d9b9c440175",
"name": "Note autocollante14",
"type": "n8n-nodes-base.stickyNote",
"position": [
-820,
800
],
"parameters": {
"color": 5,
"width": 720,
"height": 860,
"content": "## RAG System\n\n"
},
"typeVersion": 1
},
{
"id": "366a89d0-dd1d-4cd8-9de4-d7caa0433cab",
"name": "Note autocollante15",
"type": "n8n-nodes-base.stickyNote",
"position": [
-80,
900
],
"parameters": {
"color": 5,
"width": 320,
"height": 260,
"content": "## Send Output as Message\n"
},
"typeVersion": 1
},
{
"id": "11f88e16-7ef0-484f-b7d1-e74e0e639da3",
"name": "OpenAI Chat Model3",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-760,
1160
],
"parameters": {
"model": "gpt-4o",
"options": {}
},
"credentials": {
"openAiApi": {
"id": "E9waf1c33TsN4RCh",
"name": "OpenAi account"
}
},
"typeVersion": 1.1
},
{
"id": "5992f547-5327-4091-b4a8-37d6aec6b75e",
"name": "MarketingLadder",
"type": "@n8n/n8n-nodes-langchain.toolVectorStore",
"position": [
-440,
1160
],
"parameters": {
"name": "MarketingLadder",
"description": "This vector store holds information about Marketing Ladder agency"
},
"typeVersion": 1
},
{
"id": "10baf4fe-5497-4fcc-b624-155b56d17dbe",
"name": "Note autocollante16",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2320,
1900
],
"parameters": {
"color": 5,
"width": 440,
"height": 240,
"content": "## Hey, I'm Abdul 👋\n### I build growth systems for consultants & agencies. If you want to work together or need help automating your business, check out my website: \n### **https://www.builtbyabdul.com/**\n### Or email me at **builtbyabdul@gmail.com**\n### Have a lovely day ;)`"
},
"typeVersion": 1
},
{
"id": "98e8b14c-ea04-4e08-9c3f-3e1510197e03",
"name": "Note autocollante17",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2660,
420
],
"parameters": {
"width": 780,
"height": 1420,
"content": "# Company RAG Knowledge Base Agent\n## Overview\nTurn your docs into an AI-powered internal or public-facing assistant. This chatbot workflow uses RAG (Retrieval-Augmented Generation) with Supabase vector search to answer employee or customer questions based on your company documents—automatically updated via Google Drive.\n\nWhether it’s deployed in Telegram or embedded on your website, this agent supports voice and text input, transcribes voice messages, pulls relevant context from your internal files, and responds with a helpful, AI-generated answer. Two additional workflows listen for file changes in a shared Google Drive folder, convert them into embeddings using OpenAI, and sync them with your Supabase vector DB—so your knowledge base is always up to date.\n\n### Who’s it for\n- Startups building an internal ops or HR assistant \n- SaaS companies deploying help bots on their websites \n- Customer support teams reducing repetitive questions \n- Knowledge-driven teams needing internal AI assistants \n\n### How it works\n- Triggered via Telegram bot (or easily swapped for website chatbot or “on chat message”) \n- If user sends a voice message, it’s transcribed to text using OpenAI Whisper \n- Input is passed to a RAG agent that:\n - Searches a Supabase vector store for relevant docs \n - Pulls context from matching chunks using OpenAI embeddings \n - Responds with an LLM-powered answer \n- The response is sent back as a Telegram message \n- Two separate workflows:\n - **New File Workflow**: Listens for file uploads in Google Drive, extracts and splits text, then sends to Supabase with embeddings \n - **Update File Workflow**: Detects file edits, deletes old rows, and updates embeddings for the revised file \n\n### Example use case\n> You upload your internal policy docs and client FAQs into a Google Drive folder. \n> \n> Employees or customers can now ask: \n> - “What’s the refund policy for annual plans?” \n> - “How do I request a day off?” \n> - “What tools are approved for use by the engineering team?” \n> \n> The chatbot instantly pulls up the right section and responds with a smart, confident answer.\n\n### How to set up\n1. Connect a Telegram bot or use n8n’s webchat / chatbot widget \n2. Hook up OpenAI for transcription, embeddings, and completion \n3. Set up a Supabase project and connect it as a vector store \n4. Upload your internal docs to Google Drive \n5. Deploy the “Add File” and “Update File” automations to manage embedding sync \n6. Customize the chatbot’s tone and personality with prompt tweaks \n\n### Requirements\n- Telegram bot (or n8n Chat widget) \n- Google Drive integration \n- Supabase with pgvector or similar enabled \n- OpenAI API key (Whisper, Embeddings, ChatGPT) \n- Two folders: one for raw documents and one for tracking updates \n\n### How to customize\n- Swap Supabase for Pinecone, Weaviate, or Qdrant \n- Replace Telegram with web chat, Slack, Intercom, or Discord \n- Add logic to handle fallback answers or escalate to human \n- Embed the chat widget on your site for public customer use \n- Add filters (e.g. department, date, author) to narrow down context\n"
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"14ac063c-0f77-4e3d-a603-7cf95d3701c4": {
"main": [
[
{
"node": "136f7bd7-aa99-4460-b24f-30d65c932cb3",
"type": "main",
"index": 0
}
]
]
},
"c9437f3c-edbc-431c-be65-bc485d9fd6ad": {
"main": [
[
{
"node": "5a9c99b2-2876-4fd3-82e1-9212303151ae",
"type": "main",
"index": 0
}
]
]
},
"3623a178-af67-4f07-b1d6-90ac07857f28": {
"main": [
[
{
"node": "c9437f3c-edbc-431c-be65-bc485d9fd6ad",
"type": "main",
"index": 0
}
]
]
},
"4d5bcbf0-fe14-4d24-81f5-72b84712c09d": {
"main": [
[
{
"node": "f55697b5-191d-4865-9970-3462abeb05ef",
"type": "main",
"index": 0
}
]
]
},
"136f7bd7-aa99-4460-b24f-30d65c932cb3": {
"main": [
[
{
"node": "4ab95976-d1d8-438f-8112-99395823166c",
"type": "main",
"index": 0
}
]
]
},
"7d163045-13c3-42d7-9c51-0045c3056a6e": {
"main": [
[
{
"node": "136f7bd7-aa99-4460-b24f-30d65c932cb3",
"type": "main",
"index": 0
}
]
]
},
"c6f252c0-e81c-48f5-9a7b-6507b467c54d": {
"main": [
[
{
"node": "4d5bcbf0-fe14-4d24-81f5-72b84712c09d",
"type": "main",
"index": 0
}
]
]
},
"f29a335e-e6a5-4a75-8158-0c83e69e25bb": {
"main": [
[
{
"node": "ae95c1ce-bcf7-47fb-a3e3-2b6c6d02aa9e",
"type": "main",
"index": 0
}
]
]
},
"ae95c1ce-bcf7-47fb-a3e3-2b6c6d02aa9e": {
"main": [
[
{
"node": "c6f252c0-e81c-48f5-9a7b-6507b467c54d",
"type": "main",
"index": 0
}
]
]
},
"5a9c99b2-2876-4fd3-82e1-9212303151ae": {
"main": [
[
{
"node": "3d7f646d-0de0-44da-8cab-568cfa3ead02",
"type": "main",
"index": 0
}
]
]
},
"dccda445-c531-4009-bb3e-19b927d31d01": {
"main": [
[
{
"node": "3e2e080a-62ab-4ab8-889d-d357d250d68d",
"type": "main",
"index": 0
}
],
[
{
"node": "14ac063c-0f77-4e3d-a603-7cf95d3701c4",
"type": "main",
"index": 0
}
]
]
},
"f55697b5-191d-4865-9970-3462abeb05ef": {
"main": [
[
{
"node": "88c403af-3425-4be3-9cc9-c79196df5115",
"type": "main",
"index": 0
}
]
]
},
"3e2e080a-62ab-4ab8-889d-d357d250d68d": {
"main": [
[
{
"node": "7d163045-13c3-42d7-9c51-0045c3056a6e",
"type": "main",
"index": 0
}
]
]
},
"5992f547-5327-4091-b4a8-37d6aec6b75e": {
"ai_tool": [
[
{
"node": "136f7bd7-aa99-4460-b24f-30d65c932cb3",
"type": "ai_tool",
"index": 0
}
]
]
},
"5e87da8f-4677-483e-b41c-a79ff11e2750": {
"main": [
[
{
"node": "dccda445-c531-4009-bb3e-19b927d31d01",
"type": "main",
"index": 0
}
]
]
},
"66dd34df-763f-4497-bd73-b2dd78890eb4": {
"ai_embedding": [
[
{
"node": "fc3b2696-d0c1-40e4-a13b-5d274b0b8c69",
"type": "ai_embedding",
"index": 0
}
]
]
},
"3d7f646d-0de0-44da-8cab-568cfa3ead02": {
"main": [
[
{
"node": "fc3b2696-d0c1-40e4-a13b-5d274b0b8c69",
"type": "main",
"index": 0
}
]
]
},
"a4c44cc1-54c8-4d32-9d25-6b9b7bedb7a2": {
"ai_embedding": [
[
{
"node": "83950e53-fab5-4f58-af8d-11126c1bfb3f",
"type": "ai_embedding",
"index": 0
}
]
]
},
"9d0d4d0d-ec09-4f0f-bb14-bd6d5ea56c5a": {
"ai_embedding": [
[
{
"node": "da9bebc8-452f-493f-aefc-81dcd789f355",
"type": "ai_embedding",
"index": 0
}
]
]
},
"88c403af-3425-4be3-9cc9-c79196df5115": {
"main": [
[
{
"node": "83950e53-fab5-4f58-af8d-11126c1bfb3f",
"type": "main",
"index": 0
}
]
]
},
"0360fb6a-ac93-4e83-abb3-b19a5e614a76": {
"ai_languageModel": [
[
{
"node": "5992f547-5327-4091-b4a8-37d6aec6b75e",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"11f88e16-7ef0-484f-b7d1-e74e0e639da3": {
"ai_languageModel": [
[
{
"node": "136f7bd7-aa99-4460-b24f-30d65c932cb3",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"71b61728-b87c-40f3-850b-81af6d544b75": {
"ai_document": [
[
{
"node": "fc3b2696-d0c1-40e4-a13b-5d274b0b8c69",
"type": "ai_document",
"index": 0
}
]
]
},
"1784fe6a-6b2e-4fc9-9e28-05284e5f9e15": {
"ai_document": [
[
{
"node": "83950e53-fab5-4f58-af8d-11126c1bfb3f",
"type": "ai_document",
"index": 0
}
]
]
},
"2b8470fb-2b8d-4490-8a40-c3479cb0865e": {
"ai_memory": [
[
{
"node": "136f7bd7-aa99-4460-b24f-30d65c932cb3",
"type": "ai_memory",
"index": 0
}
]
]
},
"da9bebc8-452f-493f-aefc-81dcd789f355": {
"ai_vectorStore": [
[
{
"node": "5992f547-5327-4091-b4a8-37d6aec6b75e",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"36fdd0a5-b95c-4fc3-9427-e67de0f3985f": {
"ai_textSplitter": [
[
{
"node": "71b61728-b87c-40f3-850b-81af6d544b75",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"05d5c49a-8eee-4b90-9ec7-2ac6f20cd259": {
"ai_textSplitter": [
[
{
"node": "1784fe6a-6b2e-4fc9-9e28-05284e5f9e15",
"type": "ai_textSplitter",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Wiki interne, RAG IA
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
Abdul Mir
@abdulmirHey 👋 I'm Abdul. I build AI-powered systems for marketing agencies and consultants who want to move fast and automate the boring stuff. Think lead gen agents, proposal generators, and content creation systems. I specialize in growth-focused automations and share workflows that save time and land clients.
Partager ce workflow