HubSpot + Fivetran integration

Fivetran copies HubSpot into a warehouse on a schedule, deletes and history included. What its app carries, what drives its row count, and the way back.

Native app

Scope this integration Book a scoping call

Is there a native Fivetran + HubSpot integration?

Yes, and the data moves out of HubSpot rather than in. Fivetran publishes its own app in the HubSpot App Marketplace as of September 2026, and its connector is the honest route for copying objects, associations and property history into a warehouse. It stops being enough when the data has to come back into HubSpot, which takes Fivetran Activations, the former Census, or a keyed build.

Recommended route
Native app
Build effort
8 to 24 hours
In the HubSpot App Marketplace?
Yes, Fivetran
Typical elapsed time
1 to 2 weeks

Marketplace checked September 2026.

Why teams connect Fivetran to HubSpot

Fivetran usually arrives from the analytics side. Someone needs pipeline, campaigns and support tickets in the same warehouse as billing, product usage and finance, and HubSpot’s own reports cannot join to any of those. Fivetran’s HubSpot connector copies the portal into the warehouse on a schedule, table by table, so analysts query HubSpot with SQL beside everything else.

That makes Fivetran the first half of a round trip rather than a sync into HubSpot. Data leaves HubSpot, gets modelled in the warehouse, and the useful results come back through a separate product. Fivetran now owns both halves. It acquired Census, which it sells as Fivetran Activations, and it completed a merger with dbt Labs in 2026, so the loader, the modelling layer and the return trip can sit with one vendor.

What a revenue team gets from this is indirect but real. Deal stage history lands as rows with start and end times, so time in stage becomes a query. Engagements and email events land beside the CRM objects, and property history shows how each value changed over time. A churn model or a pipeline forecast built on those tables is only as good as the copy underneath it.

The question worth settling first is which tables you need. The connector can copy most of HubSpot, and every row it processes in a month is billed, so a connection that copies everything by default costs more than one scoped to the reports.

What syncs

Fivetran lands HubSpot’s own schema rather than a mapping you design. Each object becomes a table: contacts, companies, deals, tickets, line items, products, leads, orders, custom objects and more, with association tables between them and pipeline tables for their stages. Engagements land as notes, emails, tasks, meetings and calls, each only if its table is selected.

Keys are HubSpot’s record IDs, which is the right choice in this direction because HubSpot owns every record. Merges are the subtle part. A merged contact keeps its absorbed IDs in a merged IDs column, a merged deal gets a row in a separate merged deal table, and a merged company is marked deleted.

History mode adds a property history table beside each current-state table, and deal stages get their own table with an entry and exit time per stage. A history table only syncs when its current-state table does, and it cannot be switched between modes, because Fivetran reads history straight from the API.

Objects that sync between Fivetran and HubSpot
Source object HubSpot object Direction Match key Notes
CONTACT table Contact Out of HubSpot HubSpot record ID A merged contact keeps its absorbed IDs in a merged IDs column.
COMPANY table Company Out of HubSpot HubSpot record ID A company merged into another is marked deleted, not removed.
DEAL and DEAL_STAGE tables Deal Out of HubSpot HubSpot deal ID, one stage row per stage entered Time in stage is the gap between a stage's start and end columns.
ENGAGEMENT tables Engagement Out of HubSpot Engagement ID Notes, emails, tasks, meetings and calls, each only if selected.
TICKET table Ticket Out of HubSpot HubSpot record ID Deletes are picked up by a check that runs once a day.
Custom object tables Custom object Out of HubSpot HubSpot record ID, with a table per association pair An association change lands only when another property changes.
Warehouse account model, through Activations Company Into HubSpot Unique custom property holding the warehouse key The return trip, a separate Fivetran product billed on its own rows.

Architecture

Fivetran hosts the connector, so there is nothing to deploy. It authorizes through the Fivetran app in HubSpot, or through a private app’s access token, and reads incrementally on a fixed interval: every six hours by default, and as often as every minute on an Enterprise or Business Critical plan.

