Every 10 minutes
Get a Slack message when your sheet changes
When someone adds or edits a row, your team sees what changed without opening the sheet.
- Runs
- Every 10 minutes
- Apps
- Google Sheets, Slack
- AI
- Not needed
- Access
- Sheets read; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: every 10 minutes, check my Orders sheet and post any new or edited rows to #ops.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A shared Google Sheet is edited by six people: a pipeline tracker, a launch checklist, a staffing roster. Someone changes a delivery date, someone else marks a task done, and a third person deletes a row by mistake. Google's own notifications only say the file was edited, and sometimes email arrives hours later, so nobody knows what exactly changed or who needs to react to it.
Every 10 minutes, ClickRuntime reads the sheet and compares each row with a stored snapshot hash from the previous run. When a row is new or its content differs, a message is posted to Slack with the row's key values, so the team sees changes soon after they are made.
Project teams, operations groups and event planners use it to keep a shared sheet from changing silently.
What you get out of it
Changes are visible to the whole team
A Slack message with the row's values means everyone sees the new date or owner without opening the sheet. Dependent teams can adjust their plans the same hour. Planning no longer waits for someone to say it out loud in a meeting.
Quiet edits cannot hide
A deliberate or accidental change to a cost or a date appears in the channel, together with its row. That discourages unreviewed changes and makes mistakes easy to catch while they are fresh.
Faster than built-in notifications
Sheets notifies at the file level, often with delay and without detail. Row-level comparison tells you which line changed and how, so the next action is clear. That cuts the wait between an edit and everyone knowing about it.
Deletions and additions are noticed
New rows and removed rows both show up. A deleted customer or a lost task is not discovered weeks later when a total no longer adds up. Records stay complete even when rows are cleaned up by mistake.
A lightweight audit trail
The messages in Slack form a dated list of what changed in the sheet. When a number is disputed, you can scroll back and find the point it was edited.
How it works
What happens, step by step
Every 10 minutes, ClickRuntime reads the rows in the Orders tab of your Google Sheet.
It compares each row with how it looked at the last check to find new and edited rows.
When something has changed, a message appears in your #ops Slack channel listing each new or edited row and its contents.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
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 Gmail
- Combine it with other Google Sheets and Slack steps into one automation
Under the hood
The code that runs this automation
import hashlib
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
from clickruntime import on_trigger, credentials, state, notify, report_fetched
SHEET_ID = "your-spreadsheet-id"
@on_trigger
def run(event):
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
rows = sheets.spreadsheets().values().get(spreadsheetId=SHEET_ID, range="Orders!A2:F").execute().get("values", [])
old = state.get("hashes") or {}
hashes = {str(i): hashlib.md5("|".join(r).encode()).hexdigest() for i, r in enumerate(rows, start=2)}
changed = [(int(i), "new" if i not in old else "edited") for i, h in hashes.items() if old.get(i) != h]
report_fetched(len(changed) if old else 0)
if not old or not changed:
if not old:
state.set("hashes", hashes)
return {"changed": 0}
lines = [f"{kind} row {i}: {' | '.join(rows[i - 2])}" for i, kind in changed[:20]]
notify.slack("📝 Orders sheet changed\n" + "\n".join(lines), channel="#ops")
state.set("hashes", hashes)
return {"changed": len(changed)}FAQ
Common questions
Can I watch only certain columns?
Does it say who updated a row?
How are several quick updates handled?
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
Know when stock is running low
When an item in your inventory sheet drops below its reorder level, Slack tells you once, not every hour.
See how it worksMonitor a list of websites from a sheet
Add a site to your sheet and you'll hear in Slack whenever it goes down or comes back, with a log of every outage.
See how it worksKeep a log of events in a sheet
Everything your app or CRM sends is saved as a row, and the important events also go to Slack.
See how it worksKeep exploring
Set up “Get a Slack message when your sheet changes” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.