HubSpot Klaviyo: What Integration Actually Exists?
The question comes up in almost the same context every time. A DTC brand has HubSpot installed for sales or support, wants to move its ecommerce email over to Klaviyo, and someone asks whether "the two just plug into each other." The honest answer rests on one distinction: there are ways to move data between HubSpot and Klaviyo, but Klaviyo's official documentation does not describe a native, pre-built integration with HubSpot.
This article sorts out what is documented, what falls into custom-build territory, and what nobody can promise you without checking it in your own account. The goal: knowing what to ask your agency or your developer before signing anything.
What Klaviyo's documentation says about HubSpot
Klaviyo publishes a page listing the integrations it builds and maintains itself. HubSpot is not on it. The page closes by pointing users to the app marketplace for everything else: "Looking to integrate other platforms or tools with Klaviyo? Check out our app marketplace, which includes integrations and apps built by both Klaviyo and third parties" (Klaviyo Help Center).
The only HubSpot path actually documented by Klaviyo's help center is a CSV export migration, not a two-way sync. The guide says to choose CSV as the export format from HubSpot and select all record properties: "Choose CSV as the file format, and select All properties on records" (Klaviyo Help Center).
Third-party connectors exist on the market (app marketplace listings, iPaaS-style automation tools). Their sync scope, vendor and pricing are not documented on the Klaviyo pages we reviewed: if an agency recommends one, ask for the product sheet, the actual sync frequency and the list of synced objects in writing before committing.
Another structural constraint worth knowing before stacking tools: a Klaviyo account supports only one integration per type (Klaviyo Help Center). This matters for multi-store or multi-CRM setups, and it is often the point that tips an architecture toward a custom API build.
The three possible scenarios, and which one applies to you
Before opening a technical project, settle the actual need. In our audits, 80% of "HubSpot Klaviyo integration" requests turn out to be scenario 1.
Scenario 1: you are migrating from HubSpot to Klaviyo
You are leaving HubSpot for email marketing. There is no sync to build: it is a one-time database transfer, followed by a switch of sending. This is the scenario Klaviyo documents, and by far the simplest to secure. We cover the full path in our HubSpot to Klaviyo migration guide.
Scenario 2: you keep HubSpot for sales, Klaviyo for ecommerce
Two tools, two uses, two databases that need to stay consistent. This is the case for brands running B2B or wholesale alongside DTC. Here, some data flow is necessary, either through a third-party connector or the Klaviyo API. It is also the moment to clarify who is the source of truth on consent and on customer properties, a topic we cover on structuring a B2B CRM email funnel (French only for now).
Scenario 3: you want to trigger HubSpot actions from Klaviyo
A Klaviyo flow that notifies a sales rep, creates a task, or updates a record. The right mechanism here is a Klaviyo webhook, which is outbound: "Webhooks allow Klaviyo to pass information or 'call' other applications, tools, and servers via HTTP requests" (Klaviyo Help Center).
A webhook placed in a flow sends a POST request with the triggering event's or recipient's data (Klaviyo Help Center). Two prerequisites to know before promising this to a sales team:
- two-factor authentication must be enabled on the account, and webhook usage is restricted to Manager, Admin and Owner roles (same source);
- Advanced KDP webhooks are billed under a separate subscription from the standard marketing application (Klaviyo Help Center).
The retry behavior and timeout of a flow webhook when the receiving end fails are not specified on the public page. If a sales process depends on receiving that POST, build a queue and a log on the receiving side rather than counting on an implicit retry, and have Klaviyo support confirm the behavior.
The CSV path: the documented process, step by step
This is the official route, and it is trickier than it looks. Here is the order of operations we apply.
1. Pause your flows before any import
This is the step everyone skips, and it is the one that costs the most. Klaviyo's documentation is explicit: some flows are triggered by adding an address to a list, so you must set them to draft or manual mode before starting the upload (Klaviyo Help Center).
Translated to the field: if your welcome flow is running while you import 30,000 HubSpot contacts, you send a welcome email to people who have known you for three years. On deliverability, it is about the worst scenario possible. See also our article on the most frequent Klaviyo audit mistakes (French only for now).
2. Prepare the file in the right format
Documented constraints:
| Element | Rule | Source |
|---|---|---|
| First column header | Email or Email Address |
Klaviyo |
| Header row | First row of the file | Klaviyo |
| File size | 50 MB maximum, split otherwise | Klaviyo |
| Recognized consent statuses | Subscribed, Unsubscribed, Never subscribed | Klaviyo |
Klaviyo publishes a limit in megabytes, not in number of rows. Size your batches on file weight, not on an assumed contact count.
Mapping HubSpot properties to Klaviyo properties (lifecycle stage, list membership, form submissions) is not covered by an official correspondence table. It is manual work, column by column, with a naming convention decided upfront. Our method for structuring this is in Klaviyo custom properties: segmentation guide.
3. Handle unsubscribes separately
A critical point that is often missed. Unsubscribes and bounces do not get imported into a list: they go into suppressed profiles, via a single-column CSV with one address per line (Klaviyo Help Center).
If you import HubSpot's unsubscribes as regular contacts, you resubscribe people who explicitly asked you to stop. Do this second import before turning any sending back on.
4. Check the consent box knowingly
At import, checking "Subscribe to Email Marketing" counts as a declaration of explicit consent for every profile in the file: "Click Subscribe to Email Marketing in the Email row to denote that all profiles in this upload have explicitly consented" (Klaviyo Help Center).
That is a product checkbox, not a legal blank check. Klaviyo's documentation describes the mechanics, not the validity of the transferred consent under GDPR. Before checking it, verify the real origin of each HubSpot segment (opt-in form, sales import, purchased list) and align with your DPO or counsel. Our practical reference points are in GDPR email marketing 2026: compliance checklist.
5. Do not send to the whole base on day one
For a migration from another tool, Klaviyo recommends limiting the first sends to an engaged segment: one week if you send daily, 2 to 3 campaigns if you send more than once a week (Klaviyo Help Center).
A HubSpot database often contains sales contacts who have never been emailed for marketing. Sending to them in bulk from a sender domain with no history on this audience manufactures complaints. The full protocol for warming up a dedicated IP is covered in French only for now.
The API path: when CSV is not enough
If you are in scenario 2 (both tools coexist long-term), CSV becomes unmanageable. That is when you move to the Klaviyo API. Klaviyo documents a dedicated guide for integrating a platform without a pre-built connector.
Authentication and design
The /api endpoints authenticate with a scoped private key, and Klaviyo recommends OAuth for technical partners (Klaviyo Developers).
This choice is not cosmetic. An OAuth application gets its own rate limit quota per installed instance, while private-key integrations share the same quota at the account level (Klaviyo Developers). In other words: if your HubSpot connector uses a private key, it consumes the same request budget as your other tools connected to the account, and a sync batch can degrade the rest of the stack.
Volumes and limits
- The bulk profile import endpoint accepts up to 10,000 profiles per request (Klaviyo Developers).
- The API applies two rate-limit windows, a burst over 1 second and a steady window over 1 minute, and returns an HTTP 429 when exceeded (Klaviyo Developers).
- A retry after a 429 must wait the duration given by the
Retry-Afterheader (same source).
A homemade connector that ignores Retry-After and retries in a loop ends up permanently rate-limited. It is the most frequent bug on hastily written sync scripts.
Events: server side, not client side
For a custom integration, Klaviyo recommends the server API for critical metrics or ones containing sensitive data, rather than client-side JavaScript: "For more crucial metrics (e.g., transactional events and properties) or ones that may contain sensitive data, use our server-side Track API" (Klaviyo Developers). Implementation detail is covered in Klaviyo Events API: sending events from your stack.
On sync frequency and historical backfill depth for a first-time connection, no figures are published on the Klaviyo pages reviewed. These are two questions to ask explicitly of the connector vendor you are considering, or to specify yourself if you are building the integration.
Questions to ask before starting the project
A short checklist to run through with your technical team:
- What is the source of truth for consent? One tool must decide. Otherwise you will end up with someone unsubscribed on Klaviyo who stays active on HubSpot, and vice versa.
- What objects flow, and in which direction? Contacts only, or contacts plus events plus computed properties? Write it down before choosing the tool.
- What happens if a sync fails? Log, alert, manual replay: decide this at design time, not after the first incident.
- Who owns the API keys and scopes? A private key with too broad a scope sitting in a no-code tool is a security debt.
- How many truly active contacts are you actually transferring? A HubSpot database bloated with inactive sales contacts costs money on Klaviyo and hurts deliverability. Clean up before, not after: Klaviyo list hygiene.
If you are starting from scratch on Klaviyo at the same time, the 14-step Klaviyo Shopify setup checklist covers the install order to follow. And if you want to delegate the switch, that is exactly the kind of project our Klaviyo agency handles.
What to remember
Klaviyo's official page for the integrations it builds does not list HubSpot, and the only HubSpot path documented by the help center is a CSV export. Everything else (third-party connector, two-way sync, real time) is an architecture choice that must be verified in your own context, with written commitments from the vendor concerned.
For most DTC brands, the right call is simple: migrate cleanly via CSV, keep HubSpot for what it does well on the sales side, and only build an API sync if a real business process depends on it. Building a real-time connector to sync contacts you never activate is technical debt disguised as modernity.
FAQ
Does Klaviyo offer a native HubSpot integration?
Klaviyo's official page for the integrations it builds does not mention HubSpot and points to the app marketplace for tools it does not cover (source). The only HubSpot path documented by the help center is a CSV export migration.
How do I import my HubSpot contacts into Klaviyo?
Export as CSV from HubSpot selecting all properties, set flows triggered by addition to the target list to draft, check that the first column header reads Email or Email Address, then import. The file must not exceed 50 MB (source).
What should I do with HubSpot unsubscribes?
They do not get imported into a list. Prepare a single-column CSV, one address per line, and import it into Klaviyo's suppressed profiles (source). Do this before resuming sends.
Can I sync Klaviyo to HubSpot in real time?
Klaviyo lets you call other applications through outbound webhooks from a flow, with a POST request containing the trigger's data (source). Data going into Klaviyo, on the other hand, goes through the API. The real sync frequency of a third-party connector is not published: ask the vendor directly.
How many profiles can I push per API request?
The bulk import endpoint accepts up to 10,000 profiles per request (source). Respect both rate-limit windows (1-second burst, steady 1-minute window) and wait the Retry-After header duration after a 429.
Need a second opinion on your HubSpot and Klaviyo setup? Talk to the Deliver team.
Provenance and verification
Numeric and technical claims compared with the official pages listed in sources, then carried over into this localisation without change. Points the documentation does not settle were left out, and all twelve sources were reopened and verified before publishing.
- Sources checked on
- Reviewed by
- Claude (Claude Code session, 19 September 2026) English localisation of the French source dated 11 September 2026. Every figure, threshold and quoted vendor behavior was carried over unchanged from the French article and checked against the declared sources.
- AI assistance
- Yes
- Sources
-
- help.klaviyo.com/hc/en-us/articles/360039708512
- help.klaviyo.com/hc/en-us/articles/115000256472
- help.klaviyo.com/hc/en-us/articles/115005081007
- developers.klaviyo.com/en/docs/guide-to-integrating-a-platform-without-a-pre-built-klaviyo-integration
- developers.klaviyo.com/en/docs/rate_limits_and_error_handling
- developers.klaviyo.com/en/reference/api_overview
- developers.klaviyo.com/en/reference/spawn_bulk_profile_import_job
- help.klaviyo.com/hc/en-us/articles/115005251128
- help.klaviyo.com/hc/en-us/articles/115005078487
- help.klaviyo.com/hc/en-us/articles/115005082767
- help.klaviyo.com/hc/en-us/articles/18622300908955
- help.klaviyo.com/hc/en-us/articles/4534329515931
Want to apply this to your stack?
Spend 30 minutes with Charlotte to review your CRM setup, size the opportunity and leave with a practical action plan.
Book a 30-minute call →