On a schedule
Catch a product price drop
You get an email as soon as a product's price falls below the number you set.
- Runs
- On a schedule
- Apps
- Firecrawl
- AI
- Not needed
- Access
- API key
Send this to your assistant
Create a ClickRuntime automation: every 6 hours, extract the price from this product page with Firecrawl and email me if it drops below $249.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
Buyers of equipment, suppliers' parts and everyday purchases can save a lot by catching a price drop, but nobody refreshes product pages all day. Resellers and purchasing teams have the opposite problem: a supplier raises a price or a part goes out of stock, and they find out when a quote bounces. Ordinary web monitors only notice that the page changed, which happens for countless reasons unrelated to price.
On a schedule, ClickRuntime scrapes the product page with a JSON extraction schema so it reads the actual price and availability fields, compares them with the previous values, and emails you only when the price has dropped. The message gives the old price, the new price and a link.
It works well for buyers waiting for a sale and for resellers watching supplier prices.
What you get out of it
Buy when the price falls
An email as soon as the price drops lets you order while the sale lasts. Deals on popular items can vanish within hours, so the timing matters. Waiting for a sale is easier when you are told.
Avoid false alarms
Reading the price field directly means layout tweaks and banner changes do not trigger alerts. You hear about money, not about someone moving a button. Fewer false alarms means you keep reading the alerts.
Track suppliers for your margins
Resellers can see when a supplier price drops or rises. Adjusting your own prices quickly protects margin and keeps you competitive. Even small changes add up across many parts. That helps your negotiating position.
Catch stock changes
The same extraction can read availability. A back-in-stock message tells you to order before the item sells out again. Stock can matter more than price when deadlines are tight, so it is worth knowing.
Monitor several products at once
List a handful of URLs and each is checked on the same schedule. A single flow replaces browser tabs, bookmarks and reminders you would otherwise juggle. That saves a lot of tab-switching.
How it works
What happens, step by step
On your chosen schedule, ClickRuntime visits the product page you are watching and reads the current price.
It compares the price with your target, such as $249.
If the price is below your target, you get an email with the new price and the product link.
You are not emailed again for the same price.
Before it runs live
- Connect Firecrawl
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
- 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 Firecrawl steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, notify, http, state
URL = "https://shop.example.com/products/standing-desk"
TARGET = 249
@on_trigger
def run(event):
resp = http.post("https://api.firecrawl.dev/v2/scrape",
headers={"Authorization": f"Bearer {credentials.secret('FIRECRAWL_API_KEY')}"},
json={"url": URL, "formats": [{"type": "json", "schema": {
"type": "object", "properties": {"price": {"type": "number"}, "in_stock": {"type": "boolean"}},
"required": ["price"]}}]}, timeout=60)
resp.raise_for_status()
price = resp.json()["data"]["json"]["price"]
if price < TARGET and state.get("last_alert_price") != price:
notify.email_me(f"Price drop: ${price}", f"{URL} is now ${price} (below ${TARGET}).")
state.set("last_alert_price", price)
return {"price": price}FAQ
Common questions
How does it read the price from a page?
Can I set a target price?
Will it work on pages that need a login?
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
Get an email when a web page changes
When the text on a page you watch changes, you get the difference by email instead of checking by hand.
See how it worksGet a plain summary of competitor site changes
A short note on what competitors changed on the pages you track, sent only when something meaningful moved.
See how it worksKnow the moment your website goes down
Your team hears in Slack when the site stops responding or slows down, and again when it's back.
See how it worksKeep exploring
Set up “Catch a product price drop” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.