HuluFlow · Scenario
Build a price monitor workflow
Pagination URLs, list and detail scrape, store, and a field-change email.
This walkthrough builds a realistic monitor: many list pages, product rows, optional detail pages, a dataset, and an email when price changes. Complete Getting started once before this.
For store operators and analysts who already know which public catalog URL pattern they want to watch.
-
01 Generate list URLs
Add a URL generator in range mode. Example template: https://example.com/list?page={page}. Leave param as page so the placeholder is {page}. Set start 1, end 10, step 1. Preview the count before Apply — maximum 500.
If page numbers are not arithmetic (random query ids), switch the generator to list mode and paste one full URL per line instead.
If you get stuck: Generator does not use credits. It only feeds URLs to the next scrape.
-
02 Scrape the list
Connect the generator output to a scrape node. Use list mode. Fetch fields. Keep title, price, and a product link/url. That link column is what the detail scrape will follow.
Run once after Apply and confirm items look like real products. Fix discovery before adding detail or store.
If you get stuck: Remember: credits are spent when the run requests pages — saving the canvas does not.
-
03 Scrape the detail
Add a second scrape in detail mode. Draw list → detail. Set input_field to the link column from the list node. Fetch fields that exist only on the product page (description, SKU, stock). Default cap is 20 URLs per scrape node per run — raise limit if one run must follow more products.
Detail rows merge list fields with detail fields when matching succeeds. You usually store after detail so one row has both price and description.
If you get stuck: Detail scrapes bill one credit per requested URL.
-
04 Store
Connect detail (or list, if you skip detail) to store. Set key_fields to ["url"] (or your product URL field). Name the dataset. Run once and open Datasets to confirm rows.
Later runs upsert by that key — prices update in place instead of creating duplicates.
If you get stuck: Export CSV from the dataset page if you need a spreadsheet for stakeholders.
-
05 Notify and schedule
Add notify with when=field_change and watch_fields including price. Set interval_minutes to 1440 and status active only after a manual run looks good. Run once more to establish a baseline, then let the worker take over.
If you only care about brand-new products, use when=new instead of field_change.
If you get stuck: Keep the workflow paused overnight while you still tweak fields — active schedules will email you.
Checklist
Public list URL pattern works in a private browser window · fields selected on every scrape · stable url key on store · notify email correct · enough credits for a trial run · interval and active set only when ready.
Credits and failures
If a run fails, open that run and read the failing node’s error and output — do not guess from the workflow list alone. URL generator caps at 500 URLs. Each scrape node defaults to 20 URLs per run (raise limit when you generate more pages). Credits are granted by plan and deducted by webpage requests. Out of credits → HTTP 402.
On failure, open that run’s node error — do not guess from the workflow list alone.
What next
Need pagination detail or field tables? Keep reading the linked guides.