CRM migration
Field-level mapping, validation, and rollback between e-shot and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
e-shot
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
7 of 8
objects map 1:1 between e-shot and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
2-4 weeks
Overview
e-shot is an email marketing and automation platform; Microsoft Microsoft Dynamics 365 Sales is a CRM. This is a category-crossing migration, not a like-for-like platform swap, and the scope reflects that reality. We export e-shot Contacts with all standard and custom field values, replicate merge-tag fallback definitions as default field values in Dynamics 365, and preserve Campaign Reports as static records or notes. We do not migrate Automated Series, Landing Pages, Website Popups, or Forms as these have no structural equivalent in Microsoft Dynamics 365 Sales ; we deliver a written inventory of these objects for the customer's admin to rebuild or decommission. Email templates export as HTML assets for reimport into Dynamics 365-compatible editors. Parent-record dependency order (Accounts before Contacts) and e-shot's tiered API rate limits (500-5,000 calls per hour) govern our extraction cadence.
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.
Source platform
e-shot platform overview
Scorecard, SWOT, gotchas, and pricing for e-shot.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales , 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
Microsoft Dynamics 365 Sales
Contact (linked to Account)
1:1e-shot Contacts map to Dynamics 365 Contact records. The Contact's email address is the dedupe key. We extract all standard e-shot contact fields (name, email, phone, address) and custom contact fields defined in Settings > Contacts field manager, mapping each to a typed Dynamics 365 custom field. The e-shot contact ID is preserved in a custom field eshot_contact_id__c for audit and reconciliation. Contacts import after Account creation so that the parent AccountId lookup is satisfied at insert time.
e-shot
Contact Field
Microsoft Dynamics 365 Sales
Custom Field on Contact
1:1e-shot's contact field schema is fully customisable. We extract every custom field definition (name, type, merge-tag syntax *_fieldname_*) from the field manager and create equivalent typed custom fields in Dynamics 365 using the Dataverse API. Merge-tag fallback values from e-shot (* *_fieldname=fallback('text')_ *) are replicated as default values on the corresponding Dynamics 365 custom fields so that contacts without data render cleanly rather than exposing raw merge tags.
e-shot
Campaign
Microsoft Dynamics 365 Sales
Campaign
1:1e-shot Campaign records (email subject, sender details, scheduling, content body) map to Dynamics 365 Campaign. The campaign name and status migrate as-is. HTML template body migrates as the Campaign's Description field or as a Document attachment for reformatting in a Dynamics 365-compatible editor. Campaign send date and recipient count migrate to support historical reporting.
e-shot
Campaign Reports
Microsoft Dynamics 365 Sales
Campaign
1:1Historical campaign analytics (opens, clicks, bounces, unsubscribes, delivery health) export from e-shot's analytics dashboard and populate the corresponding Dynamics 365 Campaign's tracking fields. We preserve the send date, open rate, click rate, bounce count, and unsubscribe count as static numeric fields on the Campaign record so that historical performance remains queryable in Dynamics 365 without external reporting tools.
e-shot
Template
Microsoft Dynamics 365 Sales
Email Template
1:1e-shot email templates (HTML with embedded styles and merge tags) export as raw HTML files. We preserve the merge-tag syntax as source values so that when the customer rebuilds templates in Dynamics 365-compatible editors (Dynamics 365 Email Editor, Adobe Creative Cloud, or marketing tools like Mailchimp), the personalisation tokens can be re-enabled against the migrated custom fields.
e-shot
Preferences
Microsoft Dynamics 365 Sales
Contact (custom fields)
lossye-shot contact preferences (subscription interests and opt-in status) migrate to Dynamics 365 Contact as either boolean custom fields or a multi-select picklist, depending on preference centre structure. The tier limit on active preferences (basic: 25, pro: 50, omni: unlimited) is a scoping flag: we export only the active preferences currently in use. HasOptedOutOfEmail migrates as the primary email opt-out flag on Contact.
e-shot
Form
Microsoft Dynamics 365 Sales
Not migrated (inventory only)
1:1e-shot Forms and the preference centre store contact choices and field inputs. Forms have no structural equivalent in Microsoft Dynamics 365 Sales as a native object. We export form definitions, field types, and associated preference data as a written inventory document. The customer's admin rebuilds forms in Dynamics 365 using Power Apps portals, SharePoint, or a third-party form tool; we do not migrate forms as functional records.
e-shot
Automated Series
Microsoft Dynamics 365 Sales
Not migrated (inventory only)
1:1Automated Series are workflow-based email sequences with trigger conditions and delay steps. These have no direct Microsoft Dynamics 365 Sales equivalent; Sales automation in Dynamics 365 relies on Power Automate or Sales Insights, which are different architectural models. We deliver a written inventory of every active Automated Series with its trigger, conditions, steps, and recommended Power Automate equivalent. The customer's admin or a Microsoft partner rebuilds the sequences post-migration.
| e-shot | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact (linked to Account)1:1 | Fully supported | |
| Contact Field | Custom Field on Contact1:1 | Fully supported | |
| Campaign | Campaign1:1 | Fully supported | |
| Campaign Reports | Campaign1:1 | Fully supported | |
| Template | Email Template1:1 | Fully supported | |
| Preferences | Contact (custom fields)lossy | Mapping required | |
| Form | Not migrated (inventory only)1:1 | Fully supported | |
| Automated Series | Not migrated (inventory only)1:1 | Mapping required |
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
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Discovery and source audit
We audit the e-shot portal across the customer's active tier (basic, pro, or omni), extracting all active contacts (with pagination under the tier's hourly rate limit), custom contact field definitions, merge-tag fallback values, active campaign records, campaign report snapshots, template HTML files, active Automated Series, and live landing pages. We also capture any tag assignments stored as field values or list memberships. The discovery output is a written scope document listing every object, its record count, its schema, and whether it is in-scope for migration, in-scope for written inventory, or out of scope.
Dynamics 365 schema provisioning
We create the destination schema in the customer's Dynamics 365 environment. This includes provisioning all e-shot custom contact fields as typed Dataverse columns on Contact, setting default values from e-shot fallback definitions, creating a custom field eshot_contact_id__c for audit traceability, provisioning Campaign records from e-shot campaign data, and configuring any required Account records as parent containers for migrated contacts. Schema is deployed to a Sandbox environment first for validation before any data moves.
Sandbox migration and reconciliation
We run a full extraction and load into the Dynamics 365 Sandbox using production-like data volumes. The customer's Dynamics 365 admin and RevOps lead reconcile record counts, spot-check 20-40 random contacts against the e-shot source, and verify that merge-tag fallback values render correctly on contacts without source data. Any field mapping corrections, validation rule adjustments, or Account assignment corrections happen in this phase. Sign-off on the sandbox reconciliation gates the production migration.
Contact extraction with API pagination
We export contacts from e-shot using paginated API calls throttled to the customer's tier limit (500, 2,000, or 5,000 calls per hour). Large contact lists extract over multiple hourly windows if needed. Each contact record is enriched with its company name (for Account lookup), all custom field values, preference flags, and the original e-shot contact ID. Tags stored as field values are extracted as a separate dataset for the Dynamics 365 admin to assign to multi-select picklist fields or Topic records post-migration.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from e-shot company names on contacts), Contacts (with AccountId resolved and merge-tag fallbacks validated), Campaigns (with historical analytics populated), Templates (as HTML file inventory), then deliver the Automated Series and Landing Page inventory document. Each phase emits a row-count reconciliation report. We freeze writes to the e-shot portal during the final delta window to capture any last-minute contact changes before cutover.
Cutover, validation, and rebuild handoff
We validate the production migration by running a record-count comparison (contacts in, accounts in, campaigns in) and a field-sampling check against the e-shot source data. We deliver the Automated Series inventory, Landing Page inventory, and Form definitions as written documents to the customer's admin team. We support a three-day hypercare window for reconciliation issues. We do not rebuild e-shot Automated Series as Power Automate flows or Landing Pages as Power Pages within the migration scope; those are separate engagements or internal admin tasks.
Platform deep dives
e-shot
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between e-shot and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across e-shot and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between e-shot and Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your e-shot to Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales
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.