aibrevoBook a call

Salesforce to GoHighLevel Migration: Objects, Import and Cutover

Salesforce to GoHighLevel is a CSV move plus a rebuild. Accounts, Contacts, Leads and Opportunities export from Salesforce and import into HighLevel contacts and opportunities; pipelines, workflows, forms and templates are rebuilt by hand, and activity history and attachments have no documented import path.

Part of the guide: GoHighLevel expert

Key takeaways

  • HighLevel publishes its own Salesforce migration article. It says to export Contacts, Accounts, Leads and Opportunities as CSV or Excel, import through Contacts > Import Contacts, and rebuild pipelines, websites, products and automations by hand.
  • HighLevel's CSV import takes one sheet, CSV only, under 30 MB, from an Admin user. Opportunities need a Pipeline that already exists and a Status of Open, Won, Lost or Abandoned, so create pipelines and custom fields before the first import.
  • Nothing in the HighLevel import articles describes importing Salesforce activities, tasks, email history or attachments. Plan an archive export from Salesforce for that history instead of expecting it inside HighLevel.
  • Salesforce's Data Export service produces CSV files in a zip, emailed when ready and deleted 48 hours later. Weekly scheduling needs Enterprise, Performance or Unlimited Edition; Professional and Developer are monthly only.
  • HighLevel lists unlimited users on every plan, so the per-user license line on a Salesforce invoice is the cost that changes most; check both vendors' current pricing pages before quoting a saving.

Salesforce to GoHighLevel is two jobs that people often treat as one. The data job is small and mechanical: export Salesforce records as CSV, import them into HighLevel contacts and opportunities. The rebuild job is large: pipelines, workflows, forms, templates and anything custom do not travel. HighLevel’s own Salesforce to HighLevel migration guide says the same, listing pipelines, websites, products, automations, templates and forms as manual rebuilds. This guide maps each Salesforce object to its HighLevel destination, gives the import limits, and ends with a cutover checklist. If you are still deciding whether to leave Salesforce, start with the GoHighLevel vs Salesforce comparison.

How do Salesforce objects map to HighLevel?

Account, Contact and Lead all collapse into HighLevel contacts, Opportunity maps to a HighLevel opportunity, and Salesforce Stage maps to a pipeline stage. HighLevel is contact-centric, so the relational structure Salesforce uses has to be flattened on purpose.

Salesforce HighLevel destination How it moves Watch for
Contact Contact CSV import through Contacts > Import Contacts Each row needs at least one of Name, Email or Phone
Lead Contact (keep status in a custom field or tag) CSV import; HighLevel’s guide says to preserve lead status Leads already converted in Salesforce duplicate the Contact; leave them out
Account Company name on the contact, or a custom field CSV import; HighLevel’s guide says to link accounts to contacts and opportunities Account hierarchies and parent accounts have no direct field; flatten or store in a custom field
Opportunity Opportunity Opportunities import or combined Contacts + Opportunities import Pipeline must exist first; Status must be Open, Won, Lost or Abandoned
Stage Pipeline stage Rebuilt manually in Opportunities > Pipelines Stage names must match exactly at import
Custom fields Custom fields Create in HighLevel first, then map Opportunity fields must be created on the Opportunity object, not Contact
Owner Assigned user Match by user email Unmatched owners return an “Owner not found” error
Tasks, events, emails, notes No documented import Export to an archive HighLevel imports one note per contact
Files and attachments No documented import Export to an archive Keep outside both systems
Flows, Apex, validation rules Workflows Rebuilt manually Logic differs; nothing exports across

Two rows rest on judgment rather than a published rule. HighLevel’s guide says to import Accounts and “link” them, but names no field, so confirm which company field your sub-account offers at the mapping step. HighLevel also has Business records, which at least one third-party n8n template fills from Salesforce Accounts through the API; we did not test that route and do not rely on it here.

What does HighLevel’s own guide say to do?

