Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
FREEDOM251

Freedom251 › Blog › Automation

How to Capture Screenshots of Several URLs from Google Sheets with n8n

By Freedom251 Team · · 6 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use a Google Sheets node to read one URL per row, an n8n HTTP Request node to capture each page as a file, and Google Drive (or another storage service) to save the screenshots. You can then write each file link and its status back to the matching sheet row. The API request itself depends on the screenshot provider; the workflow below uses ScreenshotNeo as a concrete example.

What you need

  • An n8n workflow with access to Google Sheets and your chosen file destination.
  • A spreadsheet with a header row and a column named url. Add columns such as status, screenshot_url, captured_at, and error if you want to record results.
  • A screenshot service API key. Store it in n8n credentials rather than embedding it in a URL or a sheet.
  • A stable row identifier, or the original row number, so the workflow can update the correct record after capturing a screenshot.

Build the workflow with n8n’s core nodes

1. Read URL rows from Google Sheets

Add a Google Sheets node and choose Get Row(s). Select the spreadsheet and tab that contain the URLs. When reading all rows, n8n treats the first row as the header row; the node returns all rows by default, and its filters can limit which records are read. See the Google Sheets node documentation.

As an Amazon Associate I earn from qualifying purchases.

Keep the row key available through the rest of the workflow. If you plan to update the original sheet, use the same stable identifier or row number to match the capture result to its source record.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

2. Exclude empty URLs and completed rows

Place a filter or conditional step after the Sheets node. Continue only when url contains a valid URL and status is blank or pending. This reduces accidental captures when the workflow runs again. Decide what counts as a valid URL for your sheet, and route invalid or missing values to an error/status update rather than sending them to the screenshot API.

3. Request one screenshot per URL

Add an HTTP Request node and configure it for your provider’s endpoint, authentication, and URL parameter. For ScreenshotNeo, use the endpoint shown in the code block below. Configure the request to return a file, not parsed JSON: in the HTTP Request node, select Response Format → File and enter a name under Put Output in Field, for example screenshot. n8n’s documentation covers query parameters, credentials, batching, and the file response option in its HTTP Request node reference.

For a provider other than ScreenshotNeo, use its current API documentation to determine the endpoint and parameter names. Keep authentication in an n8n credential where the provider and node configuration allow it. Do not assume that one provider’s request syntax works with another.

4. Upload the binary file

Connect a Google Drive upload node, or another file destination, and select the binary property returned by the HTTP Request node (such as screenshot). Keep that property name consistent between the request and upload nodes. Build a safe filename from a row identifier and a sanitized domain or title; avoid using an untrusted URL directly as a filename. If you need a shareable link, check the destination’s permissions: a Drive link only works for people allowed to access that file.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

5. Write the result to the matching sheet row

After a successful upload, update the source row with the Drive link or other file reference, a success status, and optionally the capture time. On failure, store a concise error or failure status for that row. Configure the workflow so one failed URL does not prevent later rows from running, if your n8n error-handling setup supports that behavior.

Configure the ScreenshotNeo request in n8n

In the HTTP Request node, use GET with https://api.screenshotneo.com/v1/shot. Add query parameters for access_key and url; map url to the current row’s URL using the expression picker. Store the API key as a credential or other protected secret rather than hard-coding it into the workflow expression. Set the response format to File and the output field to screenshot.

ScreenshotNeo accepts one URL per request and returns a screenshot as PNG, JPEG, or WebP, or a PDF. Its API supports options such as full-page capture, viewport and device presets, waiting for a selector or network idle, and blocking selected requests; consult the ScreenshotNeo API documentation for the exact parameter names and supported settings. The example below uses the default image output and passes only the row URL and API key.

Alternative: use an n8n community node or template

The core HTTP Request approach works with a screenshot provider that exposes an API and avoids depending on a provider-specific community node. If you prefer a prebuilt workflow, n8n publishes a template that watches Google Sheets rows, captures screenshots with the CustomJS PDF Toolkit, and uploads them to Google Drive. Its stated requirements include a self-hosted n8n instance, a sheet containing URLs and titles, a Drive folder, a CustomJS API key, and Google credentials. The template says community nodes can only be installed on self-hosted n8n instances, so confirm hosting compatibility before choosing this route: n8n’s Google Sheets-to-Drive screenshot template.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a provider-neutral spreadsheet read, Google’s lower-level Sheets API has a spreadsheets.values.get method, but most n8n workflows can use the built-in Google Sheets node instead: Google Sheets API reference.

Scale the workflow without losing track of files

  • Start with a small sample. Confirm that the sheet mapping, file response, upload, and row update all work before processing a large list.
  • Use modest batching or delays. The HTTP Request node exposes batching controls. Choose a rate that fits your provider’s limits and your n8n host capacity; the cited documentation does not establish a universal throughput figure.
  • Control output size. Use only the screenshot dimensions and page coverage your task needs. Full-page captures and larger images can increase the amount of binary data handled by the workflow.
  • Consider binary execution storage. Large batches of image files can consume n8n storage or memory depending on your configuration. Site-Shot’s n8n screenshot tutorial gives vendor-specific guidance about binary handling; its recommendations and resource estimates are not universal guarantees.
  • Make reruns safe. Filter out completed rows, keep a stable row key, and decide whether a rerun should replace an existing screenshot or create a new file.
  • Keep credentials out of sheet data. Do not place API keys in URL cells or user-editable workflow fields.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting

The screenshot API returns an error instead of an image

Check the endpoint, authentication credential, and URL parameter against the provider’s current API documentation. Confirm the expression resolves to the URL in the current row, not a blank value or literal expression text.

The HTTP Request node output is not available to the Drive node

Check that Response Format is set to File and that Put Output in Field has a name. Select that exact binary property in the upload node; a mismatch in field names breaks the handoff.

The workflow processes blank or already completed rows

Add a condition before the HTTP Request node that checks for a non-empty URL and a pending or blank status. Verify that the column names match the sheet headers exactly as n8n reads them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The screenshot is saved but the sheet is not updated

Check that the writeback node uses the same stable row identifier or original row number retained from the read step. Also confirm the Google credential has permission to edit the selected spreadsheet.

Drive links do not open for recipients

Review the uploaded file’s sharing settings and the destination folder’s permissions. A stored link does not grant access by itself.

Large runs are slow or strain the n8n host

Reduce batch size, add a modest delay, or lower capture dimensions and page coverage. Inspect how your n8n instance stores binary execution data, then test a representative batch before scaling up.

Or skip the browser setup

Instead of configuring page rendering yourself, send each sheet URL to ScreenshotNeo’s screenshot API. The example uses the API’s GET endpoint; replace the example URL with the current row’s URL when you configure your n8n request.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before capture. Bot checks, blank pages, and failed loads are never billed. Its MCP server lets AI agents take screenshots, and the free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000. Every feature is available on every plan. See the API documentation for request options, then sign up for 1,000 free screenshots a month with no card.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

AutomationGoogle Sheetsn8nScreenshotNeowebsite screenshots

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.