Mindket

Product page data scraped from screenshots by a Gemini agent

Newversion 1 · updated

Overview

An n8n workflow that screenshots product pages listed in Google Sheets through ScrapingBee, has a Gemini agent read titles, prices, brands and promotions, and saves them as rows.

Product page data scraped from screenshots by a Gemini agent is an n8n workflow in the Research category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file there and run it by hand
  • Your own n8n server: the same file and steps
  • Google Sheets: the list of addresses and the results
  • ScrapingBee: the screenshots and the page HTML

Platform

Connects 3 apps

How it works

Trigger

Manual run

It starts when you click Test workflow in n8n:

  • The page addresses, one for each row of the List of URLs tab
  • What to extract, set in the agent’s system message
  • The results tab and its columns, set in the Google Sheets node that creates rows

Actions

  1. The addresses are read from a Google Sheet
  2. ScrapingBee takes a full-page screenshot of each page
  3. A Gemini agent reads the products, prices, brands and promotions from the picture
  4. When the picture is not enough, the agent fetches the page HTML as Markdown through a second route
  5. Each product is added to the Results tab as a row

Result

One row for each product found, with its title, price, brand and promotion

Integrations

What you need before you start.

ScrapingBee

Page fetching

Returns a screenshot or the HTML of each page.

NeedsA ScrapingBee API key

Google Gemini

Vision agent

Reads the products and prices off the screenshot.

NeedsA Gemini API key

Google Sheets

List and results

Holds the addresses to read and receives the rows.

NeedsA Google service account and the sheet’s id

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
11 steps, starting by hand or when another workflow calls it
AI
1 step calls an AI model: Vision-based Scraping Agent
Sign-ins
Signs in to: Google service account, Google Gemini and app.scrapingbee.com
API keys
No API key is left in the file; 1 blank in it for your own key
Step types
Mindket’s checker reads all 8 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow collects product data from web pages by reading their pictures. It takes page addresses from a Google Sheet and asks ScrapingBee for a full-page screenshot of each. A Gemini agent reads the products, prices, brands and promotions off the picture. When the picture is not enough, the agent calls a second route that fetches the page HTML as Markdown. Fourteen nodes run it, beside fifteen sticky notes.

Who it suits

Analysts and shop owners who track prices and promotions across many pages. Skip it if the sites you list forbid scraping in their terms, since that is yours to check.

Who uses it, and how
IndustryWho uses itHow they use itExample
RetailPrice analystsWatch competitor pricesAn analyst lists category pages and reads the prices from one sheet.
E-commerceShop ownersTrack promotionsAn owner sees which brands run a discount and by how much.
MarketingCategory managersCompare product rangesA manager lines up brands and prices across several shops.
ResearchMarket researchersBuild a dataset of listingsA researcher collects hundreds of listings into rows.

You need some n8n and three accounts: import a file, add two credentials, paste a key and an id, and link the second route.

Where to use it

Any n8n that can reach ScrapingBee, Google Gemini and Google Sheets will run it. The results land in the sheet you set.

  • n8n Cloud: import the file there and run it by hand
  • Your own n8n server: the same file and steps
  • Google Sheets: the list of addresses and the results
  • ScrapingBee: the screenshots and the page HTML

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Setup takes a ScrapingBee key, a Gemini key, a Google service account and a two-tab sheet.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
ScrapingBeeAn account and an API key
GoogleA service account with your sheet shared to its address, and a Gemini API key
SheetA tab List of URLs with the header url, and a tab Results with six headers
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add a Google service account credential and select it in the first and the last Google Sheets nodes, the one that gets the list and the one that creates rows. Replace <YOUR_SHEET_ID> in both.
  3. In both ScrapingBee nodes, the one for the page HTML and the one for the screenshot, replace <YOUR_SCRAPINGBEE_API_KEY> with your key.
  4. Add a Gemini credential and select it in Google Gemini Chat Model.
  5. In HTML-based Scraping Tool, choose this same workflow in the Workflow field.
  6. Add a few addresses to List of URLs and click Test workflow.

