Every 6 hours
Track prices from a watch list
You're told when a product in your sheet drops below your target price.
- Runs
- Every 6 hours
- Apps
- Google Sheets
- AI
- Yes, uses the built-in AI allowance
- Access
- read+write
Send this to your assistant
Create a ClickRuntime automation: every 6 hours, check the price at each URL in my Watchlist sheet, write the price and time in the row, and email me if it's below the Target column.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Watching prices by hand means opening the same ten tabs every few days and trying to remember whether that standing desk was 340 or 360 last time. Resellers, procurement people and ordinary shoppers all end up with a sheet of product links and a target price in the next column, and the sheet is only as useful as the last time somebody refreshed it. Meanwhile the sale lasts two days.
Every 6 hours, each URL in the sheet is fetched, the price is extracted from the page (the built-in AI can help when the layout is awkward), and the current price and a timestamp are written next to the product. If a price falls below the target in that row, you get an email naming the product and the price.
It is handy for a wish list, for supplier cost tracking, or for monitoring competitor pricing on a handful of items.
What you get out of it
Buy at the dip instead of by luck
An email arrives when the price crosses your target, so you act during the sale rather than reading about it afterward. On big purchases the difference can be real money.
A price history builds up in your own sheet
Each check writes the current price and time, so you can see whether a discount is genuine or just a return to the usual level, and chart it if you want.
Supplier changes spotted early
A procurement lead tracking component costs sees an unexpected increase within hours, which leaves time to renegotiate or reorder before a quote expires. A few percent on a recurring order adds up quickly.
No browser extension or paid tracker
The list lives in a sheet you control, with no subscription to a price-watching service and no limit on which shops you can add. If a retailer closes or changes its page, you only have to fix one row.
Fewer wasted trips to product pages
Instead of checking twenty pages weekly, you look at one column and one inbox. That removes a chore most people quietly stop doing after a month. Over a year that is a lot of small interruptions you simply stop doing.
How it works
What happens, step by step
Every 6 hours ClickRuntime reads the product links and target prices in your Google Sheet.
It opens each product page and finds the current price.
The price and the time it was checked are written back into the sheet.
When a price drops below your target, you get an email with the product, the new price and a link.
Before it runs live
- Connect your Google Sheets account and pick the spreadsheets it may use
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 Google Sheets 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 datetime import datetime, timezone
from bs4 import BeautifulSoup
from clickruntime import on_trigger, credentials, http, ai, notify
SHEET_ID = "your-spreadsheet-id"
@on_trigger
def run(event):
sheets = build("sheets", "v4", credentials=Credentials(credentials.connection("google", "work")), cache_discovery=False).spreadsheets()
rows = sheets.values().get(spreadsheetId=SHEET_ID, range="Watchlist!A2:E").execute().get("values", [])
now, data, deals = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M"), [], []
for i, row in enumerate(rows, start=2):
name, url, target = (row + ["", "", ""])[:3]
text = BeautifulSoup(http.get(url, timeout=15).text, "lxml").get_text(" ", strip=True)[:4000]
raw = ai.generate(f"What is the current price of the main product on this page? Reply with a number only.\n{text}",
max_output_tokens=10).text.strip().replace(",", "")
try:
price = float(raw.lstrip("$£€"))
except ValueError:
continue
data.append({"range": f"Watchlist!D{i}:E{i}", "values": [[price, now]]})
if target and price < float(target):
deals.append(f"{name}: {price:.2f} (target {target})\n{url}")
sheets.values().batchUpdate(spreadsheetId=SHEET_ID, body={"valueInputOption": "RAW", "data": data}).execute()
if deals:
notify.email_me(f"{len(deals)} prices below target", "\n\n".join(deals))
return {"checked": len(data), "below_target": len(deals)}FAQ
Common questions
Will it work on any shop's product page?
How is the target price set?
Will I get emailed again every 6 hours for the same drop?
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
Fill in company details from their websites
Each company in your sheet gets its industry, B2B or B2C, and a one-line summary from its own website.
See how it worksDraft posts from your content sheet
Each morning the next idea in your sheet becomes a draft, saved back in the row.
See how it worksDraft personal outreach emails from a list
Every contact in your sheet gets a short personalised email written into the row, ready for you to send.
See how it worksKeep exploring
Set up “Track prices from a watch list” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.