Skip to content
GoHighLevel 5 min read Sajid Aslam

Migrating to GoHighLevel From Another CRM

Contacts move easily. Automations, consent and history need care. Here is the order to migrate to GoHighLevel without losing data or annoying customers.

Contacts and deals moving from an old CRM into GoHighLevel pipelines

Short answer

To migrate to GoHighLevel, clean and export your data, recreate custom fields and pipelines first, import contacts and opportunities by CSV or HighLevel's HubSpot importer, then rebuild automations as GoHighLevel workflows. Workflows never transfer between CRMs. Run both systems briefly, with old automations switched off, so customers are not messaged twice.

Migrating to GoHighLevel from another CRM has two halves. Moving data, mainly contacts, deals and notes, is mostly straightforward. Moving logic, meaning automations, sequences, templates and the habits built around the old system, is a rebuild. Plan for the second half and the first takes care of itself.

What imports into GoHighLevel and what does not

ItemImports?How
Contacts and custom fieldsYesCSV import, or the HubSpot importer
Deals or opportunitiesYesCSV with pipeline and stage columns, or HubSpot importer
Pipelines and stagesFrom HubSpot, yes; otherwise recreateHubSpot importer, or by hand
Notes, tasks, filesFrom HubSpot, mostlyHubSpot importer
Email and SMS historyPartly from HubSpot (read-only); rarely otherwiseExport for records
Automations and sequencesNoRebuild as workflows
Templates and formsNoRebuild
Consent recordsOnly if you map themCustom fields in the CSV

HighLevel's HubSpot importer documentation lists what transfers, and its CSV import guide covers everything else.

The migration order

  1. Audit the old system. List every automation, form, template and integration that currently runs. Mark which you still need. Many accounts carry automations nobody can explain.
  2. Clean the data. Remove duplicates, test records and contacts you no longer have a reason to keep. Migration is the cheapest moment to apply your retention policy.
  3. Build the structure in GoHighLevel first. Custom fields, tags, pipeline and stages, before any import. The GoHighLevel setup checklist covers the order.
  4. Map fields. One column per GoHighLevel field, phone numbers in international format (+44), consent status and date in their own columns.
  5. Import a small test batch of twenty or so records, then check them field by field.
  6. Run the full import with any workflows that trigger on contact creation switched off. Otherwise every imported contact gets a welcome message.
  7. Check the import log for errors and fix the failed rows.
  8. Rebuild automations as workflows, simplifying as you go. GoHighLevel workflow examples covers the ones most businesses need.
  9. Switch off the old system's automations, then switch on the new workflows.
  10. Run both systems in read-only parallel for a couple of weeks before cancelling the old one.

The mistake that annoys customers

Double messaging. It happens when the old CRM is still sending reminders and follow-ups while new GoHighLevel workflows start doing the same. Customers get two confirmations, two reminders and two review requests, from what looks like two different senders.

The fix is the switch-over moment in steps 9 and 10. Decide a cut-over date. On that date, turn off every automation in the old system, then publish the GoHighLevel workflows. Not the other way round.

Checking the import worked

Do not rely on the import finishing without errors. Spot-check by hand:

  1. Pick ten contacts you know well and compare every field with the old system.
  2. Check phone numbers are in +44 format, so SMS actually sends.
  3. Count opportunities by stage in both systems and make sure the totals match.
  4. Confirm consent fields came across for contacts who opted in, and are empty for those who did not.
  5. Search for duplicates created where the same person existed twice under different emails.

Phone numbers and email during migration

If the old system sent texts from a number you want to keep, check whether it can be ported into GoHighLevel before cancelling anything. UK numbers in GoHighLevel also need an approved regulatory bundle before they can send or call, so start that early.

For email, set up GoHighLevel's sending domain before cut-over and keep the old one authenticated until the old system is fully off, so nothing in flight bounces.

Coming from HubSpot specifically

The GoHighLevel vs HubSpot comparison covers whether switching makes sense. If it does, the HubSpot importer saves most of the data work. Note its limits: workflows do not come across, calculated fields become plain text, recurring tasks import as one-off tasks, and deals without an associated contact are skipped. HighLevel also recommends importing into a clean account.

Coming from a spreadsheet or several tools

Many businesses moving to GoHighLevel are not leaving a CRM at all. Contacts live in a spreadsheet, bookings in Calendly, newsletter subscribers in Mailchimp and the rest in someone's phone. The process is the same, with one extra step: merging.

  1. Export from every source into separate CSV files.
  2. Combine them into one sheet and de-duplicate on email and phone number. The same customer often appears in three places with slightly different details.
  3. Keep the best data for each field, and note where marketing consent came from. A Mailchimp subscriber's consent is not the same as a booking customer's.
  4. Add a source column, so you can tell later which list each contact came from.
  5. Import into GoHighLevel in one go, with consent mapped to its own fields.

Export checklist before you cancel anything

  • Full contact export with every custom field
  • Deals or jobs with their status and value
  • Notes and activity history, where the system allows it
  • Email templates and SMS wording you want to reuse
  • A written list of every automation and what it did
  • Form field lists from your website forms
  • Unsubscribe and suppression lists, so people who opted out stay opted out

The suppression list is the one most often forgotten, and importing a contact who unsubscribed elsewhere as if they had not is an easy way to cause a complaint.

How long it takes

For a small business with a few thousand contacts and a handful of automations, allow a week or two including testing. The time goes on the audit and the rebuild, not the import. CRM automation for small businesses is worth reading before the rebuild, so you design the new automations rather than copying the old ones.

The GoHighLevel guide covers the platform as a whole. If you want the migration planned, imported and rebuilt for you, with a clean cut-over, that is part of my GoHighLevel service.

Related services

Related reading

FAQ

Questions about this

If yours isn't here, send it over — I reply within one working day.

Yes. HighLevel has a HubSpot importer that brings over contacts, deals as opportunities, companies, custom properties, pipelines and stages, plus associated emails, notes, tasks and files. Workflows do not transfer, calculated fields become plain text, and imported emails are read-only. Validate important associations afterwards, because HighLevel notes that some may not import.

Some history comes across, depending on the source. The HubSpot importer brings associated emails as read-only records. From most other systems, conversation history does not import into GoHighLevel's inbox. Export what you need to keep for records before cancelling the old system, and store it somewhere accessible.

Not because of the migration itself, as long as the consent you had still applies to the same business and purposes. What you must do is bring the consent records across. Import consent status and date into custom fields, and make sure marketing workflows in GoHighLevel check them before sending anything.