Docs
Integrations
Make.com Integration

Make.com Integration

Complete guide to integrating HeadlessX with Make.com (formerly Integromat) automation

by saifyxpro

Automate web scraping with Make.com and HeadlessX. Build powerful visual automation scenarios without code.

Quick Setup


Step 1: Add HTTP Module

  1. Create a new scenario
  2. Add HTTPMake a request module
  3. Configure connection

Step 2: Configure Request

URL: http://your-headlessx-server:8000/api/website/html

Method: POST

Headers:

Body (JSON):

Step 3: Parse Response

  1. Add JSONParse JSON module
  2. Map output from HTTP module
  3. Access data: {{data.html}}, {{data.title}}

Complete Scenario Examples


Example 1: RSS Feed → Scrape → Google Sheets

Modules:

  1. RSS - Watch RSS feed items

    • Feed URL: https://example.com/feed
    • Limit: 10
  2. HTTP - Make a request

    • URL: http://localhost:8000/api/website/content
    • Method: POST
    • Headers: X-API-Key: your-key
    • Body:
  3. JSON - Parse JSON

    • JSON string: {{2.data}}
  4. Google Sheets - Add a row

    • Spreadsheet: My Articles
    • Sheet: Sheet1
    • Values:
      • Title: {{1.title}}
      • Content: {{3.data.markdown}}
      • URL: {{1.url}}
      • Date: {{1.pubDate}}

Example 2: Scheduled Price Monitoring

Modules:

  1. Tools - Set multiple variables

    • Variables:
  2. Flow Control - Iterator

    • Array: {{1.products}}
  3. HTTP - Make a request

    • URL: http://localhost:8000/api/website/html
    • Body:
  4. Text parser - Match pattern

    • Text: {{3.data.html}}
    • Pattern: <span class="price">\\$(\\d+\\.\\d+)</span>
  5. Google Sheets - Update a row

    • If price changed
  6. Gmail - Send an email

    • Only if price dropped

Example 3: Content Republishing

Modules:

  1. Webhooks - Custom webhook

    • Create webhook URL
  2. HTTP - Scrape article

    • URL: http://localhost:8000/api/website/content
    • Body: {"url": "{{1.articleUrl}}"}
  3. OpenAI - Create a completion

    • Prompt: Rewrite this article:\n{{2.data.markdown}}
  4. HTTP - Upload images to S3

    • Extract images from HTML
  5. WordPress - Create a post

    • Title: {{2.data.title}}
    • Content: {{3.choices[].message.content}}

HeadlessX Custom App


Create a custom Make.com app for easier integration:

App Structure

Base URL: http://your-server:8000

Authentication: API Key

  • Header: X-API-Key
  • Value: User's API key

Modules

1. Scrape HTML

  • Action: Make an API call
  • Endpoint: /api/website/html
  • Method: POST
  • Input:
    • URL (required)
    • Stealth (boolean)
    • Proxy (text)
  • Output:
    • success (boolean)
    • data.html (text)
    • data.title (text)
    • data.statusCode (number)

2. Scrape with JavaScript

  • Endpoint: /api/website/html-js
  • Input:
    • URL (required)
    • Wait For (select: load, networkidle, domcontentloaded)
    • Timeout (number)
  • Output: Same as Scrape HTML

3. Get Markdown Content

  • Endpoint: /api/website/content
  • Output:
    • data.markdown (text)
    • data.text (text)
    • data.wordCount (number)

4. Take Screenshot

  • Endpoint: /api/website/screenshot
  • Input:
    • Full Page (boolean)
    • Format (select: png, jpeg)
    • Quality (number 0-100)
  • Output:
    • data.screenshot (base64)
    • data.width (number)
    • data.height (number)
  • Endpoint: /api/google-serp/search
  • Input:
    • Query (required)
    • Location (text)
    • Num Results (number)
  • Output:
    • data.organicResults (collection)
    • data.featuredSnippet (object)

Triggers

New Scrape Completed

  • Type: Webhook
  • Endpoint: /webhook/scrape-completed
  • Output: Scrape results

Advanced Scenarios


Scenario 1: E-commerce Monitoring


Scenario 2: Lead Generation Pipeline


Scenario 3: Content Aggregator


Error Handling


Error Handler Route

Add error handler to HTTP module:

  1. Right-click HTTP module
  2. Add error handler
  3. Choose Break or Commit

Break: Stop scenario Commit: Continue with fallback

Retry Logic

Use Resuming error handler:

  1. Set max attempts: 3
  2. Set interval: 30 seconds
  3. Add delay between retries

Error Notification


Data Transformation


Extract Data with Tools

Text parser - Match pattern:

JSON - Parse JSON:

Transform with Functions

Get a variable:


Routers & Filters


Conditional Routing

Router after scrape:

Route 1: Success

  • Filter: {{success}} = true
  • Action: Process data

Route 2: CAPTCHA

  • Filter: {{error.code}} = CAPTCHA_DETECTED
  • Action: Alert admin

Route 3: Timeout

  • Filter: {{error.code}} = TIMEOUT_ERROR
  • Action: Retry with longer timeout

Data Stores


Cache Scrape Results

Modules:

  1. Data store - Search records

    • Key: {{1.url}}
    • If found → Use cached data
  2. Router

    • Route A: Cache hit → Return cached
    • Route B: Cache miss → Scrape fresh
  3. HTTP - Scrape (Route B only)

  4. Data store - Add record

    • Key: {{1.url}}
    • Value: {{3.data}}
    • TTL: 3600 (1 hour)


Slack Integration

Google Sheets

Airtable

Notion


Scheduling


Time-based Triggers

Schedule module options:

  • Every X minutes: 15, 30, 60
  • Every X hours: 1, 6, 12, 24
  • Specific times: Daily at 9:00 AM
  • Custom: Cron expression

Example Cron:


Best Practices


1. Batch Processing

Don't scrape 1000 URLs at once:

  • Use Iterator with batches of 5-10
  • Add Sleep module between batches (2-5 seconds)

2. Error Resilience

  • Always add error handlers
  • Set retry logic (max 3 attempts)
  • Log errors to Data Store

3. Data Validation

Add Filter after scrape:

  • Check success = true
  • Validate required fields exist

4. Resource Management

  • Limit concurrent operations (3-5)
  • Use Data Store for caching
  • Clean up old data regularly

5. Monitoring

  • Enable email notifications for errors
  • Use Make's execution history
  • Set up alerts for critical scenarios

Scenario Templates


Template 1: Daily News Digest

Template 2: Product Price Tracker


Troubleshooting


Scenario Not Running

  1. Check scenario is ON
  2. Verify trigger is configured
  3. Review execution history

HTTP Request Fails

  1. Test URL manually:
  2. Verify API key in headers
  3. Check request body format

Data Not Mapping

  1. Click Choose where to map
  2. Test previous module
  3. Verify field names match

Make.com Pricing & Limits


PlanOperations/MonthScenariosData Transfer
Free1,0002100 MB
Core10,000Unlimited1 GB
Pro100,000Unlimited10 GB
Teams1,000,000Unlimited100 GB

1 Operation = 1 module execution


Next Steps