Mindket

Telegram chat bot that answers from a Google Sheet schedule

Newversion 1 · updated

Overview

An n8n workflow that lets people ask a Telegram bot about a schedule kept in a Google Sheet. An AI model answers from the current rows. The chat inside n8n tests the same flow.

Telegram chat bot that answers from a Google Sheet schedule is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: bring in the file, connect your accounts and switch it on
  • Your own n8n server: the same file, with a public HTTPS address for the Telegram door
  • A local install: you can test in the editor chat, but Telegram cannot reach it
  • Any Telegram bot: you make one by writing to BotFather inside Telegram

Platform

Connects 3 apps

How it works

Trigger

A Telegram message

It starts when someone writes to your bot, or when you type in the chat inside n8n. Set first:

  • A Telegram credential with the bot token
  • A Google Sheets credential and the sheet’s address in Settings
  • An OpenRouter credential

Actions

  1. The bot shows that it is typing
  2. The message text and the chat are copied into common fields
  3. The sheet is read again and turned into a Markdown table
  4. An agent answers the question from that table, with a short memory for each chat
  5. The answer goes back to the same Telegram chat, or shows in the n8n chat

Result

An answer in the Telegram chat, drawn from the current rows of your sheet

Integrations

What you need before you start.

Telegram

Chat

Receives each question, shows the typing sign and sends the answer back.

NeedsTelegram bot token

Google Sheets

Schedule

Is read again for every question and turned into a table.

NeedsGoogle Sheets credential and the sheet’s address

OpenRouter

Language model

Runs the agent that answers from the table.

NeedsOpenRouter API key

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
13 steps, starting on a Telegram event or on a chat message
AI
1 step calls an AI model: ScheduleBot
Sign-ins
Signs in to: Telegram, Google Sheets and OpenRouter
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 9 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow turns a Telegram bot into an assistant for a schedule kept in a Google Sheet. A member writes a question to the bot, and an AI model answers from the current rows of the sheet. Each time, the workflow reads the sheet again, turns it into a table and hands the table to the model with the question. A second door, the chat inside n8n, tests the same flow without Telegram. Fifteen nodes run it. Eight sticky notes sit beside them.

Who it suits

Organizers of meetups, clubs, classes and teams who keep their dates in a spreadsheet and get the same questions again and again, such as when the next session is and where. It suits a schedule of a few dozen to a few hundred rows that you edit in the sheet. Skip it if the schedule is huge, because the whole table travels with every question. Skip it too if you want the bot to book or change anything. It only reads.

Who uses it, and how
IndustryWho uses itHow they use itExample
CommunityMeetup organizersLet members ask about dates and placesA member asks when the next talk is and gets the date and the room.
EducationCourse coordinatorsAnswer students’ timetable questionsA student asks which day the workshop runs.
SportClub managersShare the training planA parent asks when Saturday’s practice starts.
EventsSmall event teamsAnswer attendees about sessions and speakersAn attendee asks who speaks after lunch.

You need a Telegram bot token, a Google account that can open your sheet, an OpenRouter key and a public HTTPS address for n8n.

Where to use it

The Telegram door needs an n8n that Telegram can reach, which means n8n Cloud or a server with a public address. The chat inside n8n works anywhere, so you can test on a local install first. The workflow must be switched on for the bot to answer.

  • n8n Cloud: bring in the file, connect your accounts and switch it on
  • Your own n8n server: the same file, with a public HTTPS address for the Telegram door
  • A local install: you can test in the editor chat, but Telegram cannot reach it
  • Any Telegram bot: you make one by writing to BotFather inside Telegram

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Import the file, add three credentials, paste your sheet’s address, rewrite the bot’s system message and switch the workflow on.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own with an HTTPS address
TelegramA bot token from BotFather
Google SheetsA Google account that can open the sheet, with an OAuth2 credential
SheetA header row, then one event per row on the first tab
OpenRouterAn API key
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add a Telegram credential with your bot token to telegramInput, SendTyping and telegramResponse.
  3. In Settings, replace <YOUR_GOOGLE_SHEET_URL> with the address of your sheet as your browser shows it. Add a Google Sheets OAuth2 credential to Schedule.
  4. Add an OpenRouter credential to LLM. It runs openai/gpt-6-luna.
  5. Open ScheduleBot and rewrite its system message for your own group. It now talks about a meetup group.
  6. To test, open the chat at the bottom of the canvas and ask a question about your schedule.
  7. For Telegram, save the workflow, switch it on and write to your bot.

How to use it

