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