ScreenshotNeo

BlogHow-to

How to Generate Website Thumbnails for a List of URLs in Airtable

Generate a screenshot for each website URL in Airtable, save it to an attachment field, and understand when you need external image hosting.

By the ScreenshotNeo team4 October 20267 min read

To generate website thumbnails for arbitrary URLs in Airtable, capture each page with a screenshot service and save the resulting image to an Airtable attachment field. Airtable’s URL preview extension is for a defined set of supported link types, such as YouTube, Vimeo, Spotify, Figma, Loom, Google Drive, and Google Docs, Sheets, and Slides. Arbitrary website URLs are not on that list, and a source site can also prevent embedding. A screenshot is a generated image file, rather than a live webpage preview. Airtable’s URL preview documentation explains the supported types and embedding limitation.

1. Choose between a live preview and a thumbnail

Use Airtable’s URL preview extension when the URL is one of its supported types and you want to interact with an embedded item. It requires a URL field and displays the preview for the selected record or configured field. A button field can also open that preview for a record when the extension is configured to use a specific URL field. This still does not generate screenshots for arbitrary sites. Airtable’s button field documentation describes the Preview URL action.

For one screenshot image per website record, use a screenshot capture workflow. You can store the image in an Airtable attachment field for use inside the base. If you need a stable public image URL for a website or email, plan for external image hosting: Airtable says attachment download links are temporary and discourages using Airtable as a CDN. Airtable’s attachment URL guidance says download URLs stay active for at least two hours, while the exact window may change.

2. Set up the Airtable table

  1. Create a table with one record for each website.
  2. Add a URL field, for example Website URL, and put the page to capture in each record.
  3. Add an Attachment field called Thumbnail.
  4. Optionally add fields such as Capture status, Last captured, and Capture note so you can track retries and stale results.
  5. Create a view such as URLs without thumbnails, filtered to records where the URL is not empty and the thumbnail is empty. A vendor-documented Airtable workflow uses this kind of view to process records that have not yet been captured. Urlbox’s Airtable workflow example shows a screenshot-to-attachment setup using Zapier.

3. Generate thumbnails from Airtable records

A no-code route is to connect the Airtable view to an automation tool, pass each record’s URL to a screenshot service, then map the generated image into the matching record’s attachment field. Urlbox documents this pattern using Zapier: trigger on Airtable records, create a screenshot from the mapped URL, and update the originating record with the screenshot output. Treat this as one documented implementation option; service pricing, limits, and compatibility depend on the tools and account configuration you choose.

Example workflow with an automation tool

  1. Set the trigger to new or eligible Airtable records from the view you created. Select the base, table, and view.
  2. Add a screenshot action and map the Airtable Website URL value to its URL input.
  3. Choose the capture settings you need. For a normal thumbnail, use a consistent viewport across records. If you need a mobile image or a full-page capture, treat it as a separate output and attachment field.
  4. Add an Airtable update-record action. Map the record ID from the trigger, then map the screenshot output to Thumbnail.
  5. Run the workflow on a small set of records first. Confirm that the screenshot is an image attachment on the correct records before processing the rest.

The Urlbox example also describes separate capture actions for mobile viewport, full-page screenshots, and a CSS selector such as h1. Those are useful when your table needs multiple views per site, but each output should map to its own attachment field. The sources do not establish a universal capture success rate or a standard batch size.

Batching and repeat captures

For a large list, process eligible records in manageable groups and avoid triggering duplicate work for records that already have a thumbnail. Keep the source URL and capture result associated with the same record ID; otherwise a delayed run can attach an image to the wrong website. To refresh thumbnails, use a separate view or status field to select only records that need recapturing. The exact scheduling, batch throughput, and automation limits depend on the services and plan you configure.

4. Display and share the resulting images

An attachment field makes the generated image part of the record, so teammates can view it in Airtable. Airtable automations can include existing attachment images in the email attachment area. For an image embedded inline in an email body, Airtable says to use a publicly hosted image URL; an attachment image token renders as an expiring link. Airtable also says there is no native way to render an interface page, dashboard, or view as an image and insert it into an automated email. Airtable’s Send email documentation explains these distinctions.

