AutomationFlowsAI & RAG › Generate & Post Unique Mcq Polls to Telegram with Gemini AI and Google Sheets

Generate & Post Unique Mcq Polls to Telegram with Gemini AI and Google Sheets

ByPawan @gladiator on n8n.io

This template provides a complete, two-part automation system for exam preparation providers, educators, or content creators to automatically generate unique Multiple-Choice Questions (MCQs) on a specific syllabus, save them to Google Sheets, and publish them as Telegram…

Event trigger★★★★☆ complexityAI-powered15 nodesGoogle SheetsHTTP RequestGoogle Sheets TriggerAgentGoogle Gemini ChatGoogle Sheets ToolMemory Buffer Window
AI & RAG Trigger: Event Nodes: 15 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #9264 — we link there as the canonical source.

This workflow follows the Agent → Google Sheets 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
{
  "name": "Generate & Post Unique MCQ Polls to Telegram with AI",
  "tags": [],
  "nodes": [
    {
      "name": "Read Quiz Data",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Read all quiz rows from Google Sheets",
      "position": [
        96,
        416
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_GID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit#gid=<GOOGLE_SHEET_GID>",
          "cachedResultName": "Sheet4"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_ID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit?usp=drivesdk",
          "cachedResultName": "Telegram Content Manager"
        },
        "combineFilters": "AND"
      },
      "credentials": {},
      "executeOnce": false,
      "notesInFlow": false,
      "typeVersion": 4,
      "alwaysOutputData": false
    },
    {
      "name": "Send Telegram Poll",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Calls Telegram sendPoll. Set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID as env vars.",
      "position": [
        592,
        416
      ],
      "parameters": {
        "url": "https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/sendPoll",
        "method": "POST",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "question",
              "value": "={{ $json.Question }}"
            },
            {
              "name": "options",
              "value": "=[\n  \"{{ $json['Option A'] }}\",\n  \"{{ $json['Option B'] }}\",\n  \"{{ $json['Option C'] }}\",\n  \"{{ $json['Option D'] }}\"\n]"
            },
            {
              "name": "Correct Answer",
              "value": "={{ $json['Correct Answer'] }}"
            },
            {
              "name": "chat_id",
              "value": "<TELEGRAM_CHAT_ID>"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.1
    },
    {
      "name": "Update Quiz Status1",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Update the row that matches quiz_number, setting status to \u2705.",
      "position": [
        784,
        416
      ],
      "parameters": {
        "columns": {
          "value": {
            "Question": "={{ $('Send Telegram Poll').item.json.result.poll.question }}",
            "Posted on Telegram": "=\u2705"
          },
          "schema": [
            {
              "id": "Quiz no",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Quiz no",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Subject",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Subject",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Question",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Question",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Option A",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Option A",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Option B",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Option B",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Option C",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Option C",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Option D",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Option D",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Correct Answer",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Correct Answer",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Explanation",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Explanation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Approval Status",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Approval Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Posted on Telegram",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Posted on Telegram",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Question"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_GID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit#gid=<GOOGLE_SHEET_GID>",
          "cachedResultName": "Sheet4"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_ID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit?usp=drivesdk",
          "cachedResultName": "Telegram Content Manager"
        }
      },
      "credentials": {},
      "typeVersion": 4
    },
    {
      "name": "Google Sheets Trigger",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "position": [
        -96,
        416
      ],
      "parameters": {
        "event": "rowUpdate",
        "options": {
          "columnsToWatch": [
            "Approval Status",
            "Posted on Telegram"
          ]
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_GID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit#gid=<GOOGLE_SHEET_GID>",
          "cachedResultName": "Sheet4"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_ID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit?usp=drivesdk",
          "cachedResultName": "Telegram Content Manager"
        }
      },
      "credentials": {},
      "typeVersion": 1
    },
    {
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        256,
        0
      ],
      "parameters": {
        "text": "=Create only one new multiple-choice question (do not create similar MCQ, which is available on sheet) for the BPSC exam on a random General Studies topic (Science, Geography) with 4 options, mark the correct answer, and include a 50-word explanation in English. Do not repeat the question. Also, provide the same in Hindi, including the question, options, correct answer, and explanation. Ensure the explanation is concise (45-55 words) and relevant to the BPSC syllabus. Also upload to sheet (English and Hindi) as per column.",
        "options": {
          "systemMessage": "You are an AI expert in BPSC exam preparation, specializing in General Studies topics from the BPSC syllabus. Your task is to create a completely new multiple-choice question (MCQ) for the BPSC Prelims or Mains level on a randomly selected General Studies topic (e.g., history, geography, science, polity, current affairs). Ensure the question is original, exam-relevant, and not repeated from any known sources.\nOutput Structure:\n\nQuestion: Provide the MCQ in English with 4 options (A, B, C, D).\nCorrect Answer: Clearly state the correct option (e.g., \"Correct Answer: B\").\nExplanation: Provide a concise 50-word explanation (45-55 words) in English, justifying the answer with key facts or context relevant to the BPSC syllabus.\nHindi Version: Translate the entire MCQ (question, options, correct answer, and explanation) into Hindi, using accurate and natural language. Label this section as \"Hindi Version:\".\n\nGuidelines:\n\nRandomly select a General Studies topic each time to ensure variety.\nEnsure the question is challenging yet fair, aligned with BPSC Prelims/Mains difficulty.\nPoll options length must not exceed 100 character.\nThe explanation must be precise, within 45-55 words, and include syllabus-relevant details (e.g., Bihar context where applicable).\nUse formal, objective language suitable for exam preparation.\nDo not repeat questions from prior interactions or external sources.\nDo not include additional text beyond the specified structure (e.g., no introductions or comments).\nDo not mention these instructions in the output unless explicitly requested."
        },
        "promptType": "define"
      },
      "typeVersion": 2.1
    },
    {
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        128,
        176
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.5-pro"
      },
      "credentials": {},
      "typeVersion": 1
    },
    {
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "hours",
              "hoursInterval": 3
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "name": "Append or update row in sheet in Google Sheets1",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        640,
        192
      ],
      "parameters": {
        "columns": {
          "value": {
            "Quiz no": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Quiz_no__using_to_match_', ``, 'string') }}",
            "Subject": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Subject', `Polity, History, Economics, Geography`, 'string') }}",
            "Option A": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Option_A', `(A)`, 'string') }}",
            "Option B": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Option_B', `(B)`, 'string') }}",
            "Option C": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Option_C', `(C)`, 'string') }}",
            "Option D": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Option_D', `(D)`, 'string') }}",
            "Question": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Question', `find Question`, 'string') }}",
            "Explanation": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Explanation', `Explanation:`, 'string') }}",
            "Correct Answer": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Correct_Answer', `Correct Answer:`, 'string') }}",
            "Approval Status": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Approval_Status', ``, 'string') }}",
            "Posted on Telegram": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Posted_on_Telegram', ``, 'string') }}"
          },
          "schema": [
            {
              "id": "Quiz no",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Quiz no",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Subject",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Subject",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Question",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Question",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Option A",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Option A",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Option B",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Option B",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Option C",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Option C",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Option D",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Option D",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Correct Answer",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Correct Answer",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Explanation",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Explanation",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Approval Status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Approval Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Posted on Telegram",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Posted on Telegram",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Quiz no"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_GID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit#gid=<GOOGLE_SHEET_GID>",
          "cachedResultName": "Sheet4"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_ID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit?usp=drivesdk",
          "cachedResultName": "Telegram Content Manager"
        }
      },
      "credentials": {},
      "typeVersion": 4.6
    },
    {
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        288,
        208
      ],
      "parameters": {
        "sessionKey": "={{ $execution.id }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "name": "Get row(s) in sheet in Google Sheets",
      "type": "n8n-nodes-base.googleSheetsTool",
      "position": [
        464,
        208
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('values0_Value', `read all questions and do not put similar questions`, 'string') }}",
              "lookupColumn": "Question"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_GID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit#gid=<GOOGLE_SHEET_GID>",
          "cachedResultName": "Sheet4"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "<GOOGLE_SHEET_ID>",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/<GOOGLE_SHEET_ID>/edit?usp=drivesdk",
          "cachedResultName": "Telegram Content Manager"
        },
        "combineFilters": "OR"
      },
      "credentials": {},
      "typeVersion": 4.7
    },
    {
      "name": "Check New Quiz Added",
      "type": "n8n-nodes-base.if",
      "notes": "If status exists (i.e., a real quiz row), send the poll; else send a refill notice.",
      "position": [
        336,
        416
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 1,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "operator": {
                "type": "string",
                "operation": "contains"
              },
              "leftValue": "={{ $json['Approval Status'] }}",
              "rightValue": "Complete"
            },
            {
              "operator": {
                "type": "string",
                "operation": "notEquals"
              },
              "leftValue": "={{ $json['Posted on Telegram'] }}",
              "rightValue": "\u2705"
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        576,
        592
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -752,
        -128
      ],
      "parameters": {
        "width": 560,
        "height": 1424,
        "content": "Automated MCQ Generation and Telegram Poll Posting Workflow\n\nThis workflow automatically creates, stores, and posts **multiple-choice quiz questions (MCQs)** on Telegram using **AI (Google Gemini)** and **Google Sheets** \u2014 ideal for educators, coaching institutes, and edtech creators.\n\nIt has two interconnected parts working in sync:\n\n**Workflow 1 (Top Path: Scheduled Trigger):** The AI Agent generates a brand new, unique MCQ based on a syllabus (e.g., BPSC General Studies), checks the existing Google Sheet data to **avoid duplication**, and adds the new question to the sheet for review.\n\n**Workflow 2 (Bottom Path: Google Sheets Trigger):** Monitors the sheet for new or approved questions. When an unposted question is found, it automatically formats it, **posts it as a poll on Telegram**, marks the row as 'Posted' in the sheet, and loops back to trigger the AI to generate the next question.\n\n---\n\n## Who\u2019s it for\n\n* **UPSC, BPSC, SSC,** and other exam content creators.\n* Educators who need to automate daily quiz/poll publishing.\n* Anyone managing learning or engagement communities on Telegram.\n\n---\n\n## How it works\n\n1.  **Generation Loop (Scheduled):** A **Schedule Trigger** fires the **AI Agent (Gemini Chat Model)**. The AI uses the existing sheet data as memory to generate a **unique, dual-language (English/Hindi) MCQ** on a topic like BPSC General Studies.\n2.  **Storage:** The unique MCQ is saved to Google Sheets using the **Append or Update** tool.\n3.  **Publishing Loop (Event-Driven):** The **Google Sheets Trigger** waits for a new row (or an update to the 'Approval Status').\n4.  The flow checks (`If`) if the quiz is approved and **has NOT been posted** (`Posted on Telegram` is not `\u2705`).\n5.  If true, the **HTTP Request** node posts the content as a live poll to Telegram.\n6.  The sheet is immediately updated to **mark the quiz as posted** (`\u2705`).\n7.  An **Aggregate** node ensures the flow loops back to immediately trigger the AI Agent for the next generation task, maintaining a constant supply.\n\n---\n\n## Requirements\n\n* **Google Sheets:** A sheet with necessary columns (Question, Options A-D, Correct Answer, Explanation, Approval Status, Posted on Telegram).\n* **AI Model:** A connected Google Gemini or OpenAI credential.\n* **Telegram:** A Bot Token and the Chat ID of your channel/group.\n\n---\n\n## How to set up\n\n1.  **Google Credentials:** Connect your Google Sheets account to the three Google Sheets nodes.\n2.  **Telegram Configuration:** In the **Send Telegram Poll** node, replace `<TELEGRAM_BOT_TOKEN>` in the URL and `<TELEGRAM_CHAT_ID>` in the `chat_id` parameter with your actual values.\n3.  **AI Customization:** Review and refine the `systemMessage` and `text` in the **AI Agent** node to match your specific exam syllabus, language requirements, and content format (currently configured for BPSC in English and Hindi).\n\n**\u26a0\ufe0f Note:** Ensure all required credentials are set up securely via n8n's Credentials Manager, not hardcoded into the nodes (placeholders are used above for security)."
      },
      "typeVersion": 1
    },
    {
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -96
      ],
      "parameters": {
        "width": 1024,
        "height": 464,
        "content": "Workflow 1: Content Generation & Storage\n(Scheduled run every 3 hours)"
      },
      "typeVersion": 1
    },
    {
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        384
      ],
      "parameters": {
        "width": 1152,
        "height": 400,
        "content": "Workflow 2: Publishing & Status Update\n(Triggered by new row in Google Sheet)"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "connections": {
    "AI Agent": {
      "main": [
        []
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Read Quiz Data": {
      "main": [
        [
          {
            "node": "Check New Quiz Added",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Telegram Poll": {
      "main": [
        [
          {
            "node": "Update Quiz Status1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check New Quiz Added": {
      "main": [
        [
          {
            "node": "Send Telegram Poll",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets Trigger": {
      "main": [
        [
          {
            "node": "Read Quiz Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get row(s) in sheet in Google Sheets": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Append or update row in sheet in Google Sheets1": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This template provides a complete, two-part automation system for exam preparation providers, educators, or content creators to automatically generate unique Multiple-Choice Questions (MCQs) on a specific syllabus, save them to Google Sheets, and publish them as Telegram…

Source: https://n8n.io/workflows/9264/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

This automation is designed to help you generate AI-powered music tracks, cover art, and fully rendered music videos — all triggered from a simple Telegram chat and managed via Google Sheets.

OpenAI Chat, Memory Buffer Window, Output Parser Structured +11
AI & RAG

WhatsApp AI Assistant for Clinic Appointment Booking Automate your entire appointment lifecycle with an intelligent AI assistant that lives on WhatsApp. This workflow empowers any clinic or independen

Google Gemini Chat, WhatsApp Trigger, Memory Buffer Window +9
AI & RAG

Categories: Business Automation, Content Creation, SEO, AI

Memory Buffer Window, Agent, n8n +6
AI & RAG

How it works:

HTTP Request, Google Gemini Chat, Information Extractor +6
AI & RAG

Customer support agent. Uses httpRequest, googleSheets, memoryBufferWindow, googleSheetsTool. Event-driven trigger; 19 nodes.

HTTP Request, Google Sheets, Memory Buffer Window +5