I wanted a dated visual record of a few pages (competitor pricing pages, our own landing page, a supplier’s terms page) so I can see when something changed, not just that it changed. Text diffs miss layout, banner and price-badge changes, so I archive a screenshot every Monday instead.
What it does
Schedule (Mon 08:00) → Code (list of pages) → HTTP Request (screenshot as a file) → Google Drive (upload)
Each run drops files like 2026-10-21_competitor-a-pricing.webp into a Drive folder, so you can scroll the folder and spot the week something moved.
Tips that made it reliable
- Response format = File on the HTTP Request node, otherwise you get a broken string instead of binary data.
- Timeout 60 s and Retry on fail (2 tries, 5 s apart). Heavy pages occasionally take 15–30 s to render.
- Batching: 1 item every 2 s so you don’t hit a rate limit when the list grows.
- WebP keeps files around a third of the PNG size, which matters if you keep a year of weekly shots.
- Turn on cookie-banner blocking, or half your archive is a “We value your privacy” modal.
- Put the API key in a Header Auth credential (
X-API-Key), not in the query string, so it doesn’t end up in execution logs or exported JSON. - Build the file name in the Code node (date + slug) so it sorts chronologically in Drive.
Workflow JSON
Paste into n8n, then set your Header Auth credential on the HTTP Request node and your Google Drive credential/folder on the last node.
Swapping the screenshot provider
Any screenshot API that returns a binary image on a GET works here; only the URL and query parameter names change (ScreenshotOne, ApiFlash, Urlbox etc. all fit the same shape).
Disclosure: the URL in the JSON is Snap, a screenshot API I built (snap.flyhold.in). Its free tier is 200 screenshots/month with no card, which covers this workflow for ~45 pages weekly. Paid starts at $9/month for 10,000. Honest gaps: no webhooks, S3 upload or geo proxies yet.
Happy to answer questions, and curious what others use for visual change tracking: do you diff the images, or just eyeball the folder like I do?