Every 6 hours
Get emailed when a web page changes, with snapshots in Drive
Whenever a page you watch changes, you get an email showing what changed and a copy of the new version is saved to Drive.
- Runs
- Every 6 hours
- Apps
- Gmail, Google Drive
- AI
- Optional
- Access
- Drive write; Gmail gmail.send
Send this to your assistant
Create a ClickRuntime automation: every 6 hours, fetch <url>; if the content changed, save the new version to my Drive folder and email me what changed.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A product manager keeps an eye on a competitor's pricing page, a supplier's terms of service and a government guidance page that affects her business. Checking them by hand is easy to forget, and when something does change she has no copy of what it said before.
This automation watches the page for her and keeps a dated copy of every version in Drive, so she hears about changes quickly and can always show what the page said on a given day.
What you get out of it
Changes reach you quickly
A price change, new clause or updated rule shows up in your inbox within hours, not whenever you next happen to look.
Proof of what a page used to say
Dated snapshots in Drive are useful when a supplier changes terms or a regulation is reworded and you need the earlier version.
Only the differences, not the whole page
The email shows the lines that changed, so you can judge in seconds whether it matters.
Silence when nothing changes
If the page is the same as last time, you hear nothing, so every email is worth opening.
How it works
What happens, step by step
Every 6 hours ClickRuntime opens the page you chose and reads its text.
It compares the text with the version it saw last time and stops if nothing changed.
When the page has changed, it saves the new version as a dated file in your Drive folder.
It emails you the lines that were added or removed, optionally with a short AI summary of the change.
Before it runs live
- Connect Google through your own Google app (a one-time, 10-minute setup), so it works with your own Gmail
- Connect Google Drive
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
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- Add another app, for example also send it to Slack
- Combine it with other Gmail and Google Drive steps into one automation
Under the hood
The code that runs this automation
from google.oauth2.credentials import Credentials
from googleapiclient.discovery import build
import difflib, hashlib, io, re
from datetime import datetime, timezone
from googleapiclient.http import MediaIoBaseUpload
from clickruntime import on_trigger, credentials, http, state, notify
URL = "https://example.com/pricing"
FOLDER_ID = "your-snapshots-folder-id"
@on_trigger
def run(event):
text = re.sub(r"<[^>]+>", " ", http.get(URL).text)
lines = [l.strip() for l in text.splitlines() if l.strip()]
digest = hashlib.sha256("\n".join(lines).encode()).hexdigest()
if digest == state.get("hash"):
return {"changed": False}
old = state.get("lines") or []
drive = build("drive", "v3", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False)
name = f"snapshot {datetime.now(timezone.utc):%Y-%m-%d %H%M}.txt"
drive.files().create(body={"name": name, "parents": [FOLDER_ID]},
media_body=MediaIoBaseUpload(io.BytesIO("\n".join(lines).encode()), "text/plain")).execute()
if old:
diff = [l for l in difflib.unified_diff(old, lines, lineterm="", n=0) if l[:1] in "+-" and l[:3] not in ("+++", "---")]
notify.email_me(f"Page changed: {URL}", "\n".join(diff[:200]))
state.set("hash", digest)
state.set("lines", lines[:2000])
return {"changed": True, "snapshot": name}FAQ
Common questions
Will small changes like dates or ads trigger an email?
Can I watch more than one page?
What format are the snapshots?
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
Archive every email from one sender to a Drive folder
Each new email from the sender you choose is saved as a file in your Drive folder, so you keep a complete record outside your inbox.
See how it worksGet a weekly email of Drive files shared too widely
Every Monday you get an email listing recently edited Drive files that anyone with the link or people outside your company can open.
See how it worksSend new clients a shared Drive folder and welcome email
Each new client gets their own Drive folder from your template, shared with them, plus a welcome email with the link.
See how it worksKeep exploring
Set up “Get emailed when a web page changes, with snapshots in Drive” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.