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
- Create a new scenario
- Add HTTP → Make a request module
- Configure connection
Step 2: Configure Request
URL: http://your-headlessx-server:8000/api/website/html
Method: POST
Headers:
Body (JSON):
Step 3: Parse Response
- Add JSON → Parse JSON module
- Map output from HTTP module
- Access data:
{{data.html}},{{data.title}}
Complete Scenario Examples
Example 1: RSS Feed → Scrape → Google Sheets
Modules:
-
RSS - Watch RSS feed items
- Feed URL:
https://example.com/feed - Limit: 10
- Feed URL:
-
HTTP - Make a request
- URL:
http://localhost:8000/api/website/content - Method: POST
- Headers:
X-API-Key: your-key - Body:
- URL:
-
JSON - Parse JSON
- JSON string:
{{2.data}}
- JSON string:
-
Google Sheets - Add a row
- Spreadsheet: My Articles
- Sheet: Sheet1
- Values:
- Title:
{{1.title}} - Content:
{{3.data.markdown}} - URL:
{{1.url}} - Date:
{{1.pubDate}}
- Title:
Example 2: Scheduled Price Monitoring
Modules:
-
Tools - Set multiple variables
- Variables:
- Variables:
-
Flow Control - Iterator
- Array:
{{1.products}}
- Array:
-
HTTP - Make a request
- URL:
http://localhost:8000/api/website/html - Body:
- URL:
-
Text parser - Match pattern
- Text:
{{3.data.html}} - Pattern:
<span class="price">\\$(\\d+\\.\\d+)</span>
- Text:
-
Google Sheets - Update a row
- If price changed
-
Gmail - Send an email
- Only if price dropped
Example 3: Content Republishing
Modules:
-
Webhooks - Custom webhook
- Create webhook URL
-
HTTP - Scrape article
- URL:
http://localhost:8000/api/website/content - Body:
{"url": "{{1.articleUrl}}"}
- URL:
-
OpenAI - Create a completion
- Prompt:
Rewrite this article:\n{{2.data.markdown}}
- Prompt:
-
HTTP - Upload images to S3
- Extract images from HTML
-
WordPress - Create a post
- Title:
{{2.data.title}} - Content:
{{3.choices[].message.content}}
- Title:
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)
5. Google Search
- 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:
- Right-click HTTP module
- Add error handler
- Choose Break or Commit
Break: Stop scenario Commit: Continue with fallback
Retry Logic
Use Resuming error handler:
- Set max attempts: 3
- Set interval: 30 seconds
- 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:
-
Data store - Search records
- Key:
{{1.url}} - If found → Use cached data
- Key:
-
Router
- Route A: Cache hit → Return cached
- Route B: Cache miss → Scrape fresh
-
HTTP - Scrape (Route B only)
-
Data store - Add record
- Key:
{{1.url}} - Value:
{{3.data}} - TTL: 3600 (1 hour)
- Key:
Integrations with Popular Apps
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
- Check scenario is ON
- Verify trigger is configured
- Review execution history
HTTP Request Fails
- Test URL manually:
- Verify API key in headers
- Check request body format
Data Not Mapping
- Click Choose where to map
- Test previous module
- Verify field names match
Make.com Pricing & Limits
| Plan | Operations/Month | Scenarios | Data Transfer |
|---|---|---|---|
| Free | 1,000 | 2 | 100 MB |
| Core | 10,000 | Unlimited | 1 GB |
| Pro | 100,000 | Unlimited | 10 GB |
| Teams | 1,000,000 | Unlimited | 100 GB |
1 Operation = 1 module execution