Skip to main content

Make Integration

Integrate HITL.sh with Make.com (formerly Integromat) to create sophisticated automation scenarios with visual workflow design and real-time webhook triggers.
Before configuring Make, install the HITL.sh mobile app (App Store | Google Play) since it’s an integral part of the setup.
Make.com scenario with HITL.sh and Google Forms

Why Use Make with HITL.sh?

Visual Scenario Builder

Design complex automation with an intuitive drag-and-drop visual interface

Real-Time Webhooks

Unique webhook trigger module for instant notifications when reviews complete

Advanced Data Mapping

Powerful data transformation and mapping between services

1,000+ App Integrations

Connect with Google Workspace, databases, CRMs, and countless other services

Available Modules

HITL.sh provides four powerful modules in Make.com:
Submit content for human review:Use Cases:
  • Content moderation workflows
  • Approval processes
  • Quality assurance checks
  • Escalation routing
Required Fields:
  • Loop ID
  • Request Text
  • Response Type
  • Response Config
Optional Fields:
  • Processing Type
  • Priority
  • Timeout
  • Context
  • Callback URL
Retrieve current status and response data:Use Cases:
  • Polling for completed reviews
  • Status monitoring
  • Progress tracking
  • Data synchronization
Required Fields:
  • Request ID
Returns:
  • Status (pending, completed, timeout, cancelled)
  • Response data
  • Reviewer information
  • Timestamps
Direct access to HITL.sh API endpoints:Use Cases:
  • Advanced custom operations
  • Loop management
  • Bulk operations
  • Custom integrations
Features:
  • Full API access
  • Custom headers
  • Query parameters
  • Request body customization
Real-time trigger when requests complete:Use Cases:
  • Instant notification workflows
  • Real-time dashboards
  • Immediate action routing
  • Live status updates
Advantages:
  • No polling required
  • Instant execution
  • Lower operation usage
  • Better performance
This is a unique feature not available in other integration platforms!

Module Comparison

Choose the right module for your use case:
FeatureCreate RequestGet StatusAPI CallWatch Responses
Submit Reviews
Check Status
Real-Time
Custom Operations
Ease of UseEasyEasyAdvancedMedium
Best ForCreating requestsStatus pollingAdvanced useReal-time triggers

Setting Up Authentication

Connect your HITL.sh account to Make:
1

Add HITL.sh Module

Add any HITL.sh module to your scenario
2

Create Connection

Click “Add” next to the Connection field
Setting up HITL.sh connection in Make
3

Enter API Key

  1. Go to your HITL.sh dashboard
  2. Navigate to Settings → API Keys
  3. Copy your API key
  4. Paste it into the Make connection dialog
4

Save & Test

Save the connection and test with a simple scenario

Module Configuration

Create Request Module

Create Request module configuration in Make
Configuration Fields:
Loop ID
string
required
Your HITL loop identifier from the dashboard
Request Text
string
required
Content or question for reviewers to evaluate
Response Type
select
required
text | single_select | multi_select | rating | number | boolean
Response Config
json
required
JSON configuration for the response type
Processing Type
select
time-sensitive (default) | deferred
Priority
select
low | medium (default) | high | critical
Timeout Seconds
number
60-86400 seconds (required for time-sensitive)
Default Response
varies
Fallback value matching response type format
Context
json
Additional metadata as JSON object

Get Request Status Module

Get Request Status module configuration in Make
Configuration Fields:
Request ID
string
required
The ID returned when creating a request
Returns:
{
  "request_id": "65f1234567890abcdef12348",
  "status": "completed",
  "priority": "high",
  "response_data": "approve",
  "response_by_user": {
    "id": "65f1234567890abcdef12350",
    "name": "John Reviewer",
    "email": "[email protected]"
  },
  "response_time_seconds": 145.5,
  "created_at": "2024-03-15T10:30:00Z",
  "updated_at": "2024-03-15T10:32:25Z"
}

Make an API Call Module

Make an API Call module for advanced operations
Use this for:
  • Custom API operations
  • Loop management (create, update, delete)
  • Batch operations
  • Advanced queries
Example - List All Loops:
URL: /api/loops
Method: GET
Headers: Authorization: Bearer {{API_KEY}}
Example - Cancel Request:
URL: /api/requests/{{request_id}}
Method: DELETE
Headers: Authorization: Bearer {{API_KEY}}

Watch Responses Module (Webhook Trigger)

Watch Responses webhook trigger module
How it Works:
1

Add Webhook Module

Add “HITL.sh > Watch Responses” as your scenario trigger
2

Copy Webhook URL

Make generates a unique webhook URL for this scenario
3

Configure in HITL Request

When creating requests, include the webhook URL as callback_url
4

Automatic Triggering

