The Scenario
You are a retail buyer. Every Monday you pull up the competitive pricing tracker — 50 competitor product URLs in column A, price and stock status columns sitting empty next to them — and start the routine you have come to dread. Your category director wants the updated numbers before the Tuesday morning review.
The bad version:
- Open each URL one by one in a browser, find the price and stock status, type them into columns B and C by hand — or copy-paste when you can — then move to the next row
- Get interrupted at row 23, lose your place, go back and check which rows are done, start over from a different row and accidentally duplicate three entries
- Finish at 5:30 PM, realize three pages were showing "loading" placeholders instead of actual prices because they use JavaScript rendering, go back and redo those manually
You were hired to make buying decisions, not to transcribe prices from 50 browser tabs. The analysis is sitting there waiting, but you cannot start it until the data is in the sheet.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads your data, understands what you are looking at, and through its built-in Scrapfly integration it calls the scraping API for you — handling JavaScript rendering, proxy rotation, and response parsing without any setup on your end.
For each URL in column A, use Scrapfly to scrape the page with JavaScript rendering enabled, extract the product price and stock status, and write them into columns B and C
What You Get
- Column B fills with the current price found on each page, formatted as a numeric value
- Column C fills with stock status text as it appears on the page (e.g., "In Stock," "Out of Stock," "Only 3 left")
- Rows where the page returned an error or could not load are flagged with a note in column D instead of left blank
- All 50 rows complete in a single run — no batching, no resuming from where you left off
What If the Data Is Not Quite Ready
The prices are loading via JavaScript and coming back empty
Some product pages defer price rendering to a client-side script. If column B is returning empty or placeholder text, tell SheetXAI to be explicit about rendering:
For each URL in column A, use Scrapfly with JavaScript rendering and a 5-second wait for dynamic content, then extract the price from the rendered page and write it into column B
Some URLs are redirecting to a different product page
If a competitor has changed a product URL, the scrape might land on a 301 redirect target that does not match the original product. Ask SheetXAI to surface this:
For each URL in column A, scrape with Scrapfly and write the final resolved URL into column D alongside the price in column B — flag any row where the resolved URL differs from the original
You need to filter the list to only active SKUs before scraping
Your URL list includes discontinued products that are no longer worth tracking. Rather than cleaning the list first, fold the filter into the ask:
Only scrape URLs in column A where column E says Active — use Scrapfly with JavaScript rendering, extract price and stock status, and write results into columns B and C for those rows only
You want a clean competitive summary plus the raw data in one shot
For each URL in column A where column E says Active, use Scrapfly to scrape price and stock status and write them into columns B and C, then in column F write a short note if our price in column D is more than 10% above the competitor price in column B
One prompt, one run — the scrape and the analysis happen together, and the flagged rows are ready for your Tuesday review without a second pass.
Try It
Get the 7-day free trial of SheetXAI and open your competitive pricing tracker, then ask it to scrape all your competitor URLs with Scrapfly and populate the price and stock columns. You can also see how this works for extracting SaaS pricing tiers or crawling competitor sites for an SEO audit.
