Migration Reference
Brevo (formerly Sendinblue) to HubSpot Migration
What actually transfers, what quietly does not, and what has to be rebuilt by hand.
We mapped Brevo (formerly Sendinblue) against HubSpot feature by feature: 34 features, 4 synced objects, 8 documented traps and 27 items that have to be rebuilt. The whole map is on this page, ungated.
The PDF is the same reference, formatted for a procurement file.
Get The Reference And The Calculator
The full Brevo (formerly Sendinblue) to HubSpot reference as a PDF, plus the Excel calculator we scope these migrations with: every one of the 34 features as a row, enter your counts, get hours.
Three files: the reference as a PDF, the same reference in Markdown for your AI tool, and the full Excel effort calculator.
Brevo (formerly Sendinblue) to HubSpot is a medium migration, typically 3-6 weeks. Of the 34 features we mapped, 25 carry across as they are and 8 land with something lost: the 27 items nothing moves for you is what will actually set your timeline, not the sync.
Migration Scorecard
- Migration complexity
- Medium
- Typical timeline
- 3-6 weeks
- Recommended method
- Use the Brevo native integration for contact sync itself, and pair it with a CSV export wherever the complete data set matters more than what the integration alone carries. Automations and templates fall outside both and need a manual rebuild on the HubSpot side.
- Native sync
- Data sync, two way
- Smart transfer
- Not supported
- HubSpot subscription
- Free Brevo account and HubSpot CRM (Free or higher)
Feature parity across 34 capabilities
- Maps directly: 25 (74%)
- Maps partially: 8 (24%)
- No equivalent: 1 (3%)
4
Objects synced natively
8
Limitations and traps
27
Manual rebuild items
4
Source editions covered
Where this comes from: Our own research corpus, verified 2026-08-01, behind every number on this page.
The Four Objects That Sync Natively
What the connector moves for you, and which way each one flows.
Contacts
Out to sourceBecomes Contacts
Contact sync runs one way, outward from HubSpot: a contact created directly in Brevo never makes the return trip, while an update made on the HubSpot side does reach Brevo. 600,000 contacts is the ceiling the sync will carry, whichever record set is moving.
Companies
Out to sourceBecomes Companies
Companies travel the same route, from HubSpot to Brevo, capped at 100,000; a group running more entities than that through one Brevo account needs a plan for which ones actually sync.
Deals
Out to sourceBecomes Deals
Deals make the same one-way trip from HubSpot to Brevo, up to a ceiling of 50,000; check the running total before relying on the sync to carry a high-volume pipeline in full.
Email Campaign Events
Into HubSpotBecomes Contact Timeline Activities
Campaign events run the opposite direction, from Brevo into the HubSpot contact timeline, but only for a campaign sent to the one list the sync was configured to watch; transactional activity never makes that trip at all.
Eight Things the Sync Does Not Tell You
Each one is documented, and each one has ended a migration in a bad week.
Contacts Only Sync HubSpot to Brevo (not Reverse)
Add a contact directly in Brevo and it stays there: nothing carries it back to HubSpot, because the sync only runs one way, outward from HubSpot, with email activity being the sole thing that flows in the other direction.
Workaround: Make HubSpot the only place contacts get created, since that is the direction the sync actually respects; where a reverse path is genuinely needed, Zapier or Make can build one, but budget it as its own piece of work rather than assuming the native integration already covers it.
Hard Volume Caps on Synced Records
600,000 contacts, 100,000 companies and 50,000 deals: these are hard ceilings on what the integration will carry, not soft guidance, and a database already close to any one of them needs a plan before the sync is switched on.
Workaround: Where the database sits near or over those ceilings, selective list-based sync narrows what actually crosses, or a third-party middleware tool can carry the rest; decide which contacts genuinely need to live in Brevo before the volume makes that decision for you.
Date, Multi-choice, and Hs_ Fields Cannot Sync
Three whole categories of field simply will not cross: date fields, multiple-choice fields, and the standard HubSpot system fields carrying the hs_ prefix, Lead Status and Company Domain among them.
Workaround: Build custom text properties to stand in for the fields that will not sync directly, then use HubSpot workflows to copy the hs_ field values across into them; it is an extra layer of configuration, but it is the only route those values have.
Only Static Lists Can Be Imported
Only a static list makes the crossing into Brevo; an active list, the kind that keeps updating itself as records change, has no path across at all.
Workaround: Take a static snapshot of the active list at the moment it needs to sync, or lean on Brevo's own segmentation once the contacts have already arrived; either way, decide who owns refreshing that snapshot, since a static list frozen once will not stay accurate on its own.
Transactional Email Activity Not Synced
Order confirmations, password resets and every other transactional send Brevo fires stay invisible to HubSpot: none of that activity crosses into the contact timeline at all.
Workaround: Keep the transactional reporting inside Brevo itself, or build a custom webhook integration if that visibility genuinely needs to live in HubSpot instead; either is real engineering work, so scope it rather than assume it arrives for free alongside the sync.
Two-year Consent Window Requirement
A two-year clock runs on every contact's consent: anyone who has not opted in within that window is refused at the point of import into Brevo, whatever their history in HubSpot says.
Workaround: Run a re-engagement pass, or ask outright for re-confirmed consent, on any contact older than that window before the migration reaches them; a contact that fails the consent check on the day of import does not get a second attempt.
Email Events Only Sync for the Designated List
Whichever single list gets chosen at setup is the only one the sync ever watches: a campaign sent to any other list leaves no trace of its opens, clicks or bounces in HubSpot at all.
Workaround: Either route every marketing send through the one synced list, or set up several sync configurations if the campaigns genuinely need to target different lists; settle which before the first campaign goes out, not after a set of results turns up missing.
Automation Workflows Do Not Sync
Nothing about a Brevo automation scenario, its triggers or the logic driving it, can be pulled out through an export or a sync: Brevo simply does not open automation data to its API, so there is no technical route across at all.
Workaround: Document every automation by hand while it is still visible, then rebuild each one as a HubSpot workflow from that documentation; there is no shortcut here, since the API gap rules out anything automated.
One Brevo (formerly Sendinblue) Feature HubSpot Cannot Replace
No workaround closes these. Each one is a capability you would be giving up, so decide who in the business can live without it before you commit to a date.
Web Push Notifications
HubSpot has no native web push notification feature. Use third-party tools (OneSignal, PushEngage).
The 27 Items That Get Rebuilt by Hand
This is the list that separates a quote that holds from one that does not.
Data And Objects
Contact Lists and Segments
A Brevo list holds the contacts themselves, with a segment sitting on top of it as a saved condition rather than a list of its own.
HubSpot: Static lists and active lists
A list crosses as static, a frozen snapshot rather than a living one, and a segment is a rule rather than a list at all: rebuild it as an active list in HubSpot deliberately, or the condition it once represented freezes at the moment of import and never updates again.
Suppression and Blocklists
Every address the account has marked unsubscribed, bounced or blocked.
HubSpot: Unsubscribed contacts and the opt-out list
Get this into HubSpot before a single send goes out, not after: Brevo keeps transactional suppression and marketing suppression as two separate lists, so collect both rather than assuming one covers the other.
Transactional Contact Data
A contact whose only reason for existing in the database is a transactional email it once received.
HubSpot: Contacts, with a source property
Treat these as customers rather than marketing contacts, since that is usually what they are, and mark them as such on the way in: importing them unmarked quietly inflates the marketing contact count, and the bill follows the count.
Contact Attributes Outside the Standard Mapping
A Brevo attribute with nothing on the HubSpot side that obviously matches it.
HubSpot: Custom properties
Build the custom properties in HubSpot before the import runs, not during it: an attribute created on the fly at import time lands as plain text regardless of what it actually was, and the type it lost is not something a later edit restores.
Automation
Automation Scenarios
What Brevo's automation builder strings together as a multi-step flow.
HubSpot: Workflows
Capture every scenario as a screenshot or screen recording while the account is still open, because none of that logic exports in a form anyone could read afterwards, and rebuilding it in HubSpot then happens step by step from what you captured rather than from a file.
Triggered Email Sequences
A send that fires the moment a contact takes an action or one of their attributes changes.
HubSpot: Workflows
Check what each trigger is actually watching before assuming you already know: Brevo fires on an attribute change far more often than most teams remember once an account has been running a while, and a trigger rebuilt on the wrong watch condition sends at the wrong moment rather than not at all.
Branching Automation Logic
The if/then branching sitting inside a Brevo automation.
HubSpot: Workflow branching logic
Meaning shifts at exactly the branch conditions, so translate none of them on sight; walk each one instead with whoever actually owns the campaign, since the logic in someone's head is usually more accurate than the logic as configured.
Transactional Email Templates and Triggers
The templates themselves, together with the API calls that trigger them.
HubSpot: Transactional email or a dedicated sending service
Transactional sending is not bundled into HubSpot by default: it is its own purchase decision, and the code firing the sends has to change along with it, so confirm which route you are actually buying before a single hour gets scoped against it.
SMS Automation
The SMS sends built into a Brevo automation, wherever they are in use.
HubSpot: HubSpot SMS or a marketplace SMS app
Consent records travel with the phone numbers, so bring them across deliberately rather than starting the list from zero, and settle which SMS route you are actually buying, HubSpot's own SMS or a marketplace app, before a single hour is scoped: sender-ID registration with the regional telecom regulator runs on its own timeline that the rest of the project has to work around.
WhatsApp Campaign Automation
Any WhatsApp send already configured inside Brevo, wherever it is in use.
HubSpot: A marketplace WhatsApp app
WhatsApp is not a channel HubSpot carries natively, so this needs a third-party product layered on top, and that product's own template approval process is where the real risk sits: it is a timeline risk running against the go-live date, not merely a line on the budget, and worth starting early given how much day-to-day commercial communication in this market already runs through WhatsApp rather than email.
Reporting
Campaign Performance Reports
The open, click and bounce numbers reported against each individual send.
HubSpot: Marketing email analytics
None of the historical send data transfers on its own, so pull a final export before the Brevo account actually closes: once it is gone, there is no second chance at it.
Email Heat Maps
The click-position heat map Brevo builds for a given send.
HubSpot: Click maps in email analytics
This is available for sends going forward only: every historical heat map is lost along with the send history it was built from, and there is no export that recovers it.
Custom Report Dashboards
Whatever saved dashboard view gets pulled up for recurring reporting.
HubSpot: Dashboards and custom reports
Start from the question each dashboard was actually built to answer, not the layout it happened to use, and rebuild towards that question instead of reproducing the old screen.
Transactional Delivery Reports
The delivery and bounce reporting that sits specifically under transactional sends.
HubSpot: Depends on the transactional route chosen
This reporting is entirely downstream of one decision: whichever transactional service actually replaces Brevo. Nothing here can be scoped honestly until that choice is made, so make it early rather than let it sit as an open question through the rest of the project.
Sales And Marketing Config
Email Templates
Every branded send template that was built inside Brevo's own editor.
HubSpot: Marketing email templates
There is no import path from one editor to the other, so build these again from the original brand assets rather than pasting in the HTML Brevo exports: an imported HTML block rarely survives contact with HubSpot's own editor intact.
Landing Pages
Any landing page currently hosted directly on Brevo, wherever that is still in use.
HubSpot: Landing pages
Rebuild these one page at a time, and put a redirect on every URL still linked from a live advertisement or from printed material, since neither of those stop pointing at the old address on their own.
Signup Forms
Every embedded or hosted form currently feeding a Brevo list.
HubSpot: Forms
Swap every website embed at the moment of cutover, all of them, or new signups keep landing quietly in the old Brevo account with nobody the wiser until someone goes looking for a contact who should have arrived.
SMS Campaigns
A one-to-many SMS send.
HubSpot: HubSpot SMS or a marketplace SMS app
This rides on the same decision already made for SMS automation, so scope the two together in one pass rather than pricing the same route twice.
WhatsApp Campaigns
A one-to-many WhatsApp send.
HubSpot: A marketplace WhatsApp app
This needs a third-party product plus its own template approval process, and if you run WhatsApp at any real volume, raise it before the contract is signed rather than after: the approval process alone can outrun the rest of the migration timeline.
Lead Scoring Model
Whatever scoring model currently ranks contacts by how engaged they are.
HubSpot: Score properties
This gets built from scratch rather than imported, and the old weights are worth treating as a hypothesis rather than a specification: they were tuned to a Brevo-shaped process, not necessarily to the one you actually run.
Chat Widget
The on-site chat widget Brevo provides, wherever it is in use.
HubSpot: HubSpot chat and the inbox
Swapping the widget itself is the easy part; the actual work sits in the routing and availability rules behind it, since those are what decide whether a message reaches someone during Gulf working hours or sits unanswered until the next one starts.
Users And Permissions
User Accounts and Roles
Every login, together with the permission level attached to it.
HubSpot: Users and permission sets
These get created fresh rather than carried over, so audit the existing list first: recreating a dormant login nobody has used in months just moves the same clutter into the new system.
API Keys and Access Tokens
Any credential that code or a connector currently uses to talk to Brevo.
HubSpot: Private app tokens
Every single consumer of an old key has to be tracked down and repointed at HubSpot instead, so inventory them while the Brevo account is still open: a key discovered only after the account closes has already broken whatever depended on it.
Integrations
Third-party App Connections
Whatever commerce or CMS plugin currently joins Brevo to the rest of the stack.
HubSpot: App Marketplace integrations
Each of these gets reconnected on its own, one at a time, and the field mapping needs checking individually too: a plugin sharing its name with the old Brevo connection is not proof it maps the same fields the same way.
Custom API Integrations
Any bespoke code that was written directly against the Brevo API.
HubSpot: HubSpot APIs
HubSpot's object model is different enough that this gets rewritten rather than adjusted, so scope the work against the actual code itself, not a summary of what someone remembers it doing.
Webhook Configurations
Any outbound webhook that currently fires off a Brevo event.
HubSpot: Workflow webhook actions
Whatever sits on the receiving end was built to expect Brevo's payload shape specifically, so both ends of the webhook usually need attention, not just the side sending it.
Brevo Tracker Website Tracking
The tracking script sitting on the site, recording visitor behaviour for Brevo.
HubSpot: The HubSpot tracking code
Swap the script for HubSpot's own at the moment of cutover, and expect behavioural reporting to restart from zero rather than continue: none of the historical visitor data travels with the switch.
The Sequence
Sync First, Then Migrate
Order is the content here. These steps form a dependency chain, and running them out of sequence is a documented way this kind of migration fails.
- 1
Audit the Brevo Account in Full
contact lists, automation scenarios, templates, transactional emails, integrations, and any SMS or WhatsApp campaigns already running
- 2
Export Every Contact as a CSV, Attributes Included, Rather Than a Partial Pull
Export every contact as a CSV, attributes included, rather than a partial pull
- 3
Export the Blacklists and Suppression Lists Too
unsubscribed contacts, hard bounces, spam reporters
- 4
Export the HTML of Every Email Template, Purely as a Reference for the Rebuild
Export the HTML of every email template, purely as a reference for the rebuild
- 5
Document Every Automation Scenario With Its Full Logic Tree, Branch by Branch, While It Is Still Visible
Document every automation scenario with its full logic tree, branch by branch, while it is still visible
- 6
Document the Transactional Email Templates Alongside Whatever Triggers Them
Document the transactional email templates alongside whatever triggers them
- 7
Clean the Data Before It Moves
deduplicate, validate every email address, and settle the consent dates
- 8
Import the Suppression Lists Into HubSpot Before a Single Send Goes Out, Not After
Import the suppression lists into HubSpot before a single send goes out, not after
- 9
Import the Contacts Themselves, With the Field Mapping Already Confirmed Rather Than Left to Default
Import the contacts themselves, with the field mapping already confirmed rather than left to default
- 10
Recreate the Lists and Segments Directly Inside HubSpot
Recreate the lists and segments directly inside HubSpot
- 11
Rebuild the Email Templates From the Original Brand Assets, Inside HubSpot's Own Editor
Rebuild the email templates from the original brand assets, inside HubSpot's own editor
- 12
Recreate the Automation Workflows in HubSpot, Working From the Documentation Captured in Step 5
Recreate the automation workflows in HubSpot, working from the documentation captured in step 5
- 13
Settle on a Transactional Email Solution and Set It Up, Whether That Is HubSpot's Own or a Third-party Service
Settle on a transactional email solution and set it up, whether that is HubSpot's own or a third-party service
- 14
Swap the Brevo Tracker Script on the Website for HubSpot's Own Tracking Code
Swap the Brevo Tracker script on the website for HubSpot's own tracking code
- 15
Configure the Email Authentication Records
SPF, DKIM and DMARC
- 16
Warm the Sending Domain Over 4-6 Weeks, Ramping Volume Gradually Rather Than Opening at Full Send on Day One
Warm the sending domain over 4-6 weeks, ramping volume gradually rather than opening at full send on day one
- 17
Migrate the SMS and WhatsApp Campaigns Where They Were Actually in Use, sender-ID Registration With the Regional Telecom Regulator Included
Migrate the SMS and WhatsApp campaigns where they were actually in use, sender-ID registration with the regional telecom regulator included
- 18
Decommission Brevo Only Once the Full Transition Is Confirmed Complete, Not Before
Decommission Brevo only once the full transition is confirmed complete, not before
Typically 3-6 weeks end to end, depending on how much of the source configuration is actually in use.
Effort Estimator
How Big Is This Migration?
A handful of questions, no sign-up required. The ranges come from the research above: every feature we mapped carries an effort figure, and this totals the ones that apply to your instance.
Estimated Effort
Answer a couple of questions and an hours range appears here.
Built from our research on 34 Brevo (formerly Sendinblue) features. It is a range, not a quote.
A planning range, not a quote. It is delivery effort only, with no project management line. What moves it most in practice is data quality.
What Goes Wrong Most Often
The failures that show up again and again, in roughly the order they bite.
A Contact Created Directly in Brevo Never Syncs Back to HubSpot, and That One-way Gap Is How a Data Hole Opens up Without Anyone Noticing at the Time
A contact created directly in Brevo never syncs back to HubSpot, and that one-way gap is how a data hole opens up without anyone noticing at the time
A Larger Database Can Hit the Volume Ceilings Without Warning, Well Before Anyone Expected to Be Anywhere Near Them
A larger database can hit the volume ceilings without warning, well before anyone expected to be anywhere near them
Transactional Email Activity Never Syncs at All, So Delivery Visibility on Those Sends Disappears the Moment the Migration Completes
Transactional email activity never syncs at all, so delivery visibility on those sends disappears the moment the migration completes
The Static-only Import Limit Blocks Any Workflow That Was Actually Relying on Dynamic Segmentation to Keep Itself Current
The static-only import limit blocks any workflow that was actually relying on dynamic segmentation to keep itself current
Date Fields and the Hs_ System Fields Both Fail to Map on Their Own, Which Is Where a Data Mapping Plan Quietly Falls Short If Nobody Checked for Them in Advance
Date fields and the hs_ system fields both fail to map on their own, which is where a data mapping plan quietly falls short if nobody checked for them in advance
Neither SMS nor WhatsApp Comes Bundled With the Base HubSpot Subscription Even Though Both Exist as Capabilities
SMS needs the Marketing SMS add-on running on top of Marketing Hub Professional, and WhatsApp needs a Meta Business account paired with Marketing or Service Hub Professional. Price both into the estimate before it goes to committee, not after, given how much commercial weight SMS in particular carries in this market compared with email alone
The Two-year Consent Window Can Filter Out a Contact Who Is Still Perfectly Valid, Simply Because the Timestamp on File Happens to Sit Just Outside It
The two-year consent window can filter out a contact who is still perfectly valid, simply because the timestamp on file happens to sit just outside it
Brevo's Automation Logic Does Not Translate Directly Into HubSpot's Workflow Branches, Which Is Exactly Why Documenting It First Rather Than Translating on Sight Matters as Much as It Does
Brevo's automation logic does not translate directly into HubSpot's workflow branches, which is exactly why documenting it first rather than translating on sight matters as much as it does
Questions
Brevo (formerly Sendinblue) To HubSpot, Answered
Yes. Data sync, two way, covering 4 objects. What it will not do is rebuild your configuration: that is the 27 items below.
Typically 3-6 weeks. Complexity is driven by automation and reporting depth, not by record count: the connector moves records, so a large database on its own will not extend the timeline.
Of 34 features we mapped, 25 (74%) carry across directly and 8 (24%) map partially, meaning something is lost or reshaped along the way. 1 has no HubSpot equivalent at any tier, worth raising before sign-off rather than after.
27 items have to be rebuilt by hand, and 8 documented limitations are not surfaced by the connector at all. Both lists are on this page, in full, for whoever is scoping the work.
Free Brevo account and HubSpot CRM (Free or higher)
1: Web Push Notifications. If your team depends on one of these, settle it before you sign rather than discovering it at cutover, when the alternative is a custom build.
Only in one direction. The sync is not bidirectional here, so running both systems means choosing a system of record up front and accepting drift in the other.
Ready to Get Started?
Plan Your Migration
Tell us which platform you are leaving, how much of it is custom, and when you need to be live in HubSpot. We will tell you what transfers directly, what needs rebuilding, and how long the move actually takes.