How to Migrate from Highrise to HubSpot
Highrise has been closed to new signups for years and receives no development. If you are still on it, the migration question is not whether — it is how to get the notes and email history out while the API still answers.
- Difficulty
- Easy
- Typical duration
- 3–5 days
- Downtime
- None — Highrise stays live during export
- Native importer
- No — Highrise XML API export
| Highrise | maps to | HubSpot CRM | What to watch |
|---|---|---|---|
| Company | Company | Direct match. Highrise rarely captures a domain, so populate it during export — HubSpot dedupes companies on domain. | |
| Person | Contact | The employer link becomes the HubSpot company association. Highrise permits people with no email; those need a rule. | |
| Deal | Deal | Highrise deals have only three states — pending, won, lost. Map these onto a simple HubSpot pipeline rather than inventing stages that never existed. | |
| Case | Ticket or note | Highrise Cases are lightweight containers for related notes. With Service Hub they become tickets; otherwise fold the notes onto the contact. | |
| Note | Note | The most valuable data in the account, and the reason to use the API — the UI export omits note bodies. | |
| Email (dropbox-captured) | Note or email engagement | Highrise captured email via a forwarding address and stores it. Pull via API and import as notes if the engagement import path is unavailable. | |
| Task | Task | Direct, once the parent record exists. | |
| Tag | Property value or list | Highrise tags are flat. Classify each as a property value or a list before import. |
What transfers cleanly
- Companies and people with their contact details and custom fields.
- Deals with their pending/won/lost state and value.
- Notes and captured email bodies — via the API, not the UI export.
- Tasks attached to imported records.
- Tag data, once classified into properties or lists.
What doesn't come across
- The UI CSV export. It omits note bodies and email history, which is usually the only reason the account still has value. Use the API.
- Attachments. Files attached to notes need a separate API pull and re-upload.
- Highrise Cases as a concept. Without Service Hub there is no clean destination; the notes survive, the grouping does not.
- Deal stages. Highrise never had them. Do not fabricate a detailed pipeline retroactively — it produces fake reporting history.
- Any remaining integrations. The Highrise ecosystem has largely disappeared; assume nothing third-party still works.
Migration order that works
- Confirm API access is still working on your account before planning anything else.
- Pull companies, people, deals, cases, notes, emails and tasks via the API, preserving Highrise record IDs.
- Pull note and email attachments separately — they are not in the record payloads.
- Populate company domains and check for people with no email address; decide a rule for each gap.
- Create a minimal HubSpot pipeline reflecting Highrise's three deal states, plus properties for tags and custom fields.
- Import Companies, Contacts, Deals, then notes, emails and tasks in that order.
- Archive the raw API export somewhere durable — Highrise is end-of-life and there may not be a second chance.
Highrise is a museum piece that still works. 37signals stopped taking new customers years ago and the product has not meaningfully changed since. Accounts still function, which is exactly why teams keep deferring the move — until one day the export matters and the tooling around it has decayed further.
If you are reading this, the useful advice is simple: do the export now, even if you are not ready to switch. An archived complete data pull costs you an afternoon and removes all the risk.
Do not use the CSV export
This is the single thing that matters. Highrise's UI export gives you contact rows and not much else. The notes — the thread of "spoke to Dave, they are re-tendering in Q3" going back a decade — are what your account is actually worth, and they are not in it.
The XML API returns complete records including note bodies and captured emails. Pull everything, keep the raw response files, and store them somewhere that will outlive the subscription. Attachments need a separate pass; they are referenced from notes, not embedded in them.
Do not invent a pipeline you never had
Highrise deals have three states: pending, won, lost. That is the whole model.
There is a temptation during migration to design the eight-stage pipeline you have always wanted and retro-fit historical deals into it. Resist it. You will be guessing, and the result is a HubSpot reporting history that looks precise and is fiction. Import to a three-stage pipeline that matches reality, then build the pipeline you want going forward and let it fill up with real data.
Fill in what Highrise never asked for
HubSpot deduplicates companies on domain and contacts on email. Highrise required neither. Expect gaps — companies with no website, contacts with a phone number and nothing else.
Fix what you can during export while the surrounding notes still give you context clues about who these records are. Anything unresolvable gets a documented rule: placeholder domain, exclusion, or import as a contact with no company.
Treat this as an archive project as much as a migration
Highrise is not coming back. Whatever you do not extract now is extracted never. Even if you only migrate active contacts into HubSpot, keep the complete raw API pull. It costs almost nothing and it is the only copy that will exist.

