Skip to content

Real-Time Sync Between Microsoft Dynamics 365 Sales and HubSpot

A guide to keeping Microsoft Dynamics 365 Sales and HubSpot in step in real time when sales runs on Dynamics and marketing runs on HubSpot. It explains why batch sync leaves the two out of date, how a real-time two-way sync keeps leads, contacts, and deals current the moment they change, and how field-level change detection stays under both systems' API limits. Covers the round-trip of a single change, conflict handling, and where the boundary between marketing and sales should sit.

Author
Ruben Burdin · Founder & CEO
Published
July 21, 2026
Read time
9 min read
Real-Time Sync Between Microsoft Dynamics 365 Sales and HubSpot
REVOPS

A lot of go-to-market teams run sales on Microsoft Dynamics 365 Sales and marketing on HubSpot. It is a reasonable split, until the two fall out of step. Marketing enriches a lead in HubSpot, sales works the account in Dynamics, and unless the two systems agree in real time, each team is acting on a slightly stale version of the same customer.

The fix is a real-time two-way sync, not a nightly one. Leads, contacts, and deals stay current in both systems the moment they change, so sales and marketing see the same record at the same time. This guide covers how that sync works, why real time is the part that matters, and where to draw the line between the two teams.

Real-time sync between Dynamics 365 Sales and HubSpot by the numbers: seconds of latency, field-level change detection, 1,000+ connectors, and two-way direction

The setup assumes a two-way sync platform such as Stacksync between the CRM and HubSpot. If you want the platform view first, the HubSpot connector and the Dynamics and HubSpot bidirectional sync guide cover it; here we focus on keeping the two current in real time.

Why real time is the point

The gap between sales and marketing is measured in minutes, not days. A prospect fills a form, downloads a paper, or replies to a sequence in HubSpot, and a rep may be looking at that exact account in Dynamics the same afternoon. A batch sync that runs overnight guarantees the rep sees a version of the record that is already wrong.

Real-time sync removes that lag. A change in either system is reflected in the other within seconds, so a marketing signal reaches the rep while it still means something, and a sales update reaches marketing before the next campaign fires on stale data. Speed is not a nice-to-have here; it is the entire reason to connect the two.

What one change does

It helps to follow a single edit end to end. A change does not just appear in the other system; it is captured, mapped, checked for conflicts, and applied, all in the few seconds between the save and the update.

The real-time pipeline: a HubSpot or Dynamics change is captured by a webhook, mapped across lead, contact, and deal fields, conflicts resolved, and applied with origin tracked
From a save in one system to the update in the other, in seconds, with no loop back.
A round-trip sequence: HubSpot contact updated fires a webhook, the engine tags the origin and updates the matching Dynamics lead, and confirms in sync with no write-back loop
One round-trip: a HubSpot update reaches the Dynamics lead in seconds, origin tagged so it does not echo.

A HubSpot update fires a webhook, the engine tags its origin as HubSpot, detects which fields changed, and updates the matching Dynamics lead or contact. Dynamics acknowledges, a field-level conflict check runs, and the change is confirmed. Because the origin was tagged, the write into Dynamics is not sent back to HubSpot as a fresh change, so the two stay in step without looping.

Drawing the line between the teams

Two-way does not mean everything overwrites everything. The cleanest setups decide, per field, which system owns the truth, and sync accordingly. That boundary is what keeps marketing and sales from stepping on each other's data.

Field groupSource of truthSync direction
Campaign source, lifecycle stageHubSpotHubSpot to Dynamics
Deal stage, amount, close dateDynamics 365 SalesDynamics to HubSpot
Contact details, email, phoneSharedTwo-way, conflict policy
Account ownerDynamics 365 SalesDynamics to HubSpot
Marketing consentHubSpotHubSpot to Dynamics

Set ownership per field once, and the two-way sync stops the two teams overwriting each other.

With ownership set this way, the sync moves each field in the direction that makes sense and only settles a conflict where the field is genuinely shared. Marketing keeps owning capture and enrichment, sales keeps owning the opportunity, and both see the parts of the record they need from the other.

