ClawLink

How to connect HubSpot to OpenClaw

Connect HubSpot to OpenClaw with ClawLink in one click — 224 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.

Get started for free
OpenClaw
OpenClaw
ClawLink
ClawLink
HubSpot
HubSpot
HubSpotOAUTH2MCP

Manage contacts, deals, and pipelines. Once connected, OpenClaw can read and act on HubSpot from chat — pairing, token refresh, and tool wiring handled for you.

224 tools

The usual route to HubSpot access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical HubSpot setup: install one ClawHub skill, connect HubSpot in the browser, and OpenClaw can call real HubSpot actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into OpenClaw, or open the HubSpot skill on ClawHub.

Prompt for OpenClaw
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "HubSpot" (hith3sh/hubspot-ops) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/hubspot-ops
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Setup

It takes three steps to connect OpenClaw to HubSpot.

  1. 1

    Install the plugin

    Paste the setup prompt into OpenClaw, or install from the terminal and ask OpenClaw to pair:

    openclaw plugins install clawhub:clawlink-plugin
  2. 2

    Connect HubSpot

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask OpenClaw: "What can you do with HubSpot?"

Install by command

The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:

openclaw plugins install clawhub:clawlink-plugin

Then ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say done. Finally, connect HubSpot in the ClawLink dashboard — a one-click OAuth approval, no API keys.

Verify the connection by asking OpenClaw:

Search HubSpot for a contact with the email <email> using hubspot_search_contacts_by_criteria. If they exist, show me the record. Only if they do not, create them with hubspot_create_contact using the details above.

Using a different agent?

The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once HubSpot is connected in the dashboard, that agent calls the same 224 HubSpot tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

HubSpot MCP for OpenClaw

Looking for a HubSpot MCP server for OpenClaw? ClawLink connects HubSpot to OpenClaw and exposes 224 HubSpot tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes HubSpot integration works the same way.

HubSpot changed how integrations authenticate, and the guides have not all caught up: API keys were retired in favour of private app tokens or OAuth, so a walkthrough that tells you to paste a HubSpot API key into a config file is describing something that no longer works. ClawLink connects through HubSpot's OAuth flow — you approve access in the browser once and OpenClaw can call the 224 HubSpot tools below, with no private app to create in HubSpot's developer settings and no token in openclaw.json. Your HubSpot permissions come with you: the agent sees the objects your user can see.

What the OpenClaw HubSpot integration can do

224 HubSpot tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 224.

30 of 224 HubSpot tools for OpenClaw

ToolWhat it does
Create company hubspot_create_companyCreate a HubSpot company
Create contact hubspot_create_contactCreate a HubSpot contact
Create deal hubspot_create_dealCreate a HubSpot deal
Create task hubspot_create_taskCreate a HubSpot task
Get company hubspot_get_companyGet a HubSpot company by ID
Get deal hubspot_get_dealGet a HubSpot deal by ID
Get ticket hubspot_get_ticketGet a HubSpot ticket by ID
Read contact hubspot_read_contactGet a HubSpot contact by ID
Retrieve owners hubspot_retrieve_ownersList HubSpot owners and users
Search companies hubspot_search_companiesSearch HubSpot companies
Search contacts by criteria hubspot_search_contacts_by_criteriaSearch HubSpot contacts
Search CRM objects by criteria hubspot_search_crm_objects_by_criteriaSearch HubSpot CRM objects
Search deals hubspot_search_dealsSearch HubSpot deals
Search tickets hubspot_search_ticketsSearch HubSpot tickets
Update contact hubspot_update_contactUpdate a HubSpot contact
Audit pipeline changes hubspot_audit_pipeline_changesRetrieves a reverse chronological audit log of all changes for a specific, existing HubSpot CRM
Batch read companies by properties hubspot_batch_read_companies_by_propertiesBatch-retrieves up to 100 HubSpot company records by their IDs in a single request
Fetch import error details hubspot_fetch_import_error_detailsFetches a paginated list of read-only error details for a specific HubSpot CRM import
Fetch recording settings hubspot_fetch_recording_settingsFetches call recording settings for a specified, existing HubSpot calling extension app
Get AB email variation hubspot_get_ab_email_variationRetrieves the alternate variation of a specified A/B marketing email; the emailId must
Get account info hubspot_get_account_infoGets current HubSpot account info (email, hubId, user details) using access-token lookup
Get active imports list hubspot_get_active_imports_listRetrieves a list of currently active import jobs in HubSpot for monitoring ongoing data
Get aggregated statistic intervals hubspot_get_aggregated_statistic_intervalsRetrieves aggregated statistics for marketing emails (e.g., send counts), grouped by specified
Get aggregated statistics hubspot_get_aggregated_statisticsRetrieves aggregated statistics for marketing emails, optionally within an ISO8601 formatted
Get all marketing emails for a hub spot account hubspot_get_all_marketing_emails_for_a_hub_spot_accountFetches a list of marketing emails from a HubSpot account, with options for filtering, sorting
Get contact IDS hubspot_get_contact_idsFetches a list of contact IDs for a specific HubSpot campaign based on interaction type
Get deals hubspot_get_dealsRetrieves multiple HubSpot deals by their IDs in a single batch request
Get emails hubspot_get_emailsRetrieves multiple HubSpot email engagement records by their IDs in a single batch request
Get import record information hubspot_get_import_record_informationRetrieves a comprehensive summary of a specific HubSpot CRM import record by its importId
Get marketing email draft hubspot_get_marketing_email_draftRetrieves the draft version of a marketing email by its emailId; if no draft exists, returns

