DEV Community

Cover image for Screenshot every URL in a Google Sheet to Google Drive with Zapier
Dennis
Dennis

Posted on Fully Autonomous

Screenshot every URL in a Google Sheet to Google Drive with Zapier

Written by the SnapRender team. SnapRender is the screenshot service used in this guide; its free plan covers 200 screenshots a month.

Plenty of jobs start with a list of URLs in a spreadsheet: a site audit, a list of client homepages, competitor landing pages, links someone wants archived before they change. The tedious part is opening each one, taking a screenshot, naming the file and dragging it into the right folder.

This guide builds a Zap that does it for you. Add a URL to the sheet, and a minute or two later a screenshot of that page is sitting in a Google Drive folder, named after the row.

The Zap has three steps:

  1. Google Sheets: New Spreadsheet Row (the trigger)
  2. SnapRender: Take Screenshot (renders the page and returns a file)
  3. Google Drive: Upload File (saves the file)

What you need

  • A Google account with Sheets and Drive.
  • A Zapier account. Three-step Zaps need a paid Zapier plan; Zapier's free plan runs two-step Zaps only. (If you want a free two-step version, see the end of this post.)
  • A SnapRender account and API key. Sign up at app.snap-render.com with Google, GitHub or email. The key is on the API keys page of the dashboard and starts with sk_live_.

SnapRender for Zapier is in beta while Zapier reviews it for its public app directory. Until it is listed, you add it to your Zapier account with this invite link:

Add SnapRender to Zapier

Open it, sign in to Zapier and accept. SnapRender then shows up when you search for it in the Zap editor, like any other app.

Step 1: set up the sheet

Create a sheet with a header row. Two columns are enough:

Name URL
acme-home https://example.com
acme-pricing https://example.com/pricing

The Name column becomes the file name in Drive. Zapier needs the header row to know what the columns are called, so do not skip it.

Step 2: the trigger

In Zapier, click Create, then Zaps.

  1. For the trigger, choose Google Sheets and the event New Spreadsheet Row.
  2. Connect your Google account.
  3. Pick the Drive, Spreadsheet and Worksheet you just made.
  4. Click Test trigger. Zapier pulls in one of your rows so you can map its columns in the next steps.

Zapier checks the sheet for new rows every few minutes; how often depends on your Zapier plan. Add rows at the bottom of the sheet, since that is where the trigger looks.

Step 3: take the screenshot

  1. Add an action, search for SnapRender and choose Take Screenshot.
  2. Zapier asks you to connect SnapRender. Paste your API key. The connection is named after your plan (for example "Free plan"), which helps if you ever connect more than one account.
  3. Fill in the fields:
    • Page URL: map the URL column from step 1.
    • Format: PNG keeps text sharp. Choose PDF if you want a printable document, or JPEG or WebP for smaller files.
    • Full page: Yes, if you want the whole scrollable page rather than just the first screen.
    • File name: map the Name column. Leave it empty for an automatic name.
  4. Leave the rest at the defaults for now. Ads and cookie banners are removed before the capture by default (Block ads and Hide cookie banners are both on), and the window is a 1280 x 800 desktop.
  5. Click Test step.

The test returns a File field plus details such as Size (bytes), Page URL and Captures Remaining This Month. The File field is what the next step uploads.

A few options worth knowing about:

  • Device renders the page as an iPhone 14, iPhone 15 Pro, Pixel 7, iPad Pro or MacBook Pro shows it. Useful for checking mobile layouts.
  • Dark mode asks the page for its dark theme, if it has one.
  • Hide elements takes CSS selectors (comma separated) for things you want gone, such as a chat widget.
  • Delay (ms) waits a little after the page loads, for animations or content that loads late. Keep it short: Zapier stops any step after 30 seconds, and Take Screenshot gives the page 25 of those.

Step 4: upload to Google Drive

  1. Add another action: Google Drive, event Upload File.
  2. Connect your Google account and pick the Drive and Folder the screenshots should go to.
  3. For File, map the File output of the SnapRender step.
  4. Click Test step and check the folder. You should see a file named after your row.

Turn the Zap on, add a new row to the sheet, and the screenshot appears in Drive a few minutes later.

Variations

A PDF archive instead of images. Set Format to PDF and Full page to Yes. Each PDF keeps the page address in its document properties, which helps when you look at the file months later and wonder where it came from. (That is the Embed capture details option, on by default.)

Phone screenshots for a mobile audit. Set Device to iPhone 15 Pro. The device sets its own screen size, so Width (px) and Height (px) are ignored.

Many URLs at once. If you paste 30 rows at once, the Zap runs 30 times, which is fine. If you would rather send one job for a whole list, use the Batch Screenshots action instead: it takes up to 50 URLs, one per line, and returns a download link for each page. Those links stay valid for 24 hours.

A free two-step version

If your list of pages is short and does not change often, you can skip the sheet and let SnapRender do the scheduling. Add each page on the Schedules page of your SnapRender dashboard (every day or every week), then build a two-step Zap, which runs on Zapier's free plan:

  1. SnapRender: New Scheduled Capture (leave Schedule empty to run for every page you watch)
  2. Google Drive: Upload File, with File mapped to Screenshot Download Link

That download link expires after an hour, but it does not matter here: Zapier downloads the file when the step runs. The free SnapRender plan holds 1 daily or weekly schedule; Starter holds 5 and adds hourly captures.

Cost

On the SnapRender side, each screenshot uses one capture from your monthly allowance. The free plan has 200 a month; paid plans start at $9 for 2,000. Failed captures are not counted. If you run out, the step stops with a message that says so and the Zap stays on, ready for the next month.

On the Zapier side, each step that runs counts as a Zapier task, billed by Zapier.

Troubleshooting

  • TARGET_UNREACHABLE: the page could not be reached. Check that the URL opens in a private browser window. SnapRender captures public pages only, so anything behind a login or on localhost will not work.
  • CLIENT_TIMEOUT: the page took longer than Zapier allows. Lower Delay (ms), or turn off Full page for very long pages.
  • A security check instead of the page ("Just a moment..."): the site's firewall does not recognize SnapRender. If it is your own site, one rule lets SnapRender through: allow SnapRender on your site.

The setup page, with seven more Zap recipes and every trigger and action explained, is here: SnapRender for Zapier.

Top comments (0)