Book a Stacksync demo: keep leads, contacts, and deals current in Dynamics 365 Sales and HubSpot in real time

Staying under both APIs

Running in real time might sound heavier on the APIs than a nightly job, but it is the opposite. A batch export re-reads every record every run and pushes hard against both HubSpot's rate limits and the Dataverse service protection limits. A change-driven sync only touches what changed.

Because it is field-level, a single edit moves a single field, not the whole record and not the whole object. Request volume stays low, and when the sync does approach a limit it backs off and retries rather than failing. The result is a sync that is both fresher and lighter on both systems than the batch it replaces. For the same idea applied to a warehouse instead of a marketing tool, see the Dynamics to Snowflake guide.

One record, both teams, in real time

When sales lives in Dynamics 365 Sales and marketing lives in HubSpot, the connection between them has to be real time or it is not worth much. A field-level two-way sync keeps leads, contacts, and deals current in both the moment they change, settles conflicts where fields are shared, and stays under both systems' API limits while doing it.

That is what Stacksync keeps running between Dynamics and HubSpot: real-time, two-way, and field-level, so sales and marketing always work from the same record. To wire your own Dynamics and HubSpot together, book a demo.

Keep Dynamics 365 Sales and HubSpot current with real-time two-way sync

FAQ

Frequently asked questions

How do I set up real-time sync between Dynamics 365 Sales and HubSpot?
Connect both systems to a sync platform, map leads, contacts, and deals across them, and turn on a two-way sync. With Stacksync a change in HubSpot fires a webhook that is applied to Dynamics within seconds, and a change in Dynamics is applied to HubSpot the same way. You set which fields sync and in which direction, and the platform keeps the two current without a batch job.
Why does real-time matter for a Dynamics and HubSpot sync?
Because sales and marketing act on the same records minutes apart. If a lead fills a form in HubSpot and a rep is looking at that account in Dynamics, a nightly sync means the rep sees yesterday's version. Real-time sync closes that gap: the lead, the contact, and the deal are current in both systems the moment they change, so both teams work from the same picture.
Is the sync two way, and how are conflicts handled?
Yes, it is two-way and set per object. When the same record is edited in both systems, conflicts are resolved per field under one shared policy, so a marketing update to a contact's email and a sales update to the deal stage both survive. Origin tracking keeps a change written into one system from bouncing back as a new change.
Will a real-time sync hit the HubSpot or Dynamics API limits?
A field-level sync moves only the fields that changed, which keeps request volume well under both HubSpot's rate limits and the Dataverse service protection limits. It also backs off and retries when it approaches a limit. That is why real-time change-driven sync is lighter on both APIs than a periodic full export that re-reads everything.
Which objects should I sync between Dynamics and HubSpot?
The common set is leads, contacts, companies or accounts, and deals or opportunities, plus any custom fields your teams rely on. A useful pattern is to let marketing own lead capture and enrichment in HubSpot while sales owns the opportunity in Dynamics, and sync the fields each side needs to see from the other.
Where should the boundary between marketing and sales sit?
Decide per field which system is the source of truth, then sync accordingly. Marketing-owned fields like campaign source and lifecycle stage flow from HubSpot to Dynamics, sales-owned fields like deal stage and amount flow from Dynamics to HubSpot, and shared fields like contact details sync both ways with a conflict policy. Setting that boundary once keeps the two teams from overwriting each other.

About the author

Ruben Burdin
Ruben Burdin
Founder & CEO

Ruben Burdin is the Founder and CEO of Stacksync, the first real-time and two-way sync for enterprise data at scale. Ruben is a Y Combinator alumni with a strong background in software engineering and business.

All posts by Ruben Burdin

About Stacksync

Stacksync powers real-time, two-way sync between CRMs, ERPs, and databases. Engineers sync data at scale and automate workflows, not dirty API plumbing.

Coworkers laughing in front of a laptop in a casual office setting

Your last integration took months.
Your next one takes a prompt.