CRM migration

Migrate from e-shot to Freshsales

Field-level mapping, validation, and rollback between e-shot and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.

e-shot logo

e-shot

Source

Freshsales

Destination

Freshsales logo

Compatibility

30%

3 of 10

objects map 1:1 between e-shot and Freshsales.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

e-shot and Freshsales serve different core functions — e-shot is an email marketing and automation platform organized around a contact-centric model, while Freshsales is a full CRM with leads, contacts, accounts, deals, and built-in phone and email tracking. The migration is a functional replacement: we export e-shot contact records with their custom field values and merge-tag fallbacks, import them into Freshsales as Contacts (and Leads where email marketing audiences need re-qualification), and preserve HTML email templates as standalone assets. Automated Series, Landing Pages, Website Popups, and Preference Centre logic do not migrate via API — we document each active item with its trigger conditions and configuration so your admin rebuilds them in Freshsales or Freshmarketer. Campaign reporting history is pulled from the analytics dashboard and loaded as historical notes or linked records in Freshsales for audit continuity.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

e-shot logo

e-shot

What's pushing teams away

  • Import failures and intermittent system reliability frustrate users — contacts sometimes fail to load and template rendering breaks unpredictably, requiring manual intervention.
  • The analytics interface is widely regarded as dated and unintuitive, prompting teams to export data to external BI tools rather than rely on in-platform reporting.
  • The basic tier caps active Preferences at 25 and Automated Series at 3, which forces growing teams to upgrade or manage within artificially constrained campaign structures.
  • Some users report the platform feels slower than competing email tools during high-volume sends, particularly on the basic tier with lower API rate limits.

Choosing

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How e-shot objects map to Freshsales

Each row shows how a e-shot object lands in Freshsales, 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

maps to

Freshsales

Contact (and Lead where applicable)

1:many
Fully supported

e-shot Contacts migrate to Freshsales Contact records. Where e-shot contacts represent a broad marketing audience that has not been qualified into a sales pipeline, we can provision them as Freshsales Leads first so that your sales team re-qualifies them through the standard Lead-to-Contact conversion workflow. Standard e-shot fields (email, first name, last name, phone, address) map directly to Freshsales Contact fields. Custom contact fields require pre-creation in Freshsales Admin Settings before import, with field types matched to e-shot data types. Merge-tag fallback values from e-shot become Freshsales default values on the corresponding custom fields.

e-shot

Contact Field

maps to

Freshsales

Custom Field

lossy
Fully supported

e-shot custom contact fields defined in Settings > Contacts Field Manager must be pre-created in Freshsales Admin Settings before contact import begins. We extract every field definition including name, type, required flag, and any *_fieldname=fallback('text')_* fallback syntax. Each fallback becomes a Freshsales default value on the equivalent custom field. Field type mapping follows: e-shot text fields map to Freshsales Text, number fields to Number, date fields to Date, dropdown fields to Picklist. If a Freshsales custom field is not created first, the import CSV header will not match and records will fail validation.

e-shot

Campaign

maps to

Freshsales

Deal or Custom Object

lossy
Fully supported

e-shot Campaigns contain email content, subject lines, scheduling, and send history. Because Freshsales does not have a native Campaign object equivalent to HubSpot or Salesforce Marketing, campaign metadata (send date, send count, open rate, click rate) is loaded as a Freshsales Deal record with the campaign name as Deal name, send metrics stored in custom number fields, and a link to the primary contact as the WhatId. If the customer uses Freshmarketer alongside Freshsales, campaigns migrate as Freshmarketer Campaigns instead. HTML template body is preserved separately (see Templates mapping).

e-shot

Template

maps to

Freshsales

HTML Asset (preserved separately)

1:1
Fully supported

e-shot email templates store reusable HTML content blocks with embedded merge-tag markup. We export templates as raw HTML files preserving the *_fieldname_* syntax so that the customer can re-enable personalisation in Freshsales or a downstream email tool. Templates are not loaded into Freshsales as native objects because Freshsales does not have a standard template library for marketing emails. The HTML files are delivered alongside the migration with a field mapping reference indicating which custom fields each template references.

e-shot

Automated Series

maps to

Freshsales

Documented for rebuild (not migrated)

lossy
Mapping required

e-shot Automated Series are workflow-based email sequences with trigger conditions, delays, and action steps. Freshsales does not have an equivalent automation engine natively (Freshmarketer does, but it is a separate product). We extract every active Automated Series — including trigger type, conditions, step sequence, delay rules, and CRM action — into a written inventory document. The customer's admin rebuilds each series in Freshmarketer's Journey Builder or in Freshsales Workflows depending on the complexity. Series are not migratable as code because the trigger and action models differ fundamentally between platforms.

e-shot

Landing Page