It gives seven stages: prepare, export and migrate data, rebuild opportunities and automations, handle documents and forms, test, train, and decommission Salesforce. The preparation stage tells you to inventory leads, contacts, accounts, opportunities and automations, and to “assess data volume, custom fields and automation rules.” Checked 2026-10-14; the page shows no last-modified date.

Two limits of that guide matter. It states no record caps, file sizes or API restrictions, and it gives no field-level mappings, so custom fields are yours to map. Everything numeric below comes from HighLevel’s separate CSV import articles and from Salesforce’s own pages.

How do you export data from Salesforce?

Use the Data Export service for a full backup and Data Loader or each tab’s export for targeted files. Both produce CSV.

Salesforce’s Trailhead module on exporting data describes the options:

  • Data Export service: a browser tool in Setup. Search Data Export in Quick Find, then choose Export Now or Schedule Export. Manual exports are allowed once every 7 days (weekly) or 29 days (monthly).
  • Scheduling by edition: weekly scheduling is available in Enterprise, Performance and Unlimited Editions; Professional and Developer Editions are monthly only.
  • Output: CSV files in a zip archive, split across several files for large exports. Salesforce emails you when it is ready, and the zip is deleted 48 hours after that email.
  • Options worth setting: include images, documents and attachments if you want the archive complete, and replace carriage returns with spaces, which the module says helps if you plan to import the files elsewhere. Choose “Include all data” if you are unsure which types to pick.
  • Data Loader: a separate client you install, run through its interface or the command line. Salesforce’s Trailhead import module says it can handle up to 150 million records at a time.

Source: Salesforce Trailhead, export data, checked 2026-10-14. Salesforce’s help.salesforce.com pages are rendered by script and could not be read directly, so confirm edition details in Setup. For the Salesforce side of load order and tools in the opposite direction, see the Salesforce data migration plan.

Practical export rules before you touch HighLevel:

  1. Run one full Data Export first and store the zip. It is your rollback and your archive for activities and files.
  2. Export Contacts, Leads, Accounts and Opportunities as separate files, each with Salesforce record IDs, so you can join them later.
  3. Include Owner email, not just Owner name, on every file.
  4. For Opportunities, include Stage, Amount, Close Date, IsClosed and IsWon, so you can map to HighLevel’s Open, Won, Lost or Abandoned.
  5. Remove Leads that have converted, and remove duplicates inside each file. HighLevel asks for duplicates inside the CSV to be removed before importing.

What are HighLevel’s import limits?

One sheet, CSV only, under 30 MB, run by an Admin user. The detail is below, from HighLevel’s help center, checked 2026-10-14 unless noted.

Rule What HighLevel says Source
File format CSV only; Excel and Google Sheets files are not accepted Importing Contacts
File size Under 30 MB; split larger files Same article
Sheets One sheet or tab only Same article
Who can import Users with Admin access Same article
Required per row At least one of Name, Email or Phone Same article
Duplicates on update Matched in this order: Contact ID, Email, Phone Same article
Custom fields Must exist before import; you can only map to fields that already exist Same article
Opportunities-only import Contact ID, Opportunity Name and Pipeline needed on every row Importing Opportunities
Pipeline and stage Pipeline must already exist; the stage must exist inside that pipeline Same article
Status values Open, Won, Lost or Abandoned Same article
Undo No one-click undo for a completed import Same article
Combined rows Contacts and Opportunities on the same CSV row are linked automatically Contacts and opportunities via CSV

Conflicting numbers exist inside HighLevel’s own documentation. The contacts-and-opportunities article says under 30 MB in its prerequisites but mentions splitting files over 50 MB in its FAQ, and an older troubleshooting article (April 2025) gives 20 MB or 10,000 rows, whichever comes first. Our CRM import limits research tracks all three. The safe plan is files of 10,000 rows or fewer, well under 30 MB.

How do you import Salesforce data into HighLevel step by step?

