---
title: "ParseHub Integration"
description: "ParseHub is a visual web scraping tool. Workflows run the projects you built in the ParseHub client, pass parameters into them, and collect the extracted data when a run is ready."
url: https://flowrunner.ai/integrations/parsehub
date_modified: 2026-09-04T14:59:52-07:00
---

# ParseHub

[Developer Tools](https://flowrunner.ai/integrations/category/developer-infrastructure)

ParseHub is a visual web scraping tool. Workflows run the projects you built in the ParseHub client, pass parameters into them, and collect the extracted data when a run is ready.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 9 actions · API key · available

[ParseHub website](https://parsehub.com/) · [Platform Documentation](https://www.parsehub.com/) · Capability data verified 2026-08-25

1.  A schedule fires the weekly supplier and competitor sweep
2.  Run Project starts a saved project with a start value override for this week's region
3.  Get Run reports progress, polled sparingly because ParseHub rate limits tightly
4.  The finished run is checked for success and for data separately, because those are different answers
5.  Download Run Data stores the result as a file rather than as a flow variable
6.  The rows load into the warehouse, keyed on the run's checksum so unchanged results are skipped
7.  A run that failed but still returned partial data stops here for the analyst to accept or discard

## What This Integration Enables

The ParseHub project is a human artifact and this page will not pretend otherwise. Somebody sat in the desktop client, clicked through the target site, and taught it which elements matter, which links to follow, and where the pagination is. That work is judgment, it holds up well against messy pages, and no API replaces it. FlowRunner does not build the project. It runs it, parameterizes it, and gets the results to where the decision happens.

The operation that makes this more than a scheduled button press is the starting scope override on Run Project. It sets the run's starting global values, which means one project can be pointed at a different search term, region, or category on every run instead of being duplicated once per variation. The rest of the [connector](https://flowrunner.ai/concepts/connectors) is about collecting what came back honestly: polling within the rate limit, reading the two status answers separately, storing large results as files rather than variables, and using the run's checksum to skip work when nothing actually changed. The [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) moment is the one place a scraping pipeline usually goes quietly wrong.

### Without FlowRunner

**The scraper runs when somebody remembers**: A project built once gets run by hand, on no particular schedule, by whoever needs the data

**One project per variation**: Running the same extraction against a new region or search term means duplicating the project

**Partial results treated as complete**: A run that errored halfway still returns rows, and a downstream check sees data and proceeds

### With FlowRunner

**The scraper runs on the calendar**: Runs fire on schedule and the results reach the systems that use them without a person in between

**One project, many parameters**: The starting scope is supplied per run, so a single project covers every variation

**Success and data are checked separately**: A run that did not succeed does not silently become this week's numbers

## Use Case Scenarios

### One project, every market

The pricing team maintains a single ParseHub project for a retailer's catalog pages. Each week the agent calls Run Project once per region with a different start value override, so the same extraction logic covers every market without a copy of the project per country. It polls Get Run at a sensible interval, because ParseHub answers with a rate limit error to a tight loop, then reads the results. Rows land in [BigQuery](https://flowrunner.ai/integrations/bigquery) or [Google Sheets](https://flowrunner.ai/integrations/google-sheets) tagged by region, and the week over week movers post to [Slack](https://flowrunner.ai/integrations/slack).

### The scheduled project you never poll at all

For projects that already run on ParseHub's own schedule, there is nothing to start and nothing to wait for. The agent calls Get Last Ready Data, which returns the most recent completed run's results directly with no run token, no polling loop, and no rate limit risk. That single call is the whole integration for this pattern. The one thing the workflow has to remember is that it returns the last ready data, so it deliberately checks the run timestamp rather than assuming freshness, which also catches a scheduled project that quietly stopped running.

### Large extractions that stay files

A catalog sweep returns far more than a workflow wants to carry around as a variable, and a CSV is unusable as one in any case. Download Run Data fetches the run's output and stores it in FlowRunner file storage, decompressed, returning a URL. A later step attaches it to an email, uploads it to [Snowflake](https://flowrunner.ai/integrations/snowflake), or drops it into the review folder for the analyst. If the run was started for a one off question and the data is sensitive, the workflow calls Cancel Run and then Delete Run once the file is stored, in that order, because deleting does not cancel a run that is still going.

## Human-in-Loop Highlight

ParseHub reports two things about a finished run and they do not agree as often as you would expect. Whether it succeeded, and whether it has data. A run that was stopped early or errored can still carry the rows it managed to collect before it stopped, which is why the connector surfaces those as separate answers rather than one. The failure mode this creates is specific and quiet: a workflow that branches on whether data came back happily ingests half a competitor catalog and publishes it as this week's complete price list. The missing products look like delistings. Nobody sees an error anywhere. So when a run comes back unsuccessful with data attached, the agent stops and hands over the comparison it already has: "Run 8841 on the DE catalog ended in error with 412 rows. Last week's successful run had 1,096, and the checksum differs from every previous run. Accept as partial, rerun, or hold the pricing update?" The analyst decides. Machines are good at noticing the row count moved. Deciding whether that is a market event or a broken scraper is not a machine's call.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

9 actions

### Projects

2

-   **List Projects** Returns the projects in the account. The page size is capped, so an account with many projects needs paging, and the total in the response is how a workflow knows.
-   **Get Project** Returns one project with its most recent runs. The run list carries no ordering guarantee, so a workflow reads the project's own last run and last ready run fields rather than taking the first entry.

### Runs

7

-   **Run Project** Starts a run of a project. It returns immediately with a queued run rather than data. The starting scope override is what parameterizes a scraper, so one project can be run against a different search term or region each time.
-   **Get Run** Returns a run's status and progress, with finished, successful, and has data reported separately so a workflow can branch without reimplementing the status table. Poll it sparingly, because ParseHub rate limits.
-   **Get Run Data** Returns the data a run extracted, decompressed. Check that the run's data is ready first, and use the run's checksum to tell whether the results actually changed since last time.
-   **Get Last Ready Data** Returns the data of the project's most recent run whose data is ready, with no run token and no polling. For a project on a ParseHub schedule this is the entire integration. Immediately after starting a run it still returns the previous run's data.
-   **Download Run Data** Fetches a run's data into FlowRunner file storage and returns a URL, decompressed so the file is the CSV or JSON itself. The right operation for a large scrape, which is unwieldy as a flow variable.
-   **Cancel Run** Stops a running or queued run. The data gathered so far may still be available, which is why success and data availability are reported separately.
-   **Delete Run** Permanently deletes a run and its data. It does not cancel a running one, so cancel first, and download anything worth keeping before calling it.

## Frequently Asked Questions

### What can FlowRunner do with ParseHub?

FlowRunner agents can run List Projects, Get Project, and Run Project in ParseHub, plus 6 more actions.

### Does connecting ParseHub to FlowRunner require OAuth?

No. ParseHub connects to FlowRunner with an API key, no OAuth flow required.

### Can ParseHub trigger a FlowRunner workflow automatically?

ParseHub doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at ParseHub?** This integration exposes ParseHub to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/parsehub. Site index: https://flowrunner.ai/llms.txt
