Skip to main content
Orbit reads your HubSpot portal directly and brings it over in the background. You can keep working in HubSpot while it runs, and run it again later to pick up anything that changed.
Only owners and admins of your Orbit workspace can start an import. In HubSpot, the person who creates the key in step 2 is easiest as a super admin.

What comes over

Every record keeps its HubSpot id, so running the import again updates records instead of duplicating them. Dates come over as HubSpot has them: when each record was created, when deals closed and entered their stages, when tasks were completed, and when every note, email, call and meeting happened. Close dates are the days HubSpot shows in your portal’s time zone. A contact or company Orbit already had (say, a lead from one of your forms) takes HubSpot’s creation date when HubSpot’s is earlier. Stage changes HubSpot recorded show on the deal as Imported from HubSpot, at the time they happened there. They count toward time in stage and the sales reports like changes made in Orbit. Not imported: files in HubSpot’s file manager that aren’t attached to a note, email, call, meeting or task, and marketing assets such as email templates, sequences and workflows.
Imported before lifecycle stages came to Orbit? Those imports kept HubSpot’s lifecycle stage and lead status in two custom fields, HubSpot lifecycle stage and HubSpot lead status. Orbit converts those values into the new fields for you: contacts that already have a stage or status set in Orbit keep it, and no contact’s qualification changes. You don’t need to import again. Once the new fields are filled, you can delete the two custom fields from Settings → Contacts → Fields.

Steps

1

Invite your team to Orbit

Records keep their HubSpot owner when that person is an Orbit member with the same email address. Invite everyone who owns records in HubSpot from Settings → Members before you import.
2

Create a service key in HubSpot

Orbit reads HubSpot with a service key, a read-only key you create for this import.
  1. In HubSpot, click the settings gear and go to Integrations → Service keys. In some accounts it is under Development → Keys → Service keys instead.
  2. Click Create service key and name it Orbit import.
  3. Click Add new scope, type each scope below into Find a scope and tick it, then click Update.
  4. Click Create and confirm.
Every scope is read-only: Orbit never changes anything in HubSpot. sales-email-read brings the content of logged emails.To bring over attached files too, also add these two optional scopes. Without them the import runs as usual and says that files were left out.
Creating a service key needs a HubSpot super admin, or a user with Developer tools access. A key can only be given scopes its creator already has, so if a scope can’t be ticked, ask a super admin to create the key.
Already have a HubSpot private app from before? Its access token works too. HubSpot stopped creating new legacy private apps in October 2026, which is why new imports use service keys.
3

Copy the key

Open the key you just created, click Show, then Copy. It starts with pat-.
4

Start the import in Orbit

In Orbit, go to Settings → Migrate CRM, pick HubSpot, and click Start import. The same import is under Settings → Integrations → HubSpot.Paste the key, then choose:
  • What to import: contacts, companies, deals and pipelines, and history (notes, emails, calls, meetings and tasks).
  • Do-not-contact list: contacts who opted out or bounced in HubSpot are unsubscribed in Orbit too.
  • Records already in Orbit: update them with HubSpot’s values, or leave them as they are.
Click Start import.
5

Watch it run

The import runs in the background, so you can leave the page. Come back to Settings → Migrate CRM to see its progress: for each object, how many records were read, created, updated, skipped, and how many had errors. Skipped records include ones HubSpot has nothing to import for, such as a contact without an email address (Orbit keeps contacts by email), an empty note, or an email that isn’t linked to any contact, company or deal, with their reasons and counts listed under the table, and companies merged into another company with the same domain, which are explained there too. Examples of rows with problems follow.

After the import

  • Check the report on the import card. For each object it shows how many records HubSpot has, how many were imported, how many were skipped (with the reason, such as a contact without an email address) and how many had problems. If HubSpot reports more than the import read, records were usually added while it ran: Import again picks them up.
  • Check your pipelines under Settings → Pipelines. They are created from HubSpot’s, with the same stage names.
  • Webhooks and connected apps don’t receive imported records unless that is turned on under Settings → Integrations → Connected apps, so the import doesn’t flood your automations.
  • The key is deleted from Orbit when the run completes or is cancelled. You can delete the service key in HubSpot too, and create a new one if you import again later.

Run it again, resume or cancel

  • Run it again at any time with Import again. Records are matched by their HubSpot id, so changes are updated and nothing is duplicated. Choose Leave them as they are to only add records that are new since the last run.
  • Cancel a running import from its status card. Records already imported stay.
  • Resume a failed or cancelled run and it picks up from the last page it finished. A failed run keeps the key, so you can resume without pasting it again. A cancelled run has deleted it, so paste the key again.
  • One import can run per workspace at a time.

Troubleshooting

The key was mistyped, deleted, or rotated in HubSpot. Copy it again from Settings → Integrations → Service keys (or Development → Keys → Service keys; click Show, then Copy) and paste it into the import, or resume the run with it.
The key is missing one of the scopes above. Open the key in HubSpot, click Add new scope, add the missing scope and save. Then resume the run in Orbit: it continues where it stopped.
Service keys are under Settings → Integrations → Service keys, or in some accounts Development → Keys → Service keys. They need a HubSpot super admin, or a user with Developer tools access. A key can only be given scopes its creator has. Ask a super admin to create the key and send it to you.
Up to 50 custom properties per object become Orbit custom fields. HubSpot’s built-in, hidden and calculated properties are left out.
Orbit keeps one contact per email address, so a HubSpot contact with no email has nothing to import. Notes and emails attached only to such a contact are skipped with it, and a deal attached to one is imported without that contact. Add an email address in HubSpot, then run the import again with Update them with HubSpot’s values.
Owners are matched by email. Invite the missing people to your Orbit workspace, then run the import again with Update them with HubSpot’s values.
Ask an owner or admin of your Orbit workspace to start the import, or to make you an admin under Settings → Members.

Other ways to move over

  • Spreadsheets: on Settings → Migrate CRM, pick HubSpot and choose Prefer spreadsheets? for export steps, sample sheets and uploads.
  • From code: to transform data on the way, or to bring file attachments across, see Migrating from HubSpot in the developer docs.
  • Help from our team: for a large or unusual portal, contact support and we’ll help you get it in.