Estuary

How to Connect HubSpot to Snowflake: 3 Methods (2026)

Three ways to move HubSpot data into Snowflake, compared: HubSpot's native Snowflake Data Share, a manual API pipeline, and real-time CDC with Estuary. Includes setup steps, a method comparison, and answers to the questions teams ask most.

Hubspot to Snowflake - Blog Hero Image
Share this article

HubSpot runs your marketing, sales, and service. Snowflake is where that data becomes analytics you can actually act on, joined with product usage, billing, and ad spend that HubSpot never sees on its own. Getting HubSpot data into Snowflake, and keeping it current, is what turns CRM reports into real analysis: customer acquisition cost by channel, attribution across touchpoints, churn signals, and a true 360-degree view of every account.

There are three ways to do it, and this guide covers all of them: HubSpot's native Snowflake Data Share, a manual export through the HubSpot API, and a real-time pipeline with Estuary. The right choice depends on how fresh the data needs to be, whether you need more than read-only access, and how much engineering time you want to spend.

Here's where Estuary is different. It captures every change in HubSpot once into a durable stream using change data capture, then lets you decide how each object lands in Snowflake, streaming the high-value ones in near real time through Snowpipe Streaming while batching the rest to keep Snowflake compute low. Because the pipeline reads from that stream rather than re-querying HubSpot for every destination, a single capture can feed Snowflake and any other warehouse or tool at once, without multiplying the load on HubSpot's API. It's read-only and safe by design: Estuary never writes back to HubSpot, so your CRM stays the source of truth.

Why Integrate HubSpot with Snowflake

HubSpot is built to run your customer-facing teams, not to be a data warehouse. Its reporting is fine on its own, but it can't easily join CRM data with the rest of your business or preserve history as records change. Moving HubSpot into Snowflake unlocks the analysis HubSpot can't do alone:

  • Unified customer view: join HubSpot contacts, companies, and deals with product usage, billing, and support data already in Snowflake.
  • Attribution and CAC: combine deals with ad spend from Google, LinkedIn, and Meta to see which channels actually acquire customers, and at what cost.
  • Historical snapshots: HubSpot overwrites records as they change. Snowflake preserves the history, so you can reconstruct what the pipeline looked like last quarter.
  • Analytics that survive tool changes: with CRM data in the warehouse, your dashboards don't break if you switch CRMs later.

The rest of this guide shows the three ways to build that integration, and when each one fits. If your warehouse is BigQuery instead, see our guide on connecting HubSpot to BigQuery.

HubSpot to Snowflake: 3 Methods Compared

Before the step-by-step guides, here's how the three methods stack up, so you can pick the right one for your use case.

 Native Snowflake Data ShareManual (HubSpot API)Estuary
How it worksHubSpot shares CRM data into SnowflakeCustom scripts pull from the HubSpot API and load to SnowflakeReal-time CDC pipeline into Snowflake
Data freshnessScheduled refreshOnly as current as your last runNear real-time, tunable per object
Setup effortLow, but needs Operations HubHigh, you build and maintain itLow, minutes in the UI or as code
AccessRead-only into SnowflakeFull control, full responsibilityRead-only capture, safe by design
Custom objectsDepends on the shareYou map them yourselfAuto-discovered
Schema changesManaged by HubSpotYou handle themHandled automatically
MaintenanceLowHigh, breaks when APIs changeLow, fully managed
RequirementHubSpot Operations Hub (Enterprise tier)Engineering timeEstuary account
Best forHubSpot Enterprise teams wanting a quick native optionOne-off pulls or highly custom logicOngoing, production pipelines that stay current

The native Data Share is the fastest path if you're already on HubSpot Operations Hub and only need read-only analytics. The manual API route gives you total control but becomes a maintenance burden fast. For a pipeline that stays current on its own, with automatic schema handling and per-object control over cost, Estuary is the most sustainable choice. The rest of this guide walks through all three.

Method 1: Using HubSpot’s Sync Feature for HubSpot to Snowflake Integration

Existing HubSpot users can use Snowflake Data Share—HubSpot’s native integration with Snowflake. Snowflake Data Share allows you to pass data from your HubSpot CRM platform to a Snowflake instance quickly and securely. You can also retrieve HubSpot data in Snowflake by running SQL queries.

Step 1: First, navigate to the HubSpot Data listing in Snowflake Marketplace and click on the Request button, then accept Snowflake’s terms. 

Step 2: After completing this mandatory step, proceed to install the Snowflake integration from the HubSpot App Marketplace. The app creates Snowflake shares to deliver your CRM data. It requires HubSpot’s Operations Hub Enterprise and syncs data between the two platforms using triggers.