Build the destination first, test with a small file, then load in the order contacts, then opportunities.

  1. Create custom fields. One for each Salesforce field you are keeping: Lead Status, Account Name, Salesforce ID, Industry, Lead Source and so on. HighLevel will not create them during import. Put the Salesforce ID in a field; it is your key for fixing mistakes later.
  2. Create pipelines and stages. Recreate each Salesforce sales process under Opportunities > Pipelines. Stage names must match the CSV text.
  3. Add users. Owners are matched by name or email, and unmatched owners fail with “Owner not found.”
  4. Prepare the Contacts CSV. Merge Contact and unconverted Lead exports into one file with a Record Type column, or run them as separate imports with different tags. Normalize phone numbers and dates.
  5. Run a 50 to 200 row test import. Use “Create & Update” and “Don’t update Empty Values” so blank cells never overwrite data. Check Bulk Actions, then Show Stats and the Error tab.
  6. Import contacts in files of 10,000 rows or fewer. HighLevel’s flow is Contacts > Smart Lists > Import Contacts. Map each column, tick “Don’t import data for unmapped columns” for columns you are leaving, and optionally add a tag such as sf-import so you can find the batch.
  7. Import opportunities. If contacts exist, use the Opportunities import with each row’s Contact ID. If they do not, use the combined Contacts + Opportunities import. Normalize Salesforce stages to the HighLevel stage names, and map IsWon and IsClosed to Won, Lost or Open.
  8. Reconcile. Compare record counts by object against the Salesforce export, then open ten opportunities and confirm stage, value and owner.

Plan for HighLevel’s duplicate handling. By default existing contacts are matched by email, then phone, and updated instead of duplicated, so two Salesforce contacts sharing one email become one HighLevel contact. Decide whether that is what you want before loading; the article points to “Allow Duplicate Contacts (Contact Deduplication Preferences)” for changing it.

What does not move to HighLevel?

Everything that is logic or history rather than a record. Per HighLevel’s guide, these are rebuilt manually: pipelines and stages, websites, funnels and landing pages, products and stores, workflows, document and contract templates, and forms.

Does not move Why What to do
Activity history (tasks, events, logged calls, emails) The import articles describe no activity import; HighLevel keeps one note per contact on CSV import Keep the Salesforce Data Export zip as the archive; optionally paste a summary into the one allowed note
Attachments and files No documented import path Include them in the Data Export, store in your own drive, link from a custom field if needed
Flows, Process Builder, Apex, validation rules Different engine Document each, then rebuild only what the team still uses in Automation > Workflows
Reports and dashboards Not data Rebuild the five you actually open
Permission sets, roles, sharing rules HighLevel permissions work differently Recreate roles by hand
Email templates and campaign history Rebuilt in HighLevel’s builders Export Salesforce templates, recreate

If a workflow worked only because Salesforce could join across objects, expect to simplify it. The HubSpot to GoHighLevel guide covers phone-number porting and email-domain re-authentication, which apply equally to this direction.

What happens to Salesforce user licenses?

They stop when you cancel, and HighLevel prices differently. HighLevel’s pricing page (checked 2026-10-14) lists Starter at $97 a month ($970 a year), Unlimited at $297 ($2,970) and Agency Pro at $497 ($4,970), with unlimited users on every plan and unlimited contacts. Starter includes 3 sub-accounts. We have not quoted Salesforce per-user prices because they vary by edition and contract; pull them from your current Salesforce order form and compare against the plan you need. Also check how HighLevel bills SMS, email and calling usage, and include your real volume in the comparison. Read the cost view in GoHighLevel vs Salesforce.

Before cancelling, check the Salesforce contract term and notice period. HighLevel’s guide says to “ensure all necessary data is backed up before canceling the Salesforce subscription.”

What is the cutover checklist?

