# Web Scraper for Salesforce: The Ultimate Plug-and-Play Template (No Code Required) > Source: https://scrape.do/blog/salesforce-web-scraper/ Published: 2026-05-06 · Updated: 2026-05-06 · Authors: Bugrahan Saka · Categories: Scraping Use Cases, Scraping Tools If you live inside Salesforce, you already know the pain: the data you need is *out there* on the web — competitor pricing, supplier catalogs, lead enrichment sources, public listings — but getting it *into* your CRM means exports, spreadsheets, third-party tools, and a lot of copy-paste. And if you've ever tried to scrape that data yourself, you've hit the next wall: anti-bot protection, CAPTCHAs, IP bans, and JavaScript-heavy pages that return empty HTML. Building a reliable scraper is a project on its own — let alone wiring it into Salesforce. So we built a template that does it for you. The **Scrape.do Web Scraper for Salesforce** is a free, installable package that adds a no-code scraping flow directly to your org. You paste a list of URLs, hit run, and every page is fetched through [Scrape.do's rotating-proxy infrastructure](https://scrape.do) and saved as a record in Salesforce — status code, full content, and all. No Apex to write, no middleware, no external automation platform. Here's how to set it up in about five minutes. ## What You'll Get After installing the package, your org will have: - A **Screen Flow** ("Scrape do Bulk Scraper") where you paste one or more URLs. - A **custom object** ("Scraped Page") that stores each result — source URL, status, status code, and the full page content. - The Scrape.do API call handled entirely behind the scenes. Because every result is a native Salesforce record, you can report on it, build list views, trigger follow-up automation, or export it to CSV/Excel — exactly like any other CRM data. ## Prerequisites You need two things: 1. **A Scrape.do API token.** If you don't have one yet, [sign up for free](https://dashboard.scrape.do/sign-up) — the free tier includes 1,000 successful requests per month, no credit card required. Copy your token from the dashboard; you'll paste it in during setup. 2. **A Salesforce org where you can install packages.** A Developer Edition org works perfectly (and is free). You'll need permission to install unmanaged packages. That's it. No coding skills required. ## Step 1 — Install the Package Click the installation link below while logged into your Salesforce org: **[Install the Scrape.do Web Scraper package →](https://login.salesforce.com/packaging/installPackage.apexp?p0=04tfj000000KT13)** Salesforce will walk you through a standard install screen: 1. Choose **Install for All Users** (recommended) so anyone in your org can run the flow. 2. When prompted to **approve third-party access** to `api.scrape.do`, check the box — this is what allows the flow to reach Scrape.do. The package ships with the required Remote Site Setting, so there's nothing else to configure here. 3. Click **Install** and wait for the confirmation screen. The package installs everything you need: the flow, the custom object and its fields, the Apex that powers the callout, and the settings table for your token. ## Step 2 — Add Your Scrape.do API Token The package deliberately ships **without** an API token — so you (and only you) control which account the requests run on. Adding yours takes 30 seconds: 1. Go to **Setup → Custom Metadata Types**. 2. Next to **Scrape Do Settings**, click **Manage Records**. 3. Click **New**. 4. Fill in: - **Label:** `Default` - **API Token:** *paste your Scrape.do token here* 5. Click **Save**. > **Important:** The record **must** be named `Default` — that's the name the flow looks for. If you skip this step, the flow will tell you no token is configured. ## Step 3 — Run the Scraper 1. Open **Setup → Flows** and click **Scrape do Bulk Scraper** (or add it to any page, app, or button — it's a standard Screen Flow). 2. On the first screen, paste your URLs — **one per line**: ``` https://books.toscrape.com https://example.com/product/123 https://news.ycombinator.com ``` 3. Click **Next**. The flow fetches each URL through Scrape.do, then shows you a summary: ``` 3 page(s) scraped and saved. OK [200] https://books.toscrape.com OK [200] https://example.com/product/123 OK [200] https://news.ycombinator.com ``` Every line tells you whether the page was fetched successfully and what status code came back. Because Scrape.do only charges for successful requests, a `FAIL` line never costs you a credit. ## Step 4 — Use Your Scraped Data Each scraped page is now a real Salesforce record under the **Scraped Page** object. Open any record and you'll see: - **Source URL** — the page that was requested - **Status** — `OK`, `FAIL`, or `ERROR` - **Status Code** — the HTTP code returned - **Content** — the full page content (HTML or JSON), ready to parse, search, or feed into downstream automation From here you can do anything Salesforce lets you do with a record: - Build a **report or list view** of everything you've scraped - **Export to CSV/Excel** straight from Reports - Trigger a **follow-up flow** when new pages arrive (e.g., extract a price field, update a related record) - Reference the content in **Apex, formulas, or other flows** The web data now lives where your team already works. ## How It Works Under the Hood For the curious, here's the architecture — though you never have to touch any of it. When you submit your list, the flow passes it to a small Apex action. For each URL, the action builds a Scrape.do request: ``` https://api.scrape.do/?token=YOUR_TOKEN&url=ENCODED_TARGET_URL ``` Scrape.do handles the hard part — rotating residential proxies, retry logic, headless-browser rendering when needed, and bypassing the anti-bot systems that would otherwise return empty or blocked responses. The raw response comes straight back, and the Apex action writes a `Scraped Page` record with the status, code, and content. Your token is read from a Custom Metadata setting rather than hardcoded, which is why the same package works for everyone without exposing anyone's credentials. ## Make It Your Own This template is intentionally simple so it's easy to extend. A few popular tweaks: - **JavaScript-heavy sites:** add `&render=true` to the endpoint in the Apex action to render pages in a headless browser before scraping. - **Geo-targeting:** add `&geoCode=us` (or any supported country) to fetch the page as if from a specific location. - **Auto-parsing:** chain a record-triggered flow on `Scraped Page` to pull specific fields (price, title, stock status) out of the content into structured columns. The full Scrape.do parameter reference is in the [documentation](https://scrape.do/documentation/). ## Wrapping Up Web scraping inside Salesforce used to mean Apex, middleware, or giving up and exporting spreadsheets by hand. With this template, it's a paste-and-click operation that any admin can run — backed by infrastructure that actually gets through. Install the package, drop in your token, and start pulling web data into your CRM today. [**Get started with Scrape.do for free**](https://dashboard.scrape.do/sign-up)