ZenRows
Developer ToolsScrape any web page through the ZenRows Universal Scraper with rotating proxies and anti-bot handling built in. Agents fetch raw HTML, extract structured JSON with CSS selectors or autoparse, render JavaScript-heavy pages, geo-target through residential proxies, and capture PNG screenshots.
What This Integration Enables
The public web is the largest dataset your agents will never get an API for, and the pages worth watching are exactly the ones defended hardest. ZenRows exists for that fight: one Universal Scraper call that absorbs rotating proxies, anti-bot handling, and browser rendering so your workflow logic never has to know the target resisted. FlowRunner agents point Scrape URL at a page and choose the shape of what comes back: raw HTML for downstream parsing, structured JSON through CSS Extractor or Autoparse, or a PNG screenshot of the rendered page for evidence and archival. That single action carries an unusual amount of orchestration weight: - Scheduled monitoring sweeps that extract prices, stock states, and listings as structured JSON, not HTML soup - Rendering for JavaScript-heavy targets, with Wait and Wait For to let the data actually arrive before capture - Geo-targeted requests through Premium Proxies and a Proxy Country when the page shows different truth in different markets - Screenshot capture that turns "the page said so" into an artifact you can file with the decision it drove The [human-in-the-loop](/concepts/human-in-the-loop) discipline matters here because scraping has a real meter running. Standard requests are cheap; rendered, residential, geo-targeted requests are not. Agents do the fetching and the diffing at machine speed, and the escalations that multiply cost wait for a person.
Without FlowRunner
With FlowRunner
Use Case Scenarios
The price watch that survives redesigns
A pricing analyst maintains a watchlist of competitor product pages in [Google Sheets](/integrations/google-sheets). Every night the agent walks the list with Scrape URL, using CSS Extractor to pull price, stock, and promo badge into clean JSON. New values append to the tracking sheet next to yesterday's, and any move beyond the configured threshold posts to [Slack](/integrations/slack) with the delta called out. When a competitor ships a redesign and a selector comes back empty, the agent retries with JavaScript Rendering, and if the field is still missing it flags the row for a selector update instead of writing a blank. The sheet never silently rots, which is the failure mode that kills most price monitoring.
Unstructured pages become CRM records
A market research agent receives a list of company websites from a conference attendee export. For each domain, Scrape URL fetches the homepage and about page, and the HTML goes to [Anthropic](/integrations/anthropic-ai) to extract company size signals, product category, and named executives into structured fields. The result lands in [Attio](/integrations/attio) as an enriched company record with a note citing the source URL. Pages that render client-side get a second pass with JavaScript Rendering enabled. What used to be an intern-week of copy-paste becomes an overnight run with a review queue.
Proof the page said what you claim it said
A marketplace compliance team needs to verify how partner listings appear to buyers in specific countries. On a weekly schedule, the agent calls Scrape URL with Premium Proxies and the Proxy Country set per market, JavaScript Rendering on, and Screenshot enabled. Each run produces a PNG of the rendered page exactly as a local buyer would see it, filed to storage with the timestamp and URL. When a partner disputes a takedown, the team responds with the screenshot, not a recollection. The geo-targeted runs cost multiples of a standard request, so the market list itself is reviewed and approved by a person each quarter.
Human-in-Loop Highlight
Scrape URL is one action with two very different price tags. A standard fetch sips from the credit pool; the same call with JavaScript Rendering, Premium Proxies, and a Proxy Country drinks from it, and a monitoring agent that auto-escalates every blocked page can burn a month of scraping budget on one stubborn target overnight. So in FlowRunner, the escalation is a decision, not a default. The agent presents the blocked queue: "14 of 120 pages returned anti-bot challenges. Escalating them to residential proxies with rendering will cost roughly 25x the standard rate per page. Approve all, approve a subset, or drop?" A person picks which pages are worth premium treatment, and the agent runs exactly that list. The spend that cannot be recalled gets a human signature before it happens.
Agent Capabilities
1 actionsUniversal Scraper
1- Scrape URL Scrapes any web page through the ZenRows Universal Scraper API, with rotating proxies and anti-bot protection handled automatically. Returns page HTML by default, or structured JSON when CSS Extractor, Autoparse, or JSON Response is enabled. JavaScript Rendering runs dynamic and single-page-app targets like a real browser, Wait and Wait For hold capture until the content actually loads, and Premium Proxies with a Proxy Country route the request through residential IPs in a chosen market. With Screenshot enabled, the response is a PNG image of the rendered page, which requires JavaScript Rendering. One action, every mode of reading a page that does not want to be read.
Frequently Asked Questions
What can FlowRunner do with ZenRows?
FlowRunner agents can run Scrape URL in ZenRows.
Does connecting ZenRows to FlowRunner require OAuth?
No. ZenRows connects to FlowRunner with an API key, no OAuth flow required.
Can ZenRows trigger a FlowRunner workflow automatically?
ZenRows doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with ZenRows
$100 in credits. No card required. Connect in minutes.