Every CRM eventually has the same problem: the records that matter live in more than one place. Your finance team keeps accounts in NetSuite, ops keeps a project tracker in Airtable, someone keeps the real customer list in a spreadsheet, and HubSpot has its own version of all three. HubSpot data sync is the native answer to that, and it is genuinely good at the job it was built for.

It is also frequently the wrong tool, and the reason is architectural rather than a missing feature. This guide covers what data sync is, how to set it up, what it costs, and the specific point where a sync stops being the right shape for your data.

In this article

1.

2.

3.

4.

5.

6.

7.

8.

9.

What HubSpot data sync is

Data sync is HubSpot's built-in engine for keeping records consistent between HubSpot and another app. It powers more than 100 Marketplace integrations, and it is a point-and-click configuration rather than a build: you connect an app, pick a direction, review how fields line up, and turn it on.

The important constraint is that it is not a general-purpose connector. Only apps built on HubSpot's data sync framework can use it, which is why a tool can have a perfectly good HubSpot integration and still never appear in the data sync setup flow. Those are two different things wearing the same word.

  • What it does

    Watches records in both systems and updates the other side when something changes, according to the direction and filters you set. Existing records are reconciled on the first pass, not just new ones.

  • What it is not

    An automation builder, a reporting tool, or a way to display external content on a record. It moves field values between systems. That is the whole job.

What data sync can actually sync

Coverage varies by app, which is the detail most comparison posts skip. Data sync supports standard HubSpot objects, custom objects, events, and object-less data, but any given connector implements a subset.

Data typeSupportWorth knowing
Standard objectsContacts, companies, deals and other supported objectsThe best-covered case, and where the default mappings usually just work
Custom objectsAvailable for a subset of appsIncludes Airtable tables, Kintone tables, and Smartsheet sheets
Events and object-less dataSupported by some connectorsCheck the listing; parity between apps is not guaranteed
Page or document contentNot supportedField values only, which is the limitation this guide keeps returning to

For spreadsheet-style apps, which is the category HubSpot puts Airtable, Smartsheet, Kintone, Monday.com, and Notion in, you select a source table and HubSpot recommends the object to map it to. That recommendation is a starting point, not a decision. Review it, especially if your table is not really a list of people or companies.

How to set up a data sync integration

  1. 1

    Confirm the app is a data sync app

    Find your tool in the HubSpot App Marketplace and check the listing says data sync. This is the step that saves you an afternoon of looking for a setting that was never there.

  2. 2

    Connect it and choose your source table

    Authenticate from HubSpot. For a spreadsheet app you then pick the source table, and HubSpot suggests a matching HubSpot object.

  3. 3

    Pick the narrowest sync direction that works

    Bidirectional, inbound only, or outbound only. Start one-way if you are unsure. You can widen it later, and a one-way sync cannot overwrite a system you did not intend to touch.

  4. 4

    Review mappings and add filters

    Check the default field mappings and filter the record set down to what you actually need in HubSpot. Custom property mappings need a paid Data Hub subscription.

  5. 5

    Let the first sync finish before you judge it

    The initial pass indexes every existing record in both systems, and on a large database that can run for several days. After that, HubSpot checks for changes roughly every five minutes and the connected app pushes changes by webhook.

One-way vs two-way sync

Two-way sync sounds strictly better and often is not. The moment a record can be edited in two systems, you have introduced a conflict-resolution problem that no configuration fully solves, only arbitrates.

Two-way sync fits when

  • Both teams genuinely edit the same records
  • The two field sets are close to identical
  • You can name a clear conflict winner
  • Records are structured, not narrative

Prefer one-way when

  • One system is clearly the source of truth
  • The other side is a report or a working view
  • Fields diverge in meaning between apps
  • Nobody can say which edit should win

If the honest answer is that one system owns the record and the other is where people read or annotate it, you do not want a two-way sync. You want a view. Hold that thought.

Where data sync stops