Step 3: With triggers, choose which HubSpot objects you want to send to Snowflake and specify the details of the data transfer, like the type and frequency of sync. This allows for a real-time sync of your HubSpot data with Snowflake.

Step 4: After setting up the triggers, HubSpot automatically sends all relevant data when an operation meets your specified conditions. You can also set up bidirectional syncing between HubSpot and Snowflake for easy updates of records whenever changes occur.

Method 2: Using the Manual Method to Integrate HubSpot to Snowflake

Although slightly more time-consuming than the previous method, you can manually extract your HubSpot data and load it to Snowflake.

Step 1: First, you must extract your data from HubSpot using HubSpot APIs that follow the REST architecture. You can use tools like Postman or CURL or use HTTP clients to interact with the APIs. The API responses will be in JSON, which is a widely used format for organizing data.

Step 2: Before moving the data into a Snowflake data warehouse instance, ensure you have a well-defined schema of your data. Snowflake data is organized around tables with a well-defined set of columns, each with a specific data type. Since Snowflake supports semi-structured data types, including JSON, you can directly load JSON data.

Step 3: To load data from HubSpot to Snowflake, create a schema to map each API endpoint to a table. Map each key of a HubSpot API endpoint response to a column of a table and ensure the right conversion to Snowflake data type.

Step 4: Once you have a well-defined schema or data model for Snowflake, you can load your HubSpot data into the Snowflake database. Use the PUT command to push the files containing data into a staging environment. Then, invoke the COPY INTO command on the Snowflake instance to copy the data.

Alternatively, you can upload all the extracted HubSpot data into a service like Amazon S3 for Snowflake to directly access the data.

Step 5: Finally, you can use the Snowflake web interface to load data from files up to 50 MB in size. The web interface acts as a data loading wizard where you can visually set up and copy your data into the data warehouse.

To avoid the hassle of manual integration, consider hiring a HubSpot developer or simply register for Estuary to automatically sync data from HubSpot to Snowflake in minutes.

Method 3: Real-Time HubSpot to Snowflake with Estuary

Estuary builds a continuous pipeline from HubSpot into Snowflake using change data capture. It captures every change in HubSpot once, backfills your history, and keeps Snowflake current from there, with automatic schema handling, exactly-once delivery, and per-object control over how fresh the data is and how much Snowflake compute it uses. You can set it up in a few minutes through the UI or manage it as code. Of the three methods, this is the one built for pipelines that need to stay live.

Here are the key features:

  • Real-time streaming: capture and deliver HubSpot changes continuously, so Snowflake reflects your CRM without manual refreshes.
  • Per-object cost control: stream high-value objects in near real time with Snowpipe Streaming, and batch the rest to keep warehouse costs down.
  • Automatic schema handling: new fields and custom objects are discovered and handled without breaking the pipeline.
  • Read-only and safe: Estuary never writes back to HubSpot, so your CRM stays the source of truth.

Here are the steps involved in using Estuary for integrating HubSpot to Snowflake:

Step 1: Log In

You’ll need to log in to your Estuary account to get started. If you don’t have one, register for a free account.

Step 2: Create a New Capture

Upon logging in, you’ll be redirected to the Estuary dashboard, where you must click on Captures. A capture is the data source that forms one end of the data pipeline. Then, click on the NEW CAPTURE button.

Hubspot to Snowflake - New Capture Page

Search for HubSpot in the Search connectors box. The search results will show the HubSpot Real-time connector. Click on the Capture button of this connector.

Hubspot to Snowflake - Hubspot Connector Search Result

Once you’re on the HubSpot Real-time connector page, enter a Name for the connector and choose your Data Plane.

To allow Estuary to connect to your HubSpot account, authenticate your HubSpot account using OAuth. Click the Authenticate Your HubSpot Account button and complete the authorization pop-up. No data is written or modified during this process.

You may optionally enable Capture Property History if you want historical property changes included in your records.

Hubspot to Snowflake - Capture Details - Endpoint Configuration

Collections are discovered automatically. After reviewing the settings, click Next, then Save and Publish to complete the source setup.

Prerequisite: Before you connect Estuary to Snowflake, make sure you have a user role with appropriate access permissions to your Snowflake database, schema, and warehouse. To accomplish this, you can run this script.

Step 3: Materialization

The next step is to set up the destination end of the pipeline. You can click on Materialize Connections in the pop-up window that follows a successful capture. Alternatively, you can navigate to the Estuary dashboard and click on Materializations. Next, click on the NEW MATERIALIZATION button.