Do not treat a download URL returned for an Airtable attachment as a permanent public image address. Those links expire; Airtable recommends copying files to external hosting or using an integration or code when a durable external link is needed. Use Airtable attachment storage for record-level display, and an appropriate external host for long-lived public delivery.

5. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. Call its API with a URL to receive a screenshot; use an automation or your own integration to put that image into the matching Airtable attachment field. See the ScreenshotNeo API documentation for parameters and response handling.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
    timeout=90,
)
r.raise_for_status()
with open("shot.webp", "wb") as f:
    f.write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const bytes = Buffer.from(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', bytes));

Replace the example URL with the Airtable record’s URL in your integration. These examples save the returned image; connecting that image to the correct Airtable attachment field is a separate integration step. ScreenshotNeo removes cookie and consent banners, newsletter popups, and chat widgets before capture; each cleanup step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers identify the page verdict and billing status. It also provides MCP tools for AI agents. The free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Every feature is on every plan.

Create a free ScreenshotNeo account for 1,000 screenshots per month with no card.

6. Troubleshooting

Symptom Likely cause What to do
URL preview shows no content The URL type is unsupported, the record is not selected, or the source blocks embedding. Use the preview extension only for supported URL types. For arbitrary websites, capture a screenshot image instead. If the source blocks embedding, Airtable says the source owner must change its settings.
Screenshot is attached to the wrong record The update step used a different record reference than the triggering record. Map the record ID from the same trigger record into the update action, and verify with a small run before processing the view.
Attachment field stays empty The screenshot action did not return a usable image, or the update mapping is missing or points to the wrong field. Inspect the automation step output, confirm it produced an image, then check the target table, field, and record mapping.
Thumbnail is blank or incomplete The target page may load content late, require interaction, or prevent automated capture. Try a wait condition or delay if your capture service supports it, and test the page directly. Some sites may not allow automated capture; there is no universal workaround.
Public image link stops working The URL is an expiring Airtable attachment download URL. Copy the image to appropriate external hosting and store that stable URL separately if public delivery is required.
Duplicate screenshots are generated The trigger view still includes records that were already processed, or the automation retried a record. Filter for empty thumbnail fields and track capture status. Make retries deliberate and confirm whether replacing the existing image is intended.

7. Performance, reliability, and cost

  • Capture time: page complexity, delayed assets, and wait settings affect how long each screenshot takes. A fixed, appropriate viewport and only the waits you need help keep work bounded.
  • Reliability: process records with a clear eligibility view, preserve record identity through the workflow, and record failures for later retry. A screenshot is a point-in-time artifact; recapture when the source changes if freshness matters.
  • Storage and sharing: Airtable attachments suit record-level browsing, but Airtable download links are temporary. Use external hosting if the image needs a durable public URL.
  • Cost: account for the screenshot service and any automation service separately. The Airtable/Urlbox example does not establish current pricing, plan limits, or batch throughput. ScreenshotNeo offers 1,000 screenshots monthly free with no card; paid plans are $5 for 3,000, $15 for 15,000, $39 for 60,000, $99 for 250,000, and $249 for 1,000,000. Yearly billing gives two months free.

Frequently asked questions

Can Airtable automatically screenshot every URL just by adding a URL field?

No. A URL field stores the address. Generating a screenshot requires a capture workflow or service that creates an image and writes it to an attachment field.

Can I use the URL preview extension for any website?

No. Airtable documents specific supported URL types, and the source site can block embedding. A generated screenshot is the suitable pattern for arbitrary website thumbnails.

Can I use Airtable attachment URLs in a public website indefinitely?

Do not assume so. Airtable says attachment download URLs expire and discourages using Airtable as a CDN. Store a separate copy with a suitable external host when durable public access is required.

Can the thumbnail show a mobile view or just one page element?

Yes, when the screenshot workflow supports viewport and selector settings. Keep separate attachment fields for distinct outputs, such as mobile, full-page, or element captures.