Back to Apify in Google Sheets
SheetXAI logo
Apify logo
Apify · Google Sheets Guide

Trigger an Apify Actor Run From a URL List in a Google Sheet

2026-05-14
5 min read

The Scenario

You're a pricing analyst at a mid-size e-commerce company. Column A of your Competitors sheet has 200 product URLs — competitors' listings, pulled together over the past two weeks. Your job this Monday morning is to have a fresh pricing snapshot ready before the 10 AM category review.

The bad version:

  • Copy all 200 URLs out of column A, format them as a JSON array, paste them into the Apify web-scraper Actor input form, start the run, and wait.
  • Download the dataset CSV when it finishes, open it separately, match each row back to the original URL in your sheet, then paste title, price, and stock status into columns B, C, and D manually.
  • Realize the scraper returned some URLs in a different order than the input, spend 20 minutes re-aligning everything with a VLOOKUP, and still be three minutes late to the meeting.

Nobody hired you to wrestle a CSV into the right column order. The analysis was supposed to start an hour ago.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Google Sheet. It reads the data, understands the structure, and through its built-in Apify integration it can trigger Actor runs and write the results back into the right columns — without you touching a JSON input form or a CSV.

Run the Apify Actor 'apify/web-scraper' on every URL in column A and write the returned title, price, and stock fields into columns B, C, and D

What You Get

  • Column B fills with the scraped product title for each URL in column A.
  • Column C fills with the price value, in the format returned by the Actor (string or number).
  • Column D fills with the stock status field.
  • Rows where the Actor returned an error or empty response get a note in column E so you can see which URLs failed without hunting through a run log.

What If the Data Is Not Quite Ready

Some URLs in column A have trailing spaces or are missing the protocol

Clean all URLs in column A — strip leading and trailing whitespace, add 'https://' where the protocol is missing — then run the Apify Actor 'apify/web-scraper' on the cleaned list and write title, price, and stock into columns B, C, and D

The Actor returns nested JSON with a 'pricing.amount' field, not a flat 'price' field

Run the Apify Actor 'apify/web-scraper' on every URL in column A, extract 'pricing.amount' from the nested response, and write it into column C along with 'title' in column B and 'availability' in column D

You only want to run the Actor on rows where column E says "refresh needed"

Run the Apify Actor 'apify/web-scraper' only on rows in column A where column E contains "refresh needed", and write the scraped title, price, and stock back into columns B, C, and D for those rows only

The stock status comes back as a boolean — you want a label, a freshness check, and the scrape in one shot

Run the Apify Actor 'apify/web-scraper' on every URL in column A, write title into column B and price into column C, convert the boolean 'inStock' field to "In Stock" or "Out of Stock" in column D, then flag any row in column E where the price is higher than the value in column F

The pattern: ask for the transformation and the data fetch together — SheetXAI handles both in a single pass.

Try It

Get the 7-day free trial of SheetXAI and open any sheet with a column of URLs you've been meaning to scrape, then ask it to trigger the Actor and write the fields back. You can also check out how to import an Apify dataset and deduplicate results or see the full Apify + Google Sheets overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more