Skip to content

HubSpot Custom API Workflow Action

Send HTTP requests to any API directly from your HubSpot workflows, with support for bearer token, API key, basic auth, custom headers, query params, and dynamic request bodies.

  • 5 x HTTP methods supported: GET, POST, PUT, PATCH, DELETE

  • 4 x Output fields available in downstream workflow steps

At a glance

Add a Custom API Call action to any HubSpot workflow, send a request to an external endpoint, and use the response inside later workflow steps.

  • No middleware required
  • Authentication configured per action
  • Supports HubSpot tokens in URLs and payloads
  • Built for RevOps teams, developers, and agencies

What this app does

HubSpot workflows are powerful, but they stop at your HubSpot data. This app extends them with a configurable HTTP request step so you can connect HubSpot to external APIs, internal services, webhooks, CRMs, ERPs, and data platforms.

Trigger external systems

Notify other tools when a deal closes, a contact is created, or a form is submitted.

Run webhook-based automations

Send requests to Zapier, Make, serverless functions, or even your own backend. You'll never feel limited again.

Push data anywhere

Send contact, company, or deal data to another CRM, ERP, warehouse, or internal API.

Respond to outcomes

Branch the workflow on success or failure, store response data, or chain calls together.

Features

The Custom API Call action is designed to be flexible enough for common workflow automation and serious integration use cases alike.  

All standard HTTP methods

Supports GET, POST, PUT, PATCH, and DELETE.

Flexible authentication

  • None, for open or IP-whitelisted endpoints
  • Bearer token, for OAuth or JWT-based APIs
  • API key header, for custom headers like X-Api-Key
  • Basic auth, for username and password auth

Dynamic request construction

Use HubSpot workflow tokens in the API URL, headers, query parameters, and JSON request body to pass live record data at runtime.

Respond to outcomes

Every request returns status_code, response_body, success, and error_message for use in later workflow actions.

Setup Guide

Install the app, add the action to a workflow, configure the request, and use the response in later steps.

1

Install the app

  1. Go to Settings → Integrations → Connected Apps in HubSpot, or use the install link from the app listing.

  2. You will be redirected to the King Henry authorisation page.

  3. Click Connect and approve the automation scope.

  4. You will be redirected back to HubSpot and the app will appear in your Connected Apps list.
2

Add the workflow action

  1. Open or create a workflow in Automation → Workflows.

  2. Click the + button to add a new action.

  3. Search for Custom API or look under Connected Apps.

  4. Select Custom API Call.
3

Configure the request

Set the step name, API URL, HTTP method, authentication type, and optional query params, headers, request body, and timeout.

4

Use the output fields

Use the request result in if/then branches, property updates, or follow-up actions inside the same workflow.

Action fields

Step name (required)

An internal label for the workflow canvas, such as Notify Slack or Create lead in CRM.

API URL (required)

The full HTTPS endpoint to call. You can use HubSpot tokens, for example https://api.example.com/contacts/.

HTTP Method (required)

Choose from GET, POST, PUT, PATCH, or DELETE.

Authentication type (required)

Choose None, Bearer token, API key header, or Basic auth. The relevant credentials fields appear based on your selection.

Query parameters (optional)

Provide a JSON object of key-value pairs to append to the URL.

{
  "format": "json",
  "source": "hubspot"
}

Custom headers (optional)

Provide a JSON object of additional headers to include in the request.

{
  "X-Custom-Header": "my-value",
  "Content-Type": "application/json"
}

Request body (optional)

Used for POST, PUT, and PATCH requests. HubSpot workflow tokens can be inserted directly into the JSON.

{
  "email": "",
  "dealName": "{{deal.dealname}}",
  "stage": "{{deal.dealstage}}"
}

Timeout (optional)

Defaults to 10 seconds, with a maximum of 60 seconds.

Output Fields

After the action runs, these outputs are available in later workflow steps:

  • status_code: The HTTP status code, such as 200, 404, or 500.
  • response_body: The full response body as a string.
  • success: true for 2xx responses, otherwise false.
  • error_message: Error detail for timeouts, network issues, or failed responses.

Example: Branch on success

Add an If/then branch after the action and check whether success is equal to true.

Example: Store the response

Use a Set property value action to save response_body to a HubSpot property for later reference.

Test the app quickly

Create a contact-based workflow, add the action, and use this configuration:

Step name: Test
API URL: https://httpbin.org/get
HTTP Method: GET
Auth type: None

Then run the workflow and confirm status_code is 200, success is true, and response_body contains JSON from httpbin.org.