Skip to main content

Make.com + Apify Complete Guide: Automate Web Scraping Workflows (2026)

· 3 min read
Yassine El Haddad
Software Developer & Automation Specialist

I build production AI agents, web scrapers, and automation pipelines. Most of what I publish here comes from the actual problems they run into: proxies that get banned, anti-bot stacks that fingerprint your client, RAG that drifts when the underlying data moves. Stack: Python, TypeScript, Go, FastAPI, LangChain, Crawlee, Playwright, deployed on AWS, GCP, and Cloudflare.

Make.com (formerly Integromat) has a native Apify module that lets you run Actors, retrieve datasets, and build full automation pipelines — all without writing API calls manually.

This guide covers every Make.com + Apify integration pattern.

Why Use Make.com with Apify?

Apify is powerful for collecting data. Make.com is powerful for routing and processing that data. Together:

[Apify: Scrape structured data]

[Make.com: Transform, filter, route]

[Google Sheets | HubSpot | Slack | Airtable | Email | Webhook]

Make.com replaces custom webhook handlers, data transformation code, and integration boilerplate.


Module 1: Run an Actor

Use: Start an Apify Actor and wait for results.

  1. Add module: Apify → Run an Actor
  2. Connect Apify account (OAuth)
  3. Set Actor ID: apify/google-maps-scraper
  4. Configure input:
{
"searchStringsArray": ["{{1.search_query}}"],
"maxCrawledPlacesPerSearch": 50
}

Sync vs Async:

  • Sync (Wait for finish): Make waits for Actor to complete. Good for Actors < 40 seconds.
  • Async: Make starts Actor and returns run ID immediately. Use when Actor takes longer.

Module 2: Watch Actor Run Results

Use: Trigger a Make scenario when an Apify Actor run completes.

  1. Add trigger: Apify → Watch Actor Run Results
  2. Select Actor and dataset fields to watch
  3. Make polls Apify API every 15 minutes

OR: Use Apify webhooks for real-time triggering:

  1. In Apify Console → Your Actor → Settings → Webhooks
  2. Event: ACTOR.RUN.SUCCEEDED
  3. URL: Your Make.com webhook URL
  4. In Make: Webhooks → Custom Webhook as trigger

Module 3: Get Actor Run Results

Use: Fetch dataset items from a completed run.

  1. Add module: Apify → Get Items of a Dataset
  2. Dataset ID: {{run.defaultDatasetId}} (from previous Run module)
  3. Limit: 1000 (or your batch size)

Complete Pipeline: Scrape Google Maps → CRM

Scenario Structure

[Schedule: Every Monday 9 AM]
→ [Apify: Run Google Maps Scraper]
→ [Iterator: Loop through each business]
→ [Filter: Exclude already-added leads]
→ [HubSpot: Create Contact]
→ [Slack: Notify sales team]

Step-by-Step Setup

  1. Trigger: Schedule (Monday 9 AM)

  2. Apify: Run an Actor (sync)

    • Actor: apify/google-maps-scraper
    • Input: {"searchStringsArray": ["plumbers Chicago"], "maxCrawledPlacesPerSearch": 100}
  3. Iterator (splits dataset array into individual items)

  4. Filter (optional): item.phone != null AND item.website != null

  5. HTTP: Check if exists (optional dedup — query your CRM)

  6. HubSpot: Create/Update Contact

    • First name: {{item.title}}
    • Phone: {{item.phone}}
    • Website: {{item.website}}
    • Custom: google_maps_rating = {{item.totalScore}}
  7. Slack: Post message

    • Channel: #sales-leads
    • Message: "{{item.title}} added to HubSpot ({{item.city}}, rated {{item.totalScore}}⭐)"

Pipeline: Price Monitor → Slack Alert

[Schedule: Daily 8 AM]
→ [Apify: Run price monitor Actor]
→ [Iterator: Each product]
→ [Filter: price < previous_price * 0.95]
→ [Slack: Send price drop alert]

In the filter module:

  • Condition: {{item.price}} < {{item.previous_price}} * 0.95

In the Slack message:

  • "Price drop: {{item.product}} is now ${{item.price}} (was ${{item.previous_price}}) at {{item.url}}"

Pipeline: Research Report → Google Docs

For weekly competitive intelligence:

[Schedule: Friday 5 PM]
→ [Apify: Run competitor website scraper]
→ [HTTP: Send content to Claude API]
→ [Google Docs: Append to weekly report]

Claude API module (HTTP):

{
"model": "claude-3-7-sonnet-20250219",
"messages": [{"role": "user", "content": "Summarize key product changes from this competitor page: {{content}}"}],
"max_tokens": 500
}

Make.com Plan for Apify Workflows

Make PlanOps/MonthApify Actor runsPrice
Free1,000~5–10 runs$0
Core10,000~50–100 runs$9/month
Pro10,000~50–100 runs$16/month
Teams10,000+More$29/month

Each Actor run typically uses 5–20 Make operations (start + poll + process items).

Try Make.com free → | Get Apify free tier →

Common mistakes and fixes

Make's Apify module can't find my Actor.

Ensure you've entered the correct Actor ID in the format 'username~actor-name'. Find it in the Apify Console URL or Actor settings. The module lists public Actors in the dropdown but custom Actors need manual entry.

Make scenario times out waiting for the Apify Actor to complete.

Make.com has a 40-second timeout per module. For long-running Actors, use the 'Run Actor' module (async) and then poll with a 'Wait' + 'Check Actor Run' loop, or use Apify webhooks to push completion to Make.

Dataset items don't appear in the Make data inspector.

Run the scenario once manually with actual data to 'teach' Make the dataset structure. The first run always returns a structure sample — subsequent runs map fields correctly.