Workflow: Telegram AI-bot
Integrations: merge, openAi, set, stickyNote, switch, telegram, telegramTrigger

{"id": "177", "meta": {"instanceId": "dfdeafd1c3ed2ee08eeab8c2fa0c3f522066931ed8138ccd35dc20a1e69decd3"}, "name": "Telegram AI-bot", "tags": [{"id": "15", "name": "tutorial", "createdAt": "2022-10-04T20:07:25.607Z", "updatedAt": "2022-10-04T20:07:25.607Z"}], "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": "70", "name": "Telegram bot"}}, "typeVersion": 1}, {"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}, {"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}, {"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}, {"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}, {"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}, {"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": "={{ $json.token_length }}", "temperature": "={{ $json.model_temperature }}"}, "resource": "chat"}, "credentials": {"openAiApi": {"id": "63", "name": "OpenAi account"}}, "typeVersion": 1}, {"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": "={{ $json.token_length }}", "temperature": "={{ $json.model_temperature }}"}, "resource": "chat"}, "credentials": {"openAiApi": {"id": "63", "name": "OpenAi account"}}, "typeVersion": 1}, {"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": "70", "name": "Telegram bot"}}, "typeVersion": 1}, {"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": "70", "name": "Telegram bot"}}, "typeVersion": 1}, {"id": "7d7ff2e8-b0ca-4638-a056-f7b4e2e6273d", "name": "Merge", "type": "n8n-nodes-base.merge", "position": [800, 360], "parameters": {"mode": "chooseBranch"}, "typeVersion": 2.1}, {"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}, {"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": "63", "name": "OpenAi account"}}, "typeVersion": 1}, {"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": "70", "name": "Telegram bot"}}, "typeVersion": 1}, {"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": "70", "name": "Telegram bot"}}, "typeVersion": 1}, {"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}], "active": true, "pinData": {}, "settings": {"callerPolicy": "workflowsFromSameOwner", "saveManualExecutions": true, "saveDataSuccessExecution": "all"}, "versionId": "6ab99e3f-845d-42cc-847b-37cf19a72e93", "connections": {"Merge": {"main": [[{"node": "CheckCommand", "type": "main", "index": 0}]]}, "Greeting": {"main": [[{"node": "Text reply", "type": "main", "index": 0}]]}, "Settings": {"main": [[{"node": "Send Typing action", "type": "main", "index": 0}, {"node": "Merge", "type": "main", "index": 0}]]}, "Chat_mode": {"main": [[{"node": "Text reply", "type": "main", "index": 0}]]}, "CheckCommand": {"main": [[{"node": "Chat_mode", "type": "main", "index": 0}], [{"node": "Greeting", "type": "main", "index": 0}], [{"node": "Create an image", "type": "main", "index": 0}], [{"node": "Send error message", "type": "main", "index": 0}]]}, "PreProcessing": {"main": [[{"node": "Settings", "type": "main", "index": 0}]]}, "Create an image": {"main": [[{"node": "Send image", "type": "main", "index": 0}]]}, "Telegram Trigger": {"main": [[{"node": "PreProcessing", "type": "main", "index": 0}]]}, "Send Typing action": {"main": [[{"node": "Merge", "type": "main", "index": 1}]]}}}