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 →
{
"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
}
]
]
}
}
}
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 →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Fetch New Proposals. Uses httpRequest, mongoDb, telegram. Manual trigger; 16 nodes.
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
Telegram Wait. Uses emailReadImap, telegram, httpRequest, stickyNote. Manual trigger; 7 nodes.
GitHub To TG. Uses start, rssFeedRead, telegram. Manual trigger; 6 nodes.
Douban To TG. Uses start, rssFeedRead, telegram. Manual trigger; 6 nodes.