Tutorial 2026-07-10 9 min read

Apify Webhooks: Automate Scraping Triggers & Notifications

Webhooks turn Apify from a manual scraping tool into an automated data pipeline. Instead of checking if a scraper finished, webhooks notify your apps, send alerts to Slack, trigger downstream processes, and run scrapers automatically when conditions are met.

This guide covers everything: setting up webhooks for scraper completion, sending results to external services, building real-time monitoring pipelines, and automating the entire scraping workflow without manual intervention.

Quick answer: what are Apify webhooks?

Apify webhooks are HTTP callbacks that fire when specific events happen — a scraper finishes, a dataset updates, or a schedule triggers. You configure a webhook URL (your server, Slack, Zapier, etc.), and Apify sends a POST request with event data when the event occurs. No polling required.

🤖

Apify

4.7Verified partner

Web scraping and automation platformFree / $49/mo Starter

Webhook events available in Apify

Apify supports several webhook trigger events:

  • ACTOR.RUN.SUCCEEDED: Fires when a scraper run completes successfully. Most common webhook — use to process results.
  • ACTOR.RUN.FAILED: Fires when a scraper run fails. Use to alert your team and retry.
  • ACTOR.RUN.ABORTED: Fires when a run is manually aborted. Use for monitoring.
  • ACTOR.RUN.TIMED_OUT: Fires when a run exceeds its timeout. Use to alert and adjust timeout settings.
  • DATASET.ITEM.UPDATED: Fires when dataset items are modified. Use for real-time data pipelines.
  • SCHEDULE.TRIGGERED: Fires when a schedule triggers a run. Use to log execution times.

Setting up a basic webhook in Apify

Here is the step-by-step process to create a webhook:

  1. Go to Apify Console > Actors > [your scraper] > Webhooks tab — Go to Apify Console > Actors > [your scraper] > Webhooks tab
  2. Click "Create new webhook" — Click "Create new webhook"
  3. Select the event type (e.g., ACTOR.RUN.SUCCEEDED) — Select the event type (e.g., ACTOR.RUN.SUCCEEDED)
  4. Enter the webhook URL (your endpoint, Slack webhook, or Zapier URL) — Enter the webhook URL (your endpoint, Slack webhook, or Zapier URL)
  5. Select the HTTP method (POST for most cases) — Select the HTTP method (POST for most cases)
  6. Choose the payload format JSON (recommended) or form data
  7. Add custom headers if needed (e.g., Authorization Bearer [token])
  8. Enable the webhook and save — Enable the webhook and save
  9. Test Run the scraper and verify your endpoint receives the webhook

Use webhook.site for free webhook testing. It gives you a temporary URL to inspect webhook payloads, headers, and timing. Test your webhook configuration before connecting to production endpoints.

Sending scraper results to Slack

One of the most popular webhook use cases: post scraping results to a Slack channel. Here is how:

  • Create a Slack incoming webhook: Go to Slack > Apps > Incoming Webhooks > Add to Slack > Select channel > Copy webhook URL
  • In Apify, create a webhook for ACTOR.RUN.SUCCEEDED
  • Set the webhook URL to your Slack webhook URL
  • Set payload format to JSON
  • Use a custom payload template to format the Slack message: {"text": "Scraper finished: {{actorId}}. Results: {{datasetItemCount}} items. View: https://console.apify.com/storage/datasets/{{defaultDatasetId}}"}
  • Test by running the scraper — you should get a Slack notification with results summary

Chaining scrapers: run scraper B after scraper A

Webhooks can chain scrapers — when one finishes, it triggers the next:

  • Scraper A: Scrapes Google Maps for business leads
  • Webhook on Scraper A SUCCEEDED: Triggers Scraper B via Apify API
  • Scraper B: Enriches leads with website data from the business URLs
  • Webhook on Scraper B SUCCEEDED: Sends final enriched dataset to your CRM
  • Result: Fully automated lead generation pipeline with zero manual steps

Use Apify's API to trigger runs from webhooks. The webhook payload includes the run ID and dataset ID. Your webhook handler can call the Apify API to start the next scraper with parameters from the first run's results.

Connecting webhooks to Zapier or Make.com