Try it: find the HubSpot tool you need

Browse the 30 HubSpot tools

Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.

Example prompts

Search HubSpot for a contact with the email <email> using hubspot_search_contacts_by_criteria. If they exist, show me the record. Only if they do not, create them with hubspot_create_contact using the details above.

Use hubspot_search_deals to pull every open deal closing this quarter, then give me a table of deal name, amount, stage, and owner from hubspot_retrieve_owners, sorted by amount.

Find the company <name> with hubspot_search_companies, then create a task with hubspot_create_task to follow up next Tuesday, associated with that company. Confirm the task id.

Use hubspot_audit_pipeline_changes to show me what moved stage in the last 14 days and who changed it. Flag anything that skipped a stage.

How the HubSpot tools take their arguments

Details that decide whether a HubSpot prompt updates the right record instead of creating a new one.

  • Search before create, always. hubspot_search_contacts_by_criteria, hubspot_search_companies, and hubspot_search_deals are the guard against duplicates. HubSpot dedupes on email for contacts and domain for companies, so anything else creates a second record.
  • Object ids are numeric and must be looked up. hubspot_read_contact, hubspot_get_company, hubspot_get_deal, and hubspot_get_ticket all take real ids; an id from an example fails as a permission error rather than a clean not-found.
  • hubspot_search_crm_objects_by_criteria covers custom objects. If your portal has objects beyond the standard set, that is the tool, rather than assuming there is no support.
  • Owners are their own lookup. hubspot_retrieve_owners maps HubSpot owner ids to people. Assigning a record without it means guessing at an id.
  • Batch reads exist. hubspot_batch_read_companies_by_properties pulls many records with chosen properties in one call, which is both faster and far easier on rate limits than looping.
  • Updates are partial. hubspot_update_contact changes the properties you pass, so listing a property with an empty value clears it rather than leaving it alone.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want HubSpot working from chat.

ManualClawLink
Connection flowRegister a HubSpot app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect HubSpot through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for HubSpot.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right HubSpot actions to the runtime in a format your agent can reliably use.224 tools for HubSpot are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes HubSpot to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect HubSpot in the browser, and the 224 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

OpenClaw installed the HubSpot skill but can't call the tools

The ClawHub skill teaches OpenClaw about HubSpot, but the calls run through the ClawLink plugin and your connected account. Make sure HubSpot is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

Connection succeeds but no tools appear

Reconnect HubSpot from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling HubSpot tools

HubSpot tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every HubSpot call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

HubSpot returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

HubSpot returns 403 or a permission error although the account is connected

This is the case the search results answer worst and the one this page is asked about most. Work through it in order. First, user permissions: HubSpot's model is granular, so the connected user may lack access to that object type, that pipeline, or records owned by other people, and the failure looks like a broken integration while everything else works. Second, the scope of the grant — a partial approval leaves a connection that reads but cannot write, so if every create fails and every search succeeds, reconnect and accept the full set. Third, the portal, which is the sandbox-versus-production trap. Last, a placeholder: HubSpot object ids are numeric, and an id lifted from documentation fails as a permission error rather than a not-found, so have the agent search first and use a real id.

Ask the agent to diagnose it:

Call hubspot_get_account_info and hubspot_retrieve_owners, and tell me which portal this connection is on and which user it acts as. Then run hubspot_search_contacts_by_criteria for anything at all and tell me if results come back. Do not retry the failed call yet.
The agent created a duplicate contact or company

Creating is a single call and searching is not, so an agent told to "add this person to HubSpot" will often do exactly that without checking. HubSpot's own deduplication keys on email for contacts and domain for companies, which means a record created with a slightly different email address becomes a genuine duplicate rather than being merged. The prompt-level fix is to make the search explicit: ask for hubspot_search_contacts_by_criteria on the email first, then create only if nothing comes back. If duplicates already exist, merging is a HubSpot-side operation rather than something to ask the agent to improvise.

Ask the agent to diagnose it:

Search HubSpot for this email with hubspot_search_contacts_by_criteria and show me every match, including the record ids and created dates, before creating anything.
HubSpot search returns nothing for a record you can see in the CRM

Two causes. The first is the criteria shape: HubSpot's search filters on properties with specific operators, so a search that names a property the portal does not have, or uses a value in the wrong format, returns an empty set rather than an error. The second is record ownership and visibility — a user limited to their own records genuinely cannot see everyone's, so the agent's empty result is accurate for that user. Ask it to search on email or domain first, which are the most reliable keys, before assuming anything is wrong with the connection.

OAuth finished in the browser but the account is still missing

Try reconnecting HubSpot and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a OpenClaw HubSpot integration?

Yes. ClawLink is the fastest way to connect OpenClaw to HubSpot: link your HubSpot account once in the browser and OpenClaw can call the HubSpot API through 224 ready-made tools — no custom code or token handling.

How do I add HubSpot to OpenClaw with ClawLink?

Paste the setup prompt from this page into OpenClaw. It installs the ClawLink HubSpot skill from ClawHub, then you click Connect in the dashboard to authorize HubSpot. OpenClaw calls the tools from the next message — no config files or API keys to manage.

How long does it take to connect HubSpot to OpenClaw?

About two minutes. Sign in, click Connect next to HubSpot in the dashboard, authenticate, and OpenClaw can use it from the next chat message.

Why use ClawLink instead of wiring HubSpot up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want HubSpot working from chat.

Do I need a HubSpot API key or a private app token?

Neither. HubSpot deprecated API keys, and the usual replacement is creating a private app in your HubSpot account, choosing scopes, and copying its access token into whatever is calling the API. ClawLink uses HubSpot's OAuth flow instead, so you approve the connection on HubSpot's own screen and the credential stays on the ClawLink server. The practical difference is what happens when things change: a private app token sits wherever you put it until someone rotates it, while an OAuth grant can be revoked from the ClawLink dashboard or from HubSpot's connected-apps settings and stops working immediately.

Which HubSpot account and permissions does the agent get?

The portal you selected during the connect flow, with your user's permissions inside it. That matters more in HubSpot than in most tools because permissions there are genuinely granular — a user restricted to their own contacts, or without access to a particular pipeline, produces an agent with exactly those limits. If your organisation has several portals, for example a sandbox and production, check which one you approved before concluding that records are missing; a connection pointed at the sandbox looks completely healthy and finds nothing you recognise.

Is it safe to connect HubSpot to an AI agent?

The connection is HubSpot's own OAuth flow, so the permissions are approved on HubSpot's screen, no password is handled, and access can be revoked from either side at any time. The risks worth planning for are about your CRM rather than the mechanism. The agent can create and update records, so a vague instruction can produce duplicate contacts or overwrite a field somebody curated — ask it to search before it creates, and to show you what it will change. And CRM notes contain text written by other people, so treat what it reads as untrusted input if you are going to let it act on that basis.

Can it do more than contacts and deals?

Considerably more, and this is where the toolset differs from the small CRM connectors. Alongside contacts, companies, deals, tickets, tasks and owners, it reaches marketing email, A/B variations and aggregated statistics, imports and their error details, pipeline change audits, and generic CRM object search that covers custom objects. The practical consequence is that reporting questions and data-hygiene work are in scope, not just record creation — which is usually where an agent earns its place in a CRM.

OpenClaw installed the HubSpot skill but can't call the tools

The ClawHub skill teaches OpenClaw about HubSpot, but the calls run through the ClawLink plugin and your connected account. Make sure HubSpot is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.