Leave the workflow on. A member opens the bot in Telegram and asks a question in plain words. The bot shows a typing sign, then answers from the sheet. Edit the sheet, and the next answer follows it. That is the whole routine.

What to change for a different result
To changeWhere
The schedulescheduleURL in Settings, and the tab in Schedule
Who the bot isThe system message in ScheduleBot
The modelLLM
How much it remembersThe window length in Memory
The reply formatThe options of telegramResponse

Example

A hiking club keeps its outings in a sheet with columns for date, trail, meeting point and leader. A member writes to the bot and asks who leads the outing on 14 June.

The bot shows that it is typing, reads the sheet and answers with the leader’s name and the trail. It takes a moment. The member then asks where to meet. The bot remembers the last few messages of that chat, so it knows which outing is meant. When the club changes the meeting point in the sheet, the next answer shows the new one.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A Telegram bot is an account that a program controls instead of a person. A Google Sheet is an online spreadsheet. The model reads the whole table with each question, so it needs no database. Try it with five rows.

For experts. Both doors feed one pipeline through a mode field.

Where to look closer
NodeWhat it doesWhat to know
telegramInputListens for Telegram message updatesVersion 1.1 shows the Restrict to Chat IDs and Restrict to User IDs fields but does not apply them. n8n filters from version 1.2
ScheduleReads the first tab with Get Row(s)It adds row_number, which the model then sees as a column
ScheduleToMarkdownBuilds a Markdown table from every rowThe header is the first row’s keys, and a cell that holds a vertical bar can break the table
MemoryKeeps recent messagesThe session key is chatId, so each chat has its own thread. It lives in n8n’s memory only
SwitchFollows mode to Telegram or to the n8n chatOnly the Telegram branch sends anything
telegramResponseSends the answer to the chatMarkdown parse mode, and an automatic n8n line under the answer

Good to know

The bot answers from the sheet as it is now, and anyone who finds it can ask.

  • Access: the Telegram Trigger here is version 1.1, so its restriction fields do nothing. Update the node to 1.2 or newer before you rely on them
  • Reach: Telegram sends updates to an HTTPS address, so an n8n that cannot be reached that way gets no bot messages. The editor chat needs no address
  • Size: the whole table goes into the system message of every question, and the sheet is read again each time. A long schedule costs more per message and slows each answer
  • Format: the answer is sent in Markdown mode with the line “This message was sent automatically with n8n” under it. A stray _ or * in an answer can make Telegram refuse the message
  • Memory: Memory keeps the last five messages by default and loses them when n8n restarts
  • Repairs: the original copy named no model on LLM, so it ran n8n’s default openai/gpt-4.1-mini. OpenAI shuts that model down on 14 January 2027 and names gpt-6-luna as the replacement. Mindket’s copy names openai/gpt-6-luna, which OpenRouter lists. This agent has no tools, so gpt-6-luna fits. The sheet address became a placeholder, its saved labels were removed, and an empty field in SetResponse was dropped
  • Billing: OpenRouter bills each answer. Its list shows USD 0.1 per million tokens in and USD 0.5 per million out for that model
  • Not run: nothing was run, so no bot, no sheet and no model call was tried. The notes come from n8n’s source, Telegram’s Bot API page and OpenRouter’s public list
  • Your data: the sheet’s rows and each message go to OpenRouter and the model’s provider. The answers go through Telegram
  • Credentials: the JSON holds none

README and files

README

Telegram chat bot that answers from a Google Sheet schedule

An n8n workflow that turns a Telegram bot into an assistant for a schedule kept in a Google Sheet. A member writes a
question to the bot, and an AI model answers from the current rows of the sheet. A second door, n8n's own chat, lets
you test the same flow without Telegram.

What is inside

  • workflow.json: the workflow as n8n exports it, 15 nodes and 8 sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • Settings held the original author's sheet address. It now reads <YOUR_GOOGLE_SHEET_URL>. The Schedule node
    also carried that sheet's address and tab name as saved labels. Both are gone, and the node still reads the first tab,
    gid=0.
  • The LLM node, an OpenRouter Chat Model, named no model, so it ran n8n's default for that node, openai/gpt-4.1-mini.
    OpenAI shuts that model down on 14 January 2027 and names gpt-6-luna as the replacement. The node now names
    openai/gpt-6-luna outright, which OpenRouter's public model list carries. This agent has no tools, so gpt-6-luna
    fits.
  • SetResponse held a second, empty field with no name. It is removed.

