AI知識ベースアシスタントとOpenAI、Supabase、Google Driveドキュメントの同期
上級
これはInternal Wiki, AI RAG分野の自動化ワークフローで、49個のノードを含みます。主にSet, Limit, Switch, Supabase, Telegramなどのノードを使用。 AI知識ベースアシスタントとOpenAI、Supabase、Google Driveドキュメントの同期
前提条件
- •Supabase URL と API Key
- •Telegram Bot Token
- •Google Drive API認証情報
- •OpenAI API Key
使用ノード (49)
カテゴリー
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "a88d54d0dc140647df8f628579b3d5aae0dedb13c983a1f5c11ee14f54f18774",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "c9437f3c-edbc-431c-be65-bc485d9fd6ad",
"name": "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 ベクトルストア",
"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": "デフォルトデータローダー",
"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": "再帰的文字テキストスプリッター",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
1840,
1140
],
"parameters": {
"options": {},
"chunkSize": 500,
"chunkOverlap": 100
},
"typeVersion": 1
},
{
"id": "66dd34df-763f-4497-bd73-b2dd78890eb4",
"name": "埋め込み 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": "新規ファイル",
"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": "ファイルをダウンロード",
"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": "付箋",
"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": "ファイルから抽出",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1280,
760
],
"parameters": {
"options": {},
"operation": "text"
},
"typeVersion": 1
},
{
"id": "8b949a8f-5dee-4c48-86fa-dc87cdd83198",
"name": "付箋4",
"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": "付箋5",
"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": "付箋6",
"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": "ファイル更新",
"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": "行を削除",
"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": "ファイルIDを取得",
"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": "再フォーマット",
"type": "n8n-nodes-base.limit",
"position": [
1320,
1500
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f55697b5-191d-4865-9970-3462abeb05ef",
"name": "ファイルをダウンロード1",
"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": "付箋1",
"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": "付箋7",
"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": "付箋8",
"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": "付箋9",
"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": "付箋10",
"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": "再帰的文字テキストスプリッター1",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"position": [
2320,
1840
],
"parameters": {
"options": {},
"chunkSize": 300,
"chunkOverlap": 50
},
"typeVersion": 1
},
{
"id": "88c403af-3425-4be3-9cc9-c79196df5115",
"name": "ファイルから抽出1",
"type": "n8n-nodes-base.extractFromFile",
"position": [
1700,
1500
],
"parameters": {
"options": {},
"operation": "text"
},
"typeVersion": 1
},
{
"id": "a4c44cc1-54c8-4d32-9d25-6b9b7bedb7a2",
"name": "埋め込み 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": "デフォルトデータローダー1",
"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 ベクトルストア1",
"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": "付箋2",
"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": "付箋11",
"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": "文字起こし",
"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": "テキスト",
"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": "音声またはテキスト",
"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": "応答",
"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": "付箋3",
"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": "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 トリガー",
"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": "ウィンドウバッファメモリ1",
"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": "ファイルをダウンロード2",
"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 ベクトルストア3",
"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 チャットモデル2",
"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": "付箋12",
"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": "埋め込み 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": "付箋13",
"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": "付箋14",
"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": "付箋15",
"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 チャットモデル3",
"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": "付箋16",
"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": "付箋17",
"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
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - 内部Wiki, AI RAG検索拡張
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
[テンプレート] AIペットショップ v8
AIペットショップアシスタント - GPT-4o、Googleカレンダー、WhatsApp/Instagram/Facebookを統合
If
N8n
Set
+
If
N8n
Set
244 ノードAmanda Benks
営業
AI エージェント レストラン [テンプレート]
🤖 WhatsApp、Instagram、MessengerのAIレストランアシスタント
If
N8n
Set
+
If
N8n
Set
239 ノードAmanda Benks
その他
Telegram AIサポートチャットボット(マルチモーダル入力)
GPT-4とSupabase RAGを使って多言語Telegramサポートボットを作成
If
Set
Code
+
If
Set
Code
51 ノードEzema Kingsley Chibuzo
サポートチャットボット
コンテキスト・ハイブリッドRAG AIコピー
RAGアプリケーション向けのGoogle DriveからSupabaseコンテキストベクトルデータベースへの同期
If
Set
Code
+
If
Set
Code
76 ノードMichael Taleb
AI RAG検索拡張
Rag を使って自動で再掲載する
RAG、Jina AI、OpenAI を使用したWordPressへの自動職缺抽出と掲載
If
Set
Code
+
If
Set
Code
56 ノードKhairul Muhtadin
人事
RAGシステム V2 - ドキュメント更新
Googleドライブのファイル変更に基づいてSupabaseベクトルデータベース内のRAGシステムを最新に保つ
If
Set
Limit
+
If
Set
Limit
22 ノードedisantosa
文書抽出
ワークフロー情報
難易度
上級
ノード数49
カテゴリー2
ノードタイプ19
作成者
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.
外部リンク
n8n.ioで表示 →
このワークフローを共有