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": "Default Data Loader",
"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": "New File",
"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": "File Updated",
"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": "Delete Row(s)",
"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": "Get FIle 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": "Reformat",
"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": "OpenAI 임베딩1",
"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": "Default Data Loader1",
"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": "Transcribe",
"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": "Text",
"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": "Voice or Text",
"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": "Response",
"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": "OpenAI 임베딩3",
"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": "RAG Agent",
"type": "main",
"index": 0
}
]
]
},
"Set ID": {
"main": [
[
{
"node": "Download File",
"type": "main",
"index": 0
}
]
]
},
"3623a178-af67-4f07-b1d6-90ac07857f28": {
"main": [
[
{
"node": "Set ID",
"type": "main",
"index": 0
}
]
]
},
"4d5bcbf0-fe14-4d24-81f5-72b84712c09d": {
"main": [
[
{
"node": "Download File1",
"type": "main",
"index": 0
}
]
]
},
"RAG Agent": {
"main": [
[
{
"node": "4ab95976-d1d8-438f-8112-99395823166c",
"type": "main",
"index": 0
}
]
]
},
"7d163045-13c3-42d7-9c51-0045c3056a6e": {
"main": [
[
{
"node": "RAG Agent",
"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
}
]
]
},
"Download File": {
"main": [
[
{
"node": "Extract from File",
"type": "main",
"index": 0
}
]
]
},
"dccda445-c531-4009-bb3e-19b927d31d01": {
"main": [
[
{
"node": "Download File2",
"type": "main",
"index": 0
}
],
[
{
"node": "14ac063c-0f77-4e3d-a603-7cf95d3701c4",
"type": "main",
"index": 0
}
]
]
},
"Download File1": {
"main": [
[
{
"node": "Extract from File1",
"type": "main",
"index": 0
}
]
]
},
"Download File2": {
"main": [
[
{
"node": "7d163045-13c3-42d7-9c51-0045c3056a6e",
"type": "main",
"index": 0
}
]
]
},
"5992f547-5327-4091-b4a8-37d6aec6b75e": {
"ai_tool": [
[
{
"node": "RAG Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "dccda445-c531-4009-bb3e-19b927d31d01",
"type": "main",
"index": 0
}
]
]
},
"Embeddings OpenAI": {
"ai_embedding": [
[
{
"node": "Supabase Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Extract from File": {
"main": [
[
{
"node": "Supabase Vector Store",
"type": "main",
"index": 0
}
]
]
},
"Embeddings OpenAI1": {
"ai_embedding": [
[
{
"node": "Supabase Vector Store1",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Embeddings OpenAI3": {
"ai_embedding": [
[
{
"node": "Supabase Vector Store3",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Extract from File1": {
"main": [
[
{
"node": "Supabase Vector Store1",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model2": {
"ai_languageModel": [
[
{
"node": "5992f547-5327-4091-b4a8-37d6aec6b75e",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model3": {
"ai_languageModel": [
[
{
"node": "RAG Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"71b61728-b87c-40f3-850b-81af6d544b75": {
"ai_document": [
[
{
"node": "Supabase Vector Store",
"type": "ai_document",
"index": 0
}
]
]
},
"1784fe6a-6b2e-4fc9-9e28-05284e5f9e15": {
"ai_document": [
[
{
"node": "Supabase Vector Store1",
"type": "ai_document",
"index": 0
}
]
]
},
"Window Buffer Memory1": {
"ai_memory": [
[
{
"node": "RAG Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Supabase Vector Store3": {
"ai_vectorStore": [
[
{
"node": "5992f547-5327-4091-b4a8-37d6aec6b75e",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"Recursive Character Text Splitter": {
"ai_textSplitter": [
[
{
"node": "71b61728-b87c-40f3-850b-81af6d544b75",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"Recursive Character Text Splitter1": {
"ai_textSplitter": [
[
{
"node": "1784fe6a-6b2e-4fc9-9e28-05284e5f9e15",
"type": "ai_textSplitter",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 내부 위키, AI RAG
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
[템플릿] AI 반려동물 가게 v8
🐶 AI 펫 샵 어시스턴트 - GPT-4o, Google 캘린더 및 WhatsApp/Instagram/Facebook 통합
If
N8n
Set
+
If
N8n
Set
244 노드Amanda Benks
영업
AI 대리인 레스토랑 [템플릿]
🤖 WhatsApp, 인스타그램, 메신저의 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 콘텐츠
Google Drive에서 Supabase 상황 벡터 데이터베이스로 동기화, RAG 애플리케이션 사용
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 Drive 파일 변경을 통해 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에서 보기 →
이 워크플로우 공유