HubSpot is a capable CRM, but it gets expensive fast. Once you start hitting the limits of the free tier, you’re looking at significant monthly fees for features that a WordPress-native CRM can handle without the SaaS markup. If you’ve decided it’s time to move, this guide covers exactly how to get your HubSpot data into a WordPress CRM cleanly.
What You Can Export from HubSpot
HubSpot stores several types of data you’ll want to bring with you:
- Contacts, with all standard and custom properties
- Companies, linked to contacts
- Deals, linked to contacts and companies
- Activity logs (emails sent, calls, meetings)
- Notes
- Lists and segments
You won’t be able to migrate everything with a single export. Plan to export contacts, companies, and deals as separate files, then import them in that order.
Free CRM Implementation Checklist
70% of CRM implementations fail. Don't be one of them. Get our 40+ point checklist covering all 5 implementation phases.
Get the Free ChecklistStep 1: Export Your HubSpot Contacts
- Log into HubSpot and go to Contacts > Contacts
- Click “Export” in the top right corner
- In the export dialog, select the properties you want to include. Be deliberate here, include only what you actually use. Exporting every property results in a CSV with 80+ columns, most of which you won’t need.
- Select CSV as the format
- Click Export and wait for the email notification with your download link
Key properties to include in your export:
- Email (required for contact matching on import)
- First Name, Last Name
- Phone Number
- Company Name
- Job Title
- Lifecycle Stage (you’ll map this to a status field in your new CRM)
- Lead Status
- City, State, Country
- Any custom properties you actively use
Step 2: Export Companies and Deals (Optional)
If you track companies and deals in HubSpot, export those separately:
- For Companies: go to Contacts > Companies > Export
- For Deals: go to Sales > Deals > Export
Each will produce a separate CSV. You’ll use the email address or a shared ID to link records when you import into your WordPress CRM.
Step 3: Clean Your HubSpot Export
HubSpot exports tend to be relatively clean, but there are common issues to watch for:
Lifecycle Stage Mapping
HubSpot uses specific lifecycle stages: Subscriber, Lead, Marketing Qualified Lead, Sales Qualified Lead, Opportunity, Customer, Evangelist, Other. Your WordPress CRM probably won’t have this exact taxonomy. Decide how you want to map these before importing. A simple approach is to map everything to a custom “Contact Status” field in your new CRM.
Duplicate Contacts
HubSpot allows multiple contacts with the same email in some cases, or you may have genuine duplicates from form submissions. Sort your export by email address and remove true duplicates before importing.
Unsubscribed Contacts
HubSpot includes an “Email Opt Out” property. If you’re connecting your WordPress CRM to an email marketing tool, filter out unsubscribed contacts or flag them clearly in your import so you don’t accidentally mail people who opted out.
Empty or Test Records
Delete any rows with placeholder or test data before importing.
For a full approach to data cleaning, see the guide on CRM data cleaning before migration.
Step 4: Map HubSpot Fields to Your WordPress CRM
Create a simple mapping document. Here’s a common mapping when migrating from HubSpot to SkunkCRM:
- Email -> Email
- First Name -> First Name
- Last Name -> Last Name
- Phone Number -> Phone
- Company Name -> Company
- Job Title -> Job Title
- Lifecycle Stage -> Custom field: Contact Status
- City / State / Country -> Address fields
- HubSpot Owner -> Custom field: Assigned To (or drop this if you don’t need it)
Any HubSpot custom properties you created will need matching custom fields in your WordPress CRM. Create those fields before you run the import.
Step 5: Import into Your WordPress CRM
With your CSV cleaned and your fields mapped, the import itself is straightforward.
In SkunkCRM:
- Go to SkunkCRM > Contacts > Import
- Upload your contacts CSV
- Match each column header to the corresponding field in SkunkCRM
- Preview a few rows to confirm the mapping looks right
- Run the import and review the results report
If you have companies and deals to import, do those next in the same way, after contacts are in place. Most import tools will let you link deals to contacts by email address.
Step 6: Verify Your Imported Data
After the import, spot-check a sample of records. Pull up 10 contacts from your original HubSpot export and compare them against what landed in your new CRM. Check that:
- All columns mapped correctly
- Custom fields populated as expected
- No obvious truncation or character encoding issues
- Your lifecycle stage or status mapping looks right
What Doesn’t Transfer Easily
A few things from HubSpot are difficult to migrate cleanly:
Email history. HubSpot logs every email sent through the platform against each contact. This activity history doesn’t export cleanly in most cases, and a WordPress CRM won’t have a direct place to store it. Your best option is to export email logs as notes and attach them to contacts manually for your most important accounts.
HubSpot sequences and workflows. These are automations, not data. They don’t migrate. You’ll need to rebuild any automations in your new system.
Meeting links and scheduling data. These are tied to HubSpot’s scheduling tool and don’t transfer.
Keep HubSpot Active During the Transition
Don’t cancel your HubSpot subscription the moment you start the migration. Keep it running until your team has fully transitioned to the new CRM, you’ve verified all data came over correctly, and any connected tools have been updated to point at the new system.
For the full migration framework that covers all CRM platforms, see the pillar guide on how to migrate to a WordPress CRM without losing data.
SkunkCRM is built specifically for WordPress sites looking to get off expensive SaaS CRMs. If you’re evaluating options, start at skunkcrm.com.