Skip to main content
Meticulosity Global

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.

PDF documentPDFMarkdown documentMDExcel workbookXLS
Brevo (formerly Sendinblue) logoHubSpot logo

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

Complexity: Medium
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

2574%
824%
13%
  • 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 sourceOut to source

Becomes 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 sourceOut to source

Becomes 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 sourceOut to source

Becomes 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 HubSpotInto HubSpot

Becomes 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. 1

    Audit the Brevo Account in Full

    contact lists, automation scenarios, templates, transactional emails, integrations, and any SMS or WhatsApp campaigns already running

  2. 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. 3

    Export the Blacklists and Suppression Lists Too

    unsubscribed contacts, hard bounces, spam reporters

  4. 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. 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. 6

    Document the Transactional Email Templates Alongside Whatever Triggers Them

    Document the transactional email templates alongside whatever triggers them

  7. 7

    Clean the Data Before It Moves

    deduplicate, validate every email address, and settle the consent dates

  8. 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. 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. 10

    Recreate the Lists and Segments Directly Inside HubSpot

    Recreate the lists and segments directly inside HubSpot

  11. 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. 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. 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. 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. 15

    Configure the Email Authentication Records

    SPF, DKIM and DMARC

  16. 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. 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. 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.

Custom fields and properties across all records

Everything beyond the out-of-the-box fields, added up across contacts, companies, deals and anything custom.

Automations, workflows and rules

Anything that fires on its own: workflows, sequences, assignment and validation rules, approvals.

Marketing assets to rebuild

Email templates, forms, landing pages, lists and segments taken together.

Third-party integrations wired into the current system

Anything connected by API, webhook or installed package that has to keep working afterwards.

Users to move across

Seats, plus whatever permission structure sits behind them.

Roughly how many contact records

This affects the sync approach and the reconciliation effort, not the per-record work. The connector moves records; people do not.

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

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.