Scenario automatically runs when reviewer completes the request
Webhook Payload:
{
  "event": "request.completed",
  "request_id": "65f1234567890abcdef12348",
  "loop_id": "65f1234567890abcdef12345",
  "status": "completed",
  "response_data": "approve",
  "response_by_user": {
    "id": "65f1234567890abcdef12350",
    "name": "Sarah Reviewer",
    "email": "[email protected]"
  },
  "response_time_seconds": 127.5,
  "timestamp": "2024-03-15T10:32:25Z"
}

Supported Response Types

Text Response

{
  "response_type": "text",
  "response_config": {
    "placeholder": "Enter feedback...",
    "min_length": 10,
    "max_length": 1000,
    "required": true
  }
}
Returns: String value

Single Select

{
  "response_type": "single_select",
  "response_config": {
    "options": ["Approve", "Reject", "Revise"]
  }
}
Returns: Single string value (e.g., “approve”)

Multi Select

{
  "response_type": "multi_select",
  "response_config": {
    "options": ["Accuracy", "Tone", "Grammar"],
    "max_selections": 3
  }
}
Returns: Array of strings (e.g., [“accuracy”, “grammar”])

Rating

{
  "response_type": "rating",
  "response_config": {
    "scale_min": 1,
    "scale_max": 10,
    "scale_step": 0.5
  }
}
Returns: Number value (e.g., 7.5)

Number

{
  "response_type": "number",
  "response_config": {
    "min_value": 0,
    "max_value": 1000,
    "decimal_places": 2
  }
}
Returns: Number value (e.g., 149.99)

Boolean

{
  "response_type": "boolean",
  "response_config": {
    "true_label": "Yes, Approved",
    "false_label": "No, Rejected"
  }
}
Returns: Boolean value (true/false)

Example Scenarios

Google Forms Approval Workflow

Scenario Flow:
  1. Trigger: New Google Forms Response
  2. Filter: Check if requires approval
  3. HITL Create Request: Send for human review
  4. Router: Route based on response
    • Approved → Update Google Sheet, Send email
    • Rejected → Archive response, Notify submitter
    • Escalate → Create ticket, Notify manager

Real-Time Content Moderation

Scenario Flow (using Webhook):
  1. Trigger: HITL Watch Responses (Webhook)
  2. Switch: Based on response_data
    • “approve” → Post to social media, Log to database
    • “reject” → Send rejection notice, Archive content
    • “flag” → Create moderation ticket, Alert team

Customer Support Escalation

Scenario Flow:
  1. Trigger: New Zendesk Ticket
  2. Filter: Priority = High or Urgent
  3. HITL Create Request: Route to support manager
  4. Wait for Response: Poll status every 5 minutes
  5. Action: Based on decision
    • Assign to specialist team
    • Escalate to executive
    • Resolve with template

Advanced Techniques

Data Transformation

Map form data to HITL request format:
// Set multiple variables
{
  "loop_id": "{{1.loop_id}}",
  "request_text": formatString(
    "Review submission from {name}\nEmail: {email}\nMessage: {message}",
    {{1.name}},
    {{1.email}},
    {{1.message}}
  ),
  "priority": {{1.amount}} > 1000 ? "high" : "medium"
}

Conditional Routing

Use routers to handle different response types:
Router
├─ Path 1: response_data = "approve"
│  └─ Send approval email
│  └─ Update CRM
│  └─ Post to Slack

├─ Path 2: response_data = "reject"
│  └─ Send rejection notice
│  └─ Archive submission

└─ Path 3: response_data = "escalate"
   └─ Create high-priority ticket
   └─ Notify management
   └─ Schedule follow-up

Error Handling

Add error handlers to your scenarios:
1

Enable Error Handling

Right-click any module → Add error handler
2

Configure Fallback

Choose action: Ignore, Resume, Commit, or Rollback
3

Add Notification

Send error notifications to your team

Best Practices

Use Webhooks

Prefer Watch Responses over polling Get Status for better performance

Data Validation

Validate data before sending to HITL to prevent errors

Error Handling

Always add error handlers to critical modules

Test Thoroughly

Run scenarios with test data before activating

Troubleshooting

Solution:
  • Verify API key is correct
  • Check API key permissions
  • Regenerate API key if needed
  • Test connection with simple request
Solution:
  • Verify JSON syntax is correct
  • Match response_config to response_type
  • Check required fields are present
  • Review example configurations above
Solution:
  • Verify webhook URL in callback_url
  • Check webhook is active in Make
  • Test with manual webhook call
  • Review Make scenario execution logs
Solution:
  • Increase timeout_seconds value
  • Verify loop has active reviewers
  • Check notification settings
  • Consider using deferred processing

Pricing & Operations

Each module execution counts as one operation. Using webhooks (Watch Responses) is more efficient than polling (Get Status) as it only triggers when there’s actual data.

Next Steps