Deletes arrive three ways, because HubSpot’s API has no single mechanism for them. Companies, contacts and deals get webhooks. Tickets, line items, products, custom objects and a few others are checked once a day. Pipelines, lists and teams are compared with their previous versions, and contact and company list memberships are re-synced every weekend.

Replay is a table-level or connection-level re-sync, and re-syncing a parent table re-syncs its children. In house terms this is polling on a watermark run by the vendor: Fivetran keeps the state, and the warehouse holds the result.

  1. Sources

    • HubSpot Objects, associations, history
    • Billing system
    • Product database
  2. Connectors

    • Fivetran Every six hours by default
  3. Warehouse

    • Snowflake
    • Microsoft Fabric
    • dbt models Built on the copied tables
  4. Use

    • Reports and dashboards
    • Fivetran Activations The return trip to HubSpot
Here HubSpot is a source. Fivetran copies its objects, associations and history into the warehouse beside billing and product data, where they are modelled for reporting. Results reach HubSpot again only through a separate step, such as Fivetran Activations.
The Fivetran app reads HubSpot every six hours by default, with webhooks for company, contact and deal deletes, and writes current state and history tables keyed on the HubSpot record ID. Models built on those tables feed dashboards, and only Activations, the former Census, carries results back into HubSpot.

What the API allows

API style
REST
Authentication
OAuth 2.0
Webhooks
Partial
Changed-since filter
Yes
Sandbox
Unknown
Rate limit
110 requests every 10 seconds per HubSpot account through the Fivetran app, HubSpot's limit for a marketplace app

Developer documentation fivetran.com

Three ways to connect

Start with the warehouse. If it is Snowflake and the portal has Data Hub Enterprise, HubSpot’s own Snowflake Data Share puts CRM data in the warehouse with no pipeline at all. For any other warehouse or tier, Fivetran is the packaged route, and its bill follows the rows it moves. A small service reading HubSpot’s CRM API on a modified-date watermark makes sense when three or four objects are all the reports need and a fixed running cost matters more than breadth.

The return trip is a separate decision. Fivetran’s own answer is Activations, covered on the Census page, and Hightouch reads the same tables. Where a lakehouse already holds the operational data, Microsoft Fabric is worth a look, and Fivetran can land data there too.

  • Custom middleware

    Possible

    A small service reading HubSpot's CRM API on a modified-date watermark fits when three or four objects are all the reports need, shaped for them, and a fixed running cost matters more than breadth.

  • Automation platform

    Avoid

    Automation platforms fire on single events. A warehouse copy needs a historical backfill, deletes and property history, and none of those arrive as an event.

What breaks and how we prevent it

Property history that multiplies rows

History mode records every property change as a new row, and every row counts toward monthly active rows. Fivetran warns that the contact property history table can push usage up on its own because of its size. We switch history on only for the objects a report actually needs, and leave the rest on current state.

Invoices and subscriptions that never delete

Fivetran captures no deletes for invoices, subscriptions or their child tables, because HubSpot’s archived filter does not work for them and its webhooks do not cover them. A deleted invoice stays in the warehouse as if it were live. We reconcile those tables against HubSpot on a schedule and flag the difference.

A connection created through the API

Connections created with Fivetran’s REST API are not authorized through the Fivetran HubSpot app, so they capture no deletes for companies, contacts or deals. The pipeline looks healthy and slowly fills with records HubSpot has removed. We create the connection in the dashboard through the app.

Custom object associations that lag

HubSpot does not move a custom object’s updated time when only its associations change, and offers no webhook for them. Fivetran picks the association up only when another property on the object changes, so a report built on those associations needs a periodic re-sync of the parent table.

Email events that settle a day late

HubSpot processes email events with a delay, so Fivetran re-reads the last 25 hours of email events on every sync. Custom events backdated through the API fall outside that window and need a table re-sync. We tell analysts that email figures settle a day later, and schedule the re-sync after any backfill.

