CRM migration checklist

Migration Checklist: Moving to GoHighLevel

An exhaustive, phased task list for moving CRM data into GoHighLevel's Agency / Sub-account / Location hierarchy with workflows, A2P 10DLC SMS, and Custom Objects rebuilt from scratch.

131 tasks 4–12 weeks typical Updated May 27, 2026
HighLevel
Contacts
Companies
Deals
Leads
Activities
Notes
0 of 131 tasks complete

Phase 0

Decide & Plan

Lock scope, hierarchy, and compliance before any data moves.

  • Risk if skipped: Mid-migration discovery that a tenth Custom Object pushes scope past the per-Location cap forces a destructive rethink of the data model.

  • Risk if skipped: Choosing the wrong granularity forces a rebuild later because Workflows, Custom Fields, and Snapshots are scoped to a single Location.

  • Risk if skipped: An open-ended historical scope balloons the validation effort by an order of magnitude.

  • Risk if skipped: Loading ePHI into a non-HIPAA account creates a documented compliance breach the moment the import job runs.

  • Risk if skipped: EU-based contacts loaded without a documented transfer mechanism expose the business to GDPR enforcement after go-live.

  • Risk if skipped: Without explicit exit criteria, cutover slips indefinitely while small issues block sign-off.

Phase 1

Pre-Migration Prep

Clean the source, stand up the destination, prep the people.

1a. Source-system audit and cleansing

  • Risk if skipped: Duplicates carried into GoHighLevel trigger merge logic that permanently loses Child-record field values during conflict resolution.

  • Risk if skipped: Phone-keyed duplicates surface only after the upsert step silently merges or skips records mid-import.

  • Risk if skipped: Non-conforming country values fail individual rows without aborting the job, leaving silent partial imports.

  • Risk if skipped: Without a baseline, post-migration reconciliation cannot prove completeness.

  • Risk if skipped: Unmapped picklist variants become free-text junk in GoHighLevel's Dropdown fields and break Workflow trigger conditions.

  • Risk if skipped: Text data loaded into an auto-detected scoring field is rejected or coerced silently.

1b. Destination-system setup

  • Risk if skipped: Skipping a Sandbox forces every test load to run against production and pollute production data.

  • Risk if skipped: Non-admin users cannot execute imports, blocking cutover until permissions are corrected.

  • Risk if skipped: A wrong timezone shifts every imported appointment and activity by hours and silently breaks Workflow timing.

  • Risk if skipped: Importing into a Custom Field that does not yet exist silently drops the column on every row.

  • Risk if skipped: Discovering a misplaced field after the import means recreating it and re-running the load.

  • Risk if skipped: Missing the unique-field flag at creation lets duplicates accumulate that cannot be retroactively blocked.

  • Risk if skipped: Without preserved source IDs, you cannot reconcile records or roll back a bad load.

  • Risk if skipped: Rows with unmatched stage names fail the CSV import and require re-mapping and re-upload.

  • Risk if skipped: The upsert step obeys this setting; a wrong configuration silently merges or duplicates records.

  • Risk if skipped: Active Workflows on import fire SMS, email, and outbound actions on every imported row, generating spam and burning A2P quota.

  • Risk if skipped: Unregistered campaigns are blocked by carrier filters, killing the entire SMS channel after cutover.

1c. People prep

Phase 2

Source Export

Pull every byte you will need into raw CSVs.

  • Risk if skipped: A missed column at export time forces a second freeze window later to extract the missing data.

  • Risk if skipped: Notes that share a file with Contacts lose their author and timestamp once flattened.

  • Risk if skipped: Lost email history blinds reps to prior conversations and degrades trust in the new system on day one.

  • Risk if skipped: Mapping by display name causes silent owner reassignment when two users share a first name.

  • Risk if skipped: Binaries discovered missing after cutover are usually unrecoverable from a frozen or decommissioned source.

  • Risk if skipped: Automations rebuilt from memory weeks later miss edge-case branches that drove revenue or retention.

Phase 3

Transform & Map

Convert raw source data into GoHighLevel-shaped CSVs.

3a. Mapping spreadsheet

  • Risk if skipped: Without a single source of truth, mappings drift between transforms and validations, producing data that passes import but fails reconciliation.

  • Risk if skipped: Mismatched picklist values import as empty cells and break Smart List filters and Workflow conditions.

  • Risk if skipped: Formulas that auto-update in the source freeze at the migration date in GoHighLevel; reps must know the value is a snapshot.

3b. Data transformation

  • Risk if skipped: Date ambiguity flips month and day on half the rows and corrupts every downstream report.

  • Risk if skipped: Non-UTF-8 text corrupts accented characters and emoji silently, surfacing as data-quality complaints weeks later.

  • Risk if skipped: Unescaped quotes shift every column to the right starting at the offending row, silently misaligning hundreds of records.

  • Risk if skipped: A file over the limit is rejected at upload time, eating into the cutover window for resharding.

