July 2026 · Datasource Pulse

We broke an endpoint on purpose. Slack knew within a minute.

This week we imported one of our own n8n templates into a fresh n8n cloud workspace, pointed it at a web address we knew would fail, and pressed run. About a minute later a Slack channel got the message below. That is the whole product in one sentence: something you depend on broke, and the right room heard about it before any human went looking.

Full disclosure, as usual: the outage was staged. The check points at a URL that answers 404 on purpose, because the only way to trust an alarm is to hear it ring before there is a real fire. Everything else was production grade: a real n8n workspace, the real Datasource Pulse actor on Apify, a real two-cent charge, and a real Slack message.

🚨 Datasource Pulse · Test endpoint · reachable

State: failing · unexpected_response

Expected HTTP 200, got 404.

Automated with this n8n workflow

Recreated as a graphic for legibility. The wording is verbatim from the real alert.

Sixty seconds, four boxes

The workflow is four nodes and no code. A schedule fires. The Apify node runs one Datasource Pulse health pass, which is where the two cents go. An IF node reads the verdict and lets healthy results die quietly. Anything else becomes a Slack message carrying the state, the failure class, and what was expected versus what actually came back.

The part that makes this work is that the verdict is built for branching, not for reading. Every check returns state, failure_class and a one-line message as stable strings, so the entire routing logic in n8n is one condition: state ≠ healthy. No parsing, no regex, no glue function.

Three templates, import and go

The one we fire-drilled above is one of three ready-made workflows. Each is a JSON file you import into n8n, connect your Apify account to with one OAuth click, and point at your own scrapers, keys, or actors. Costs are billed by Apify per check, with no subscription:

  • Scraper health check → Slack · Watches a scraper and the endpoint it feeds, every six hours, and posts unhealthy verdicts to a channel. 2 checks × 4 runs a day ≈ $4.90 a month.
  • Daily API key + quota watchdog → Gmail · Validates three API keys once a day and emails you before a dead key takes the pipeline down with it. 3 keys × 1 run a day ≈ $1.83 a month.
  • Actor output drift monitor → email · Checks one Apify actor a day for schema drift, volume drops, and staleness, and emails on anything unhealthy. 1 actor × 1 run a day ≈ $0.61 a month.

Full setup steps, the input JSON reference, and the verdict schema live on the n8n integration page.

You design the checks. The list is just the head start.

One thing the templates can make easy to miss: none of this is fixed to a vendor list. Every check is a small block of JSON that you write, so Datasource Pulse watches whatever you point it at. Any HTTP endpoint, any API key, any Apify actor, including services we have never heard of. If it has a URL, it can have a health check.

The 35+ vendors that come pre-wired (OpenAI, Anthropic, Stripe, GitHub, and the rest) are there so your first checks take thirty seconds instead of an afternoon, with each vendor’s credential and quota quirks already handled. We keep wiring more, but the list is a head start, not a limit: anything missing from it is one generic_http block away, today, without waiting on us. And if you are an agent reading this, the same applies to you: the input schema is public, and any check you can describe in JSON is a check you can run.

Four things that will bite you, so they bite you here instead

We import-tested these in a clean workspace this week and hit every one of the following. Learn from our morning:

  • Imports merge into whatever workflow is open. Create a fresh empty workflow first, then use Import from File, or you will find three schedules sharing one canvas.
  • Operation names drift between node versions. The current Apify node calls the right operation “Run an Actor and Get Dataset”. If an older tutorial names something close but not identical, trust the dropdown, not the tutorial. Our templates are current as of this week.
  • Create the Apify credential from inside the node. The “Connect to Apify” button in the node panel gets you the right credential type with one OAuth click.
  • Leave Timeout and Build Tag empty. Empty means sensible defaults: wait as long as the check needs, run the newest build.

An alarm you have never heard ring is a liability

Whatever monitoring you set up, in n8n or anywhere else, break something on purpose once. Point a check at a URL that does not exist, watch the alert arrive, then swap in the real thing. The thirty seconds of staged failure is what turns “we have monitoring” into “we have monitoring we have heard.”

Datasource Pulse watches the data sources your product depends on: credentials, quotas, and scraper output quality. One alert when something degrades, one notice when it recovers.