Hubspot to Snowflake - New Materialization

Search for Snowflake in the Search connectors box. You’ll find the Snowflake Data Cloud connector in the search results. Click on the Materialization button.

Hubspot to Snowflake - Snowflake Connector Search

Once you're on the Snowflake connector page, provide the required details: the Snowflake host URL, database, schema, and warehouse, plus the timestamp type the connector uses to store timestamps. For authentication, configure JWT key-pair authentication with your Snowflake username and private key. Username and password authentication is deprecated and should not be used.

Then set how each object lands in Snowflake, which is where you balance freshness against cost:

  • Sync Schedule controls how often the materialization writes to Snowflake. Set it near real-time for objects that need to be current, or lengthen it to wake the Snowflake warehouse less often and spend less. If you don't set it, the default is 30 minutes.
  • Delta updates, set per object, controls how each table is written. Turning it on uses Snowpipe Streaming by default, which writes rows directly into Snowflake without running the warehouse, giving you the lowest latency and cost. Leaving it off uses standard merge updates, which keep one current row per key. You can mix both in a single materialization, streaming append-heavy objects and merging the ones you query for current state.

Click Next, then Save and Publish. The connector will backfill your HubSpot collections into Snowflake and keep them in sync from there.

Hubspot to Snowflake - Materialization Details - Endpoint Configuration

This completes the process of HubSpot to Snowflake integration.

Conclusion

Integrating HubSpot with Snowflake turns CRM reporting into real analysis: attribution, acquisition cost, churn signals, and a full customer view that HubSpot can't produce on its own. How you connect them comes down to how fresh the data needs to be and how much you want to maintain.

HubSpot's native Snowflake Data Share is a quick read-only option if you're on Operations Hub. A manual API pipeline gives you full control but becomes a maintenance burden that breaks when APIs change. For a pipeline that stays current on its own, Estuary captures every HubSpot change once and streams it into Snowflake, backfilling your history and keeping it live from there, with per-object control over latency and Snowflake compute through Snowpipe Streaming, and without writing back to HubSpot or straining its API.

If your warehouse is different, the same approach applies. See our guides for HubSpot to BigQuery and HubSpot to Google Sheets.

Ready to build it? Start for free, connect HubSpot and Snowflake, and you'll be syncing in minutes. For connector details, see the HubSpot capture connector and Snowflake materialization connector docs.

FAQs

    Is there a native integration between HubSpot and Snowflake?

    Yes. HubSpot offers Snowflake Data Share, which shares CRM data into Snowflake for read-only analytics. It requires HubSpot Operations Hub, and it's a scheduled share rather than a real-time stream. For continuous, near real-time sync with control over how data lands, a dedicated pipeline like Estuary is the better fit.
    Yes. Estuary's HubSpot connector automatically discovers custom objects along with standard ones. To avoid naming collisions with standard objects, custom objects are prefixed with custom_ in the resulting collections. Standard objects, including Contacts, Companies, Deals, Line Items, Products, Tickets, Engagements, Marketing Emails, and Forms, are discovered automatically too.
    Estuary discovers a wide range of HubSpot resources automatically, including Contacts, Companies, Deals, Deal Pipelines, Line Items, Products, Tickets, Engagements, Leads, Owners, Properties, Contact Lists, Forms and Form Submissions, Marketing Emails, Marketing Events, Campaigns, Email Events, Goals, Orders, and custom objects. You choose which ones to materialize into Snowflake.
    Estuary captures from HubSpot once into a durable stream, and your Snowflake materialization reads from that stream rather than re-querying HubSpot. So even if you send the same HubSpot data to several destinations, you're not multiplying calls against HubSpot's API. This keeps API pressure lower than running separate extractions for each destination.
    Yes. When a capture starts, Estuary backfills the existing records from HubSpot, then keeps the data current as changes happen. So Snowflake holds both your history and ongoing updates without a separate one-time export.

Start streaming your data for free

Build a Pipeline

About the author

Picture of Jeffrey Richman
Jeffrey RichmanData Engineering & Growth Specialist

Jeffrey is a data engineering professional with over 15 years of experience, helping early-stage data companies scale by combining technical expertise with growth-focused strategies. His writing shares practical insights on data systems and efficient scaling.

Streaming Pipelines.
Simple to Deploy.
Simply Priced.
$0.50/GB of data moved + $.14/connector/hour;
50% less than competing ETL/ELT solutions;
<100ms latency on streaming sinks/sources.