Introducing the Ochre AI support workspace. Start a 14-day trial

HubSpot integration

Connect HubSpot to see contact lifecycle, lead status, job title, company, and top deals on every conversation.

By ChristopherUpdated 3 min read

What it does

Pull HubSpot contact context into Ochre so agents see CRM signal next to every conversation. Lifecycle stage, last contacted timestamp, job title, company. Updates flow live via webhook so the panel is always current.

This is the right integration for sales-led teams. When a long-time customer emails support, your agent should know that before they reply.

Setup

  1. Go to Settings → Integrations → HubSpot.
  2. Click Connect HubSpot.
  3. Log in to your HubSpot account.
  4. Authorize Ochre's read access for contacts, companies, and deals.
  5. You'll be redirected back. We start a backfill of your contacts.

The OAuth flow grants Ochre an access token plus a refresh token, both stored encrypted at rest. Tokens auto-refresh in the background; you'll never have to reconnect just because a token expired. If HubSpot revokes our access (because an admin removed Ochre on their side), we surface a banner asking you to reconnect.

What you see

On every conversation, the HubSpot panel shows:

  • Lifecycle stage. Subscriber, lead, marketing-qualified lead, sales-qualified lead, opportunity, customer, evangelist, other.
  • Last contacted. When HubSpot last logged an interaction with this contact.
  • Job title and company. From the contact record.
  • Owner. The HubSpot owner assigned to this contact, if any.

Click anything to open the corresponding record in HubSpot.

Matching contacts

We match by email. New conversations are linked to a HubSpot contact if the sender's email exists. Customers without a match show "No HubSpot contact" and can be linked manually.

If your HubSpot has multiple contacts with the same email (it shouldn't, but it happens), we link to the most recently updated one.

Live updates via webhook

We subscribe to HubSpot webhooks for contact changes. When a contact moves from "lead" to "opportunity," the panel reflects that within a few seconds. Inbound webhooks are signature-verified before we process them, so a forged event can't poison the panel — that's an internal security property, not something you configure.

Token refresh

HubSpot OAuth tokens expire after 6 hours. We refresh automatically using the refresh token. You don't need to do anything. If a refresh fails (revoked access, account suspended), we surface a clear banner with reconnect instructions.

Using HubSpot data in routing

HubSpot fields are available in Routing rules:

  • "If lifecycle stage is customer, route to customer success."
  • "If lead status is new, route to sales."

The AI agent also reads HubSpot context for tone and routing. A message from a long-time customer gets a different draft than one from a new lead.

Disconnecting

Disconnecting from Ochre clears the OAuth token and marks the integration inactive. Important: disconnecting on Ochre's side does not remove our webhook subscriptions on HubSpot's side. To fully remove access, go to HubSpot → Settings → Integrations → Connected Apps and revoke Ochre.

This is a HubSpot quirk, not an Ochre choice. We cannot revoke webhook subscriptions on a third-party platform after our token is invalidated. See Disconnecting integrations.

Permissions

Read-only on contacts, companies, and deals. We do not write to HubSpot. We don't push lead data, modify deals, or update contact properties. The integration only reads. See Integration permissions.

The encrypted access token is only readable through a server-side helper that checks the caller is an Owner or Admin of the workspace.

What's next

Was this article helpful?

HubSpot integration - Ochre · Ochre