HubSpot's API is relatively developer-friendly, making it one of the more achievable CRM integrations for OpenClaw. You can get read access to contacts, deals, and pipelines with a Private App and a few hours of setup.
How OpenClaw Integrations Work
OpenClaw is a self-hosted AI assistant that runs on your own server — typically an EC2 instance — and connects to Slack. It uses Claude under the hood to process requests. Out of the box, OpenClaw doesn't ship with pre-built connections to third-party tools. Instead, integrations are built using the skills system: markdown files in ~/.openclaw/skills/ that give Claude instructions for a particular domain, combined with HTTP tool calls to any API you expose to it.
In practice, adding a real integration means: getting API credentials from the third-party service, building or configuring a small proxy/endpoint that OpenClaw can call, and writing a skill file that tells Claude how to use it. For some tools this is an afternoon of work. For others — like HubSpot — it's considerably more involved.
Connecting OpenClaw with HubSpot: Step by Step
Step 1: Create a HubSpot Private App
Go to HubSpot → Settings → Integrations → Private Apps and create a new app. Select the scopes you need — crm.objects.contacts.read, crm.objects.deals.read, crm.schemas.contacts.read for basic CRM data. You'll get a Private App token (similar to an API key) to use in your proxy.
Step 2: Explore the CRM API
HubSpot's v3 CRM API has consistent endpoints for objects: /crm/v3/objects/{objectType} for contacts, deals, companies, etc. Use the search endpoint (/crm/v3/objects/{objectType}/search) with filters to find records by email, name, or other properties. The API explorer in HubSpot's developer docs is useful for prototyping queries.
Step 3: Build the Proxy and Skill File
Build your proxy around the search and retrieve endpoints for the objects your team cares about. Write ~/.openclaw/skills/hubspot.md with your pipeline stage names and common query patterns (e.g., how a rep would ask about a deal's status).
Challenges and Caveats
Associations Between Objects Are Separate Calls
To get a deal's associated contacts, or a contact's associated company, you need additional API calls to the associations endpoints. A single 'tell me about this deal' query might require 3–4 API calls. Build your proxy to handle these efficiently.
Rate Limits Vary by Plan
HubSpot's API rate limits depend on your subscription. Free/Starter plans get 100 API calls per 10 seconds. Professional and Enterprise get more. If your team is using OpenClaw heavily, you may need to cache responses to avoid hitting limits.
Custom Properties Need Explicit Handling
If your team has created custom properties on CRM objects, they won't appear in default API responses. You need to specify them in your requests. Document your most important custom properties in the skill file.
Skip All of This — Use Cody Instead
Cody has HubSpot integration built in. Query deals, contacts, and pipeline health from Slack without any API configuration.
Related Guides
- Connecting OpenClaw with Salesforce: A Practical Guide
- Connecting OpenClaw with Pipedrive: A Practical Guide
- Connecting OpenClaw with Google Analytics: A Practical Guide
Need the model-flexible version? See: How to Connect HubSpot to OpenClaw: Setup, Models, and Workflow Guide.