HubSpot data warehouse source: sync engagement associations (meetings/emails ↔ companies/deals) + expose include_history
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 39.9k
- Forks
- 3.4k
- Avg merge
- 6h 51m
- Merged PRs (30d)
- 232
Description
What I'm trying to do
Read HubSpot CRM data from the PostHog data warehouse instead of calling the HubSpot API directly, to power an account-level engagement view (which accounts we've met/demoed, and how far each deal progressed).
The gap
The HubSpot source materializes CRM↔CRM associations as embedded JSON on companies (contacts, deals, quotes, tickets), but engagement objects are excluded:
hubspot.meetingsandhubspot.emailshave no association columns, andcompaniesembeds no meetings/emails JSON.- So synced meetings/emails can't be joined to companies or deals at all — the association exists in HubSpot but never lands in the warehouse.
- The "Customize synced properties" toggle covers properties only, not associations, so there's no UI path to add them.
Separately, per-property history isn't synced (e.g. a deal's hs_v2_date_entered_<stage> stage-entry dates), so "the furthest/deepest stage a deal ever reached" can't be reconstructed — only the current dealstage is available.
Request
The underlying dlt HubSpot source already supports both — they're just not surfaced. Please expose in the connector:
- Selectable associations, including engagement objects (meetings/emails/calls/notes ↔ companies/deals/contacts).
- An
include_historyoption to sync property-change history (e.g. deal stage-entry dates).
Refs: dlt-hub/verified-sources HubSpot settings.py (hardcoded CRM-only association list); PostHog HubSpot source docs; HubSpot Associations v4 / Meetings v3 APIs
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue points to dlt-hub/verified-sources HubSpot settings.py and the PostHog HubSpot source docs; start by comparing the existing CRM-only association list with the connector settings path. Trace how synced properties are exposed, then verify how selectable engagement associations and include_history should be surfaced. Done means both options are available for the HubSpot warehouse source.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data-engineering
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100