Connect HubSpot to Rig
Sync your full HubSpot CRM into Rig — contacts, companies, deals, tickets, 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.
- In HubSpot's left sidebar, open
Development, then underKeysclickService Keys. - Click
Create service keyand give it a name (e.g. "Rig"). - Grant the read scopes listed in Step 2 below.
- 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.schemas.custom.read | Discovering your portal's custom object types |
crm.objects.custom.read | Reading the records inside those custom objects |
⚠️ 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
- In Rig, open
Connectionsin the left sidebar and go to theSourcesstep. - Search for HubSpot (under CRM) and click its card.
- Service Key: paste the
pat-…key. - Click
Continue— Rig probes the token and shows each stream with a tick, or the exact scope it's missing. ThenTestto pull a small sample, thenSyncto 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.
- 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, lists, campaigns) are a separate API family and aren't part of this connector.
- 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.