3c. Relationship and audit-trail decisions

  • Risk if skipped: Without a preserved original timestamp, every imported record looks like it was created on cutover day, destroying historical reporting.

  • Risk if skipped: Owners assigned by display name silently swap when two source users share a first or last name.

  • Risk if skipped: The 1,000-record Association cap on Custom Objects can silently truncate large parent records mid-import.

3d. CRM-specific transforms

  • Risk if skipped: Loading data into the wrong Location forces a full re-export and re-import because GoHighLevel cannot move records across Locations.

  • Risk if skipped: A reference like `{{custom_values.x}}` rendered against a Custom Field returns blank in every email and SMS.

  • Risk if skipped: Skipping documentation here means rebuilt Workflows lose conditional branches that drove revenue in the source system.

  • Risk if skipped: Teams expecting Snapshots to move data discover at cutover that contacts must be CSV-imported into each Sub-account separately.

  • Risk if skipped: Sending SMS via an unregistered or pending campaign is filtered by carriers and damages sender reputation.

  • Risk if skipped: Mapping against display labels silently mismatches when the source has renamed labels but kept old internal values.

  • Risk if skipped: Reps locked out of self-service calendar reconnection cannot book meetings on day one.

Phase 4

Sandbox Test Migration

Burn every surprise in the Sandbox, not production.

  • Risk if skipped: Loading children before parents leaves Associations unresolved and forces a re-run.

  • Risk if skipped: Field-level corruption only surfaces under manual inspection; counts-only validation passes while values are wrong.

  • Risk if skipped: Off-by-one-day or off-by-hours timestamp errors look fine in spot-checks but corrupt every meeting reminder.

  • Risk if skipped: A Workflow that builds cleanly but fails to trigger is the highest-impact bug to find after cutover.

Phase 5

Production Cutover

Execute the sequenced load window with idempotent steps.

  • Risk if skipped: Writes during freeze produce a silent delta the export does not capture, leaving records orphaned in the source.

  • Risk if skipped: A single active Workflow can send thousands of unintended SMS or emails during the import.

  • Risk if skipped: Using email as the upsert key when duplicates exist silently merges two source records into one destination record.

  • Risk if skipped: Exceeding the 1,000-record Association cap on a single parent silently truncates the relationship list.

  • Risk if skipped: Missing job IDs make rollback impossible — Restore Deleted Contacts is the only safety net and it has a retention window.

  • Risk if skipped: Re-enabling all Workflows at once can flood A2P 10DLC quota and degrade deliverability for the first day.

Phase 6

Validate

Prove correctness before any end user touches the system.

6a. Reconciliation

  • Risk if skipped: An unexplained gap means rows failed silently; chasing the cause two weeks later is far harder.

  • Risk if skipped: A monetary delta caught after sign-off triggers a forensic dig through individual rows that should have been caught here.

6b. Relationship validation

6c. Audit and compliance

  • Risk if skipped: Missing original timestamps silently destroy historical aging reports forever.

  • Risk if skipped: Audit-log retention is 60 days; after that the import evidence is unrecoverable from inside the platform.

6d. User-acceptance check

6e. Sign-off

  • Risk if skipped: Skipping the formal sign-off step makes it impossible to identify when post-cutover bugs are migration-caused vs. user-caused.

Phase 7

Post-Migration Cleanup

Close the source, ship the destination, retain the evidence.

  • Risk if skipped: Reports rebuilt only after they're needed delay actionable decisions for weeks.

  • Risk if skipped: Users assuming calendar sync "just works" miss meetings until they reconnect their accounts.

  • Risk if skipped: Source data discarded too early leaves no recovery path for disputes that surface months later.

Watch list

Risks to track throughout

These risks live across multiple phases — keep an eye on them from kickoff through cutover.

  • Workflows do not migrate and must be rebuilt by hand

    No source-platform workflow ships into GoHighLevel automatically. Every trigger, action, branch, wait, and merge field must be rebuilt in the Automation builder. Treat the rebuild as a parallel workstream that starts in Phase 1 (documentation) and continues into Phase 7 — not a single task that fits in the cutover window.

  • A2P 10DLC SMS compliance gating outbound messaging

    US outbound SMS via LC Phone requires A2P 10DLC brand registration and per-use-case campaign approval, both of which can take days. Migrating contacts before campaigns are Approved bricks the SMS channel on day one, because carrier filters block unregistered traffic. Register early in Phase 1 and confirm Approved status in Phase 6 before re-enabling SMS Workflows.

  • Custom Object association cap and per-Location limits

    Each Location is capped at 10 Custom Objects, and Association limits cap related records at 1,000 per parent in many configurations. Large family-style or portfolio data models silently truncate when these caps are hit. Audit projected association counts in Phase 0 and Phase 3 before committing to a Custom Object design that the platform cannot hold.

Pair this with the long-form guide

The complete HighLevel migration guide

Same research, written as prose: data model, import mechanisms, mapping strategy, pitfalls, and partner landscape.