Every 5 minutes
Get a Telegram message when a Google Sheet gets a new row
Every 5 minutes ClickRuntime checks a Google Sheet and sends a Telegram message for each new row, such as a form response or order, with the columns you pick.
- Runs
- Every 5 minutes
- Apps
- Google Sheets, Telegram
- AI
- Not needed
- Access
- Sheets read-only (spreadsheets.readonly); bot token
Send this to your assistant
Create a ClickRuntime automation: every 5 minutes, check my "Orders" Google Sheet and send me a Telegram message for each new row with the Name, Product, Amount and Phone columns.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Google Sheets is where many small businesses collect orders, sign-ups and form responses. Sheets can email you about changes, but those emails are vague, delayed and do not show what was added.
This automation checks the sheet every 5 minutes and sends a Telegram message for each new row, with the columns that matter written out, so you can call the customer or start the order straight away.
It suits shops taking orders through Google Forms, event organisers tracking sign-ups and anyone whose sheet is filled by another tool.
What you get out of it
See the row, not just a change notice
The message shows the actual values, so you know what came in without opening the sheet.
Pick the columns
Only the fields you need are sent, so long rows do not turn into long messages.
Works with any source
Forms, website integrations or teammates typing in rows all trigger the same alert.
No scripts inside the sheet
Nothing is added to the spreadsheet itself, and your bot token stays out of shared files.
Share with a team
Send to a Telegram group so whoever is free can pick up the new order.
How it works
What happens, step by step
Every 5 minutes, ClickRuntime reads the tab you chose in your Google Sheet.
It compares the number of rows with the last check to find new ones.
For each new row it sends a Telegram message with the columns you picked, labelled by their header names.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- Connect Telegram
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other Google Sheets and Telegram steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, http, state
SHEET_ID, TAB, CHAT_ID = "your-sheet-id", "Orders", "123456789"
COLUMNS = ["Name", "Product", "Amount", "Phone"]
def tg(method, **params):
r = http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/{method}", json=params)
r.raise_for_status()
return r.json()["result"]
@on_trigger
def run(event):
rows = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets().values().get(
spreadsheetId=SHEET_ID, range=f"{TAB}!A:Z").execute().get("values", [])
if not rows:
return {"new": 0}
header, data = rows[0], rows[1:]
seen = state.get("rows")
if seen is None: # first run: start from now
state.set("rows", len(data))
return {"new": 0}
new = data[seen:]
for row in new:
rec = dict(zip(header, row + [""] * (len(header) - len(row))))
lines = [f"{c}: {rec.get(c, '')}" for c in COLUMNS if rec.get(c)]
tg("sendMessage", chat_id=CHAT_ID, text=f"🆕 New row in {TAB}\n" + "\n".join(lines))
state.set("rows", len(data))
return {"new": len(new)}
FAQ
Common questions
Does it work with Google Forms responses?
What if someone deletes a row?
Can it send to a group?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Log trading alert emails to a sheet and Telegram
Each TradingView alert email is logged with ticker, action and price in your sheet and pushed to your Telegram within minutes.
See how it worksSend a weekly Telegram message to every chat in a sheet
Write your announcement once in a sheet and every Telegram chat on your list gets it on Monday morning, with each one marked as sent.
See how it worksGet Telegram alerts when a site in your sheet goes down
Every site in your sheet is checked every 5 minutes, its status is kept up to date, and you get a Telegram message when one goes down or recovers.
See how it worksKeep exploring
Set up “Get a Telegram message when a Google Sheet gets a new row” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.