Skip to content
Current

HubSpot two-way sync vs one-time import: which to run

When to keep HubSpot running alongside Current, what stays in step every 10 minutes (companies, contacts, opportunities, leads, boards and activity), how HubSpot owners are linked to your team, how the Autotask bridge works, and how to turn it off cleanly.

Updated 12 min read
On this page · 14 sections

A one-time import (see "HubSpot one-time import: exactly what comes across") brings your HubSpot history into Current once. Two-way sync is different: it's an ongoing connection you can leave running for as long as your team still works out of both systems during a transition. This article covers when to use which, exactly what stays in step, and how to shut the sync off cleanly when you're done.

Which one do you actually need?

SituationWhat to run
Cutting over to Current in one move. HubSpot won't be touched againOne-time import only. Run it, review the match plan, approve, done.
Sales keeps working in HubSpot for a while during the transition, and you need Current to reflect itImport first (sync rides on the same matching Current already did), then turn on two-way sync for the transition window.
You only want to migrate history and never write back to HubSpotImport only, or two-way sync in "import only" mode (pull changes in, never push out).
Heads up
Run the import before turning on sync
Two-way sync depends on the record links the import already established. Don't turn on sync against a HubSpot connection that has never been imported.

The three sync modes

From the HubSpot card's Manage view, the two-way sync section offers three modes:

  • Off, no syncing at all.
  • Import only, HubSpot changes flow into Current, but Current never writes back to HubSpot. Use this for a one-directional migration window.
  • Dual run, both systems stay live and changes flow in both directions.

A dry-run switch sits alongside the mode selector and defaults to on: with dry-run enabled, Current logs exactly what it would change without actually writing anything, so you can sanity-check behavior before trusting it with live data. A dry run keeps its own place in the queue, so previewing for a day never uses up the backlog: when you switch dry-run off, everything it showed you still syncs. Turning it off asks you to confirm first, and tells you how many records are waiting to be written to HubSpot.

What actually stays in step, and how often

The sync runs on a fixed schedule roughly every 10 minutes. Four record types are kept continuously in sync: companies, contacts, opportunities, and leads. Activity (notes, calls, meetings and tasks) is kept in step too; see below. Lists and tags are import-only; they aren't part of the ongoing sync and won't drift back and forth once the initial import brings them in.

Boards

Your boards stay in step as well, both ways. Every 10 minutes Current mirrors your HubSpot deal pipelines and lead pipelines, along with their stages, so a board you add or rename in HubSpot shows up in Current on the next pass. A board or stage you add or rename in Current is added or renamed in HubSpot the same way, on the same schedule. Boards are never deleted on either side: a board or stage switched off in Current is archived in HubSpot too, as long as nothing in HubSpot still sits on it. If records are still there, HubSpot keeps the board and the card says so. The four boards Current routes your HubSpot pipelines onto (Projects, Renewal, New Logo, and nMRR) keep their own HubSpot names, because those names are deliberately different on each side. The HubSpot card shows a one-line summary: how many boards are mirrored, and how many changes are still waiting to go out.

The opportunity's contact

Each opportunity's contact stays in step with the contacts on its HubSpot deal. Set or change it in Current and the HubSpot deal gets that contact on the next pass; when it changes again, Current removes only the contact it added itself, never one someone added in HubSpot. A contact added to the HubSpot deal in HubSpot becomes the opportunity's contact when the opportunity has none, the contact is in Current, and they belong to the opportunity's company. A contact a person picked in Current, or a deliberate No contact, is never replaced. Like everything else here, it is written only in dual run with dry-run off.

Activity

Notes, calls, meetings and tasks logged in Current appear on the matching record's HubSpot timeline, and anything logged in HubSpot comes into Current the same way. Current sends an activity once: the copy HubSpot creates is remembered, so the next pass recognizes it instead of writing it a second time. Editing a note in Current afterwards doesn't rewrite the HubSpot copy. The two systems each keep what they were given.