Use this order. Each line is a gate; do not move on until it passes.

  1. Backup: full Salesforce Data Export zip downloaded and stored outside Salesforce, including attachments (the link expires 48 hours after the email).
  2. Inventory signed off: objects, custom fields, automations and integrations listed, with keep or drop next to each.
  3. HighLevel built: custom fields, pipelines, users, tags, calendars and workflows created and tested.
  4. Test import passed: 50 to 200 rows, counts and fields correct, error log clean.
  5. Freeze date set: Salesforce edits stop (or a delta export is scheduled) so the final load captures everything.
  6. Production import done: contacts first, then opportunities, in files of 10,000 rows or fewer.
  7. Reconciled: counts match the export; ten opportunities spot-checked; owners right.
  8. Automations live: forms, lead routing, follow-up workflows tested with real submissions.
  9. Integrations repointed: website forms, ad platforms, calendar and billing now send to HighLevel.
  10. Parallel period: both systems open briefly, per HighLevel’s guide, with Salesforce read-only.
  11. Team trained: reps know where deals, conversations and tasks live now.
  12. Salesforce cancelled: only after a final backup and a clean week.

When should you get help?

A small team with a few thousand records, a handful of pipelines and no custom objects can run the steps above in-house. Bring in an implementer when Salesforce holds custom objects, hierarchical accounts, Flows or Apex you cannot drop, or years of activity the business relies on, because those are the parts that need design rather than import. aibrevo is a San Francisco CRM firm founded by Alpit Patel in 2021, and autoesta is aibrevo’s partner company that delivers GoHighLevel builds. See aibrevo’s GoHighLevel services for scope, or the GoHighLevel implementation cost guide before you ask for quotes. If you later reverse course, migrating from GoHighLevel covers the way out.

Sources

All checked 2026-10-14.

More guides

Related reading

FAQs

Is there an official Salesforce to HighLevel migration guide?

Yes. HighLevel's help center has a 'Salesforce to HighLevel (Migration Guide)'. It covers preparation, export, import, rebuilding opportunities and automations, testing, training and decommissioning Salesforce. It states no record caps or field-level mappings, so the limits come from HighLevel's separate CSV import articles.

How do Salesforce Leads and Contacts map to HighLevel?

Both land in HighLevel contacts through Contacts > Import Contacts. HighLevel's guide says Leads are imported with their statuses preserved, which in practice means keeping Lead Status in a custom field or a tag. Skip Leads already converted in Salesforce, or the same person arrives twice.

Can I import Salesforce Opportunities into HighLevel?

Yes, through the Opportunities import or a combined Contacts and Opportunities import. Every row needs an Opportunity Name and a Pipeline that already exists, each opportunity must tie to a contact, and Status must be Open, Won, Lost or Abandoned. Stages must exist in the pipeline before import.

What does not migrate from Salesforce to HighLevel?

HighLevel's guide lists pipelines and stages, websites and funnels, products, automations, document templates and forms as rebuilt manually. Its import articles describe no path for activities, tasks, email history or file attachments, so treat those as archive material unless a connector or API script is built.

How big can the CSV be when importing into HighLevel?

HighLevel's current import articles say the file should be under 30 MB, CSV only, one sheet. One FAQ line in the same article mentions 50 MB, and an older troubleshooting article gave 20 MB or 10,000 rows. Splitting into files of 10,000 rows or fewer avoids all three limits.

Do I lose my Salesforce data when I cancel?

You lose access to it when the subscription ends, which is why HighLevel's guide says to take a final backup before cancelling. Run the Data Export service with all data types and keep the zip files somewhere you control, even for objects you chose not to import.

Should I run Salesforce and HighLevel in parallel?

Briefly, yes. HighLevel's guide suggests running both systems for a short period and reducing Salesforce use gradually. The point is to catch mapping errors, such as opportunities in the wrong stage, while the original records are still one click away.

Who should do a Salesforce to GoHighLevel migration?

A team with a few thousand records and simple pipelines can do it with the CSV steps below. If Salesforce holds custom objects, Flows, Apex or years of activity you must keep, scope it with an implementer first. aibrevo's partner company autoesta delivers GoHighLevel builds.

Stuck on this? Ask an engineer

Not ready for a call? Send one question about your setup. An engineer replies by email within one business day.

Want a second opinion on your setup?

A free 30-minute call with an engineer. A written read on your current setup, whether or not you hire us.