CRM migration
Field-level mapping, validation, and rollback between e-shot and HighLevel. We move data and schema; workflows are rebuilt natively in HighLevel.
e-shot
Source
HighLevel
Destination
Compatibility
8 of 10
objects map 1:1 between e-shot and HighLevel.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from e-shot to GoHighLevel is a shift from a contact-centric email marketing platform to an all-in-one CRM with built-in marketing automation, SMS, calling, and funnel building. e-shot organises data around Contacts and Campaigns with merge-tag personalisation and tier-gated limits on live Preferences, Automated Series, and landing pages. GoHighLevel uses a CRM model with Leads, Contacts, Accounts, and Opportunities, plus Opportunities pipeline management that has no equivalent in e-shot. We export all active Contacts with their field values and fallback definitions, campaign content as HTML templates, preference centre data, and saved filter definitions. GoHighLevel's unlimited contacts model removes the per-preference billing that constrains growing e-shot accounts. Automations, landing pages, and website popups do not migrate as functional code; we deliver a written inventory of active Automated Series and popup configurations 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 e-shot 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.
e-shot
Contact
HighLevel
Contact (primary) and Lead (secondary)
1:1e-shot Contacts map directly to GoHighLevel Contacts when the contact has a known email address and company association. Contacts without a clear company association but with lead-capture intent (form fills, popup responses) can optionally map to GoHighLevel Leads for pipeline routing. We preserve all standard e-shot fields (email, first name, last name, phone, address) plus every custom contact field, including any with merge-tag fallback values which we replicate as GoHighLevel custom fields with default values set to the fallback text.
e-shot
Contact Field
HighLevel
Custom Field
1:1e-shot's Contact Field Manager stores field definitions with type and merge-tag syntax. We extract every custom field definition including *_fieldname=fallback('text')_* fallback values and recreate them as GoHighLevel Custom Fields. Field types map as follows: text to Short Text, long text to Long Text, date to Date, number to Number, dropdown to Dropdown, checkbox to Multi-Select Checkbox. Fallback values are set as default values on the GoHighLevel custom field so contacts without a value display the fallback rather than a blank or raw merge tag.
e-shot
Campaign
HighLevel
Campaign
1:1e-shot Campaigns hold email content, subject line, sender details, and scheduling. We export campaign records and associated HTML template bodies as-is. The HTML content migrates as GoHighLevel Email Templates with the original e-shot template name preserved. Subject lines and sender details are stored in the GoHighLevel template settings. Automated sends require workflow rebuild; we document every campaign with an active Automated Series attached so the customer knows which templates need automation re-connection.
e-shot
Automated Series
HighLevel
Workflow
lossye-shot Automated Series are email sequences triggered by contact behaviour or date conditions. GoHighLevel has no direct equivalent of Automated Series as a discrete object; each series becomes a GoHighLevel Workflow with the same trigger conditions and email actions. We export the series definition (trigger, conditions, step sequence, delays, email references) and deliver it as a written workflow map for the customer's admin to rebuild. We do not execute the rebuild as part of the migration scope. Series that reference e-shot-specific merge tags in their body text require template update before the workflow runs.
e-shot
Preference Centre
HighLevel
Contact Tags and Custom Fields
1:1e-shot Preference Centre tracks subscription status and interest categories per contact. We export the preference structure (preference name, type, default state) and per-contact preference values. These map to GoHighLevel Contact Tags (for interest categories) and a custom field eshot_subscription_status__c (for overall opt-in state). We preserve the original e-shot preference names in the tag and field descriptions for audit traceability.
e-shot
Form
HighLevel
Form
1:1e-shot Forms collect contact data and subscription choices. GoHighLevel has a native Form builder with equivalent field types. We export form definitions including field names, field types, required settings, and the form's linked preference centre. Form field mapping is 1:1 for standard field types; custom field types require GoHighLevel Custom Field pre-creation before form field mapping. Form submissions (historical responses) migrate as Contact records with the form tag applied.
e-shot
Saved Filter
HighLevel
Smart List or Tag Group
lossye-shot Saved Filters define dynamic contact segments using field conditions. Tier limits apply to active filters (basic: 10, pro: 25, omni: unlimited). We export each filter's condition set as a written rule definition. In GoHighLevel, equivalent segmentation uses Tags (applied manually or via Workflow) or Smart Lists (with field-condition rules). We document which contacts match each e-shot filter so the customer's admin can apply the equivalent segmentation in GoHighLevel.
e-shot
Campaign Report
HighLevel
Campaign
1:1e-shot Campaign Reports include opens, clicks, bounces, unsubscribes, and delivery health per campaign. We export historical report snapshots as CSV so the customer retains campaign performance data. GoHighLevel Campaign analytics serve as the ongoing reporting destination post-migration. We do not backfill GoHighLevel analytics with e-shot historical data; the historical report CSV is delivered alongside the migration for the customer's records.
e-shot
Template
HighLevel
Email Template
1:1e-shot Email Templates store reusable HTML content blocks with embedded styles. We export templates as HTML files with merge tags preserved as source values. In GoHighLevel, templates are recreated as Email Templates using the imported HTML. Any e-shot merge tags not yet mapped to GoHighLevel custom fields are flagged so the admin can update the template HTML before the next send.
e-shot
Tag
HighLevel
Tag
1:1e-shot does not expose a separate tag management API object; tags are stored as field values or list memberships. We extract every distinct tag string and map them to GoHighLevel Tags on the Contact record. Tags used for segment classification are preserved as written tag names so the customer's segmentation logic remains intact. Duplicate tag names from different sources are deduplicated during extraction.
| e-shot | HighLevel | Compatibility | |
|---|---|---|---|
| Contact | Contact (primary) and Lead (secondary)1:1 | Fully supported | |
| Contact Field | Custom Field1:1 | Fully supported | |
| Campaign | Campaign1:1 | Fully supported | |
| Automated Series | Workflowlossy | Mapping required | |
| Preference Centre | Contact Tags and Custom Fields1:1 | Fully supported | |
| Form | Form1:1 | Fully supported | |
| Saved Filter | Smart List or Tag Grouplossy | Fully supported | |
| Campaign Report | Campaign1:1 | Fully supported | |
| Template | Email Template1:1 | Fully supported | |
| Tag | Tag1:1 | 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.
e-shot gotchas
File attachments blocked in bulk email sends
Tier limits apply to active (live) objects only
Merge-tag fallback values must be replicated
No dedicated bulk export endpoint documented
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 scoping
We audit the source e-shot account across plan tier, active object counts, custom field definitions with merge-tag fallbacks, Automated Series configurations, landing page count, form definitions, preference centre structure, saved filters, and campaign volume. We export a full contact list via paginated API calls respecting the plan's hourly rate limit. The scoping output is a written migration scope document with the object count per type, any tier-limit constraints identified, and the custom field mapping matrix.
GoHighLevel schema preparation
We create the GoHighLevel Custom Fields corresponding to e-shot contact fields before any contact import. Each field is created with the correct type and the fallback value set as the default value where applicable. We set up Contact Tags for preference centre interests and campaign source tags. We configure the Contact record layout to match the customer's priority fields. This phase runs in parallel with data extraction from e-shot.
Data extraction and transformation
We extract Contacts with all field values, merge-tag fallback definitions from the field manager, campaign content as HTML, template assets, form definitions, and preference centre data. Tags are extracted as distinct string values from field values and list memberships. We apply the field transformation rules: e-shot field types map to GoHighLevel field types, fallback values are extracted from the field manager as separate data, and campaign HTML is preserved as-is for template recreation. The transform output is a set of CSV and JSON files ready for GoHighLevel import.
GoHighLevel import in dependency order
We import data into GoHighLevel in dependency order: Custom Fields (pre-created and verified), Contact Tags (for segmentation), Contacts (with default values applied for missing fields), Email Templates (from campaign HTML), Forms (with field mapping), Campaigns (linked to templates). Each phase emits a row-count reconciliation report. Active Automated Series are not imported; they are documented as a written workflow inventory delivered separately.
Campaign report export and template verification
We export historical e-shot Campaign Reports as CSV snapshots covering opens, clicks, bounces, unsubscribes, and delivery health for every campaign in the last 12 months. We verify that imported GoHighLevel Email Templates render correctly by sending test emails to a internal address. Any merge tags referencing fields not yet mapped to GoHighLevel are flagged for HTML correction before the next live send.
Cutover, validation, and handoff
We freeze e-shot writes during the cutover window, run a final delta extraction of any contacts modified during the migration, and load the delta into GoHighLevel. We validate record counts match the scoping document, spot-check 20-30 records for field accuracy and fallback value application, and deliver the Automated Series workflow inventory. We do not rebuild workflows or automations in GoHighLevel; that work is handled by the customer's admin using the inventory document. We provide a one-week hypercare window for reconciliation issues.
Platform deep dives
e-shot
Source
Strengths
Weaknesses
HighLevel
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 e-shot and HighLevel.
Object compatibility
1 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
e-shot: 500–5,000 requests per hour depending on tier (basic: 500, pro: 2,000, omni: 5,000).
Data volume sensitivity
e-shot 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 e-shot to HighLevel migration scoping. Not seeing yours? Book a call.
Walk through your e-shot 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 e-shot
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.