Here is the ceiling, and it is worth being precise about because it is not a gap HubSpot will close. Data sync maps columns to properties. It is a copy mechanism for structured values, so it inherits three properties that have nothing to do with which apps are supported.

  • It moves values, not documents

    A field can hold a stage, an amount, a date, an owner. A meeting note is not a field. There is no CRM property shaped to hold a page of discovery notes with its headings, toggles, and nested context intact.

  • Every synced value is a second copy

    Once a value exists in both systems it can drift, and something has to decide the winner. That is why data sync asks you to nominate one. A copy is always a snapshot of the moment the sync ran.

  • It costs configuration

    Default mappings only carry you as far as your table happens to match HubSpot's schema. Past that you are mapping properties, and mapping is where sync debt accumulates.

A sync gives you a copy of the fields. It cannot give you the page.

Data sync and Notion

This is the case worth spelling out, because the answer is not the one most posts give. Notion does appear in HubSpot's documentation as one of the spreadsheet-style apps data sync recognizes, so you can point it at a Notion database, map columns to a HubSpot object, and keep structured fields aligned. If your Notion database is essentially a table of contacts with an email, a status, and an owner, that works.

It stops working the moment what you want in HubSpot is the note itself. Sales teams do not keep a column called "why this deal stalled"; they keep a page, and the value is in the body of it. A column-to-property sync has nowhere to put that, so the thing your reps actually need is the one thing that does not come across. This is the same wall teams hit with a general-purpose Notion to HubSpot sync, and it is why the copy-paste habit outlives every integration people try.

Best fitPickRender it on a live cardWhenThe value is in the page body: notes, account plans, renewal context

Skip the copy entirely. NoteLinker adds a card to your HubSpot contact and deal records that renders the matching Notion rows live, so reps read the current page inside HubSpot with no mapping and nothing to go stale.

PickUse HubSpot data syncWhenYou need structured fields consistent across two systems of record

The right tool when both sides hold comparable records and you want them to agree. Free for default mappings, native, and no third party involved.

PickUse a workflowWhenThe data is already in HubSpot and you need something to happen

HubSpot workflows act on records once they exist. They are not a substitute for getting outside data in.

The alternative to syncing: don't copy it

There is a second way to get outside data onto a HubSpot record, and it is not a sync at all. A custom card is a panel on the contact or deal record that renders data from another system live, at the moment the record loads.

The difference is that nothing is copied. There is no second version of the note, no conflict rule, no field mapping, and no initial sync to wait days for. The page stays in Notion, where your team writes it, and your reps read it in HubSpot, where they work.

NoteLinker is that card for Notion. Rows show up on the contact whose email matches, and on the deal whose name matches, and they are visible by default, so there is no per-row sync toggle to remember. You can see what that looks like in Notion inside a HubSpot record, and the tradeoff against HubSpot's own tooling is laid out in NoteLinker vs native HubSpot sync.

Put your live Notion notes on every HubSpot record

No field mapping, no conflict rules, no copies to go stale. NoteLinker renders your Notion database rows on the contact and deal record in minutes.

Get Started

Best practices before you turn a sync on

Keep a sync from becoming sync debt

  • Name the source of truth in writing before you choose bidirectional. If you cannot name it, you are not ready for a two-way sync.
  • Filter the record set down. Syncing everything because you can is how a CRM fills with records nobody owns.
  • Start one-way and widen later. Reversing a sync that has already overwritten data is much more expensive.
  • Check the app listing for object coverage rather than assuming parity with another data sync app.
  • Ask whether you need the values or the document. If it is the document, a card beats a sync every time.

Data sync is the right default when two systems hold comparable records and you want them to agree, and the free tier covers more than most teams expect. Reach for it there. Just recognize the shape of what it does: it copies fields. When the thing you need in HubSpot is a page rather than a property, stop looking for a better sync and put a live view on the record instead.

Frequently Asked Questions