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.
On this page · 14 sections
- Which one do you actually need?
- The three sync modes
- What actually stays in step, and how often
- Boards
- The opportunity's contact
- Activity
- Owners: who each HubSpot user is in Current
- Leads
- Who wins when both sides changed the same thing
- The Autotask bridge: create HubSpot contacts and deals in Autotask
- Which contacts and opportunities actually cross
- Backfilling opportunities you already have
- Turning the sync off when the transition ends
- Money fields: telling Current what your portal calls them
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?
| Situation | What to run |
|---|---|
| Cutting over to Current in one move. HubSpot won't be touched again | One-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 it | Import 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 HubSpot | Import only, or two-way sync in "import only" mode (pull changes in, never push out). |
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.
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.
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.
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.
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.
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.
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.
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.
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.
- 1Go to Integrations → HubSpotOpen the HubSpot card and choose Manage.
- 2Find the two-way sync sectionIt sits alongside the connection status and import controls, not as a separate integrations tile.
- 3Set the mode to OffThis stops both directions immediately. Nothing already synced is undone. Turning the mode off only stops future ticks, it doesn't reverse past ones.
- 4Disconnect HubSpot, if you're done with it entirelyPress 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.
- 1Check the four rowsEach 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.
- 2Save the mappingSaving 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.
- 3Run the backfillPreview 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.