maps to

Freshsales

Documented for rebuild (not migrated)

lossy
Fully supported

e-shot Landing Pages are tier-gated web pages with form elements and tracking. Freshsales does not have a native landing page builder (Freshmarketer does). We export published landing page URLs, form field definitions, and submission data linked to contacts so that the customer can recreate pages in Freshmarketer or a third-party landing page tool. Active landing page URLs are documented with a redirect plan to avoid broken links post-migration.

e-shot

Form and Preference Centre

maps to

Freshsales

Documented for rebuild (not migrated)

lossy
Fully supported

e-shot Forms and the Preference Centre store contact subscription choices, field inputs, and opt-in status. We export form definitions, field types, and per-contact preference data as a CSV. Opt-in and opt-out status migrates to Freshsales Contact fields (e.g., email_opt_out or a custom subscription field). Form builders and preference centre UI logic do not migrate; we document the configuration for rebuild in Freshmarketer or a CMS form plugin.

e-shot

Tag

maps to

Freshsales

Contact Tag or Custom Field

1:1
Fully supported

e-shot tags label contacts without a formal taxonomy and are stored as field values or list memberships. We extract tag assignments per contact and load them into Freshsales as a custom multi-select picklist field (e.g., contact_segmentation__c) or as Freshsales Tags on the Contact record. The customer chooses the target format during scoping. Tags used for segmentation logic in Automated Series are documented in the Series inventory for rebuild.

e-shot

Saved Filter

maps to

Freshsales

Segment (documented for rebuild)

lossy
Fully supported

e-shot Saved Filters define dynamic contact segments using field conditions. We export filter definitions including field names, operators, and values. Freshsales does not have a Saved Filters equivalent in its native contact view — segments are managed through Freshsales Reports or through Freshmarketer's audience builder. We deliver a written segment inventory mapping each e-shot Saved Filter to a Freshsales Report or Freshmarketer audience definition.

e-shot

Campaign Report

maps to

Freshsales

Contact Note or Deal Custom Field

1:1
Fully supported

e-shot Campaign Reports include opens, clicks, bounces, unsubscribes, and delivery health per campaign. We pull historical report snapshots from the analytics dashboard and load them as Contact Notes linked to each recipient (for high-value contacts) or as a campaign-level Deal record in Freshsales with metrics stored in custom fields. This preserves reporting context for customer-facing audits without requiring the customer to maintain access to the old e-shot account.

Gotchas + challenges

What specifically takes care here

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 logo

e-shot gotchas

Medium

File attachments blocked in bulk email sends

Low

Tier limits apply to active (live) objects only

Medium

Merge-tag fallback values must be replicated

Low

No dedicated bulk export endpoint documented

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • Merge-tag fallback values require manual replication in Freshsales

    e-shot uses *_fieldname=fallback('text')_* syntax for personalised fields where contacts may lack a value. If fallback values are not set as Freshsales default values on the equivalent custom field before contact import, contacts without that field populated will display raw merge tags to recipients in any downstream email sends. We extract every fallback definition from e-shot's contact field manager during scoping and create a default-value rule in Freshsales Admin Settings for each custom field before contacts are loaded. Failure to do this step results in broken personalisation in any email sent from Freshsales or Freshmarketer.

  • e-shot has no bulk export endpoint; large lists require paginated API extraction

    The e-shot REST API returns JSON for paginated contact exports but does not publish a dedicated bulk-export endpoint. Rate limits vary by tier (500 calls per hour on basic, 2,000 on pro, 5,000 on omni). We implement throttled pagination with resume logic to extract large contact lists without exceeding the hourly cap. Contacts created or updated during the extraction window are flagged for a delta pass before go-live. This step adds time to the scoping phase for accounts above 20,000 contacts.

  • Automated Series and Landing Pages do not migrate as functional objects

    e-shot Automated Series (workflows) and Landing Pages are not exportable as functional code or configuration. They must be rebuilt in Freshmarketer (the Freshworks marketing automation product) or an alternative email marketing tool. We document every active Automated Series and Landing Page with its full configuration so that the customer's admin or a Freshmarketer specialist can rebuild them. The undocumented loss of running automations is the most common post-migration surprise for e-shot customers; we surface this explicitly during scoping.

  • e-shot tier limits apply to active objects only, not created volume

    e-shot plan limits on Preferences, Landing Pages, Automated Series, and Website Popups count only items set to live or active. Customers can create additional items beyond the plan limit as long as they are not published. We query the active flag on each object during scoping so that the migration and documentation targets only the items actually in use. If a customer has 40 series created but only 3 active on a basic tier account, only the 3 active series are documented for rebuild.

Migration approach

