Integrations · Zapier
API and scraper health alerts in Zapier
Two ways to wire Datasource Pulse into Zapier: run scheduled health checks through Apify’s official Zapier integration, or let Datasource Pulse push state-change alerts into a Zap the moment something breaks. Both use your existing accounts - no new integration to install. Or skip the wiring and start from a guided template below.
Fastest path · three guided templates
Each link opens a pre-built Zap: trigger, subject lines, and formatting done, with one decision left - where alerts go. Publish it, then paste your hook URL into the Apify schedule input shown on the template page.
Scraper or endpoint failures → Slack
State-change alerts only: a Slack message when a scraper or the endpoint it feeds degrades, and one more when it recovers - with the failure class and what breaks downstream.
Open the template in ZapierDead API keys + quota risks → Gmail
Every morning: validates each key against the live vendor API and checks usage against your own budget caps. A revoked key or a quota near its cap lands in your inbox, not in production.
Open the template in ZapierActor output drift → email
Daily: baselines a watched actor and emails you when volume drops, costs spike, or output goes stale. Sends through Email by Zapier, so there is no email account to connect.
Open the template in ZapierGuided templates use Webhooks by Zapier, a premium app, so they need a paid Zapier plan or an active trial. Checks themselves run on your Apify account at $0.02 each. On the free Zapier tier? The n8n templates cover the same three alarms.
Path 1 · Instant alerts via webhook (recommended)
Datasource Pulse fires a JSON POST on every state transition - when a connector degrades and once when it recovers, not a message per run. Point that at a Zapier catch hook and every alert becomes a Zap trigger:
1. In Zapier, create a Zap with the Webhooks by Zapier trigger, event Catch Hook, and copy the hook URL.
2. In your Datasource Pulse input (wherever you run it - an Apify schedule works well), set:
{
"checks": [ ...your checks... ],
"webhookUrl": "https://hooks.zapier.com/hooks/catch/...",
"webhookFormat": "json",
"webhookSecret": "optional · adds X-DP-Signature for verification"
}3. The hook receives top-level fields like transition, connector_label, failure_class, message, and recommended_action - map them straight into Slack, email, PagerDuty, a ticket, or any of Zapier’s apps. No polling, no filter step needed: only real transitions arrive.
Path 2 · Scheduled checks inside a Zap
If you’d rather keep the schedule in Zapier: trigger with Schedule by Zapier, add the Apify app’s run-actor action for growth_wizard/datasource-pulse with the input below, fetch the run’s dataset items, then add a Filter step that only continues when state is not healthy:
{
"checks": [
{
"type": "credential",
"id": "openai-prod",
"label": "OpenAI · production key",
"vendor": "openai",
"apiKey": "YOUR_OPENAI_KEY",
"impact": "LLM features fail when this key dies"
},
{
"type": "credential",
"id": "feed-endpoint",
"label": "Data endpoint · reachable",
"vendor": "generic_http",
"url": "https://example.com/api/data",
"successStatusCode": 200
}
]
}Each dataset item is one verdict with state, a stable failure_class enum (dead credential, rate limited, quota exhausted, schema drift, stale data, and more), and a plain-language message. Checks cost $0.02 each on your Apify account.
Common questions
Can Zapier tell me when an API key stops working?
Yes - Datasource Pulse validates keys against the live vendor APIs. 35+ vendors come pre-wired (OpenAI, Anthropic, Stripe, GitHub, SerpAPI and more), and any other endpoint takes one generic_http check, so the list is a head start, not a limit. Either path above turns an unhealthy verdict into any Zapier action you like.
Which path should I pick?
The webhook path alerts only on change and saves Zap tasks; run the checks on an Apify schedule. Pick the scheduled path when you want everything visible in one Zap, or when the verdict should drive a multi-step workflow every run.
How do I verify an alert really came from Datasource Pulse?
Set webhookSecret and every POST carries an X-DP-Signature HMAC header your receiver can check before acting.