On Autotask workspaces, the notes, calls, meetings, tasks and emails created in HubSpot from the day the sync first ran are also written to Autotask as notes on the company. Older HubSpot activity stays in Current; the one-time history import is how that history reaches Autotask. Each one is written once, newest first, carrying the date it happened and who logged it. A HubSpot task is written once it's marked complete, including an open task the history import brought in, so open to-dos stay off the Autotask record, and nothing is ever dated in the future. An activity whose company isn't in Autotask stays in Current only, and an activity that started in Current isn't written to Autotask a second time when HubSpot's copy comes back.

  • Only activity a person typed in Current is sent. Notes that arrived from your PSA, from Microsoft 365, or from the original HubSpot import stay where they are.
  • An activity is attached to its opportunity if it has one, otherwise its contact, otherwise its company. That is the same way it reads on a HubSpot timeline.
  • An activity whose company, contact or opportunity isn't linked to HubSpot yet waits rather than being dropped. It's counted on the card as waiting on a linked company.
  • Internal-only entries never leave Current: churn-risk flags, prospecting sequence touches, inline email replies and link-click records.
  • Sending out happens only in dual run with dry-run off. In dry run the card shows what would be sent and nothing is written.
Note
Emails come in only
Emails logged in HubSpot appear on the Current timeline, but Current never writes an email into HubSpot. Email is the one activity type that stays one-way.

Owners: who each HubSpot user is in Current

Every HubSpot record carries an owner, and Current works out who that is by matching email addresses. Most of your team matches on the first sync. A few usually don't: an outside agency address, someone using a personal address in HubSpot, or a person who has since left. Their opportunities, companies and leads arrive with nobody on them until someone says who they are.

The Owners section on the two-way sync card lists every HubSpot user with the Current user each one maps to. Matched people show the name. Anyone still unmatched gets a picker: choose the right person and their existing opportunities, companies and unassigned leads are re-owned on the spot, along with everything that arrives afterwards. Press Refresh from HubSpot after you add or deactivate a user over there.

Note
Deactivated HubSpot users still matter
People who have been deactivated in HubSpot are listed at the bottom, greyed out, and can still be linked. They often own years of closed opportunities, and linking them is what puts that history under the right name in Current. A link you make by hand is never overwritten later, even if an email address starts matching.

Leads

Your HubSpot lead pipelines come across as funnels on Current's Leads board, with the same names and the same columns. Each lead arrives with its owner, its HOT/WARM/COLD label as the lead's temperature, its lead type, its estimated monthly revenue if your portal records one, and the person it belongs to. Pick HubSpot in the Leads board's source filter to see only these.

  • A lead lands in the column its HubSpot stage maps to. If a column isn't mapped yet, the lead waits and arrives on a later pass rather than landing in the wrong place.
  • A lead sitting in a Disqualified stage goes to the outcome rail as discarded, with "HubSpot: disqualified" as the reason.
  • A lead HubSpot has already attached to a HubSpot deal shows as converted, linked to that opportunity in Current.
  • The person the lead belongs to is matched to a Current user by email address. Link the rest by hand in the Owners section of the HubSpot card and their leads are claimed.
  • The contact behind the lead is brought across first, so a lead is never left without a name and an email address.
Note
Leads need Sales Hub Professional or higher, and a re-authorize
HubSpot only grants permission to read leads on Sales Hub Professional and Enterprise. On a Starter portal the lane stays dark and everything else syncs as normal. On an eligible portal, open Integrations → HubSpot and choose Re-authorize, then approve the two lead permissions in HubSpot. Until that is done Current never asks for your leads.

Leads go both ways in dual run: a lead you add, move to another column, convert or disqualify in Current updates in HubSpot on the next pass, and a lead you convert arrives in HubSpot attached to the HubSpot deal it became. Some boards exist only in Current, such as your website form funnel, your booking funnel, or anything else your team built here. A lead on one of those stays in Current until that board is created in HubSpot too. From then on, its leads start syncing from their next edit.

