Connecting HubSpot to Golden Suite
Set up the HubSpot OAuth connector. Contacts, Companies, and Deals ingested with cursor-based incremental syncs. Works on any HubSpot tier, including free.
The HubSpot connector ingests Contacts, Companies, and Deals via OAuth. Same auth flow you've seen on every HubSpot integration.
Prereqs
- A HubSpot account on any tier
- Marketing/Sales/Service Hub or just the free CRM — all work
- Admin permissions on the HubSpot account (you'll authorize the OAuth grant once)
Setup
/golden/sources→ Add source → HubSpot- OAuth flow — Golden Suite redirects to HubSpot's login
- Authorize scopes:
crm.objects.contacts.read,crm.objects.companies.read,crm.objects.deals.read(per the object you're ingesting) - Pick the object: Contact, Company, or Deal
- First ingest pulls all records; subsequent ingests use
hs_lastmodifieddateas a cursor
Field mapping
InferMap auto-proposes the mapping. Typical results for Contacts:
| HubSpot | Golden Suite | Confidence |
|---|---|---|
email | email | 1.0 |
phone | phone | 1.0 |
firstname | first_name | 0.95 |
lastname | last_name | 0.95 |
company | company | 1.0 |
lifecyclestage | lifecycle_stage | 0.95 |
jobtitle | title | 1.0 |
hs_lead_status | lead_status | 0.85 |
Custom properties are pulled too but won't auto-map — review the mapping in the autoconfig wizard.
Common gotchas
- API rate limits. HubSpot's free + Starter tiers cap at 100 calls per 10 seconds per private app; Professional and Enterprise have 200/10s. The connector respects rate limits with exponential backoff but very large ingests may take longer than expected.
- Free contacts vs marketing contacts. HubSpot Marketing Hub bills per marketing contact. The connector pulls all contacts (marketing + non-marketing); make sure you understand the distinction in your downstream processing.
- Owner / pipeline IDs. HubSpot returns owner IDs and pipeline stage IDs as opaque GUIDs. You typically don't dedupe on these but pass them through to downstream systems.
- List membership. Static and active list membership is not pulled by default. If you need it, add a custom source per list (each list ID is one source).
- OAuth scope expansion. To add Companies after starting with Contacts, you re-auth via the OAuth flow (HubSpot doesn't support adding scopes incrementally).
- Webhooks for real-time sync — not currently supported. The connector is batch (incremental every N minutes). Real-time webhook ingestion is on the roadmap.
Next steps
- /docs/guides/reverse-sync-to-crm — push your deduped golden records back into HubSpot (reverse-sync)
- /docs/guides/use-case/lead-dedup — HubSpot Leads dedup workflow
- /docs/guides/use-case/customer-360 — HubSpot is one of 3-5 sources in customer-360
- /compare/build-vs-buy — alternative is writing your own HubSpot API integration
Related integrations
Warehouses
- → BigQueryservice account JSON + dataset routing
- → Snowflakeuser/password + warehouse selection
- → Postgresconnection string + read-only role
SaaS
- → SalesforceOAuth + custom field allowlist
- → Striperestricted API key
File storage
- → S3access key + prefix filter
- → CSV uploaddrag-and-drop, no auth
Full list of 22 source types: source connectors guide
Was this page helpful?
Edit this page on GitHub