Skip to main content
Connect your HubSpot CRM once, then your agent works against it live. It recognizes a returning caller by the number they’re calling from and greets them by name, looks up contacts, companies, tickets, and deals mid-conversation, and opens new work — creating a contact, a support ticket, or a deal. Creates confirm with the caller first; edits to an existing record additionally require a verified caller identity.

Connect

HubSpot uses OAuth. Start the connect, finish consent in a browser, and the Connector Pack skills install automatically.
1

Begin the connection

POST /integrations/hubspot/connect returns an oauthUrl.
2

Grant access in a browser

Open the oauthUrl while signed in to your dashboard and approve the HubSpot consent screen. The browser-only callback finishes the connection — it cannot be completed with an API key.
3

Confirm

GET /integrations now lists hubspot with status: connected and an accountLabel. The Connector Pack skills are compiled per-account against your connection at install.

What installs: the Connector Pack

Connecting installs HubSpot’s Connector Pack — a curated set of skills, each compiled per account against your connection at install time. Re-installing is idempotent: a skill that already exists is skipped and returned with created: false.
Write skills (create_* / update_*) land gated — they confirm with the caller and never run in parallel. Updating an existing record additionally requires a verified caller identity.

Interaction logging

Turn on interaction logging to write a record of every finished conversation back to the matched HubSpot contact’s timeline — a per-connection setting that is off by default and included free. A voice call becomes a Call engagement; a chat becomes a Note. Each carries an AI summary and, optionally, the full transcript — scrubbed of card and ID numbers before export. Nothing is exported until you enable it, and past conversations are never back-filled. When a conversation has no CRM match, the on_no_match policy decides what happens:
  • skip — the interaction is skipped and counted (the default).
  • create — a contact is auto-created, then the interaction is logged to it.
mode is one of off, summary, or summary_transcript. onNoMatch (skip | create) is optional and left unchanged when omitted.

Beyond the pack: any object or field

The pack covers the common flows, but HubSpot is fully open to author: bind any object and field — including custom objects — from the account’s discovered schema. Three ways in:
  • “Describe it” AI authoring — auto-map a plain-language goal to a validated binding with POST /agents/{agentId}/integrations/hubspot/bindings/auto. For a REST CRM like HubSpot this authors reads and writes (create, update, find-or-create, list-many, multi-filter, latest-sort).
  • The manual builder — pick the object and fields yourself and map a binding with POST /agents/{agentId}/integrations/hubspot/bindings.
  • The API — discover the schema, browse or search it, and author against the restSearch (read) and restWrite (create / update / find-or-create) grammars.
Walk through the whole flow in Map an integration’s fields.

In the API

Least privilege. The consent grant requests the scopes for the standard objects (contacts, companies, tickets, deals). Custom-object scopes are optional and only requested / used when you author a binding against a custom object.
Installing the pack and authoring bindings edit the agent draft. Publish so phone and chat callers get the new skills.