Note
If a lead field stays blank
Current finds your lead fields by their labels, because the underlying property name differs from portal to portal. When a label can't be found, the HubSpot card says so by name and that one field stays blank instead of quietly reading as empty. Estimated MRR is the usual one: it's a property each portal creates for itself. Check the property labels in HubSpot. A label that matches is picked up on the next sync.

Who wins when both sides changed the same thing

  • If someone edits a field in Current, that edit is protected, the next inbound sync pass skips that field rather than overwriting it with the older HubSpot value.
  • If nothing has changed on the Current side, HubSpot's value flows in normally.
  • For any company already anchored to a PSA record, the PSA stays the owner of name and address fields, inbound sync from HubSpot never overwrites those on a PSA-linked company. Industry is the one exception: it's treated as CRM-owned and does sync in, even on PSA-linked companies.
  • Deals sitting in HubSpot's default "My Pipeline" board (or its HubSpot-history equivalent), or matching a product your team excluded during import, never sync in either direction. They're skipped for good, the same as during the import.
Note
Industry has a locked, one-way rule
Industry flows HubSpot → Current → Autotask (on Autotask workspaces, via industry mapping. ConnectWise has no Market Segment equivalent, so there the value stays in Current), and never back to HubSpot. HubSpot's industry field is a closed list of categories that can't represent everything a PSA tracks, so Current deliberately never pushes a PSA-sourced industry value up to HubSpot.

The Autotask bridge: create HubSpot contacts and deals in Autotask

By default, two-way sync keeps HubSpot and Current in step and stops there. It does not create anything in your PSA. If you also want your HubSpot contacts and deals to land in Autotask, a separate admin toggle on the same HubSpot 2-way sync card, "Create HubSpot contacts & deals in Autotask", turns on a bridge that creates qualifying HubSpot contacts and open deals in your live Autotask (as contacts and Opportunities), and keeps later edits flowing both ways: HubSpot to Current to Autotask, and Autotask back to HubSpot.

Heads up
This writes to your live Autotask, and it's off by default
The bridge creates real records in your production Autotask, roughly 40 records every 5-minute cycle. It stays completely off until an admin turns it on, and every change to the toggle is recorded in the audit log. First-time verification should be on a test workspace.

The toggle only becomes available once all of these are true, and the card tells you which one is missing:

  • HubSpot sync is set to dual run with dry-run turned off (the bridge never writes during a dry run).
  • Your CRM write mode is Live (set in Integrations → CRM write safety). In Test mode the bridge does not auto-create; test writes happen only through manual per-record pushes to ZZ-Current Test companies.
  • Autotask is your connected PSA. ConnectWise and HaloPSA workspaces can't use the bridge. It's Autotask-specific.

Which contacts and opportunities actually cross

The bridge is deliberately conservative so it never floods your PSA with old or unroutable records. A record crosses only when it qualifies:

  • Scope is the last 365 days of HubSpot activity, the same window the one-time import used. Older records were never imported and don't cross.
  • A contact crosses once its company is already linked to Autotask. The bridge never auto-creates companies in your PSA.
  • An opportunity crosses only when it's open, its pipeline stage is mapped to an Autotask stage, its company is in Autotask, and it isn't a Quoter opportunity. Quoter-owned opportunities are never touched by the bridge.
  • Inactive companies (marked inactive in your PSA) are skipped.
Note
Map every board you route opportunities to, not just Projects
An opportunity only crosses when its stage maps to an Autotask stage. Most workspaces have only mapped their Projects-board stages, so opportunities on Renewals, New-Logo, or Expansion boards will be held back with a "stage unmapped" note in the recent-activity log until you map those boards' stages too. That skip reason is your signal for what to map.
Note
A couple of values can shift once, by design
Opportunity names longer than 128 characters are truncated to fit Autotask, and a renewal-reduction (negative) amount is shown as 0 in Autotask with the reduction spelled into the Opportunity title. These are one-time adjustments that settle after a single round-trip. They don't flip back and forth.