Six steps for a successful e-shot to Freshsales data migration

  1. Scoping and source audit

    We audit the e-shot account across tier level, active object counts (Preferences, Series, Landing Pages, Popups), custom contact field definitions including fallback syntax, contact volume, campaign history, and saved filter definitions. We extract the active flag on each gated object to ensure the migration scope targets only in-use items. The scoping output is a written migration scope document with record counts, field inventory, and a confirmed list of objects that migrate, objects that export as data, and objects that document for rebuild.

  2. Freshsales custom field and object pre-creation

    Before any contacts or data are loaded into Freshsales, we create all required custom fields in Admin Settings matching the e-shot contact field schema. Each field is typed correctly (text, number, date, picklist) and assigned a default value corresponding to any e-shot merge-tag fallback. If contacts are being provisioned as Leads for re-qualification, we configure the Lead status picklist and any conversion mapping rules. If campaign reports are being loaded as Deal records, we create the custom number fields for send metrics. This step runs in a Freshsales sandbox or staging account first for validation.

  3. Contact and field data extraction from e-shot

    We extract contact records via paginated e-shot REST API calls within the account's hourly rate limit. Large lists (above 20,000 contacts) run with resume logic across multiple extraction windows to avoid hitting the cap. We pull standard fields alongside all custom field values. Tags and list memberships are extracted as separate lookup tables. Merge-tag fallback values are confirmed against the contact field manager export during this step to ensure no fallback syntax is missed before the Freshsales defaults are set.

  4. Data load into Freshsales with reconciliation

    We load contacts into Freshsales via CSV import (for bulk loads) or REST API (for incremental or complex records). Each import phase emits a row-count reconciliation report comparing e-shot source record count to Freshsales target record count. We validate that custom field values transferred correctly, that required fields are populated, and that duplicate detection (by email address) flagged any records that Freshsales rejected. Tags are loaded as Freshsales Tags or mapped to a multi-select custom field per the customer's chosen format.

  5. Campaign history and template asset export

    We pull historical campaign report data from e-shot's analytics dashboard, capturing open rates, click rates, bounce rates, and send counts per campaign per contact where available. This data is loaded as Contact Notes or as campaign-level Deal records with metrics in custom fields. HTML email templates are exported as raw HTML files with merge-tag markup preserved, delivered as a named asset folder alongside the field mapping reference. Landing page URLs are documented with a redirect plan.

  6. Automation and rebuild inventory delivery

    We deliver the written inventory of e-shot Automated Series, Landing Pages, Forms, Preference Centre configurations, and Saved Filters. Each Automated Series entry includes trigger type, condition logic, step sequence, delays, and CRM actions, mapped to a Freshmarketer Journey Builder or Freshsales Workflow equivalent. Each Landing Page includes page URL, form field list, and submission destination. The customer's admin or a Freshworks partner uses this inventory to rebuild in Freshmarketer or an alternative. We do not rebuild automations as part of the standard migration scope.

Platform deep dives

Context on both ends of the pair

e-shot logo

e-shot

Source

Strengths

  • Tiered pricing from £200/month provides a clear upgrade path without per-seat licensing on any plan.
  • Unlimited users across all tiers means whole teams can access the platform without incremental cost.
  • Dedicated deliverability tooling for Microsoft contacts, important for UK enterprise senders on Microsoft 365.
  • Contact field manager and merge-tag fallback syntax give non-technical users granular personalisation control.
  • Open API with JSON REST endpoints and tiered rate limits up to 5,000 calls per hour on omni.

Weaknesses

  • Analytics UI is repeatedly described as dated and difficult to navigate compared to modern email platforms.
  • Import reliability issues and intermittent system downtime affect campaign and contact loading.
  • Landing page and automation features are tier-gated, requiring upgrades as team complexity grows.
  • Basic tier has hard limits on live preferences, series, filters, and popups that constrain active campaigns.
  • Template design tools lack some drag-and-drop flexibility found in newer email builders.
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across e-shot and Freshsales.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    e-shot: 500–5,000 requests per hour depending on tier (basic: 500, pro: 2,000, omni: 5,000).

  • Data volume sensitivity

    B

    e-shot doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your e-shot to Freshsales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about e-shot to Freshsales data migrations

Answers to the questions buyers ask most during e-shot to Freshsales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your e-shot to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between two and four weeks for accounts with under 10,000 contacts, clean custom field schemas, and no active automation requiring full documentation. Migrations with large contact volumes (above 50,000), complex custom field trees with conditional fallback rules, or a high count of active Automated Series requiring written rebuild inventory extend to four to eight weeks. The timeline assumes Freshsales sandbox validation is completed promptly and that the customer provides admin access for custom field creation in parallel with extraction.

Adjacent paths

Related migrations to explore

Ready when you are

Move from e-shot.
Land in Freshsales, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day