n8n · Zapier · Make · Self-hosted

Add a real browser to your n8n / Zapier workflow.

n8n's built-in HTML Extract handles static pages and chokes on the rest. The cloud alternatives bill you per browser-minute. LumaBrowser is a free local browser with a REST API your existing HTTP Request node already knows how to call — plus outbound webhooks that can be the trigger for an automation.

Download LumaBrowser — free See a working recipe
Plugs into n8n's native HTTP Request & Webhook nodes · no extra community packages

The pattern every n8n / Zapier / Make user hits eventually. A workflow needs to scrape a competitor's pricing page, log in to a vendor dashboard, or fill a form. The built-in HTML Extract node returns nothing because the page renders in JavaScript. You install a community Puppeteer node, fight Docker for an afternoon, and rebuild the workflow. Six months later the bundled Chromium drifts, the node breaks, and you migrate to Browserless — and now you're paying $25–$140/month per account for the privilege of running a browser.

It plugs into the nodes you already have

LumaBrowser exposes a local REST API on http://localhost:3000. n8n's built-in HTTP Request node calls it directly — no community packages, no extra Docker container, no API key. The same goes for Make's HTTP module and Zapier's Webhooks by Zapier when paired with a tunnel.

// In your n8n HTTP Request node, set:
Method:  POST
URL:     http://localhost:3000/api/browser/tabs/0/get_element
Body:    JSON
Body Content: {
  "selector":    ".product-price",
  "llmFallback": "the visible price next to the buy button"
}

// Output is JSON. Pipe directly into the next node —
// Set, Code, IF, or whatever your workflow needs.
curl -X POST http://localhost:3000/api/browser/tabs/0/get_element \
  -H "Content-Type: application/json" \
  -d '{
    "selector": ".product-price",
    "llmFallback": "the visible price next to the buy button"
  }'

A working recipe: competitor pricing → Slack alert

Five nodes, five minutes to build. Same shape works for stock-level monitoring, status-page tracking, lead enrichment, internal-dashboard scraping — whatever your agency clients are asking for.

Node 1

Schedule Trigger

n8n's built-in cron, every hour. Or use LumaBrowser's Timed Tasks instead and skip n8n's scheduler.

Node 2

HTTP Request — open tab

POST /api/browser/tabs with the competitor URL. Real Chromium, JS-rendered.

Node 3

HTTP Request — read price

POST /api/browser/tabs/0/get_element with selector + llmFallback.

Node 4

IF — threshold check

Compare against last value (Set node + n8n static data). Branch on changed.

Node 5

Slack — send alert

Native Slack node, formatted message with old vs. new price.

No new dependencies in your n8n install. No browser-minute meter ticking. No bundled Chromium to drift. The HTTP Request nodes target localhost — same machine, same Docker network, or via host networking on a self-hosted instance.

Two ways to flip the trigger

Most workflow articles talk about calling a browser from a workflow. The other half is the browser starting a workflow. LumaBrowser does both.

Pattern 1

Page Change Detector → Webhook trigger

Add a Webhook node in n8n. Copy its URL into LumaBrowser's Page Change Detector. The moment the watched page changes, the diff payload POSTs to your workflow — same shape every time, branch on whatever you need.

Replaces a polling cron + diff-comparison node combo with a single push trigger. Equivalent in Make: Webhooks → Custom webhook. Equivalent in Zapier: Webhooks by Zapier → Catch Hook.

More on the Website Change Monitor →

Pattern 2

Timed Tasks → Webhook callback

Or skip n8n's scheduler entirely. LumaBrowser's Timed Tasks run an LLM-driven browser script on a schedule, return structured JSON, and POST it to a webhook URL of your choice — same place n8n is listening.

Useful when the “workflow” is mostly a browser flow with one notification step at the end. The browser side runs locally; n8n / Make / Zapier just receives the result.

Where LumaBrowser sits in the workflow stack

Comparing the practical paths a self-hosted n8n user has for “real browser in my workflow”.

n8n built-in HTML Extract n8n-nodes-puppeteer (community) Browserless (cloud or self-host) Browserbase LumaBrowser
Cost Free, included Free, OSS Free 1k units, $25+/mo Free 1 hr, $20+/mo Free
Renders JS / SPA pages No (HTTP only) Yes (bundled Chromium) Yes Yes Yes — always
Where the browser runs n/a Inside your n8n container Vendor cloud (or self-host) Vendor cloud only Local desktop app
Self-healing selectors No No No Stagehand AI actions Per-call llmFallback
Outbound webhook on page change No Build it yourself Build it yourself Build it yourself Built in
Setup in n8n Already there Install community node + restart HTTP Request + token, or community node HTTP Request + Stagehand SDK Just HTTP Request
Authenticated targets Cookies via header Manual login flow Manual login flow Managed sessions Your logged-in session

Pricing as listed by each vendor at time of publication. Self-hosted Browserless skips the metered pricing in exchange for running a separate container alongside your n8n stack and managing image upgrades (v1 to v2 was a non-trivial migration).

This comparison reflects publicly available pricing and feature information gathered to the best of our knowledge from each vendor's public materials. Vendors update plans frequently and we're a small team — if anything here looks wrong, please email [email protected] with the correction and a source, and we'll update the page.

Stop paying per browser-minute

LumaBrowser is the local browser your n8n / Zapier / Make stack already wishes you had wired up. Free to download, plugs into the nodes you already have, runs on whatever box your workflow runs on.

Download LumaBrowser — free See the page-change trigger