How to use it

Click Test workflow. Each address becomes a screenshot, and the agent returns its products. Rows appear in Results. Start with two or three pages, since each one costs a ScrapingBee request.

What to change for a different result
To changeWhere
What to extractThe agent’s system message and the example in Structured Output Parser
The columnsThe Google Sheets node that creates rows
The modelGoogle Gemini Chat Model
When it runsThe trigger node

Example

An analyst lists the category pages of two online shops for headphones in List of URLs. The agent reads each page picture.

Each product comes back as a row with its category address, title, price, brand and any promotion, with the discount percentage. Pages that the screenshot does not explain are read again from their HTML.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. An agent is a box that decides which other boxes to use. Here it reads a picture first and calls a second route only when something is missing.

For experts. The agent takes a binary screenshot as its input and calls a tool workflow that sits in the same file. A structured output parser shapes the answer, and a Split Out node makes one item for each product.

Where to look closer
NodeWhat it doesWhat to know
The ScrapingBee screenshot nodeReturns a full-page pictureIt sends screenshot and screenshot_full_page as true
Vision-based Scraping AgentReads the picture and decides on the toolIt calls the HTML route only when something is missing
HTML-based Scraping ToolRuns the second route in this same workflowIts Workflow field is blank until you choose this workflow
Structured Output ParserShapes the answer as a list of productsIts example uses text values and the key promo_percentage

Good to know

Scraping may be against a site’s rules, so check the terms of every site you list and the law where you live.

  • The repair: the model was models/gemini-1.5-pro-latest, and Google’s models and deprecations pages, read on 12 November 2026, list no Gemini 1.5 model. The node names models/gemini-3.8-flash, which the models page lists as Stable with image input
  • The tool: it held the id of another n8n instance’s workflow, so it is blank and you pick this one
  • The columns: the title was written to a column named product_url, and it is product_title now
  • Cost: each page uses one ScrapingBee request for the screenshot, a second when the agent needs the HTML, and the Gemini calls
  • Accuracy: the agent can misread a price, so check the Results tab
  • Not run: this copy was not run against ScrapingBee, Gemini or Google Sheets
  • Your data: the addresses and the screenshots go to ScrapingBee and to Google’s Gemini, and the rows go to your sheet
  • Credentials: the JSON holds none

README and files

README

Product page data scraped from screenshots by a Gemini agent

An n8n workflow that reads a list of page addresses from a Google Sheet and takes a full-page screenshot of each through ScrapingBee. An AI agent on Gemini reads the products, prices, brands and promotions off the picture. When the picture is not enough, the agent calls a second route that fetches the page HTML as Markdown. The result becomes rows in a Results tab.

