Automate Telegram Responses with OpenAI GPT Integration

Leverage the power of the Telegram Bot API and OpenAI GPT to automate intelligent conversations on Telegram. This workflow is designed for AI-powered automation users looking to enhance engagement through AI-driven responses. Requires 2 accounts: Telegram Bot Token and OpenAI API Key. Save hours of manual replies and improve user interaction with dynamic, context-aware responses instantly.

1 Trigger
190,488 views16 nodesJul 2023Rachel Green

Categories

Support ChatbotAI Chatbot

APIs

OpenAITelegram Bot API

AI Features

OpenAI GPT

Credentials

2 required

Quick Actions

Copy or download to import into your n8n instance

Workflow JSON
{
  "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
          }
        ]
      ]
    }
  }
}

Related Workflows

Automate Chat Responses with OpenAI GPT and Serp API Integration

This workflow seamlessly integrates OpenAI GPT and Serp API to enhance your chat interactions by providing AI-driven responses based on real-time information. Ideal for AI-powered automation users, it requires 2 accounts: OpenAI API and Serp API. Save hours in customer engagement and provide instant, accurate information, boosting your response efficiency and customer satisfaction.

965,977 views
Personal ProductivityAI Chatbot

Automate WhatsApp Responses with OpenAI GPT and Vector Store

Streamline your customer interactions by automating WhatsApp responses using the WhatsApp Business API and OpenAI GPT. This workflow integrates AI Chat capabilities with advanced Vector Storage and AI Embeddings, making it perfect for AI-powered automation users. Requires 3 accounts: WhatsApp Trigger API, OpenAI API, and WhatsApp Business API. Save hours on customer queries and boost engagement, handling 100+ interactions effortlessly.

378,376 views
Lead NurturingAI Chatbot

Automate Customer Interactions with OpenAI GPT Chat Agent

Streamline your customer engagement by automating interactions using the OpenAI GPT API and AI Chat features. This workflow connects chat triggers to an AI Agent, enabling seamless, intelligent responses to user inquiries. Perfect for AI-powered automation users looking to enhance customer experience. Requires 1 account: OpenAI API. Save hours of manual responses and boost customer satisfaction by handling multiple queries simultaneously.

244,798 views
EngineeringAI Chatbot

Automate RSS Feed Analysis with Google Gemini & AI Agent

Streamline your RSS feed monitoring by leveraging Google Gemini and AI Agent for real-time insights. This workflow reads RSS feeds, processes data through HTTP requests, and engages in AI chat for interactive analysis. Perfect for developers and integrators. Requires 0 accounts. Save hours weekly by automating data collection and enhancing decision-making with intelligent insights.

214,116 views
Personal ProductivityAI Chatbot

How to Use This Workflow

1Import to n8n

  1. Copy the JSON using the button above
  2. Open your n8n instance
  3. Click “Import workflow” or press Ctrl+V
  4. Paste the JSON and click “Import”

2Before Running

Configure credentials and update service-specific settings before executing the workflow. Review required credentials in the Technical Details section above.

190.5K