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:
- Run one full Data Export first and store the zip. It is your rollback and your archive for activities and files.
- Export Contacts, Leads, Accounts and Opportunities as separate files, each with Salesforce record IDs, so you can join them later.
- Include Owner email, not just Owner name, on every file.
- For Opportunities, include Stage, Amount, Close Date, IsClosed and IsWon, so you can map to HighLevel’s Open, Won, Lost or Abandoned.
- 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.
- 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.
- Create pipelines and stages. Recreate each Salesforce sales process under Opportunities > Pipelines. Stage names must match the CSV text.
- Add users. Owners are matched by name or email, and unmatched owners fail with “Owner not found.”
- 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.
- 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.
- 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-importso you can find the batch. - 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.
- 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.
- Backup: full Salesforce Data Export zip downloaded and stored outside Salesforce, including attachments (the link expires 48 hours after the email).
- Inventory signed off: objects, custom fields, automations and integrations listed, with keep or drop next to each.
- HighLevel built: custom fields, pipelines, users, tags, calendars and workflows created and tested.
- Test import passed: 50 to 200 rows, counts and fields correct, error log clean.
- Freeze date set: Salesforce edits stop (or a delta export is scheduled) so the final load captures everything.
- Production import done: contacts first, then opportunities, in files of 10,000 rows or fewer.
- Reconciled: counts match the export; ten opportunities spot-checked; owners right.
- Automations live: forms, lead routing, follow-up workflows tested with real submissions.
- Integrations repointed: website forms, ad platforms, calendar and billing now send to HighLevel.
- Parallel period: both systems open briefly, per HighLevel’s guide, with Salesforce read-only.
- Team trained: reps know where deals, conversations and tasks live now.
- 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.
- HighLevel Support, Salesforce to HighLevel (Migration Guide): seven stages, object mapping, manual rebuild list, parallel run and backup advice. No last-modified date shown.
- HighLevel Support, Importing Contacts using a CSV file: CSV only, under 30 MB, one sheet, Admin only, matching order, custom fields first.
- HighLevel Support, Importing Opportunities using a CSV file: required columns, pipeline and stage rules, statuses, no one-click undo.
- HighLevel Support, Importing contacts and opportunities via CSV: combined import, 30 MB versus 50 MB FAQ line, deduplication.
- HighLevel, Pricing: plan prices, unlimited users, sub-account counts.
- Salesforce Trailhead, Export data: Data Export service schedule, CSV zip, 48-hour expiry, Data Loader.
- Salesforce Trailhead, Import data into Salesforce: Data Loader record limit.
- aibrevo research, CRM import limits: earlier 20 MB or 10,000 row figure from HighLevel’s April 2025 troubleshooting article.