{ "id": "177", "meta": { "instanceId": "workflow-8fc72efa", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:51.259085", "updatedAt": "2025-09-29T07:07:51.259095", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Telegram AI-bot", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "ea71a467-a646-4aca-b72e-cef1249c74e2", "name": "Telegram Trigger", "type": "n8n-nodes-base.telegramTrigger", "position": [ 20, 340 ], "webhookId": "51942fbb-ca0e-4ec4-9423-5fcc7d3c4281", "parameters": { "updates": [ "*" ], "additionalFields": {} }, "credentials": { "telegramApi": { "id": "{{ $credentials.telegramApi.id }}", "name": "Telegram bot" } }, "typeVersion": 1, "notes": "This telegramTrigger node performs automated tasks as part of the workflow." }, { "id": "1cbe43d4-ea8b-4178-bc10-4bfad7abe143", "name": "CheckCommand", "type": "n8n-nodes-base.switch", "position": [ 980, 360 ], "parameters": { "rules": { "rules": [ { "value2": "/", "operation": "notStartsWith" }, { "output": 1, "value2": "/start", "operation": "startsWith" }, { "output": 2, "value2": "=/image ", "operation": "startsWith" } ] }, "value1": "={{ $json.message?.text }}", "dataType": "string", "fallbackOutput": 3 }, "typeVersion": 1, "notes": "This switch node performs automated tasks as part of the workflow." }, { "id": "074e907f-634b-4242-b669-33fa064f8472", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ 1600, 581.661764705882 ], "parameters": { "width": 316.1071428571428, "height": 231.22373949579838, "content": "## Error fallback for unsupported commands" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "2aa961b8-f0af-4d5c-a6af-1be56ea4b2e6", "name": "Settings", "type": "n8n-nodes-base.set", "position": [ 380, 340 ], "parameters": { "values": { "number": [ { "name": "model_temperature", "value": 0.8 }, { "name": "token_length", "value": 500 } ], "string": [ { "name": "system_command", "value": "=You are a friendly chatbot. User name is {{ $json?.message?.from?.first_name }}. User system language is {{ $json?.message?.from?.language_code }}. First, detect user text language. Next, provide your reply in the same language. Include several suitable emojis in your answer." }, { "name": "bot_typing", "value": "={{ $json?.message?.text.startsWith('/image') ? \"upload_photo\" : \"typing\" }}" } ] }, "options": {} }, "typeVersion": 2, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "2d2fe268-1e3e-483b-847c-4412e586c1ca", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 1240, -240 ], "parameters": { "width": 330.5019024637719, "height": 233, "content": "## Chatbot mode by default\n### (when no command is provided)" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "09a9c0b4-ac6e-46eb-b2e0-ef2b55e94ada", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [ 1240, 20 ], "parameters": { "width": 330.7863484403046, "height": 219.892857142857, "content": "## Welcome message\n### /start" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "088cffee-5720-488b-a4ec-cfdccbf77e75", "name": "Chat_mode", "type": "n8n-nodes-base.openAi", "position": [ 1340, -160 ], "parameters": { "model": "gpt-4", "prompt": { "messages": [ { "role": "system", "content": "={{ $json.system_command }}" }, { "content": "={{ $json.message.text }}" } ] }, "options": { "maxTokens": "YOUR_TOKEN_HERE", "temperature": "={{ $json.model_temperature }}" }, "resource": "chat" }, "credentials": { "openAiApi": { "id": "{{ $credentials.openAiApi.id }}", "name": "OpenAi account" } }, "typeVersion": 1, "notes": "This openAi node performs automated tasks as part of the workflow." }, { "id": "41248697-6474-4a8f-a8b8-038c96465948", "name": "Greeting", "type": "n8n-nodes-base.openAi", "position": [ 1340, 80 ], "parameters": { "prompt": { "messages": [ { "role": "system", "content": "={{ $json.system_command }}" }, { "content": "=This is the first message from a user. Please welcome a new user in `{{ $json.message.from.language_code }}` language" } ] }, "options": { "maxTokens": "YOUR_TOKEN_HERE", "temperature": "={{ $json.model_temperature }}" }, "resource": "chat" }, "credentials": { "openAiApi": { "id": "{{ $credentials.openAiApi.id }}", "name": "OpenAi account" } }, "typeVersion": 1, "notes": "This openAi node performs automated tasks as part of the workflow." }, { "id": "20c2e7fa-5d65-441b-8d1d-a8d46c624964", "name": "Text reply", "type": "n8n-nodes-base.telegram", "position": [ 1700, -40 ], "parameters": { "text": "={{ $json.message.content }}", "chatId": "={{ $('Settings').first().json.message.from.id }}", "additionalFields": { "parse_mode": "Markdown" } }, "credentials": { "telegramApi": { "id": "{{ $credentials.telegramApi.id }}", "name": "Telegram bot" } }, "typeVersion": 1, "notes": "This telegram node performs automated tasks as part of the workflow." }, { "id": "30321276-ebe1-41ac-b420-9dab8daa405b", "name": "Send Typing action", "type": "n8n-nodes-base.telegram", "position": [ 580, 480 ], "parameters": { "action": "={{ $json.bot_typing }}", "chatId": "={{ $json.message.from.id }}", "operation": "sendChatAction" }, "credentials": { "telegramApi": { "id": "{{ $credentials.telegramApi.id }}", "name": "Telegram bot" } }, "typeVersion": 1, "notes": "This telegram node performs automated tasks as part of the workflow." }, { "id": "7d7ff2e8-b0ca-4638-a056-f7b4e2e6273d", "name": "Merge", "type": "n8n-nodes-base.merge", "position": [ 800, 360 ], "parameters": { "mode": "chooseBranch" }, "typeVersion": 2.1, "notes": "This merge node performs automated tasks as part of the workflow." }, { "id": "656bab5e-b7f7-47a1-8e75-4a17d2070290", "name": "Sticky Note3", "type": "n8n-nodes-base.stickyNote", "position": [ 1240, 280 ], "parameters": { "width": 329.7428571428562, "height": 233.8785714285713, "content": "## Create an image\n### /image + request" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "ca2111d2-463a-4ef0-9436-ee09598dbf07", "name": "Create an image", "type": "n8n-nodes-base.openAi", "position": [ 1340, 360 ], "parameters": { "prompt": "={{ $json.message.text.split(' ').slice(1).join(' ') }}", "options": { "n": 1, "size": "512x512" }, "resource": "image", "responseFormat": "imageUrl" }, "credentials": { "openAiApi": { "id": "{{ $credentials.openAiApi.id }}", "name": "OpenAi account" } }, "typeVersion": 1, "notes": "This openAi node performs automated tasks as part of the workflow." }, { "id": "e91d616b-1d5e-40e8-8468-2d0b2dda4cf7", "name": "Send error message", "type": "n8n-nodes-base.telegram", "position": [ 1700, 660 ], "parameters": { "text": "=Sorry, {{ $json.message.from.first_name }}! This command is not supported yet. Please type some text to a chat bot or try this command:\n/image \\[your prompt]\n\nEnter the command, then space and provide your request. Example:\n\n`/image a picture or a cute little kitten with big eyes. Miyazaki studio ghibli style`", "chatId": "={{ $json.message.from.id }}", "additionalFields": { "parse_mode": "Markdown" } }, "credentials": { "telegramApi": { "id": "{{ $credentials.telegramApi.id }}", "name": "Telegram bot" } }, "typeVersion": 1, "notes": "This telegram node performs automated tasks as part of the workflow." }, { "id": "125e27d2-b03b-4f02-9dd1-8fc81ecf0b6b", "name": "Send image", "type": "n8n-nodes-base.telegram", "position": [ 1700, 360 ], "parameters": { "file": "={{ $json.url }}", "chatId": "={{ $('Settings').first().json.message.from.id }}", "operation": "sendPhoto", "additionalFields": {} }, "credentials": { "telegramApi": { "id": "{{ $credentials.telegramApi.id }}", "name": "Telegram bot" } }, "typeVersion": 1, "notes": "This telegram node performs automated tasks as part of the workflow." }, { "id": "730a51ac-223e-4956-be7f-166eadb6ed81", "name": "PreProcessing", "type": "n8n-nodes-base.set", "position": [ 200, 340 ], "parameters": { "values": { "string": [ { "name": "message.text", "value": "={{ $json?.message?.text || \"\" }}" } ] }, "options": { "dotNotation": true } }, "typeVersion": 2, "notes": "This set node performs automated tasks as part of the workflow." }, { "id": "error-c43c33a2", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [ 1000, 400 ], "parameters": { "message": "Workflow execution error", "options": {} } } ], "active": true, "pinData": {}, "settings": { "callerPolicy": "workflowsFromSameOwner", "saveManualExecutions": true, "saveDataSuccessExecution": "all", "executionOrder": "v1", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "6ab99e3f-845d-42cc-847b-37cf19a72e93", "connections": { "ea71a467-a646-4aca-b72e-cef1249c74e2": { "main": [ [ { "node": "error-handler-ea71a467-a646-4aca-b72e-cef1249c74e2-f2eca153", "type": "main", "index": 0 } ] ] }, "088cffee-5720-488b-a4ec-cfdccbf77e75": { "main": [ [ { "node": "error-handler-088cffee-5720-488b-a4ec-cfdccbf77e75-3e8ab4af", "type": "main", "index": 0 } ] ] }, "41248697-6474-4a8f-a8b8-038c96465948": { "main": [ [ { "node": "error-handler-41248697-6474-4a8f-a8b8-038c96465948-325109ee", "type": "main", "index": 0 } ] ] }, "20c2e7fa-5d65-441b-8d1d-a8d46c624964": { "main": [ [ { "node": "error-handler-20c2e7fa-5d65-441b-8d1d-a8d46c624964-f0e091eb", "type": "main", "index": 0 } ] ] }, "30321276-ebe1-41ac-b420-9dab8daa405b": { "main": [ [ { "node": "error-handler-30321276-ebe1-41ac-b420-9dab8daa405b-ded31d4a", "type": "main", "index": 0 } ] ] }, "ca2111d2-463a-4ef0-9436-ee09598dbf07": { "main": [ [ { "node": "error-handler-ca2111d2-463a-4ef0-9436-ee09598dbf07-89399f7b", "type": "main", "index": 0 } ] ] }, "e91d616b-1d5e-40e8-8468-2d0b2dda4cf7": { "main": [ [ { "node": "error-handler-e91d616b-1d5e-40e8-8468-2d0b2dda4cf7-1e4b81f1", "type": "main", "index": 0 } ] ] }, "125e27d2-b03b-4f02-9dd1-8fc81ecf0b6b": { "main": [ [ { "node": "error-handler-125e27d2-b03b-4f02-9dd1-8fc81ecf0b6b-fdfb5650", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: Telegram AI-bot. This workflow integrates 8 different services: telegramTrigger, stickyNote, telegram, merge, switch. It contains 24 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Telegram AI-bot. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }