---
title: "Connect HubSpot to Rig — Rig guide"
description: "Connect HubSpot to Rig with a Service Key: the exact read scopes to grant, and what syncs — every property, associations, property history and custom objects."
canonical: "https://rig.so/guides/connect-hubspot"
format: markdown
---

Search guides, references, playbooks…⌘K

Browse guides

# Connect HubSpot to Rig

Sync your full HubSpot CRM into Rig — contacts, companies, deals, tickets, lists and segments, logged emails, calls and meetings with **every property** (standard and custom), the associations that link them, full property-change history, and any custom objects your portal defines. HubSpot connects with a single Service Key; Rig discovers your portal's schema at sync time, so custom fields and objects appear automatically.

## Before you start

- You need HubSpot **super admin** access to create a Service Key.
- By the end you'll have one value to paste into Rig: a **Service Key** (an access token starting `pat-`).
- Works for both US/NA and EU-hosted HubSpot portals — Rig detects your portal's region from the token automatically.

## Step 1: Create a Service Key

Service Keys are HubSpot's credential built for system-to-system data integrations like Rig — one scoped key, no OAuth dance.

1. In HubSpot's left sidebar, open `Development`, then under `Keys` click `Service Keys`.
2. Click `Create service key` and give it a name (e.g. "Rig").
3. Grant the read scopes listed in Step 2 below.
4. Create the key and copy its value — that's what you'll paste into Rig.

On an older setup? Private App tokens work too
If your portal already has a **Private App** (now under `Development` → `Legacy Apps`), its access token works identically in Rig — same `pat-` format, same scopes. Manage its scopes from the app's `Scopes` tab instead.

## Step 2: Grant the read scopes

When creating the key, search for each scope below and grant its **Read** access. Rig only ever reads — no write scopes are needed.

| Scope | What it unlocks in Rig |
| --- | --- |
| `crm.objects.contacts.read` | Contacts (also required for calls and meetings) |
| `crm.objects.companies.read` | Companies |
| `crm.objects.deals.read` | Deals + deal pipelines and stages |
| `crm.objects.owners.read` | Owners (your HubSpot users, for attribution) |
| `tickets` | Support tickets + ticket pipelines |
| `sales-email-read` | Logged email content — subjects and bodies, not just counts |
| `crm.lists.read` | Lists and segments, plus which records belong to each |
| `crm.schemas.custom.read` | Discovering your portal's custom object types |
| `crm.objects.custom.read` | Reading the records inside those custom objects |

HubSpot's scope field takes a space-separated list, so rather than ticking all nine by hand, paste this:

`crm.objects.contacts.read crm.objects.companies.read crm.objects.deals.read crm.objects.owners.read tickets sales-email-read crm.lists.read crm.schemas.custom.read crm.objects.custom.read`Copy

⚠️ Missing scopes silently shrink your data
Rig syncs exactly what the token can read. A missing scope doesn't error — the affected streams simply don't sync, which usually surfaces weeks later as "why is there no email content / deal-stage history / custom object data in Rig?". Grant the **full list above** up front; when you connect, Rig's probe shows you per-stream exactly what the token can and can't reach. Notably, `sales-email-read` is what turns emails from bare timestamps into readable subjects and bodies, and the two `custom` scopes are what make your custom objects appear — they're the ones most often forgotten.

Added a scope later? Just save the key — the same token picks up the new scope, and the new streams flow on the next sync. No need to reconnect in Rig.

## Step 3: Connect it in Rig

New to Rig? Watch how to find Connections

1. In Rig, open `Connections` in the left sidebar and go to `Sources & actions`.
2. Search for **HubSpot** (under CRM) and click its card.
3. **Service Key**: paste the `pat-…` key.
4. Click `Continue` — Rig probes the token and shows each stream with a tick, or the exact scope it's missing. Then `Test` to pull a small sample, then `Sync` to run the full pipeline.

## What Rig pulls in

HubSpot lands in its own `hubspot` schema. Rig discovers your portal's property catalog at sync time, so every standard *and custom* property becomes a column — no field mapping to maintain:

- **Contacts, companies, deals, tickets** — with every property.
- **Emails, calls and meetings** — including subjects, bodies and call notes.
- **Associations** — which contacts, companies and deals each record links to (with labels like a deal's "Primary" company), as ready-to-join tables.
- **Property history** — one row per value change on contacts, companies, deals and tickets: deal-stage progression, ownership moves, score changes over time.
- **Custom objects** — every custom object type your portal defines, discovered automatically, with full properties and associations. Define a new one later and it appears on the next sync.
- **Lists and segments** — every list with its folder, type (dynamic, manual or snapshot) and size, plus the memberships behind it, so you can ask "which deals sit in this segment?" and join a segment to anything else in your CRM.
- **Owners and pipelines** — so stage IDs resolve to human-readable labels.

The first sync backfills your full history in resumable batches; after that, nightly syncs pull only what changed.

## Good to know

- Anyone with the key can read your CRM. Treat it like a password — rotate it from the Service Keys page if it leaks, then paste the new key into Rig.
- HubSpot's *marketing* objects (marketing emails, forms, campaigns) are a separate API family and aren't part of this connector. CRM lists and segments are a different API and do sync, as above.
- Large portals: the first full-history sync can run for several hours — it checkpoints as it goes, and Rig's rate limiting stays inside HubSpot's API limits.
- You can disconnect HubSpot at any time from `Connections` → `Sources & actions`.

## What people use this for

- Track deal velocity and pipeline conversion
- Connect marketing campaigns to revenue
- Measure lead response and follow-up
- Keep the CRM clean and accurate

[More ideas for using HubSpot](https://rig.so/integrations/hubspot)

Was this guide helpful?

Yes No

---

- [This page as HTML](https://rig.so/guides/connect-hubspot)
- [Site map for language models](https://rig.so/llms.txt)
- [API and agent documentation](https://rig.so/developers)
