AutomationFlowsSlack & Telegram › Telegram Exam Bot

Telegram Exam Bot

Telegram Exam Bot. Uses telegram, python. Manual trigger; 9 nodes.

Manual trigger★★★☆☆ complexity9 nodesTelegramPython
Slack & Telegram Trigger: Manual Nodes: 9 Complexity: ★★★☆☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "nodes": [
    {
      "parameters": {
        "updates": [
          {
            "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
            "text": "\u4f60\u597d\uff0c\u60f3\u5efa\u7acb\u665f\u666f\u54ea\u4e00\u9031\u7684\u8003\u5377\uff1f\uff08\u8acb\u8f38\u5165\u6578\u5b57\uff0c\u4f8b\u5982 4\uff09"
          }
        ]
      },
      "id": "StartMessage",
      "name": "Send Start Message",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        100,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "text": "\u597d\u7684\uff0c\u8acb\u4e1f\u5165\u6587\u7ae0\uff21\u7684\u6587\u7ae0\u3002"
      },
      "id": "AskArticleA",
      "name": "Ask for Article A",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        300,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "text": "\u597d\u7684\uff0c\u8acb\u4e1f\u5165\u6587\u7ae0B\u7684\u6587\u7ae0\u3002"
      },
      "id": "AskArticleB",
      "name": "Ask for Article B",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        500,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "text": "\u8acb\u4e1f\u5165\u6587\u7ae0A\u7684\u8a5e\u5eab\uff08CSV \u683c\u5f0f\uff09"
      },
      "id": "AskVocabA",
      "name": "Ask for Vocab A",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        700,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "text": "\u8acb\u4e1f\u5165\u6587\u7ae0B\u7684\u8a5e\u5eab\uff08CSV \u683c\u5f0f\uff09"
      },
      "id": "AskVocabB",
      "name": "Ask for Vocab B",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        900,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "text": "\u8acb\u4e1f\u5165\u7b2c\u4e8c\u90e8\u5206\u8a5e\u5eab\uff08CSV \u683c\u5f0f\uff09"
      },
      "id": "AskVocabC",
      "name": "Ask for Vocab C",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        1100,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "text": "\u597d\u7684\uff0c\u5df2\u6536\u5230\u6240\u6709\u6a94\u6848\uff0c\u6b63\u5728\u7522\u751f\u8003\u5377\uff0c\u8acb\u7a0d\u5f8c..."
      },
      "id": "ProcessingMsg",
      "name": "Processing Message",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        1300,
        300
      ]
    },
    {
      "parameters": {
        "functionCode": "# \u8655\u7406\u6587\u5b57\u8207\u8a5e\u5eab\u7522\u751f docx\n# \u8acb\u6839\u64da\u4f60\u7684\u51fa\u984c\u908f\u8f2f\u4fee\u6539\u9019\u88e1\u5167\u5bb9\nfrom docx import Document\nimport datetime\n\ndoc = Document()\ndoc.add_heading(f\"\u665f\u666f\u7b2c{$json['message']['text']}\u9031\u8907\u7fd2\u8003\u5377\", 0)\n# \u9019\u908a\u52a0\u5165\u4f60\u5408\u4f75 CSV \u8207\u6587\u7ae0\u4e26\u7522\u751f\u984c\u76ee\u7684\u7a0b\u5f0f\u908f\u8f2f\n\ndoc.save('/mnt/data/review.docx')\n\nreturn [{\n    'binary': {\n        'data': {\n            'fileName': 'review.docx',\n            'mimeType': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n        }\n    }\n}]"
      },
      "id": "GenerateDocx",
      "name": "Generate Word",
      "type": "n8n-nodes-base.python",
      "typeVersion": 1,
      "position": [
        1500,
        300
      ]
    },
    {
      "parameters": {
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "binaryPropertyName": "data",
        "caption": "\u9019\u662f\u4f60\u7b2c4\u9031\u7684\u8003\u5377\uff0c\u8acb\u67e5\u6536\u3002"
      },
      "id": "SendDocx",
      "name": "Send Word to Telegram",
      "type": "n8n-nodes-base.telegram",
      "typeVersion": 1,
      "position": [
        1700,
        300
      ]
    }
  ],
  "connections": {
    "StartMessage": {
      "main": [
        [
          {
            "node": "AskArticleA",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AskArticleA": {
      "main": [
        [
          {
            "node": "AskArticleB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AskArticleB": {
      "main": [
        [
          {
            "node": "AskVocabA",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AskVocabA": {
      "main": [
        [
          {
            "node": "AskVocabB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AskVocabB": {
      "main": [
        [
          {
            "node": "AskVocabC",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AskVocabC": {
      "main": [
        [
          {
            "node": "ProcessingMsg",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ProcessingMsg": {
      "main": [
        [
          {
            "node": "GenerateDocx",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "GenerateDocx": {
      "main": [
        [
          {
            "node": "SendDocx",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Telegram Exam Bot. Uses telegram, python. Manual trigger; 9 nodes.

Source: https://gist.github.com/ichen000/21938105cb043f90ff084bcfd599357b — original creator credit. Request a take-down →

More Slack & Telegram workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Slack & Telegram

Fetch New Proposals. Uses httpRequest, mongoDb, telegram. Manual trigger; 16 nodes.

HTTP Request, MongoDB, Telegram
Slack & Telegram

This workflow automates quiz delivery from a Google Sheet directly into a Telegram group. It ensures that quizzes are posted one by one as polls, and once a quiz is sent, its status in the sheet is au

Google Sheets, HTTP Request, Telegram
Slack & Telegram

Telegram Wait. Uses emailReadImap, telegram, httpRequest, stickyNote. Manual trigger; 7 nodes.

Email Read Imap, Telegram, HTTP Request
Slack & Telegram

GitHub To TG. Uses start, rssFeedRead, telegram. Manual trigger; 6 nodes.

Start, RSS Feed Read, Telegram
Slack & Telegram

Douban To TG. Uses start, rssFeedRead, telegram. Manual trigger; 6 nodes.

Start, RSS Feed Read, Telegram