All Posts

Make HTTP Module: Building Custom API Connections

Make's pre-built modules cover the basics, but GTM stacks require custom connections. Use Make's HTTP module to integrate any API with proper authentication, error handling, and data transformation.

Make HTTP Module: Building Custom API Connections

Published on
February 22, 2026

Overview

Make's pre-built modules handle the common integrations: Salesforce, HubSpot, Slack, Google Sheets. But GTM stacks are rarely common. You need to pull data from a niche enrichment provider, push qualification scores to a custom data warehouse, or trigger webhooks on a proprietary platform. That is where the HTTP module becomes essential.

The HTTP module lets you connect Make to any API with a public endpoint. No waiting for official integrations. No workarounds. Just direct HTTP requests with full control over authentication, headers, payloads, and response parsing. For GTM engineers building custom integrations, this is the module that unlocks unlimited flexibility.

This guide covers how to configure Make's HTTP module for real-world GTM use cases: setting up authentication, structuring requests, handling errors gracefully, and transforming API responses into usable data.

When to Use the HTTP Module

Make offers native modules for popular platforms, and those should be your first choice when available. Native modules handle authentication, pagination, and error handling automatically. But there are scenarios where the HTTP module is necessary.

No Native Module Exists

Your enrichment provider, internal API, or niche SaaS tool may not have a Make integration. The HTTP module bridges this gap. If the service has a REST API with documentation, you can connect it to Make.

Native Module Lacks Features

Sometimes Make's native modules do not expose all API endpoints. A CRM module might support creating contacts but not custom objects. The HTTP module lets you call any documented endpoint directly.

Custom Data Transformations

When you need to send data in a specific format or pull from undocumented endpoints, the HTTP module gives you raw access. This is particularly useful when coordinating Clay, CRM, and sequencer in one flow where data shapes differ between systems.

Webhook Receivers and Senders

For webhook triggers for real-time outbound, you often need to send custom payloads to downstream systems. The HTTP module handles both receiving webhooks and sending them.

When to Stick with Native Modules

If a native module exists and meets your needs, use it. Native modules handle rate limiting, pagination, and token refresh automatically. Only reach for HTTP when native modules fall short.

Authentication Patterns for APIs

Every API requires authentication, and getting this right is the foundation of a working integration. Make's HTTP module supports the common patterns you will encounter.

API Key Authentication

The simplest pattern. Most enrichment APIs and internal services use API keys passed in headers or query parameters.

1

Add an HTTP module to your scenario and select "Make a request"

2

In the Headers section, add your API key. Common patterns include:

  • Authorization: Bearer YOUR_API_KEY
  • X-API-Key: YOUR_API_KEY
3

Check your API documentation for the exact header name expected

OAuth 2.0

For platforms like Salesforce, HubSpot, or Google APIs, OAuth 2.0 is standard. Make handles OAuth connections through its connection system rather than raw HTTP headers. Create a new connection using the OAuth2 type, enter the Authorization URL, Token URL, Client ID, and Client Secret from your API provider, then complete the OAuth flow.

Make will automatically refresh tokens when they expire, which is a significant advantage over managing OAuth manually. This matters especially when you are syncing scores, reasons, and next steps to your CRM on an ongoing basis.

Basic Authentication

Some legacy APIs use Basic Auth, which sends a base64-encoded username and password. Make's HTTP module has a built-in option for this. Select "Basic Auth" in the credentials section and enter your username and password.

Store Credentials Securely

Never hardcode API keys in your scenarios. Use Make's connection system or environment variables. For sensitive integrations, review secrets management for sales AI keys to ensure proper security practices.

Structuring HTTP Requests

Once authentication is configured, you need to structure your requests correctly. Most API issues come down to incorrect URLs, missing headers, or malformed payloads.

HTTP Methods

Method Use Case Example
GET Retrieve data Fetch lead details, list records
POST Create new records Create contact, trigger enrichment
PUT Replace entire record Update all fields on a lead
PATCH Update specific fields Update only email on existing contact
DELETE Remove records Delete duplicate from CRM

Request Headers and JSON Payloads

Beyond authentication, you typically need to specify content type with Content-Type: application/json for JSON payloads. For POST, PUT, and PATCH requests, build JSON payloads using Make's visual interface or raw JSON mode:

{
  "email": "{{1.email}}",
  "firstName": "{{1.first_name}}",
  "company": "{{1.company}}",
  "score": {{2.qualification_score}}
}

Make variables from previous modules are inserted using double curly braces. String values need quotes; numbers and booleans do not.

Query Parameters

For GET requests with filters or pagination, use query parameters. Make lets you add these as key-value pairs or append them directly to the URL. This is useful when handling rate limits and API quotas, allowing you to request smaller batches of data.

Error Handling and Retries

APIs fail. Networks timeout. Rate limits get hit. Your HTTP integrations need to handle these gracefully or your entire automation breaks.

Understanding HTTP Status Codes

Code Range Meaning Action
200-299 Success Process response normally
400 Bad Request Check your payload format
401 Unauthorized Verify credentials
429 Rate Limited Implement backoff/retry
500-599 Server Error Retry after delay

Configuring Error Handling in Make

Make provides several error handling options for production scenarios. Add an error handler route by right-clicking your HTTP module. Use the Resume directive for non-critical calls to continue with a default value. Use the Retry directive for rate limits (429) or server errors with exponential backoff. Use Rollback when the entire scenario should stop and retry from the beginning.

