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.

    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 DevelopmentLegacy 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.

    ScopeWhat it unlocks in Rig
    crm.objects.contacts.readContacts (also required for calls and meetings)
    crm.objects.companies.readCompanies
    crm.objects.deals.readDeals + deal pipelines and stages
    crm.objects.owners.readOwners (your HubSpot users, for attribution)
    ticketsSupport tickets + ticket pipelines
    sales-email-readLogged email content — subjects and bodies, not just counts
    crm.schemas.custom.readDiscovering your portal's custom object types
    crm.objects.custom.readReading 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

    1. In Rig, open Connections in the left sidebar and go to the Sources step.
    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.
    • 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 ConnectionsSources.

    Was this guide helpful?