For no-code automation, connect Apify webhooks to Zapier or Make.com:

  1. In Zapier, create a new Zap with "Webhooks by Zapier" as the trigger — In Zapier, create a new Zap with "Webhooks by Zapier" as the trigger
  2. Select "Catch Hook" and copy the webhook URL — Select "Catch Hook" and copy the webhook URL
  3. In Apify, create a webhook with the Zapier URL as the endpoint — In Apify, create a webhook with the Zapier URL as the endpoint
  4. Set event to ACTOR.RUN.SUCCEEDED — Set event to ACTOR.RUN.SUCCEEDED
  5. Test the scraper — Zapier should receive the webhook payload — Test the scraper — Zapier should receive the webhook payload
  6. Add Zapier actions Send email, add to Google Sheets, post to Slack, create CRM record
  7. Map webhook payload fields to Zapier action fields (e.g., datasetItemCount → spreadsheet row) — Map webhook payload fields to Zapier action fields (e.g., datasetItemCount → spreadsheet row)

Real-time competitor monitoring pipeline

Here is a real-world webhook pipeline for competitor monitoring:

  • Schedule: Run competitor scraper every 6 hours via Apify Schedules
  • Scraper: Extract competitor pricing, product changes, and new listings
  • Webhook on SUCCEEDED: Send results to a comparison function
  • Comparison: Compare new data with previous run — detect price changes, new products, or stock changes
  • Alert: If competitor drops price by 5%+, send Slack alert immediately
  • Log: Append all changes to a Google Sheet for historical tracking
  • Report: Weekly summary email with all competitor changes
🤖

Apify

4.7Verified partner

Web scraping and automation platformFree / $49/mo Starter

Webhook security best practices

Webhooks expose an endpoint to the internet. Secure them:

  • Use HTTPS: Always use HTTPS webhook URLs. HTTP is unencrypted and vulnerable.
  • Verify signatures: Apify can sign webhooks with HMAC. Verify the signature in your handler to confirm the request is from Apify.
  • Add authentication: Include a secret token in webhook headers. Verify it in your handler.
  • Rate limit: Implement rate limiting on your webhook handler to prevent abuse.
  • Timeout: Set a short timeout (5-10 seconds) for webhook responses. Apify retries failed webhooks.
  • Idempotency: Handle duplicate webhooks gracefully — Apify may retry if your server is slow to respond.

Webhooks transform Apify from a manual tool into an automated data pipeline. Set up webhooks for ACTOR.RUN.SUCCEEDED to process results, ACTOR.RUN.FAILED to alert your team, and chain multiple scrapers for end-to-end automation. Connect to Slack for instant notifications, Zapier for no-code workflows, or your own API for custom processing.

Start with a simple Slack notification webhook, then build up to chained scrapers and real-time monitoring pipelines. Apify at $49/month includes unlimited webhooks. The free tier supports basic webhook usage for testing.

FAQ

What are Apify webhooks?

Apify webhooks are HTTP callbacks that fire when events happen — a scraper finishes, a dataset updates, or a schedule triggers. You configure a webhook URL, and Apify sends a POST request with event data when the event occurs. No polling required.

How do I send Apify results to Slack?

Create a Slack incoming webhook URL, then in Apify create a webhook for ACTOR.RUN.SUCCEEDED with the Slack URL as the endpoint. Use a custom payload template to format the Slack message with scraper results summary.

Can I chain Apify scrapers with webhooks?

Yes. Set a webhook on Scraper A's SUCCEEDED event that calls the Apify API to start Scraper B with parameters from Scraper A's results. This creates a fully automated pipeline: scrape leads, enrich data, send to CRM — all without manual steps.

How do I connect Apify to Zapier?

In Zapier, create a Zap with "Webhooks by Zapier" as trigger, select "Catch Hook," and copy the URL. In Apify, create a webhook with that URL for ACTOR.RUN.SUCCEEDED. Add Zapier actions (email, Google Sheets, Slack, CRM) and map webhook payload fields.

Are Apify webhooks secure?

Use HTTPS webhook URLs, verify HMAC signatures, add authentication tokens in headers, implement rate limiting, and handle duplicate webhooks idempotently. Apify retries failed webhooks, so your handler must be idempotent.

Tools mentioned in this article

Affiliate links — we may earn a commission at no cost to you.

🤖

Apify

4.7Verified partner

Web scraping and automation platformFree / $49/mo Starter

Keep reading