AutomationFlowsSlack & Telegram › Telegram Excel to Google Forms Quiz

Telegram Excel to Google Forms Quiz

Original n8n title: Generate Google Forms Quizzes From Excel Files Sent via Telegram

ByRamdoni @ramdoni on n8n.io

Turn your Excel question banks into fully functional Google Forms quizzes automatically — just by sending a file via Telegram.

Event trigger★★★★☆ complexity22 nodesHTTP RequestTelegram TriggerTelegram
Slack & Telegram Trigger: Event Nodes: 22 Complexity: ★★★★☆ Added:

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 →

Download .json
{
  "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
          }
        ]
      ]
    }
  }
}
Pro

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 →

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

N8N Complete Final. Uses telegramTrigger, dataTable, telegram, mqtt. Event-driven trigger; 58 nodes.

Telegram Trigger, Data Table, Telegram +3
Slack & Telegram

TextMain. Uses telegramTrigger, stopAndError, telegram, httpRequest. Event-driven trigger; 56 nodes.

Telegram Trigger, Stop And Error, Telegram +2
Slack & Telegram

Pede Ai. Uses httpRequest, telegram, postgres, telegramTrigger. Event-driven trigger; 53 nodes.

HTTP Request, Telegram, Postgres +1
Slack & Telegram

📄 Documentation: Notion Guide

Telegram Trigger, @Blotato/N8N Nodes Blotato, Telegram +1
Slack & Telegram

Telegram Wait. Uses stickyNote, httpRequest, redis, noOp. Event-driven trigger; 36 nodes.

HTTP Request, Redis, Telegram +1