Skip to content
Current/ Help Center

HubSpot one-time import: exactly what comes across

6 min read · Updated Jul 18, 2026

If you're moving off HubSpot — or just want your CRM history sitting next to your PSA book — the import brings companies, contacts, deals, and (optionally) your engagement history into Current in one guided pass. This article covers exactly what maps where, so nothing surprises you. For the short setup version, see "HubSpot: connect, import your book, and keep it in step." If you want HubSpot to keep updating Current afterward instead of a single import, read "HubSpot two-way sync vs one-time import: which to run."

Before you start: the private app token

Current reads HubSpot through a private app token, not a full OAuth login. Create the private app in HubSpot with read scopes for companies, contacts, deals, and (if you want list-based tagging) lists, then paste the token into Current.

  1. 1
    Create a private app in HubSpot
    In HubSpot, go to Settings → Integrations → Private Apps, create a new app, and grant read scopes for companies, contacts, and deals. Add the lists read scope too if you want HubSpot lists to come across as tags.
  2. 2
    Copy the access token
    HubSpot shows the token once when you create the app. Copy it before leaving the page.
  3. 3
    Connect it in Current
    Go to Settings → Integrations → HubSpot and paste the token into the connection card. Current validates the token before saving it.
  4. 4
    Run the import from HubSpot → Manage
    Open the HubSpot card's Manage view and start the import. Current stages everything from HubSpot first, then shows you a match plan to review before anything is written into your CRM.
  5. 5
    Review the match plan, then approve
    Current shows you what it found: new records, records it matched to something already in Current, and anything ambiguous that needs your call. Nothing is written into your live CRM data until you approve.
Heads up
Nothing writes until you approve
The import is a staged, two-step process: HubSpot data lands in a holding area first, and Current only creates or updates your real company, contact, and deal records after you review the match plan and approve it.

What imports, and where it lands

Three record types come across, plus your list memberships if you granted that scope:

HubSpot objectWhat Current brings in
CompaniesName, domain/website, phone, and address fields (street, city, state, zip). Industry comes across too, converted from HubSpot's internal codes into a readable label (for example, HubSpot's raw "COMPUTER_SOFTWARE" becomes "Computer Software").
ContactsName (first + last), email, phone/mobile, and job title. Each contact is linked to its HubSpot-associated company where one exists.
DealsDeal name, pipeline and stage, amount (with recurring-revenue fields — new MRR, renewed MRR, MRR reduction, and one-time charges — mapped where HubSpot has them), and projected close date. The deal's HubSpot pipeline label decides whether it lands as a renewal, new-logo, expansion, or project deal in Current.
Lists + list membershipsEach list becomes a tag on the contacts in it (see below). Requires the lists read scope on your private app.
Engagement history (optional, separate step)Notes, calls, meetings, emails, and tasks can be pulled in as a history read after the main import, so your team can see what was already said and done without leaving Current.

Owners: deals stay attributed even before everyone has a Current login

Every imported deal remembers its HubSpot owner. If that person doesn't have a Current account yet, Current holds the owner's HubSpot ID and keeps the deal unassigned rather than dropping the attribution. The moment someone with a matching email joins Current, their historical HubSpot deals are automatically claimed and assigned to them — you don't need to re-run anything or hand-assign a backlog of deals to a new hire.

Lifecycle stage and lists: how HubSpot's own categories land

HubSpot's lifecycle stage (lead, MQL, customer, and so on) does not become a status field in Current — it becomes a tag, like "Lifecycle: Customer" or "Lifecycle: Marketing Qualified Lead," on the company or contact. The same is true of HubSpot's lead status. Whether a company is actually a customer in Current is decided independently, from your PSA's contract or agreement data — see the note below.

HubSpot lists work the same way: each list becomes a tag, named after the list ("HubSpot: Q3 Nurture," for example), applied to every contact that was a member. Those tags are then usable anywhere Current lets you filter or build an audience by tag — so a HubSpot list still drives targeting in Current, just via a tag rather than a separate list object.

Note
Customer status always comes from your PSA, never HubSpot
A company only shows as a customer in Current because of an active recurring contract or agreement in your PSA — never because of a HubSpot lifecycle stage. HubSpot lifecycle values land as descriptive tags only.

Matching against your existing PSA-anchored companies

If you already run Current against a PSA, most of your companies exist there before you ever touch a HubSpot import. Current matches in this order, and the PSA-linked record always wins when there's a conflict between duplicates:

  • An existing link between the company and its HubSpot record (set once — on Autotask workspaces, from an Autotask custom field) — the strongest match.
  • A matching domain, if no link exists yet.
  • An exact match on the normalized company name, if there's no domain match.
  • More than one plausible candidate, or only a fuzzy match — Current marks it ambiguous and asks you to decide rather than guessing.
  • No match at all — the company imports as new.

Contacts match the same way, by an existing link first and then by email. Deals match by an existing link, or import fresh under whatever company they resolved to. Anything ambiguous is held out of the automatic import and shown to you separately — nothing gets merged on a guess.

What does not import

  • Marketing emails, workflows, and HubSpot ticket data — none of these are read by the import.
  • Deal line items — deal-level financials come across, but not itemized line items.
  • Anything on HubSpot's default "My Pipeline" board — Current treats this as HubSpot's junk/staging pipeline and always skips it.

Re-running an import safely

You can run the import more than once — to pick up records created in HubSpot since your last pass, or to bring in engagement history you skipped the first time. Each run only writes what it newly matches or creates; already-imported records aren't duplicated. If you need to reverse a specific import run entirely, Current can undo it — removing what that run created, in the safe order (activities, then deals, then contacts and tags, then companies) — without touching anything that was already in Current before the import, or overwriting a record that has since been matched to a real PSA record.

Tip
Large books can take a few passes
If your HubSpot account holds tens of thousands of contacts, Current brings the data across in the background and resumes automatically if a run is interrupted — you don't need to keep the tab open or restart from scratch.
Was this helpful?