Many APIs return rate limit information in response headers like X-RateLimit-Remaining. You can read these headers and use a Router module to pause execution when limits are approaching. This is critical for high-volume workflows like research to qualification to sequences pipelines.

Log Errors for Debugging

Add a logging step to Slack or a spreadsheet in your error handler. This creates an audit trail for debugging issues when you are not watching the scenario run.

Parsing and Transforming API Responses

Getting data from an API is only half the battle. You need to extract relevant fields and transform them for downstream modules.

Parsing JSON Responses

Make automatically parses JSON responses when the Content-Type header is correct. Access nested fields using dot notation:

  • {{1.body.data.email}} - Access nested email field
  • {{1.body.results[0].name}} - Access first item in an array

When an API returns multiple records, use Make's Iterator module to process each one. Add an Iterator after your HTTP request and point it at the array in your response.

Data Type Conversions

APIs often return data in formats that downstream systems do not accept directly. Use Make's built-in functions like parseNumber to convert strings to numbers, formatDate for date formats, and ifempty for default values when fields are missing.

These transformations are essential when mapping fields between CRM, sequencer, and analytics systems that expect different data formats.

Real-World GTM Integration Examples

Let us walk through specific integrations that GTM engineers commonly build with the HTTP module.

Custom Enrichment Provider Integration

Your company uses an enrichment API that Make does not have a native module for. The scenario flow: trigger on new lead in HubSpot, POST to enrichment API with lead email, parse response to extract company data and technographics, then update HubSpot with enrichment fields.

This pattern mirrors what tools like Clay do natively, but gives you control when using providers without Make integrations. For best practices on structuring this data, see Clay enrichment recipes that improve personalization.

Custom Qualification Score Sync

You have built an AI qualification system (perhaps using Octave for context-aware scoring) and need to push scores back to your CRM and sequencer. The flow: receive webhook from qualification system, GET current lead from CRM, PATCH lead with score and reasoning, POST to sequencer API to enroll qualified leads.

The key is chaining multiple HTTP requests with conditional logic. If the lead is already in a sequence, skip enrollment. If the score dropped, trigger a different workflow.

Real-Time Intent Signal Processing

Your intent data provider sends webhooks when accounts show buying signals. Process these by receiving the webhook, getting account details from your CRM, posting to an AI messaging system for personalized copy, then posting to your sequencer to add contacts to a high-priority cadence.

This pattern works well for trigger-based outreach where timing matters.

Best Practices for Production HTTP Integrations

Building HTTP integrations that work in testing is easy. Building ones that run reliably in production requires discipline.

Always Validate Before Writing

Before updating your CRM or triggering outreach, validate the API response contains expected data. Check that required fields are not null, verify data types match expectations, and use filters to skip records with invalid data.

Implement Idempotency

Your scenarios will run multiple times on the same data through retries, schedule overlaps, or manual re-runs. Check if a record already exists before creating, use unique identifiers to prevent duplicates, and store processing status to skip already-handled items. This is especially important when avoiding duplicate sends when merging data sources.

Test with Real Data

API documentation lies. Test your integrations with real data from your systems including edge cases like special characters in names, missing optional fields, and international characters.

Monitor and Alert

Set up monitoring to track success/failure rates over time, alert on elevated error rates, and log response times to catch degradation. For teams building sophisticated automation, context engines like Octave can help maintain data quality across systems.

Debugging HTTP Integration Issues

When your HTTP request fails, Make provides tools to diagnose the problem. Run your scenario and click on the HTTP module bubble to see the full request and response. Check the Input section for URL, headers, and body. Check the Output section for response status code and body.

Common Issues and Solutions

Request returns 401 Unauthorized

Your credentials are invalid or expired. Re-check API key spelling, verify OAuth tokens are refreshed, and confirm you are using the correct authentication method.

Request returns 400 Bad Request

Your payload format is wrong. Compare your JSON structure against the API documentation. Check for missing required fields or incorrect data types.

Request times out

The API is slow or unresponsive. Increase Make's timeout setting or check if you are requesting too much data at once.

Scaling HTTP Integrations

As your GTM operations grow, your HTTP integrations need to handle increased volume.

Batch Processing

Instead of one HTTP request per record, use batch endpoints when available. Many APIs support creating or updating multiple records in a single call, reducing total API calls and lowering rate limit risk. Use Make's Array Aggregator module to collect records before sending a batch request.

Caching

If you frequently look up the same data, cache responses in Make's Data Store or an external database. This reduces API calls and improves speed. For guidance on when this makes sense, see when to re-enrich vs. cache data.

Adding Context to HTTP Integrations

Raw API integrations move data. But GTM operations need context: why is this lead qualified? What makes this account a priority? How should messaging differ for this segment?

This is where pure automation hits limits. You can build HTTP integrations that sync data perfectly, but without context, you are just moving bytes. Teams increasingly pair automation platforms like Make with context engines like Octave that understand GTM strategy and can inject intelligence into data flows.

Instead of syncing a raw lead score from an enrichment API, a context-aware workflow might pull enrichment data via HTTP, pass it through a context engine that understands your ICP, and return a qualified score with specific reasoning. This transforms your HTTP integrations from plumbing into intelligence infrastructure. The patterns in designing AI pipelines that run themselves explore this further.

FAQ

Frequently Asked Questions

Still have questions? Get connected to our support team.