Make.com + Apify: Automate Web Scraping Workflows Without Code
Most teams can already scrape data. The bottleneck is getting the output into business workflows reliably. Make orchestrates Apify Actors: run on schedule, fetch datasets, transform records, and route to Sheets, CRM, or Slack. This guide covers setup, modules, run modes, and three complete pipelines you can copy.
What the integration supports
Make's Apify modules include:
| Module | Purpose |
|---|---|
| Run an Actor | Direct actor invocation |
| Run a Task | Preconfigured, repeatable runs |
| Get Dataset Items | Fetch results after run |
| Watch Actor Runs | Event-driven trigger |
| Watch Task Runs | Event-driven trigger |
| Scrape Single URL | Quick one-off extraction |
| Make an API Call | Custom Apify API usage |
Minimum viable pipeline
- Trigger: schedule or upstream event
- Run Apify Actor/Task
- Wait for completion (or use Watch Runs trigger)
- Fetch dataset items
- Iterate + transform records
- Send to destination (Sheets, CRM, Slack, DB)
Step-by-step setup
Step 1: Connect Apify in Make
- Add Apify module in a new scenario
- Authenticate with Apify API token
- Test with a simple Run Actor call (e.g., Web Scraper)
Step 2: Choose run mode
| Mode | Use when |
|---|---|
| Run an Actor | Direct invocation; dynamic inputs |
| Run a Task | Repeatable config; easier governance |
For production, Tasks are often easier to manage.
Set the Actor ID in username~actor-name form, for example apify/google-maps-scraper, and pass input as JSON with upstream fields mapped straight in:
{
"searchStringsArray": ["{{1.search_query}}"],
"maxCrawledPlacesPerSearch": 50
}
Step 3: Sync vs async run modes
Make applies a 40-second timeout per module. That limit is what decides which mode you need:
| Mode | Behaviour | Use when |
|---|---|---|
| Sync (wait for finish) | Make blocks until the Actor completes | The run reliably finishes inside 40 seconds |
| Async | Make starts the Actor and returns a run ID immediately | Anything longer, which covers most real scrapes |
For async runs you need a completion signal. Two options:
Polling means adding a Wait module, then Check Actor Run, and looping until the status is SUCCEEDED. Pushing means letting Apify tell Make when it is done: in Apify Console, open your Actor, go to Settings then Webhooks, set the event to ACTOR.RUN.SUCCEEDED, and point the URL at your Make webhook. In Make, use Webhooks then Custom Webhook as the scenario trigger.
Pushing costs fewer operations than polling and reacts immediately, so prefer it for anything that runs longer than a couple of minutes.
Step 4: Retrieve results
After run completion, use Get Dataset Items with the dataset ID from the previous module ({{run.defaultDatasetId}}).
- Start with small output limits while testing
- Validate schema before mapping to destinations
Step 5: Transform and route
Use iterators and filters to:
- Keep only required fields
- Normalize text, date, price values
- Split records by destination rules
Step 6: Deliver to business tools
Common destinations:
- Google Sheets for quick ops visibility
- HubSpot or Salesforce for lead workflows
- Slack for alerts
- A database for downstream analytics
Pipeline 1: Google Maps leads → CRM
[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]
- Trigger: schedule it for Monday 9 AM
- Apify: Run an Actor: Google Maps Scraper, with input
{"searchStringsArray": ["plumbers Chicago"], "maxCrawledPlacesPerSearch": 100} - Iterator: splits the dataset array into individual items
- Filter:
item.phone != null AND item.website != null - HubSpot: Create/Update Contact: map
{{item.title}},{{item.phone}},{{item.website}}, andgoogle_maps_rating={{item.totalScore}} - Slack: Post message to
#sales-leads
Pipeline 2: 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]
The filter condition is {{item.price}} < {{item.previous_price}} * 0.95, and the Slack message reads "Price drop: {{item.product}} is now ${{item.price}} (was ${{item.previous_price}}) at {{item.url}}".
Pipeline 3: Competitive research → Google Docs
For a weekly intelligence digest:
[Schedule: Friday 5 PM]
→ [Apify: Run competitor website scraper]
→ [HTTP: Send content to Claude API]
→ [Google Docs: Append to weekly report]
The Claude step is a plain HTTP module:
{
"model": "claude-sonnet-4-5",
"messages": [{"role": "user", "content": "Summarize key product changes from this competitor page: {{content}}"}],
"max_tokens": 500
}
Quality controls
| Control | Purpose |
|---|---|
| Duplicate check | Before write modules |
| Required fields | Reject rows missing domain, contact, location |
| Confidence flags | For enrichment outputs |
| Run metadata | Store run_id, source actor, timestamp |
What this costs in Make operations
Each Actor run typically consumes 5–20 Make operations: the start call, any polling steps, and one operation per item processed downstream. Filtering before your write modules is the cheapest way to bring that number down, because a row rejected by a filter stops consuming operations in every module after it.
For current plan limits and credit maths, see the Make.com pricing guide.
Start your Make + Apify scenario.
Once your pipeline is stable, add one AI classification step for prioritization. Build in Make →
Yes. Use Run Actor or Run Task modules. Process results in the same scenario with Get Dataset Items and iterators.
Make applies a 40-second timeout per module, so a sync Run an Actor call fails on anything slower. Switch to async mode and either poll with a Wait plus Check Actor Run loop, or push completion to Make with an Apify ACTOR.RUN.SUCCEEDED webhook.
Use Get Dataset Items, then iterate and map only the fields your destination needs. Filter before heavy processing.
Typically 5–20: the start call, any polling steps, and one operation per item processed downstream. Filtering before your write modules is the biggest single saving.
Any Actor with dataset output. Popular: Google Maps, SERP, LinkedIn, e-commerce, job listings. Browse apify.com/store.




