Workflow: Telegram AI Langchain bot
Integrations: executeWorkflowTrigger, httpRequest, noOp, set, stickyNote, telegram, telegramTrigger

{"id": "ax8PJlp1UDb6EGFt", "meta": {"instanceId": "workflow-9daba8f9", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:46.709854", "updatedAt": "2025-09-29T07:07:46.709866", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production"}, "name": "Telegram AI Langchain bot", "tags": ["automation", "n8n", "production-ready", "excellent", "optimized"], "nodes": [{"id": "e275f31f-6a5f-4444-8bf7-6c003a8e53df", "name": "OpenAI Chat Model", "type": "n8n-nodes-base.noOp", "position": [1100, 600], "parameters": {"model": "gpt-4-1106-preview", "options": {"temperature": 0.7, "frequencyPenalty": 0.2}}, "credentials": {"openAiApi": {"id": "{{ $credentials.openAiApi.id }}", "name": "OpenAi account"}}, "typeVersion": 1, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow."}, {"id": "f25a6666-ff23-4372-afd0-4920a99aab6a", "name": "Window Buffer Memory", "type": "n8n-nodes-base.noOp", "position": [1220, 600], "parameters": {"sessionKey": "YOUR_CREDENTIAL_HERE", "contextWindowLength": 10}, "typeVersion": 1, "notes": "This memoryBufferWindow node performs automated tasks as part of the workflow."}, {"id": "96faef5d-0349-47fe-a7cf-150953490e90", "name": "Telegram", "type": "n8n-nodes-base.telegram", "onError": "continueErrorOutput", "position": [1500, 380], "parameters": {"text": "={{ $json.output }}", "chatId": "={{ $('Listen for incoming events').first().json.message.from.id }}", "additionalFields": {"parse_mode": "HTML", "appendAttribution": false}}, "credentials": {"telegramApi": {"id": "{{ $credentials.telegramApi.id }}", "name": "Telegram sdfsdfsdfsdfsfd_bot"}}, "typeVersion": 1.1, "notes": "This telegram node performs automated tasks as part of the workflow."}, {"id": "5ad43039-aaa6-43cd-9b0f-1d02f4d9c4ff", "name": "Correct errors", "type": "n8n-nodes-base.telegram", "position": [1700, 380], "parameters": {"text": "={{ $('AI Agent').item.json.output.replace(/&/g, \"&amp;\").replace(/>/g, \"&gt;\").replace(/</g, \"&lt;\").replace(/\"/g, \"&quot;\") }}", "chatId": "={{ $('Listen for incoming events').first().json.message.from.id }}", "additionalFields": {"parse_mode": "HTML", "appendAttribution": false}}, "credentials": {"telegramApi": {"id": "{{ $credentials.telegramApi.id }}", "name": "Telegram sdfsdfsdfsdfsfd_bot"}}, "typeVersion": 1.1, "notes": "This telegram node performs automated tasks as part of the workflow."}, {"id": "0349a250-966a-4064-970a-8bcfba1647ad", "name": "Execute Workflow Trigger", "type": "n8n-nodes-base.executeWorkflowTrigger", "position": [940, 900], "parameters": {}, "typeVersion": 1, "notes": "This executeWorkflowTrigger node performs automated tasks as part of the workflow."}, {"id": "69a45c1f-838f-49ce-9b89-75db6a8b876f", "name": "Listen for incoming events", "type": "n8n-nodes-base.telegramTrigger", "position": [940, 380], "webhookId": "322dce18-f93e-4f86-b9b1-3305519b7834", "parameters": {"updates": ["message"], "additionalFields": {}}, "credentials": {"telegramApi": {"id": "{{ $credentials.telegramApi.id }}", "name": "Telegram sdfsdfsdfsdfsfd_bot"}}, "typeVersion": 1, "notes": "This telegramTrigger node performs automated tasks as part of the workflow."}, {"id": "2f5d5f25-9870-40d6-ad42-52750e62de63", "name": "Send back an image", "type": "n8n-nodes-base.telegram", "position": [1300, 900], "parameters": {"file": "={{ $json.data[0].url }}", "chatId": "={{ $('Execute Workflow Trigger').first().json.chat_id }}", "operation": "sendPhoto", "additionalFields": {"parse_mode": "HTML"}}, "credentials": {"telegramApi": {"id": "{{ $credentials.telegramApi.id }}", "name": "Telegram sdfsdfsdfsdfsfd_bot"}}, "typeVersion": 1.1, "notes": "This telegram node performs automated tasks as part of the workflow."}, {"id": "50b43dbf-39e3-4d00-8e47-01e8c193cd1a", "name": "add response field", "type": "n8n-nodes-base.set", "position": [1480, 900], "parameters": {"fields": {"values": [{"name": "response", "stringValue": "Success"}]}, "options": {}}, "typeVersion": 3.2, "notes": "This set node performs automated tasks as part of the workflow."}, {"id": "171bee83-c8e1-4af3-9d1c-12cb6ede4943", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [900, 840], "parameters": {"width": 752.0361990950231, "height": 247.42081447963798, "content": "## Generate an image with Dall-E 3 and send it via Telegram"}, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow."}, {"id": "4d81d201-70bf-4c80-9689-4b65851ad770", "name": "Dall-E 3 Tool", "type": "n8n-nodes-base.noOp", "position": [1360, 600], "parameters": {"name": "Draw_Dalle_image", "fields": {"values": [{"name": "chat_id", "stringValue": "={{ $('Listen for incoming events').first().json.message.chat.id }}"}]}, "workflowId": "={{ $workflow.id }}", "description": "Call this tool to request a Dall-E 3 model, when the user asks to draw something. Please send the user request for an image as an inline query string."}, "typeVersion": 1, "notes": "This toolWorkflow node performs automated tasks as part of the workflow."}, {"id": "39d532d3-8c96-4722-9cb0-cad92ff39e94", "name": "Generate image in Dall-E 3", "type": "n8n-nodes-base.httpRequest", "position": [1120, 900], "parameters": {"url": "{{ $env.API_BASE_URL }}", "method": "POST", "options": {}, "sendBody": true, "authentication": "{{ $credentials.predefinedCredentialType }}", "bodyParameters": {"parameters": [{"name": "model", "value": "dall-e-3"}, {"name": "prompt", "value": "={{ $json.query }}"}, {"name": "n", "value": 1}, {"name": "size", "value": "1024x1024"}]}, "nodeCredentialType": "YOUR_CREDENTIAL_HERE"}, "credentials": {"openAiApi": {"id": "{{ $credentials.openAiApi.id }}", "name": "OpenAi account"}}, "typeVersion": 4.1, "notes": "This httpRequest node performs automated tasks as part of the workflow."}, {"id": "e5aa496d-55d3-456b-82bb-fe10a06c7338", "name": "AI Agent", "type": "n8n-nodes-base.noOp", "position": [1140, 380], "parameters": {"text": "={{ $json.message.text }}", "options": {"humanMessage": "TOOLS\n------\nAssistant can ask the user to use tools to look up information that may be helpful in answering the users original question. The tools the human can use are:\n\n{tools}\n\n{format_instructions}\n\nUSER'S INPUT\n--------------------\nHere is the user's input (remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else):\n\n{{input}}", "systemMessage": "=You are a helpful AI assistant. You are chatting with the user named `{{ $json.message.from.first_name }}`. Today is {{ DateTime.fromISO($now).toLocaleString(DateTime.DATETIME_FULL) }}\n\nFrom time to time call a user by name (if the user name is provided). In your reply, always send a message in Telegram-supported HTML format. Here are the formatting instructions:\n1. The following tags are currently supported:\n<b>bold</b>, <strong>bold</strong>\n<i>italic</i>, <em>italic</em>\n<u>underline</u>, <ins>underline</ins>\n
strikethrough
, <strike>strikethrough</strike>, <del>strikethrough</del>\n<span class=\"tg-spoiler\">spoiler</span>, <tg-spoiler>spoiler</tg-spoiler>\n<b>bold <i>italic bold 
italic bold strikethrough <span class=\"tg-spoiler\">italic bold strikethrough spoiler</span>
 <u>underline italic bold</u></i> bold</b>\n<a href=\"{{ $env.WEBHOOK_URL }}\">inline URL</a>\n<code>inline fixed-width code</code>\n<pre>pre-formatted fixed-width code block</pre>\n2. Any code that you send should be wrapped in these tags: <pre><code class=\"language-python\">pre-formatted fixed-width code block written in the Python programming language</code></pre>\nOther programming languages are supported as well.\n3. All <, > and & symbols that are not a part of a tag or an HTML entity must be replaced with the corresponding HTML entities (< with &lt;, > with &gt; and & with &amp;)\n4. If the user sends you a message starting with / sign, it means this is a Telegram bot command. For example, all users send /start command as their first message. Try to figure out what these commands mean and reply accodringly\n"}}, "typeVersion": 1.1, "notes": "This agent node performs automated tasks as part of the workflow."}], "active": true, "pinData": {}, "settings": {"callerPolicy": "workflowsFromSameOwner", "executionOrder": "v1", "saveManualExecutions": true, "saveDataSuccessExecution": "all", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000}, "versionId": "3e9c27eb-1d2f-40bf-b284-4f6a1bece30c", "connections": {"39d532d3-8c96-4722-9cb0-cad92ff39e94": {"main": [[{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94", "type": "main", "index": 0}], [{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94-28a9c904", "type": "main", "index": 0}], [{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94-227fa58d", "type": "main", "index": 0}], [{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94-160708c4", "type": "main", "index": 0}], [{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94-f3f6a4d4", "type": "main", "index": 0}], [{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94-10d81604", "type": "main", "index": 0}], [{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94-8582ecc0", "type": "main", "index": 0}], [{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94-aef4806e", "type": "main", "index": 0}], [{"node": "error-handler-39d532d3-8c96-4722-9cb0-cad92ff39e94-c7fcd63c", "type": "main", "index": 0}]]}, "e275f31f-6a5f-4444-8bf7-6c003a8e53df": {"main": [[{"node": "error-handler-e275f31f-6a5f-4444-8bf7-6c003a8e53df-3fd92c5e", "type": "main", "index": 0}]]}, "96faef5d-0349-47fe-a7cf-150953490e90": {"main": [[{"node": "error-handler-96faef5d-0349-47fe-a7cf-150953490e90-e8cd21f1", "type": "main", "index": 0}]]}, "5ad43039-aaa6-43cd-9b0f-1d02f4d9c4ff": {"main": [[{"node": "error-handler-5ad43039-aaa6-43cd-9b0f-1d02f4d9c4ff-395c2c14", "type": "main", "index": 0}]]}, "69a45c1f-838f-49ce-9b89-75db6a8b876f": {"main": [[{"node": "error-handler-69a45c1f-838f-49ce-9b89-75db6a8b876f-e8a8435a", "type": "main", "index": 0}]]}, "2f5d5f25-9870-40d6-ad42-52750e62de63": {"main": [[{"node": "error-handler-2f5d5f25-9870-40d6-ad42-52750e62de63-53b72e50", "type": "main", "index": 0}]]}}, "description": "Automated workflow: Telegram AI Langchain bot. This workflow integrates 11 different services: telegramTrigger, stickyNote, httpRequest, telegram, agent. It contains 19 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Telegram AI Langchain bot. This workflow has been optimized for production use with comprehensive error handling, security, and documentation."}