CRM migration
Field-level mapping, validation, and rollback between Results and HighLevel. We move data and schema; workflows are rebuilt natively in HighLevel.
Results
Source
HighLevel
Destination
Compatibility
7 of 9
objects map 1:1 between Results and HighLevel.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Results to GoHighLevel requires careful schema mapping because Results has no publicly documented API and GoHighLevel handles Contacts and Opportunities as separate custom-field namespaces. We verify which Results fields are exportable during the scoping call, design the GoHighLevel custom field structure (Contact fields for person-level data, Opportunity fields for deal-level data), and migrate all standard CRM records through GoHighLevel's CSV import with proper encoding and date formatting. Pipelines from Results map to GoHighLevel Opportunity stages with corresponding pipeline configuration. Activity history (calls, emails, meetings, tasks) migrates as GoHighLevel Tasks and Events. Automations, workflows, and sequences do not migrate as code; we deliver a written inventory of each for your admin to rebuild in GoHighLevel's Workflow builder.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Results object lands in HighLevel, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Results
Contact
HighLevel
Contact
1:1Results Contacts map to GoHighLevel Contacts. The email address serves as the dedupe key during CSV import. We preserve all standard fields (first name, last name, phone, address) plus any custom fields that store person-level attributes (birthday, lead type, preferred contact method). UTF-8 encoding is enforced and special characters are stripped before import to prevent GoHighLevel import errors.
Results
Company
HighLevel
Contact (Company Info section)
1:1Results Company records map to the Company Info section on GoHighLevel Contacts. If a Contact in Results has multiple associated Companies, we attach the primary Company to the Contact record and flag the additional associations in a custom notes field for manual reconciliation in GoHighLevel, since GoHighLevel does not support multiple company lookups on a single Contact.
Results
Deal
HighLevel
Opportunity
1:1Results Deals map to GoHighLevel Opportunities. The deal amount, close date, deal stage, and pipeline assignment transfer directly. We resolve the owner assignment by matching Results owner email to the GoHighLevel user email. Any Results Deal with a status that has no GoHighLevel equivalent (e.g., archived or voided) is held in a reconciliation queue for the customer to decide before import.
Results
Pipeline
HighLevel
Opportunity Stage + Pipeline configuration
lossyResults Pipelines map to GoHighLevel Opportunity stages organized under pipeline configuration. Each Results pipeline becomes a GoHighLevel pipeline with stages that correspond to the source deal stages. Stage probability percentages are approximated to GoHighLevel's integer-allowed format. If Results uses more than ten stages, we consolidate non-essential stages to fit GoHighLevel's pipeline UX.
Results
Activity: Call
HighLevel
Task (TaskSubtype = Call)
1:1Results call activities migrate to GoHighLevel Tasks with TaskSubtype = Call. Call duration, disposition, and any notes transfer to custom Task fields. We set the ActivityDate to the original Results timestamp to preserve the timeline ordering.
Results
Activity: Email
HighLevel
Task
1:1Results email activities migrate to GoHighLevel Tasks with the email body preserved in the task notes field. If Results stores emails as HTML, we strip to plain text for GoHighLevel compatibility. GoHighLevel's built-in email functionality does not migrate the sent-email history as a native email log; the Task record serves as the activity timeline marker.
Results
Activity: Meeting
HighLevel
Event
1:1Results meeting activities migrate to GoHighLevel Events with StartDateTime, EndDateTime, and Location preserved. Attendee information transfers to the GoHighLevel Event Attendees section. We map meeting status (confirmed, cancelled) to the GoHighLevel Event status where available.
Results
Activity: Task
HighLevel
Task
1:1Results task activities migrate to GoHighLevel Tasks with Status, Priority, and ActivityDate preserved. Task assignments migrate by resolving the Results owner email to the GoHighLevel user. Any task without a matching user is assigned to the GoHighLevel account owner as a placeholder.
Results
Custom Field
HighLevel
Contact Custom Field or Opportunity Custom Field
lossyResults custom fields require type resolution during scoping. Person-level attributes (preferences, demographics, lead source) map to GoHighLevel Contact custom fields. Deal-level attributes (deal type, proposal version, renewal date) map to GoHighLevel Opportunity custom fields. We create the destination custom fields in GoHighLevel before import and map field types appropriately: text, number, date, dropdown, multi-select, or checkbox. Custom fields without a clear type classification are held for customer decision during scoping.
| Results | HighLevel | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Contact (Company Info section)1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline | Opportunity Stage + Pipeline configurationlossy | Fully supported | |
| Activity: Call | Task (TaskSubtype = Call)1:1 | Fully supported | |
| Activity: Email | Task1:1 | Fully supported | |
| Activity: Meeting | Event1:1 | Fully supported | |
| Activity: Task | Task1:1 | Fully supported | |
| Custom Field | Contact Custom Field or Opportunity Custom Fieldlossy | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Results gotchas
QuickBooks-linked records have dual sources of truth
Suite is not architected to scale beyond ~15 users / 15K contacts
No documented public REST API
Field Service photos and signatures require separate binary extraction
HighLevel gotchas
Sub-account architecture creates isolated data silos per client
Usage-based telecom and AI costs are not in the subscription price
Workflows have no native equivalent in most destination CRMs
API rate limits cap bulk migration throughput at 100 requests per 10 seconds per sub-account
White-label configuration and branding assets do not export via API
Pair-specific challenges
Migration approach
Discovery and export verification
We request a full CSV export of all CRM records from Results including Contacts, Companies, Deals, Pipelines, Activities, and any custom fields. We inspect the column headers and sample values to determine field types, required fields, and any computed or restricted fields. We confirm which objects are present, which are empty, and which custom fields require Contact versus Opportunity type classification. The discovery output is a written scope document with the confirmed field map.
GoHighLevel custom field creation
We create all destination custom fields in GoHighLevel before any data import. Contact custom fields are created under the Contact object for person-level attributes; Opportunity custom fields are created under the Opportunity object for deal-level attributes. Each field is typed (text, number, date, dropdown, multi-select, checkbox) and, if applicable, organized into folders for clean CRM UX. Pipeline and stage configuration is set up in parallel so that Deal stages have valid destination values during import.
CSV preprocessing and encoding
We preprocess the Results CSV export: re-encode to UTF-8, remove special characters and emojis, replace line breaks in text fields with spaces, reformat all dates to YYYY-MM-DD, validate email addresses, and deduplicate records where the email address is the key. We split the export into separate CSV files per object (Contacts, Companies, Deals, Activities) in the import order that satisfies foreign key dependencies.
Sandbox import and reconciliation
We run a full import into a GoHighLevel sandbox or trial account using production-like data volume. We validate row counts (Contacts in, Deals in, Activities in), spot-check 25-50 records against the source, and confirm custom field values appear correctly on Contact and Opportunity records. Any mapping corrections, encoding issues, or missing fields are resolved here before production import.
Production migration in dependency order
We run production migration in record-dependency order: Contacts first (with Company info attached), then Deals (with owner resolved by email match), then Activity history (Tasks, Events, Calls). Each phase emits a row-count reconciliation report before the next phase begins. We freeze Results writes during the cutover window and run a final delta migration of any records modified during the migration process.
Cutover, validation, and automation inventory delivery
We enable GoHighLevel as the system of record and perform a final validation comparing migrated record counts and a random sample against the Results source. We deliver the automation and workflow inventory document listing every identified automation in Results with trigger, conditions, and recommended GoHighLevel Workflow equivalent. We support a one-week hypercare window for reconciliation issues. Rebuilding automations in GoHighLevel's Workflow builder is not included in the migration scope and is handled by your admin or a separate engagement.
Platform deep dives
Results
Source
Strengths
Weaknesses
HighLevel
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Results and HighLevel.
Object compatibility
3 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Results: Not publicly documented.
Data volume sensitivity
Results doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Results to HighLevel migration scoping. Not seeing yours? Book a call.
Walk through your Results to HighLevel migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Results
Other ways to arrive at HighLevel
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.