What is inside

  • workflow.json: the workflow as n8n exports it, twenty-nine nodes: fourteen that do the work and fifteen sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • The credential links are gone. Select your own for the Google service account and Gemini.
  • The model was models/gemini-1.5-pro-latest. Google's models and deprecations pages, read on 12 November 2026, list no Gemini 1.5 model at all. The node now names models/gemini-3.8-flash, which the models page lists as Stable with image input and structured outputs.
  • The ScrapingBee key was already a placeholder, <your_scrapingbee_apikey>. It is <YOUR_SCRAPINGBEE_API_KEY> now in both requests.
  • The screenshot request sent only screenshot_full_page. ScrapingBee's documentation lists screenshot and screenshot_full_page as separate options, and its own example sends both, so this copy sends both.
  • HTML-based Scraping Tool held the id of the author's own workflow. It is blank now. After you import, select this same workflow in it.
  • The sheet id is <YOUR_SHEET_ID>, with the tabs List of URLs and Results.
  • The Create Rows node wrote the product title into a column named product_url. The column is product_title now.
  • The agent's prompt ended with a stray Copy code line and an example that used a true or false value and a number under promo_percent. The parser's example uses text values and the key promo_percentage. The prompt's example now matches the parser.
  • The notes are rewritten. One of them linked to the author's sample sheet, and that link is removed.
  • Nothing else.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • A ScrapingBee account and API key. Its documentation says a request that renders JavaScript, which is the default, costs 5 credits.
  • A Google service account with your sheet shared to its address, and a Gemini API key.
  • A Google Sheet with two tabs. List of URLs has the header url in row 1 and one address per row. Results has the headers category, product_title, product_price, product_brand, promo and promo_percent.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add a Google service account credential and select it in Google Sheets - Get list of URLs and Google Sheets - Create Rows. Replace <YOUR_SHEET_ID> in both and check the tab names.
  3. In ScrapingBee- Get page HTML and ScrapingBee - Get page screenshot, replace <YOUR_SCRAPINGBEE_API_KEY> with your key.
  4. Add a Gemini credential and select it in Google Gemini Chat Model.
  5. In HTML-based Scraping Tool, choose this same workflow in the Workflow field.
  6. Add a few addresses to List of URLs and click Test workflow.

How a run goes

  1. The manual trigger starts Google Sheets - Get list of URLs, which reads the rows.
  2. Set fields keeps the url of each row.
  3. ScrapingBee - Get page screenshot calls ScrapingBee with the address, screenshot and screenshot_full_page set to true and a browser-style User-Agent header. The picture comes back as a file, with the row's JSON beside it.
  4. Vision-based Scraping Agent receives the picture and a message with the address. Its system message asks for the titles, prices, brands and promotions, and says to call the HTML tool only when something is missing.
  5. The tool starts HTML-Scraping Tool in this same workflow with the address as query. Set fields - from AI agent query turns it into url, ScrapingBee- Get page HTML fetches the page, and HTML to Markdown converts it. The data field goes back to the agent.
  6. Structured Output Parser shapes the answer as a list of products, and the agent returns it as output. Split Out makes one item for each product.
  7. Google Sheets - Create Rows adds a row for each. category holds the page address, and promo_percent takes the value of promo_percentage.

Change the look

  • What to extract: the system message of the agent and the example in Structured Output Parser.
  • The columns: the mapping and schema in Google Sheets - Create Rows.
  • The model: Google Gemini Chat Model.
  • The trigger: replace the manual one with a schedule.

Good to know

  • Scraping may be against a site's rules. Check the terms of every site you list and the law where you live. ScrapingBee's terms, read on 12 November 2026, also bar use that breaks a scraped site's own terms.
  • Each page costs one ScrapingBee request for the screenshot and a second one when the agent needs the HTML, plus the Gemini calls.
  • The agent can misread a price, so check the Results tab.
  • This copy was not run against ScrapingBee, Gemini or Google Sheets.
  • The page addresses and screenshots go to ScrapingBee and to Google's Gemini, and the rows go to your sheet.
  • The JSON holds no credential.
Files
NOTICE.md  719 B
README.md  5 KB
workflow.json  23 KB

3 files, 29 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Bonsai-27B-GGUF

lmstudio-community · Kit

A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…

New

Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…

New

MusicGen Small

facebook · Kit

Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…

New

Similar in Research

See all in Research

Merlin-Cancer-Super

AbdomenAtlas · Kit

Detects and outlines tumors in 9 organs on CT scans, trained with the R-Super method that learns from radiology reports. A research model for medical imaging g…

New

EarthJev

dBenf · Kit

Answers typed questions about satellite image patches from all 12 Sentinel-2 bands, returning a probability for each option without writing text. A Qwen3.5-0.8…

New

getting-over-it-rl-jax

zimmerk4 · Kit

Plays the full game Getting Over It from the bottom to the end with a small trained policy network that learned inside a JAX physics simulator. For reinforceme…

New