Keap (and Max Classic, formerly Infusionsoft) is built around contacts, tags and automations. Teams usually leave when they want a shared sales pipeline, cleaner reporting, or one CRM for sales and marketing, and HubSpot is where a lot of them land.
The export is not the hard part. The hard part is that Keap and HubSpot file things differently. Keap is contact-centric, tags often do a lot of the work that HubSpot properties and lists would do, and opportunities need their own export. Below is the export, the mapping, the HubSpot setup and the test run, in the order we’d do them.
Before you start your Keap to HubSpot migration
Spend ten minutes deciding what’s moving. For most teams that’s contacts and opportunities. Orders, referral partners and notes may also matter, but only bring them if someone will use them in HubSpot.
Then decide what you’ll do with tags. In Keap, tags often stand in for status, list membership, product interest or a stage in a campaign. In HubSpot those usually become properties, lists or deal stages. Write that translation down before you export.
Old contacts who never opted in, test records and closed opportunities from a product you no longer sell can stay behind in an archive file. Pick a cutover date, ask the team to stop editing Keap shortly before it, and count your contacts and opportunities so you can check the totals later.
Export your data from Keap
Keap has more than one product, and the export screens are not identical. Use the path that matches the app you actually log into. In every case, include the record ID in the file if the exporter lets you choose fields. You’ll want that ID in HubSpot.
Keap Pro and Max
Keap’s Pro and Max help notes that you can export contact data, including custom fields, from the contact list. A useful limitation to know up front: tags cannot be exported with that contact file. Keap’s guidance is to use the Tag Tracker report so you can match exported Contact IDs with the tags applied to each contact.
- Go to Contacts > People.
- Select the contacts you want, or select all.
- Choose Export contacts and download the CSV.
- Run the Tag Tracker report as well, so tags can be joined back to Contact IDs.
- Export opportunities (and any other record types you’re moving) the same way from their own lists.
Max Classic
Max Classic (and older Infusionsoft-style accounts) use a search-and-export flow, documented in Keap’s Max Classic help:
- From the main navigation, go to CRM > Contacts.
- Run a saved search, or start a new search, so the list contains the contacts you want.
- Select those contacts, or check Select All.
- Click Actions and choose Export.
- Check the fields you need. If you plan to update or re-run later, include the ID field.
- Choose CSV as the format (Excel or ZIP are also offered).
- Pick a delivery method and click Process.
Keap’s Max Classic documentation says exports of 1,000 records or fewer can be downloaded in the browser or emailed. Larger exports are emailed, the recipient must be able to log into the Keap app to download the file, and the link is only available for 24 hours. The same steps work for opportunities, referral partners, orders and various reports, if your permissions allow it.
Map Keap records to HubSpot objects
A typical Keap to HubSpot map looks like this:
- Contacts → Contacts
- Opportunities → Deals
- Company or business name on the contact → a Company record in HubSpot, if you want companies as their own object
- Tags → HubSpot properties, lists, or sometimes deal stages, depending on what the tag was doing
- Notes → Notes, planned separately
- Orders → only if you have a clear place for them in HubSpot; otherwise keep them in an archive file
Watch these Keap to HubSpot differences
Tags are the one that catches people. A contact may have many tags, and they won’t all belong in one HubSpot property. Split them on purpose: some become a dropdown, some become a list, and some don’t need to move at all.
Keap is contact-centric. Company details often live on the person. If you want HubSpot companies, plan how a company is created and how the contact is associated with it, usually by company name or domain.
Create each Keap opportunity pipeline and stage in HubSpot before you import deals, and write down the translation. Custom fields need a matching HubSpot property first.
Add your team as HubSpot users so owners can carry over. Lowercase and dedupe emails before you export. HubSpot uses email address to tell contacts apart, so duplicates or mixed-case addresses can merge records or fail. Store the Keap ID on each HubSpot record.
Try it on 250 records, free
We’ll move up to 250 of your real records into your new CRM so you can open them, poke around, and decide. It’s free. One per company, approved by our team, and we’ll need your work email.
Set up HubSpot before you import anything
Importing into an empty, unprepared HubSpot account is the most common cause of a messy migration. Before you load any data:
- Create a custom property for every Keap custom field you’re keeping.
- Decide how each important tag will land (property, list, or not at all), and create those properties or lists.
- Add a “Keap ID” property on contacts and deals.
- Set up deal pipelines and stages to match your map.
- Add users so owners can be assigned.
- Pause any workflow that could enroll imported contacts and email them by accident.
Choose how to move the data
You have two realistic options for a Keap file.
HubSpot’s import tool
In HubSpot, go to Data Management > Data Integration (or click Import on any object’s index page), then Import data. You can import one object at a time or several objects with associations. To avoid duplicates, HubSpot matches existing records using a unique identifier: Record ID, email for contacts, or company domain name for companies.
It’s free, but you do all the cleanup and mapping, including the tag translation, and records are written as soon as the import runs. If you’re comparing tools, we also wrote an honest look at Carryrow, Import2 and HubSpot’s built-in importer.
Carryrow
With Carryrow, you upload your Keap export, and every column is shown with a few real values next to it and the HubSpot property it will go into. You can point a column somewhere else, drop it, skip rows missing a value, or lowercase emails. Nothing is written until you accept the map.
Then we write the records into HubSpot using access you create there. We never log into Keap, and you can delete the HubSpot access the same day. The price follows the number of records in your file, from $129 for up to 5,000 rows. See CRM migration pricing and how a move works. Comparing quotes? Here’s what CRM migrations usually cost.
Test with a sample, then migrate everything
Start with a small sample that includes your hardest records: contacts with several tags, contacts with no email, opportunities in unusual stages, and records with custom fields filled in.
Open each one in HubSpot and check:
- Names, emails and phone numbers are right
- Tags landed in the properties or lists you intended
- The contact is linked to the right company, if you created companies
- Deals are in the right pipeline and stage, with the right amount
- Custom properties hold the values you expected
Fix the map, run the sample again, then run the full migration. Compare your Keap counts with HubSpot’s counts for each object before you go live.
Go live in HubSpot
Tell the team HubSpot is now the system of record. Turn workflows back on one at a time. Keep your Keap export, and the Tag Tracker report, somewhere safe for reference, and keep Keap readable for a short overlap if you can.
For a longer checklist, see our CRM migration checklist.
Keap to HubSpot migration FAQ
How long does a Keap to HubSpot migration take?
For a small team with clean data, the data move itself can be quick. Most of the time goes into deciding what to do with tags, setting up HubSpot and testing a sample.
Will my Keap tags move to HubSpot?
Not as a single automatic column in every Keap export. On Keap Pro and Max, tags are not included in the contact export. Use the Tag Tracker report to match Contact IDs with tags, then recreate those as HubSpot properties or lists.
Will my Keap custom fields move to HubSpot?
They can, as long as you include those fields in the export, create a matching HubSpot property first, and map each column to it.
Do you need my Keap password?
No. You export the file from Keap yourself. We never log into it.
Can I test the migration before paying?
Yes. Carryrow offers a free sample migration of up to 250 records from Keap to HubSpot. It’s one per company and approved by our team.
Can I move from Keap to a CRM other than HubSpot?
Yes. Carryrow also writes into GoHighLevel, Salesforce, Zoho, Pipedrive and Close. Moving from Pipedrive instead? See our Pipedrive to HubSpot guide. Coming from Zoho? Read the Zoho to HubSpot guide.
Check your own data before you pay for the move
Ask for the free 250-record sample and we’ll move a slice of your real data into the new CRM first. One per company, approved by our team, work email required. If you’d rather skip ahead, upload your export and start mapping.

