{
  "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<s>strikethrough</s>, <strike>strikethrough</strike>, <del>strikethrough</del>\n<span class=\"tg-spoiler\">spoiler</span>, <tg-spoiler>spoiler</tg-spoiler>\n<b>bold <i>italic bold <s>italic bold strikethrough <span class=\"tg-spoiler\">italic bold strikethrough spoiler</span></s> <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."
}