Our approach

  1. Scope. We list the reports the warehouse has to answer, then the HubSpot tables they need, and nothing more.
  2. Architect. We decide history mode per object, the historical start date for event tables, and the sync frequency the plan allows.
  3. Build. The connection is created in the dashboard through the Fivetran app, authorized by a Super Admin, with unused tables blocked.
  4. Validate. We compare row counts per object with HubSpot and check that a test deletion and a test merge land as documented.
  5. Operate. We watch monthly active rows and sync history, and run the table re-syncs that email events and custom object associations need.

Common questions

Does the Fivetran HubSpot app write anything back into HubSpot?

No. The connector reads HubSpot and writes to a destination such as a warehouse or a data lake. Sending modelled data back into HubSpot is a separate Fivetran product, Activations, the former Census, billed on its own monthly active rows. The alternatives for that return trip are another reverse ETL tool or a keyed service we build.

How often does Fivetran copy HubSpot into the warehouse?

Every six hours unless you change it. The options run from once every 24 hours down to every 15 minutes, and every minute on an Enterprise or Business Critical plan. Email events are always re-read 25 hours back, so yesterday's email figures keep moving for a day after they first land.

Does Fivetran capture deleted HubSpot records?

Mostly. Deleted companies, contacts and deals arrive by webhook, tickets, line items, products and custom objects are checked once a day, and pipelines and lists are compared with their last version. Invoices and subscriptions are the exception, with no deletes captured at all. A record deleted permanently between two daily checks is not marked deleted either.

How does Fivetran bill for a HubSpot connection?

By monthly active rows, the rows it processes in a calendar month, at a spend rate that falls as usage grows. Each new connection has 14 days of free use, and the Free plan covers 500,000 rows a month for connections. History mode, event table re-syncs and the monthly roll-back on web analytics tables are what push a HubSpot connection's count up.

Can Fivetran keep the history of HubSpot deal stages?

Yes. The deal stage table records each stage a deal entered with its start time, and Fivetran fills the end time from the next stage, so time in stage is a subtraction. Property history tables do the same for contacts, companies, tickets and most other objects when history mode is on, at the cost of more monthly active rows.

What HubSpot access does the Fivetran connector need?

A HubSpot user with Super Admin access, who authorizes the Fivetran app with OAuth, or an access token from a private app created in the portal. Use the app route where you can. Connections created through Fivetran's REST API are not authorized through that app, and they capture no deletes for companies, contacts or deals.

How much work is a Fivetran HubSpot connector setup?

Usually 4 to 8 hours of discovery and 8 to 24 hours of setup and validation. The hours go on choosing tables and history mode, blocking what the reports never use, checking deletes and merges against HubSpot, and agreeing a schedule the plan supports. Modelling the tables afterwards is separate work, and so is any return trip into HubSpot.

Partnerships and accreditations

  • HubSpot Elite Solutions Partner
  • HubSpot Custom Integration Accreditation
  • HubSpot CRM Data Migration Accreditation
  • HubSpot Solutions Architecture Design Accreditation

HubSpot accreditations

  • HubSpot Onboarding Accreditation
  • HubSpot Academy Accreditations

Industry specializations

  • HubSpot Healthcare Industry Specialist
  • HubSpot Financial Services Industry Specialist
  • HubSpot Manufacturing Industry Specialist
  • HubSpot Quote to Cash Capability

Partnerships

  • Google Partner
  • Anthropic Solutions Partner

Scope a Fivetran integration

Send the systems, the direction and the record volume. We reply with a scope and an effort band within one business day.

  • Fivetran

Press Enter or comma to add another system.

Add more detail (optional)

Optional. A sentence or two about the workflow is enough.

We use these answers to scope the work and for nothing else. Privacy policy.

Prefer to talk it through first? Book a technical scoping call

Talk to the people who build these

  • Nijat
  • Sean
  • Prash

Book a scoping call