Before you start

  • An n8n instance with a public HTTPS address, such as n8n Cloud, if you want the Telegram door. The chat in the editor
    needs no address.
  • A Telegram bot token. You get one by writing to BotFather inside Telegram.
  • A Google account that can open your sheet, and a Google Sheets OAuth2 credential in n8n.
  • An OpenRouter API key.
  • A sheet with a header row and one event per row on its first tab.

Set it up

  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add a Telegram credential with your bot token to telegramInput, SendTyping and telegramResponse.
  3. In Settings, replace <YOUR_GOOGLE_SHEET_URL> with the address of your sheet as your browser shows it. Add a Google
    Sheets OAuth2 credential to Schedule. The node reads the first tab. To read another tab, pick it in Schedule.
  4. Add an OpenRouter credential to LLM.
  5. Open ScheduleBot and rewrite its system message for your own group. It now talks about a meetup group.
  6. To test, open the chat at the bottom of the canvas and ask a question about your schedule.
  7. For Telegram, save the workflow and switch it on, then write to your bot.

How a run goes

  1. A run starts at telegramInput, the Telegram Trigger, or at n8nInput, the chat in n8n. The Telegram Trigger listens
    for message updates only.
  2. On the Telegram side, SendTyping shows the typing sign in the chat, and telegramChatSettings copies the message
    text and the chat id into inputMessage and chatId, with mode set to telegram. On the n8n side,
    n8nChatSettings copies the chat text and the session id into the same fields, with mode set to n8n.
  3. Settings adds scheduleURL. Schedule reads the sheet. ScheduleToMarkdown turns every row into one Markdown
    table in markdown, with the first row's column names as the header.
  4. ScheduleBot is an agent on LLM, with Memory beside it. Its system message holds the table, and the member's
    text is the prompt. It has no tools.
  5. SetResponse copies the answer into responseMessage. Switch then follows mode. For Telegram, telegramResponse
    sends the answer to the same chat. For n8n, n8nResponse is a No Operation node that ends the run, and the chat
    shows the answer.

Change the look

  • The schedule: scheduleURL in Settings, and the tab in Schedule.
  • Who the bot is and how it answers: the system message in ScheduleBot.
  • The model: LLM.
  • How much it remembers: the window length in Memory. It keeps one conversation per chat id.
  • The reply format: telegramResponse has the text and the options of a Telegram send.

Good to know

  • The facts below come from n8n source, Telegram's Bot API page and OpenRouter's public model list, read on 12
    November 2026. Nothing was run: no bot, no sheet and no model call.
  • Telegram sends updates to an HTTPS address, so an n8n that is not reachable that way cannot receive bot messages. The
    chat in the editor works anywhere.
  • Anyone who finds your bot can ask it, and the answers come from your sheet. telegramInput is version 1.1. That version
    shows the Restrict to Chat IDs and Restrict to User IDs fields but does not apply them. n8n filters only from version
    1.2, so update the node before you rely on them.
  • The whole table goes into the system message of every question, and the sheet is read again each time. A long schedule
    costs more per message and slows each answer.
  • Schedule uses Get Row(s), which adds a row_number column to every row. The model sees it as the first column of
    the table.
  • ScheduleToMarkdown takes its column names from the first row. A cell that holds a vertical bar can break the table.
  • Memory keeps the last five messages by default, one conversation per chat id, in n8n's own process. A restart of n8n
    clears it.
  • telegramResponse sends with Telegram's version 1.2 defaults: Markdown parse mode, link previews off, and the line
    "This message was sent automatically with n8n" added under every answer. An answer with a stray _ or * can make
    Telegram refuse the message.
  • SendTyping shows the typing sign for 5 seconds or less, and Telegram clears it when the answer arrives.
  • Billing: OpenRouter bills each answer. Its public list shows openai/gpt-6-luna at USD 0.1 per million tokens in and
    USD 0.5 per million out. The model's reasoning tokens count as output.
  • Your data: the sheet's rows and each message go to OpenRouter and the model's provider. The answers and the typing
    sign go through Telegram.
  • Credentials: the JSON holds none.
Files
NOTICE.md  634 B
README.md  6 KB
workflow.json  16 KB

3 files, 22 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Bonsai-27B-GGUF

lmstudio-community · Kit

A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…

New

Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…

New

MusicGen Small

facebook · Kit

Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…

New

Similar in Productivity

See all in Productivity

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Guizang PPT Skill

op7418 · Skill

Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…

New29.8k

Frontend Slides

zarazhangrui · Skill

Builds HTML presentations from scratch or from a PowerPoint file and shows visual style previews to pick from, for people who want web slides with no CSS or Ja…

New32.3k