Backfilling opportunities you already have

Turning the bridge on only affects records that change from that point on. To bring existing open HubSpot deals across, use the "Backfill existing HubSpot deals" control on the same card. Click Preview first: it counts how many current open opportunities qualify and shows a sample, without writing anything. You can preview even while the bridge is off. When you're ready, confirm, and Current queues those opportunities (up to 500 per run) to be created in Autotask over the following cycles. Freshness for the backfill is judged from each opportunity's stored last-updated date or its projected close date, since HubSpot's own modified date isn't stored on the opportunity.

Tip
Where an opportunity that didn't cross tells you why
The recent-activity log on the card spells out the reason in plain words. Stage not mapped in HubSpot, its company isn't in Current yet, excluded product or board, no pushable field changed, so "why didn't my opportunity cross?" is self-serve. Above it, the outbound queue shows how many records are waiting to be sent and counts anything stuck as blocked or failed, with a Retry button for once you have added the missing mapping. Anything that genuinely fails five times surfaces in CRM sync attention for you to fix.

Turning the sync off when the transition ends

When your team has fully moved into Current and HubSpot is no longer the place anyone works from day to day, stop the sync rather than leaving it running unattended.

  1. 1
    Go to Integrations → HubSpot
    Open the HubSpot card and choose Manage.
  2. 2
    Find the two-way sync section
    It sits alongside the connection status and import controls, not as a separate integrations tile.
  3. 3
    Set the mode to Off
    This stops both directions immediately. Nothing already synced is undone. Turning the mode off only stops future ticks, it doesn't reverse past ones.
  4. 4
    Disconnect HubSpot, if you're done with it entirely
    Press Disconnect on the HubSpot tile. A checklist first offers a final sync and a fill of opportunity contacts from HubSpot, and nothing in Current is deleted. See Disconnecting HubSpot in the HubSpot article. With a private app token you can also delete the private app in HubSpot's own settings.

Money fields: telling Current what your portal calls them

HubSpot lets you name a property whatever you like, and the name you see on screen is not the name the API uses underneath. Current reads four figures off a HubSpot deal (New MRR, One-Time Charges, Renewed MRR and MRR Reduction), and it has to ask for each one by its underlying name. If that name doesn't match, HubSpot returns nothing at all for it: no error, no warning, just an empty figure in Current.

The HubSpot two-way sync card on Integrations now shows a Money fields section that reads your portal's real HubSpot deal properties and matches them by the label you see in HubSpot. It pre-selects what it found so you can check it at a glance, and you can change any row from the full list of number fields in your portal. If a field is matched to a property your portal no longer has, the section says so rather than leaving you with a figure that silently stays empty.

  1. 1
    Check the four rows
    Each one names a Current figure and the HubSpot property feeding it. The property's underlying name is shown in brackets so you can tell two similarly-labelled fields apart.
  2. 2
    Save the mapping
    Saving is also what lets Current write these figures back to HubSpot. Until you save, Current only reads them, and that is deliberate: a blank figure in Current can never overwrite a real one in HubSpot before you've seen the mapping.
  3. 3
    Run the backfill
    Preview backfill tells you how many opportunities would change and how much monthly revenue that adds, with the ten biggest changes listed so you can spot-check them. Apply writes them. It only ever fills a blank or corrects a figure HubSpot disagrees with. It can't turn a real number into zero or empty, so an opportunity that genuinely has no MRR is left alone.
Tip
Why the backfill is separate from the sync
The ten-minute sync only looks at deals HubSpot reports as recently changed, so an opportunity nobody has touched in months never comes back around. The backfill walks every opportunity in the workspace once, which is what brings an existing book up to date.
Tip
Only a tenant admin can change the sync mode
Turning sync on, switching modes, or turning it off is restricted to tenant admins. It's a shared connection affecting every opportunity and company the sync touches, not a per-user setting.
Was this helpful?