This workflow corresponds to n8n.io template #14539 — we link there as the canonical source.
This workflow follows the HTTP Request → Telegram recipe pattern — see all workflows that pair these two integrations.
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 →
{
"id": "DVrUfAdlOWMDewrp",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Generate Google Forms Quiz from Excel via Telegram (No-Code Automation)",
"tags": [],
"nodes": [
{
"id": "9e0ef7ee-d820-4e64-9823-40a35f9df1ce",
"name": "Enable Quiz Mode",
"type": "n8n-nodes-base.httpRequest",
"position": [
304,
352
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "abe818a7-4912-48db-9f9e-04b5540e00d1",
"name": "Telegram Trigger \u2013 Receive File",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-528,
-16
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "d8d17b8f-0c2e-44bc-9169-d2f7a6bd204f",
"name": "Validate File Type (Excel Only)",
"type": "n8n-nodes-base.code",
"position": [
-320,
-16
],
"parameters": {},
"typeVersion": 2
},
{
"id": "12207028-5a09-4542-a056-a98525af1eef",
"name": "If Not Excel \u2192 Send Error Message",
"type": "n8n-nodes-base.if",
"position": [
-112,
-16
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "9a71768f-11c5-4407-af40-e7ea817013ee",
"name": "Notify User \u2013 Invalid File Format",
"type": "n8n-nodes-base.telegram",
"position": [
128,
64
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "b72b7356-8601-4f2b-b4fc-88db1923f1fe",
"name": "Notify User \u2013 Processing Started",
"type": "n8n-nodes-base.telegram",
"position": [
128,
-112
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "0ee9c3af-3f7b-4b30-becc-b9f7a6cd1692",
"name": "Download Excel from Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
-528,
352
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "739782c5-0d6c-4180-a89b-60220466ff4e",
"name": "Read Excel Data",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-320,
352
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "cd87ae76-8d66-4ac3-8c3c-d4e5ac19b499",
"name": "Normalize Question Data",
"type": "n8n-nodes-base.code",
"position": [
-128,
352
],
"parameters": {},
"typeVersion": 2
},
{
"id": "cc4b6564-b48e-4f5e-b40b-736fa28fcac6",
"name": "Create Google Form",
"type": "n8n-nodes-base.httpRequest",
"position": [
96,
352
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "a6459f50-9cc9-42e4-9131-289de20c0094",
"name": "Prepare Question Payload",
"type": "n8n-nodes-base.set",
"position": [
480,
352
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "80943023-38e2-4686-b115-a05d7c18839a",
"name": "Loop Questions (Batch Processing)",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-576,
640
],
"parameters": {},
"typeVersion": 3
},
{
"id": "28bacf8a-94fc-40f4-bc36-e6ca0da74b29",
"name": "Add Question to Form",
"type": "n8n-nodes-base.httpRequest",
"position": [
-352,
656
],
"parameters": {},
"typeVersion": 4.3
},
{
"id": "00700baa-625b-4d1f-a8ec-4b413e3401e0",
"name": "Rate Limit Delay (2.5s)",
"type": "n8n-nodes-base.wait",
"position": [
-160,
656
],
"parameters": {},
"typeVersion": 1.1
},
{
"id": "19994212-2234-4fce-8812-2b306ecad2dc",
"name": "Check All Questions Processed",
"type": "n8n-nodes-base.if",
"position": [
64,
656
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "a46a8725-39eb-4848-bdfa-6d21d4fa8131",
"name": "Send Google Form Link to User",
"type": "n8n-nodes-base.telegram",
"position": [
288,
640
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "00979c2f-f2e7-41bb-aec7-0289811e468b",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
-144
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "738cc207-80db-4fbb-ba50-21e953ffffd7",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
272
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "8e5ff965-8ecc-4d35-85bd-c263818e0be8",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
16,
272
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "f63e4407-2ccd-4d88-b93f-77ad022b7002",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
576
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "b75b1e9b-ad4b-4a03-ba20-32d85a7e9288",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
32,
576
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2dd784f5-7c74-47a7-b8b6-0be7a3fb3bd1",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1520,
-144
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "9a312c86-c3ba-4f95-985f-d4ccdb5973ba",
"connections": {
"Read Excel Data": {
"main": [
[
{
"node": "Normalize Question Data",
"type": "main",
"index": 0
}
]
]
},
"Enable Quiz Mode": {
"main": [
[
{
"node": "Prepare Question Payload",
"type": "main",
"index": 0
}
]
]
},
"Create Google Form": {
"main": [
[
{
"node": "Enable Quiz Mode",
"type": "main",
"index": 0
}
]
]
},
"Add Question to Form": {
"main": [
[
{
"node": "Rate Limit Delay (2.5s)",
"type": "main",
"index": 0
}
]
]
},
"Normalize Question Data": {
"main": [
[
{
"node": "Create Google Form",
"type": "main",
"index": 0
}
]
]
},
"Rate Limit Delay (2.5s)": {
"main": [
[
{
"node": "Check All Questions Processed",
"type": "main",
"index": 0
}
]
]
},
"Prepare Question Payload": {
"main": [
[
{
"node": "Loop Questions (Batch Processing)",
"type": "main",
"index": 0
}
]
]
},
"Download Excel from Telegram": {
"main": [
[
{
"node": "Read Excel Data",
"type": "main",
"index": 0
}
]
]
},
"Check All Questions Processed": {
"main": [
[
{
"node": "Send Google Form Link to User",
"type": "main",
"index": 0
}
],
[
{
"node": "Loop Questions (Batch Processing)",
"type": "main",
"index": 0
}
]
]
},
"Validate File Type (Excel Only)": {
"main": [
[
{
"node": "If Not Excel \u2192 Send Error Message",
"type": "main",
"index": 0
}
]
]
},
"Loop Questions (Batch Processing)": {
"main": [
[],
[
{
"node": "Add Question to Form",
"type": "main",
"index": 0
}
]
]
},
"Telegram Trigger \u2013 Receive File": {
"main": [
[
{
"node": "Validate File Type (Excel Only)",
"type": "main",
"index": 0
}
]
]
},
"If Not Excel \u2192 Send Error Message": {
"main": [
[
{
"node": "Download Excel from Telegram",
"type": "main",
"index": 0
},
{
"node": "Notify User \u2013 Processing Started",
"type": "main",
"index": 0
}
],
[
{
"node": "Notify User \u2013 Invalid File Format",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Turn your Excel question banks into fully functional Google Forms quizzes automatically — just by sending a file via Telegram.
Source: https://n8n.io/workflows/14539/ — 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.
N8N Complete Final. Uses telegramTrigger, dataTable, telegram, mqtt. Event-driven trigger; 58 nodes.
TextMain. Uses telegramTrigger, stopAndError, telegram, httpRequest. Event-driven trigger; 56 nodes.
Pede Ai. Uses httpRequest, telegram, postgres, telegramTrigger. Event-driven trigger; 53 nodes.
📄 Documentation: Notion Guide
Telegram Wait. Uses stickyNote, httpRequest, redis, noOp. Event-driven trigger; 36 nodes.