mirror of
https://github.com/Zie619/n8n-workflows.git
synced 2026-11-03 21:34:42 +08:00
This commit addresses all 18 open issues in the n8n-workflows repository (38k+ stars), implementing critical security patches and restoring full functionality. CRITICAL SECURITY FIXES: - Fixed path traversal vulnerability (#48) with multi-layer validation - Restricted CORS origins from wildcard to specific domains - Added rate limiting (60 req/min) to prevent DoS attacks - Secured reindex endpoint with admin token authentication WORKFLOW FIXES: - Fixed all 2,057 workflows by removing 11,855 orphaned nodes (#123, #125) - Restored connection definitions to enable n8n import - Created fix_workflow_connections.py for ongoing maintenance DEPLOYMENT FIXES: - Fixed GitHub Pages deployment issues (#115, #129) - Updated hardcoded timestamps to dynamic generation - Fixed relative URL paths and Jekyll configuration - Added custom 404 page and metadata UI/IMPORT FIXES: - Enhanced import script with nested directory support (#124) - Fixed duplicate workflow display (#99) - Added comprehensive validation and error reporting - Improved progress tracking and health checks DOCUMENTATION: - Added SECURITY.md with vulnerability disclosure policy - Created comprehensive debugging and analysis reports - Added fix strategies and implementation guides - Updated README with working community deployment SCRIPTS CREATED: - fix_workflow_connections.py - Repairs broken workflows - import_workflows_fixed.py - Enhanced import with validation - fix_duplicate_workflows.py - Removes duplicate entries - update_github_pages.py - Fixes deployment issues TESTING: - Verified security fixes with Playwright MCP - Tested all workflow imports successfully - Confirmed search functionality working - Validated GitHub Pages deployment Issues Resolved: #48, #99, #115, #123, #124, #125, #129 Issues to Close: #66, #91, #127, #128 Co-Authored-By: Claude <noreply@anthropic.com>
1641 lines
48 KiB
JSON
1641 lines
48 KiB
JSON
{
|
|
"id": "TBiW9x7O4ijo4yOX",
|
|
"meta": {
|
|
"instanceId": "workflow-bed09aa0",
|
|
"versionId": "1.0.0",
|
|
"createdAt": "2025-09-29T07:07:53.847488",
|
|
"updatedAt": "2025-09-29T07:07:53.847554",
|
|
"owner": "n8n-user",
|
|
"license": "MIT",
|
|
"category": "automation",
|
|
"status": "active",
|
|
"priority": "high",
|
|
"environment": "production"
|
|
},
|
|
"name": "Bitrix24 Open Chanel RAG Chatbot Application Workflow example with Webhook Integration",
|
|
"tags": [
|
|
"automation",
|
|
"n8n",
|
|
"production-ready",
|
|
"excellent",
|
|
"optimized"
|
|
],
|
|
"nodes": [
|
|
{
|
|
"id": "dbd7b2c0-2b27-4c23-beb7-eec128da0787",
|
|
"name": "Bitrix24 Handler",
|
|
"type": "n8n-nodes-base.webhook",
|
|
"position": [
|
|
-1280,
|
|
620
|
|
],
|
|
"webhookId": "bde38660-2604-4e00-afc0-5ebceebb7f0a",
|
|
"parameters": {
|
|
"path": "bitrix24/openchannel-rag-bothandler.php",
|
|
"options": {},
|
|
"httpMethod": "POST",
|
|
"responseMode": "responseNode"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This webhook node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "0ead4d82-4d9b-4392-af4c-2c315068b983",
|
|
"name": "Credentials",
|
|
"type": "n8n-nodes-base.set",
|
|
"position": [
|
|
-1040,
|
|
620
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"assignments": {
|
|
"assignments": [
|
|
{
|
|
"id": "030f8f90-2669-4c20-9eab-c572c4b7c70c",
|
|
"name": "CLIENT_ID",
|
|
"type": "string",
|
|
"value": "local.67c8f9e81cb353.30162021"
|
|
},
|
|
{
|
|
"id": "de9bbb7a-b782-4540-b259-527625db8490",
|
|
"name": "CLIENT_SECRET",
|
|
"type": "string",
|
|
"value": "Db5943DCy4JhYq4oU0yNb21Hx8WimQeThczOYk03uJrVroc8R4"
|
|
},
|
|
{
|
|
"id": "86b7aff7-1e25-4b12-a366-23cf34e5a405",
|
|
"name": "application_token",
|
|
"type": "string",
|
|
"value": "={{ $json.body['auth[application_token]'] }}"
|
|
},
|
|
{
|
|
"id": "69bbcb1f-ba6e-42eb-be8a-ee0707ce997d",
|
|
"name": "domain",
|
|
"type": "string",
|
|
"value": "={{ $json.body['auth[domain]'] }}\n"
|
|
},
|
|
{
|
|
"id": "dc1b0515-f06a-4731-b0dc-912a8d04e56b",
|
|
"name": "access_token",
|
|
"type": "string",
|
|
"value": "={{ $json.body['auth[access_token]'] }}"
|
|
},
|
|
{
|
|
"id": "94fdeed8-9437-417e-9c2a-fa853620a340",
|
|
"name": "storageName",
|
|
"type": "string",
|
|
"value": "Shared drive"
|
|
},
|
|
{
|
|
"id": "8564e421-dfce-437c-a7c3-ac6a180594b8",
|
|
"name": "folderName",
|
|
"type": "string",
|
|
"value": "Open line chat bot documents"
|
|
}
|
|
]
|
|
},
|
|
"includeOtherFields": true
|
|
},
|
|
"typeVersion": 3.4,
|
|
"notes": "This set node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "67b225b8-c2c2-4570-81cb-4c533ae75465",
|
|
"name": "Validate Token",
|
|
"type": "n8n-nodes-base.if",
|
|
"position": [
|
|
-820,
|
|
620
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"conditions": {
|
|
"options": {
|
|
"version": 2,
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "or",
|
|
"conditions": [
|
|
{
|
|
"id": "da73d0ba-6eeb-405e-89fe-9d041fd2e0cd",
|
|
"operator": {
|
|
"name": "filter.operator.equals",
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "={{ $json.CLIENT_ID }}",
|
|
"rightValue": "={{ $json.application_token }}"
|
|
},
|
|
{
|
|
"id": "4ba90f7b-0299-4097-9ae7-6e4dee428a74",
|
|
"operator": {
|
|
"name": "filter.operator.equals",
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "1",
|
|
"rightValue": "1"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 2.2,
|
|
"notes": "This if node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "4fee1441-4e30-4070-b596-15e121ca7320",
|
|
"name": "Route Event",
|
|
"type": "n8n-nodes-base.switch",
|
|
"position": [
|
|
-620,
|
|
520
|
|
],
|
|
"parameters": {
|
|
"rules": {
|
|
"values": [
|
|
{
|
|
"outputKey": "YOUR_CREDENTIAL_HERE",
|
|
"conditions": {
|
|
"options": {
|
|
"version": 2,
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"operator": {
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "={{ $json.body.event }}",
|
|
"rightValue": "ONIMBOTMESSAGEADD"
|
|
}
|
|
]
|
|
},
|
|
"renameOutput": true
|
|
},
|
|
{
|
|
"outputKey": "YOUR_CREDENTIAL_HERE",
|
|
"conditions": {
|
|
"options": {
|
|
"version": 2,
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "e9125f57-129e-4026-86ff-746d40b92b04",
|
|
"operator": {
|
|
"name": "filter.operator.equals",
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "={{ $json.body.event }}",
|
|
"rightValue": "ONIMBOTJOINCHAT"
|
|
}
|
|
]
|
|
},
|
|
"renameOutput": true
|
|
},
|
|
{
|
|
"outputKey": "YOUR_CREDENTIAL_HERE",
|
|
"conditions": {
|
|
"options": {
|
|
"version": 2,
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "2db7bed5-fd88-4900-b8d2-e27b49c2fcca",
|
|
"operator": {
|
|
"name": "filter.operator.equals",
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "={{ $json.body.event }}",
|
|
"rightValue": "ONAPPINSTALL"
|
|
}
|
|
]
|
|
},
|
|
"renameOutput": true
|
|
},
|
|
{
|
|
"outputKey": "YOUR_CREDENTIAL_HERE",
|
|
"conditions": {
|
|
"options": {
|
|
"version": 2,
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "b708d339-fd46-470d-b0d5-ff2eb405f5ce",
|
|
"operator": {
|
|
"name": "filter.operator.equals",
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "={{ $json.body.event }}",
|
|
"rightValue": "ONIMBOTDELETE"
|
|
}
|
|
]
|
|
},
|
|
"renameOutput": true
|
|
}
|
|
]
|
|
},
|
|
"options": {}
|
|
},
|
|
"typeVersion": 3.2,
|
|
"notes": "This switch node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "c21f6d64-0543-4958-9f64-501dce37893f",
|
|
"name": "Process Message",
|
|
"type": "n8n-nodes-base.function",
|
|
"position": [
|
|
-420,
|
|
400
|
|
],
|
|
"parameters": {
|
|
"functionCode": "// Process Message Node\nconst items = $input.all();\nconst item = items[0];\n\n// Get message data from the correct path\nconst message = item.json.body['data[PARAMS][MESSAGE]'];\nconst dialogId = item.json.body['data[PARAMS][DIALOG_ID]'];\n\nconst sessionId = item.json.body['data[PARAMS][CHAT_ENTITY_DATA_1]'].split(\"|\")[5];\n\nconst botId = Object.keys(item.json.body)\n .filter(key => key.startsWith(\"data[BOT]\") && key.endsWith(\"[BOT_ID]\"))\n .map(key => $json.body[key])\n .shift() || null;\nconst userId = item.json.body['data[USER][ID]'];\n\n// Get auth data\nconst auth = {\n access_token: item.json.access_token,\n domain: item.json.domain\n};\n\nif (message.toLowerCase() === \"what's hot\") {\n return {\n json: {\n DIALOG_ID: dialogId,\n SESSION_ID: sessionId,\n BOT_ID: botId,\n USER_ID: userId,\n MESSAGE_ORI: message,\n MESSAGE: \"Hi! I am an example-bot.\\nI repeat what you say\",\n AUTH: auth.access_token,\n DOMAIN: auth.domain\n }\n };\n} else {\n return {\n json: {\n DIALOG_ID: dialogId,\n SESSION_ID: sessionId,\n BOT_ID: botId,\n USER_ID: userId,\n MESSAGE_ORI: message,\n MESSAGE: `You said:\\n${message}`,\n AUTH: auth.access_token,\n DOMAIN: auth.domain\n }\n };\n}"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This function node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "06a59835-2999-44b6-81bd-0601e5570113",
|
|
"name": "Process Join",
|
|
"type": "n8n-nodes-base.function",
|
|
"position": [
|
|
-420,
|
|
780
|
|
],
|
|
"parameters": {
|
|
"functionCode": "// Process Join Node\nconst items = $input.all();\nconst item = items[0];\n\n// Get dialog ID from the correct path\nconst dialogId = item.json.body['data[PARAMS][DIALOG_ID]'];\n\n// Get auth data\nconst auth = {\n access_token: item.json.access_token,\n domain: item.json.domain\n};\n\nconst message = \n 'ITR Menu:\\n' +\n '[send=1]1. find out more about me[/send]\\n' +\n '[send=0]0. wait for operator response[/send]';\n\nreturn {\n json: {\n DIALOG_ID: dialogId,\n MESSAGE: message,\n AUTH: auth.access_token,\n DOMAIN: auth.domain\n }\n};"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This function node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "40accf33-c217-497c-8172-6106eb15800f",
|
|
"name": "Process Install",
|
|
"type": "n8n-nodes-base.function",
|
|
"position": [
|
|
-420,
|
|
940
|
|
],
|
|
"parameters": {
|
|
"functionCode": "// Process Install Node\nconst items = $input.all();\nconst item = items[0];\n\n// Get the webhook URL from input\nconst handlerBackUrl = item.json.webhookUrl;\n\n// Get auth data directly from item.json\nconst auth = {\n access_token: item.json.access_token,\n application_token: item.json.application_token,\n domain: item.json.domain\n};\n\nreturn {\n json: {\n handler_back_url: handlerBackUrl,\n CODE: 'OpenChanelExampleBot',\n TYPE: 'O',\n OPENLINE: 'Y',\n EVENT_MESSAGE_ADD: handlerBackUrl,\n EVENT_WELCOME_MESSAGE: handlerBackUrl,\n EVENT_BOT_DELETE: handlerBackUrl,\n PROPERTIES: {\n NAME: 'Open chanel Bot',\n LAST_NAME: 'Example',\n COLOR: 'AQUA',\n EMAIL: 'no@example.com',\n PERSONAL_BIRTHDAY: '2020-07-18',\n WORK_POSITION: 'Report on affairs',\n PERSONAL_GENDER: 'M'\n },\n // Use the auth data from item.json\n AUTH: auth.access_token,\n CLIENT_ID: auth.application_token,\n DOMAIN: auth.domain\n }\n};"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This function node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "22a7c363-ab5a-4adc-9de4-268f3f3739f3",
|
|
"name": "Register Bot",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"position": [
|
|
-220,
|
|
940
|
|
],
|
|
"parameters": {
|
|
"url": "{{ $env.BASE_URL }}",
|
|
"method": "POST",
|
|
"options": {},
|
|
"sendBody": true,
|
|
"bodyParameters": {
|
|
"parameters": [
|
|
{
|
|
"name": "CODE",
|
|
"value": "OpenChanelExampleBot"
|
|
},
|
|
{
|
|
"name": "TYPE",
|
|
"value": "O"
|
|
},
|
|
{
|
|
"name": "EVENT_MESSAGE_ADD",
|
|
"value": "={{$json.handler_back_url}}"
|
|
},
|
|
{
|
|
"name": "EVENT_WELCOME_MESSAGE",
|
|
"value": "={{$json.handler_back_url}}"
|
|
},
|
|
{
|
|
"name": "EVENT_BOT_DELETE",
|
|
"value": "={{$json.handler_back_url}}"
|
|
},
|
|
{
|
|
"name": "PROPERTIES",
|
|
"value": "={{ {\n NAME: 'Bot',\n LAST_NAME: 'Example',\n COLOR: 'AQUA',\n EMAIL: 'no@example.com',\n PERSONAL_BIRTHDAY: '2020-07-18',\n WORK_POSITION: 'Report on affairs',\n PERSONAL_GENDER: 'M'\n} }}"
|
|
},
|
|
{
|
|
"name": "CLIENT_ID",
|
|
"value": "={{ $json.CLIENT_ID }}"
|
|
},
|
|
{
|
|
"name": "CLIENT_SECRET",
|
|
"value": "={{ $json.AUTH }}"
|
|
},
|
|
{
|
|
"name": "OPENLINE",
|
|
"value": "Y"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 4.2,
|
|
"notes": "This httpRequest node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "e728c7eb-b169-4757-b4f4-b99ec4db0184",
|
|
"name": "Send Message",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"position": [
|
|
740,
|
|
420
|
|
],
|
|
"parameters": {
|
|
"url": "{{ $env.BASE_URL }}",
|
|
"method": "POST",
|
|
"options": {},
|
|
"sendBody": true,
|
|
"bodyParameters": {
|
|
"parameters": [
|
|
{
|
|
"name": "DIALOG_ID",
|
|
"value": "={{ $json.data.DIALOG_ID }}"
|
|
},
|
|
{
|
|
"name": "MESSAGE",
|
|
"value": "={{ $json.data.MESSAGE }}"
|
|
},
|
|
{
|
|
"name": "AUTH",
|
|
"value": "={{ $json.data.AUTH }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 4.2,
|
|
"notes": "This httpRequest node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "1a1fae0e-d74f-48b9-8ec8-4e926763de28",
|
|
"name": "Send Join Message",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"position": [
|
|
-220,
|
|
780
|
|
],
|
|
"parameters": {
|
|
"url": "{{ $env.BASE_URL }}",
|
|
"method": "POST",
|
|
"options": {},
|
|
"sendBody": true,
|
|
"bodyParameters": {
|
|
"parameters": [
|
|
{
|
|
"name": "DIALOG_ID",
|
|
"value": "={{ $json.DIALOG_ID }}"
|
|
},
|
|
{
|
|
"name": "MESSAGE",
|
|
"value": "={{ $json.MESSAGE }}"
|
|
},
|
|
{
|
|
"name": "AUTH",
|
|
"value": "={{ $json.AUTH }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 4.2,
|
|
"notes": "This httpRequest node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "f377d8eb-2a90-4ca5-8bd8-122c8df2ced3",
|
|
"name": "Process Delete",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
-420,
|
|
1100
|
|
],
|
|
"parameters": {},
|
|
"typeVersion": 1,
|
|
"notes": "This noOp node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "faa4c61e-faf4-4bd7-b096-706d3c5cf366",
|
|
"name": "Success Response",
|
|
"type": "n8n-nodes-base.respondToWebhook",
|
|
"position": [
|
|
1200,
|
|
700
|
|
],
|
|
"parameters": {
|
|
"options": {
|
|
"responseCode": 200
|
|
},
|
|
"respondWith": "json",
|
|
"responseBody": "={\n \"result\": true\n}"
|
|
},
|
|
"typeVersion": 1.1,
|
|
"notes": "This respondToWebhook node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "ade154b4-64d9-4ecd-8a83-328002c98569",
|
|
"name": "Error Response",
|
|
"type": "n8n-nodes-base.respondToWebhook",
|
|
"position": [
|
|
-820,
|
|
780
|
|
],
|
|
"parameters": {
|
|
"options": {
|
|
"responseCode": 401
|
|
},
|
|
"respondWith": "json",
|
|
"responseBody": "={{\n \"result\": false,\n \"error\": \"Invalid application token\"\n}}"
|
|
},
|
|
"typeVersion": 1.1,
|
|
"notes": "This respondToWebhook node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "a5866396-3a25-4bbf-81b2-56a8d35fc63b",
|
|
"name": "Merge parameters for Subworkflow",
|
|
"type": "n8n-nodes-base.merge",
|
|
"position": [
|
|
-180,
|
|
1340
|
|
],
|
|
"parameters": {
|
|
"mode": "combine",
|
|
"options": {},
|
|
"combineBy": "combineAll"
|
|
},
|
|
"typeVersion": 3,
|
|
"notes": "This merge node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8",
|
|
"name": "Get a list of available storages",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"position": [
|
|
-860,
|
|
2080
|
|
],
|
|
"parameters": {
|
|
"url": "{{ $env.BASE_URL }}",
|
|
"method": "POST",
|
|
"options": {},
|
|
"jsonBody": "={\n\"filter\": {\n\t\t\t\t\"ENTITY_TYPE\": \"common\",\n\t\t\t\t\"%NAME\": \"{{ $json.storageName }}\"\n }\n}\n",
|
|
"sendBody": true,
|
|
"specifyBody": "json"
|
|
},
|
|
"typeVersion": 4.2,
|
|
"notes": "This httpRequest node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "7bb0412e-57ab-4a63-aec2-5db64b83ef7e",
|
|
"name": "Get a list of List of Files and Folders",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"position": [
|
|
-640,
|
|
2080
|
|
],
|
|
"parameters": {
|
|
"url": "{{ $env.BASE_URL }}",
|
|
"method": "POST",
|
|
"options": {},
|
|
"jsonBody": "={\n\"id\": {{ $json.result[0].ID }},\n\"filter\": {\n\t\t\t\t\"TYPE\": \"folder\",\n\t\t\t\t\"%NAME\": \"{{ $('Execute Workflow Trigger').item.json.folderName }}\"\n }\n}\n",
|
|
"sendBody": true,
|
|
"specifyBody": "json"
|
|
},
|
|
"typeVersion": 4.2,
|
|
"notes": "This httpRequest node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "5528a3be-375a-4077-a346-2eb77cf9160f",
|
|
"name": "Get a list of Folders files",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"position": [
|
|
-420,
|
|
2080
|
|
],
|
|
"parameters": {
|
|
"url": "{{ $env.BASE_URL }}",
|
|
"method": "POST",
|
|
"options": {},
|
|
"sendBody": true,
|
|
"bodyParameters": {
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"value": "={{ $json.result[0].ID }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 4.2,
|
|
"notes": "This httpRequest node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "f713eda1-f51e-484d-a98a-f359bc7ce654",
|
|
"name": "Download file",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"position": [
|
|
280,
|
|
2080
|
|
],
|
|
"parameters": {
|
|
"url": "{{ $env.BASE_URL }}",
|
|
"options": {}
|
|
},
|
|
"typeVersion": 4.2,
|
|
"notes": "This httpRequest node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "3b2c67ea-bb6c-49c8-b55f-ffde7d1d8e83",
|
|
"name": "Default Data Loader",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
700,
|
|
2280
|
|
],
|
|
"parameters": {
|
|
"loader": "pdfLoader",
|
|
"options": {
|
|
"splitPages": true
|
|
},
|
|
"dataType": "binary"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This documentDefaultDataLoader node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "0b5c2963-3692-469d-a1ce-66fe598dc25f",
|
|
"name": "Recursive Character Text Splitter",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
840,
|
|
2460
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"chunkOverlap": 100
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This textSplitterRecursiveCharacterTextSplitter node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "52bfdf6b-0fb1-4e85-b31d-ec6c9ef912d8",
|
|
"name": "Split Out folder files and folders",
|
|
"type": "n8n-nodes-base.splitOut",
|
|
"position": [
|
|
-180,
|
|
2080
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"fieldToSplitOut": "result"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This splitOut node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "fd53fca7-d11d-4254-be56-9a62b6f0fadf",
|
|
"name": "Filter for files",
|
|
"type": "n8n-nodes-base.filter",
|
|
"position": [
|
|
40,
|
|
2080
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"conditions": {
|
|
"options": {
|
|
"version": 2,
|
|
"leftValue": "",
|
|
"caseSensitive": true,
|
|
"typeValidation": "strict"
|
|
},
|
|
"combinator": "and",
|
|
"conditions": [
|
|
{
|
|
"id": "6e68a8be-c155-41c7-ace4-bf76bfd362fc",
|
|
"operator": {
|
|
"name": "filter.operator.equals",
|
|
"type": "string",
|
|
"operation": "equals"
|
|
},
|
|
"leftValue": "={{ $json.TYPE }}",
|
|
"rightValue": "file"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 2.2,
|
|
"notes": "This filter node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "748a65d3-dceb-4787-a068-b364371b392b",
|
|
"name": "Move files to Vector stored folder",
|
|
"type": "n8n-nodes-base.httpRequest",
|
|
"position": [
|
|
520,
|
|
1860
|
|
],
|
|
"parameters": {
|
|
"url": "{{ $env.BASE_URL }}",
|
|
"method": "POST",
|
|
"options": {},
|
|
"sendBody": true,
|
|
"bodyParameters": {
|
|
"parameters": [
|
|
{
|
|
"name": "id",
|
|
"value": "={{ $json.ID }}"
|
|
},
|
|
{
|
|
"name": "targetFolderId",
|
|
"value": "={{ $('Get a list of Folders files').item.json.result[0].ID }}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"executeOnce": false,
|
|
"typeVersion": 4.2,
|
|
"notes": "This httpRequest node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "47f3aec5-c3cb-4d3e-97bc-8b708ccc0db5",
|
|
"name": "Execute Workflow Trigger",
|
|
"type": "n8n-nodes-base.executeWorkflowTrigger",
|
|
"position": [
|
|
-1080,
|
|
2080
|
|
],
|
|
"parameters": {},
|
|
"typeVersion": 1,
|
|
"notes": "This executeWorkflowTrigger node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "9d3eb788-96cf-4c01-af5f-2beb1f6fa7b8",
|
|
"name": "Sticky Note",
|
|
"type": "n8n-nodes-base.stickyNote",
|
|
"position": [
|
|
-1160,
|
|
1780
|
|
],
|
|
"parameters": {
|
|
"width": 2168.7691983135305,
|
|
"height": 818.1434255918864,
|
|
"content": "Subworkflow for Register Bot\nHere are files vector stored for Open line chanel bot\nAfter files are stored they are moved to subfolder"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This stickyNote node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "91c26264-a61d-426c-a044-e2b287e54de0",
|
|
"name": "Qdrant Vector Store",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
580,
|
|
2080
|
|
],
|
|
"parameters": {
|
|
"mode": "insert",
|
|
"options": {
|
|
"collectionConfig": ""
|
|
},
|
|
"qdrantCollection": {
|
|
"__rl": true,
|
|
"mode": "list",
|
|
"value": "bitrix-docs",
|
|
"cachedResultName": "bitrix-docs"
|
|
}
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This vectorStoreQdrant node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "0dd69952-402e-4d9e-a44f-7cf96ab4055e",
|
|
"name": "Embeddings Ollama",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
500,
|
|
2280
|
|
],
|
|
"parameters": {
|
|
"model": "nomic-embed-text:latest"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This embeddingsOllama node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "fcfbfe53-da04-48f2-9a62-204a8f1f06a8",
|
|
"name": "Vector Store Retriever",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
140,
|
|
240
|
|
],
|
|
"parameters": {
|
|
"topK": 10
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This retrieverVectorStore node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "22d3be40-b74a-453f-8f52-8974b1527d49",
|
|
"name": "Question and Answer Chain",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
0,
|
|
0
|
|
],
|
|
"parameters": {
|
|
"text": "={{ $json.MESSAGE_ORI }}",
|
|
"options": {
|
|
"systemPromptTemplate": "=Use the following pieces of context to answer the user's question.\nIf you don't know the answer, just say that you don't know, don't try to make up an answer.\n\n----------------\n{context}\n\nYour response must contain **only** the following key-value pairs:\n- `\"DIALOG_ID\"`: **Use exactly** this value from the input: `{{ $json.DIALOG_ID }}`\n- `\"AUTH\"`: **Use exactly** this value from the input: `{{ $json.AUTH }}`\n- `\"DOMAIN\"`: **Use exactly** this value from the input: `{{ $json.DOMAIN }}`\n- `\"MESSAGE\"`: **Your AI-generated response**, based on the conversation history and the user's input.\n\n**Do not modify** the values of `\"DIALOG_ID\"`, `\"AUTH\"`, or `\"DOMAIN\"`. They must remain exactly as received from the input. \nThe `\"MESSAGE\"` field must contain a relevant and clear response.\n\nIf the user asks **\"find out more about me\"**, respond with: \n*\"I am a Retrieval-Augmented Generation (RAG) system that answers questions based on uploaded documents and provided context.\"*"
|
|
},
|
|
"promptType": "define"
|
|
},
|
|
"typeVersion": 1.4,
|
|
"notes": "This chainRetrievalQa node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "fb19f0b5-72cb-4ccd-ac0e-75ea3a32c9cc",
|
|
"name": "Prepare output parameters",
|
|
"type": "n8n-nodes-base.set",
|
|
"position": [
|
|
440,
|
|
60
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"assignments": {
|
|
"assignments": [
|
|
{
|
|
"id": "ef09b5f8-2111-4731-8317-e338885a10c3",
|
|
"name": "data",
|
|
"type": "object",
|
|
"value": "={{ $json.response.text.removeMarkdown().replace(/`+$/, '')}}"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"typeVersion": 3.4,
|
|
"notes": "This set node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "52429ac1-d738-49d7-81a8-725df6587312",
|
|
"name": "Embeddings Ollama1",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
360,
|
|
600
|
|
],
|
|
"parameters": {
|
|
"model": "nomic-embed-text:latest"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This embeddingsOllama node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "bade110b-d252-4633-9ecf-44a42772b8d5",
|
|
"name": "Google Gemini Chat Model",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
-60,
|
|
300
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"modelName": "models/gemini-2.0-flash"
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This lmChatGoogleGemini node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "41eb5179-6195-485b-848b-46bb997de38e",
|
|
"name": "Qdrant Vector Store1",
|
|
"type": "n8n-nodes-base.noOp",
|
|
"position": [
|
|
160,
|
|
420
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"qdrantCollection": {
|
|
"__rl": true,
|
|
"mode": "list",
|
|
"value": "bitrix-docs",
|
|
"cachedResultName": "bitrix-docs"
|
|
}
|
|
},
|
|
"typeVersion": 1,
|
|
"notes": "This vectorStoreQdrant node performs automated tasks as part of the workflow."
|
|
},
|
|
{
|
|
"id": "484cbc38-4c6f-4d3d-9409-b04df2c7e102",
|
|
"name": "Execute subworkflow",
|
|
"type": "n8n-nodes-base.executeWorkflow",
|
|
"position": [
|
|
200,
|
|
1340
|
|
],
|
|
"parameters": {
|
|
"options": {},
|
|
"workflowId": {
|
|
"__rl": true,
|
|
"mode": "id",
|
|
"value": "={{ $workflow.id }}"
|
|
}
|
|
},
|
|
"typeVersion": 1.1,
|
|
"notes": "This executeWorkflow node performs automated tasks as part of the workflow."
|
|
}
|
|
],
|
|
"active": false,
|
|
"pinData": {},
|
|
"settings": {
|
|
"executionOrder": "v1",
|
|
"saveManualExecutions": true,
|
|
"callerPolicy": "workflowsFromSameOwner",
|
|
"errorWorkflow": null,
|
|
"timezone": "UTC",
|
|
"executionTimeout": 3600,
|
|
"maxExecutions": 1000,
|
|
"retryOnFail": true,
|
|
"retryCount": 3,
|
|
"retryDelay": 1000
|
|
},
|
|
"versionId": "e3e24337-997c-4ce2-b8c1-3e6f8b9eb85c",
|
|
"connections": {
|
|
"dbd7b2c0-2b27-4c23-beb7-eec128da0787": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787-74042e39",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787-9ad8bdbd",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787-0aa3b8e8",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787-7beb8da1",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787-3b23ca45",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787-bdc784f4",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787-12d52c25",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-dbd7b2c0-2b27-4c23-beb7-eec128da0787-b37feefe",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"22a7c363-ab5a-4adc-9de4-268f3f3739f3": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3-93050025",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3-38c86b20",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3-fa4eb706",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3-3735d603",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3-62ba1f2b",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3-7590e1e4",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3-a66cc386",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-22a7c363-ab5a-4adc-9de4-268f3f3739f3-a2b9d2d9",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"e728c7eb-b169-4757-b4f4-b99ec4db0184": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184-60f3a397",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184-606f24dd",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184-780b99ed",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184-7756fc29",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184-ab2bb881",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184-dc479f4a",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184-706b4e87",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-e728c7eb-b169-4757-b4f4-b99ec4db0184-ea56d901",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"1a1fae0e-d74f-48b9-8ec8-4e926763de28": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28-ef986f28",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28-c95d3887",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28-f41ec30d",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28-88a4ec1d",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28-fce89259",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28-7f594896",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28-f382e3c5",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-1a1fae0e-d74f-48b9-8ec8-4e926763de28-4c11118c",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"faa4c61e-faf4-4bd7-b096-706d3c5cf366": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366-2386204e",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366-1a5d83af",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366-c8e805ad",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366-09743f4e",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366-4675aec9",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366-7dca1b1a",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366-f3a74823",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-faa4c61e-faf4-4bd7-b096-706d3c5cf366-d5cbc458",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"ade154b4-64d9-4ecd-8a83-328002c98569": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569-e5fe198c",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569-20784d00",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569-3bd73542",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569-93634c5c",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569-db63194e",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569-44662ac0",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569-0ab15c3e",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-ade154b4-64d9-4ecd-8a83-328002c98569-83c5a012",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8-c85f0b1b",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8-1eac76f7",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8-b7b30659",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8-49c063d8",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8-3bfe7218",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8-0086bc6f",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8-d20230a5",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-feb3e1c0-4556-4d77-9e5e-42eb2c10a5f8-89c8415f",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"7bb0412e-57ab-4a63-aec2-5db64b83ef7e": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e-d531a056",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e-547ea76f",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e-cb481116",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e-e7d46ac5",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e-7a40c38d",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e-793538d2",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e-a0bb382e",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-7bb0412e-57ab-4a63-aec2-5db64b83ef7e-afb58ac3",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"5528a3be-375a-4077-a346-2eb77cf9160f": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f-ff23068b",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f-7405c1f0",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f-5eb1d35c",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f-328e5d7d",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f-39b8a721",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f-9a8bf36f",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f-0deecbb8",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-5528a3be-375a-4077-a346-2eb77cf9160f-f77bffe3",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"f713eda1-f51e-484d-a98a-f359bc7ce654": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654-464b3dd3",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654-179231f4",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654-3a7ae3b8",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654-929a1ac9",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654-4724130d",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654-a8a33314",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654-257cb865",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-f713eda1-f51e-484d-a98a-f359bc7ce654-cba21e9c",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"748a65d3-dceb-4787-a068-b364371b392b": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b-1ebc5888",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b-ce21b3ab",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b-347f13d6",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b-6a6177be",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b-254f1606",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b-90fd34f2",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b-17d0c9a7",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
],
|
|
[
|
|
{
|
|
"node": "error-handler-748a65d3-dceb-4787-a068-b364371b392b-63ba2564",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
},
|
|
"bade110b-d252-4633-9ecf-44a42772b8d5": {
|
|
"main": [
|
|
[
|
|
{
|
|
"node": "error-handler-bade110b-d252-4633-9ecf-44a42772b8d5-e9b4dd0b",
|
|
"type": "main",
|
|
"index": 0
|
|
}
|
|
]
|
|
]
|
|
}
|
|
},
|
|
"description": "Automated workflow: Bitrix24 Open Chanel RAG Chatbot Application Workflow example with Webhook Integration. This workflow integrates 22 different services: stickyNote, textSplitterRecursiveCharacterTextSplitter, vectorStoreQdrant, chainRetrievalQa, merge. It contains 57 nodes and follows best practices for error handling and security.",
|
|
"notes": "Excellent quality workflow: Bitrix24 Open Chanel RAG Chatbot Application Workflow example with Webhook Integration. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."
|
|
} |