CRM migration
Field-level mapping, validation, and rollback between eZnet CRM and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
eZnet CRM
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
8 of 11
objects map 1:1 between eZnet CRM and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from eZnet CRM to Microsoft Microsoft Dynamics 365 Sales is a structural migration for a niche CRM with limited tooling support into a platform with deep API coverage and enterprise-grade administration. eZnet CRM does not publish a developer portal or public API reference, which means migration tooling must rely on available export mechanisms and CSV-based transfers for records that cannot be reached via programmatic API. We assess all available export options during discovery and apply batched CSV imports into Dynamics 365 using the Dataverse API with chunking and exponential backoff. eZnet's Activities object (calls, emails, tasks, events) splits into separate Task, Event, and EmailMessage records in Dynamics 365, with ActivityDate ordering preserved. eZnet's per-tier record caps on Standard ($10/user) tier require a boundary check before migration scoping. Dynamics 365's LinkedIn Sales Navigator integration, Copilot AI features, and Power BI reporting do not migrate as data; we flag them as configuration tasks for the customer admin post-migration.
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
eZnet CRM platform overview
Scorecard, SWOT, gotchas, and pricing for eZnet CRM.
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 eZnet CRM 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.
eZnet CRM
Account
Microsoft Dynamics 365 Sales
Account
1:1eZnet CRM Account records map directly to Dynamics 365 Account. Account name, address fields (street, city, state, postal code, country), phone, website, and industry classification transfer as typed fields. The Account is created first so that the AccountId lookup is satisfied for any dependent Contact imports. We use the Account Name and Email domain as dedupe keys during import to catch duplicates before they enter Dynamics 365.
eZnet CRM
Contact
Microsoft Dynamics 365 Sales
Contact
1:1eZnet CRM Contact records map to Dynamics 365 Contact with parent AccountId resolved at migration time. Standard fields (firstname, lastname, email, phone, mobile, title, department) transfer directly. Address fields migrate to the Contact address composite. We preserve the Account-Contact link by resolving the parent eZnet Account to the corresponding Dynamics Account GUID before Contact insert.
eZnet CRM
Opportunity
Microsoft Dynamics 365 Sales
Opportunity
1:1eZnet CRM Opportunity records map to Dynamics 365 Opportunity with AccountId and OwnerId resolved before insert. The opportunity name, amount, estimated close date, and pipeline stage name transfer to name, estimatedvalue, closerdatetime, and stagecode respectively. We capture the stage order and probability from eZnet and reconstruct them as Sales Process stage values in Dynamics 365.
eZnet CRM
Pipeline / Opportunity Stage
Microsoft Dynamics 365 Sales
Sales Process + Stage
lossyeZnet CRM pipeline and stage configuration migrate as Microsoft Dynamics 365 Sales Processes with corresponding Stage values. Stage names, display order, and probability percentages transfer to stagecode and stepname in the Sales Process metadata. We configure a default Sales Process matching the primary eZnet pipeline, with additional Sales Processes created per pipeline if the source has multiple.
eZnet CRM
Lead
Microsoft Dynamics 365 Sales
Lead
1:1eZnet CRM Lead records map to Dynamics 365 Lead with status and source fields preserved. Lead status (New, Contacted, Qualified, Disqualified) maps to Lead.StatusCode with statecode set appropriately. We preserve lead score or rating if present in eZnet as a custom field on Lead. Lead records without a corresponding Account are imported as standalone Leads; those linked to an eZnet Account carry a note to convert to a Contact attached to the matched Account after migration.
eZnet CRM
Activity
Microsoft Dynamics 365 Sales
Task, Event, EmailMessage
1:manyeZnet CRM Activities span calls, emails, tasks, and events in a single object differentiated by an activity type field. We split these into separate Dynamics 365 records at migration time: calls become Task with TaskSubtype=Call, task-type activities become Task, event-type activities become Event with StartDateTime and EndDateTime set, and email-type activities become EmailMessage linked to a Task. We preserve the ActivityDate as the activity timestamp and resolve the Regarding (regardingobjectid) to the parent Contact or Account by matching on email and name.
eZnet CRM
Document
Microsoft Dynamics 365 Sales
SharePoint Location + Note
lossyeZnet CRM Document Library metadata (filename, file type, upload date, owner) migrates as Dynamics 365 Notes with a SharePoint document location link. We export the document metadata and create corresponding SharePoint document libraries within Dynamics 365's native SharePoint integration. Actual file blobs require separate file transfer handling; we flag this during scoping and recommend the customer upload critical documents to the SharePoint location post-migration or use a file migration tool for the blob transfer.
eZnet CRM
Custom Fields
Microsoft Dynamics 365 Sales
Custom Fields
1:1eZnet CRM custom fields on Accounts, Contacts, Opportunities, and Leads migrate as Dynamics 365 custom attributes. We capture the full field schema during discovery including data type, picklist values, and visibility settings, then pre-create the equivalent custom fields in the Dynamics 365 environment before data import begins. Text fields map to nvarchar, number fields to decimal or integer, date fields to datetime, and picklist fields to option sets with the original value labels preserved.
eZnet CRM
User / Owner
Microsoft Dynamics 365 Sales
User
1:1eZnet CRM user records with role-based assignments migrate by resolving the owner email to a Dynamics 365 User. We extract all distinct owner references from Accounts, Contacts, Opportunities, and Activities and match by email against the destination User table. Any owner without a matching Dynamics 365 User goes to a reconciliation queue for the customer's admin to provision before record import resumes. Inactive eZnet users are preserved as historical owner references on records migrated before their deactivation.
eZnet CRM
Marketing Campaign
Microsoft Dynamics 365 Sales
Campaign
1:1eZnet CRM Marketing Campaign records and associated campaign member data map to Dynamics 365 Campaign and CampaignResponse. Campaign name, status, budget, start and end dates transfer. Campaign member associations to Contacts preserve as CampaignMember records with Status values mapped to Dynamics 365 campaign member statuses. If the customer uses Dynamics 365 Marketing, we note that campaign flows and customer journeys do not migrate and require rebuild in Dynamics 365 Marketing.
eZnet CRM
Inventory Item
Microsoft Dynamics 365 Sales
Product
1:1eZnet CRM Inventory Items (Professional tier and above) map to Dynamics 365 Product2 records. Item name, SKU, unit price, stock level, and product description transfer to name, productnumber, price, quantityonhand, and description respectively. We create the Products before importing any Line Items or Opportunity Product associations so that the Product GUID is available at insert time.
| eZnet CRM | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Account | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline / Opportunity Stage | Sales Process + Stagelossy | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Activity | Task, Event, EmailMessage1:many | Fully supported | |
| Document | SharePoint Location + Notelossy | Fully supported | |
| Custom Fields | Custom Fields1:1 | Mapping required | |
| User / Owner | User1:1 | Fully supported | |
| Marketing Campaign | Campaign1:1 | Fully supported | |
| Inventory Item | Product1: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.
eZnet CRM gotchas
Per-tier record limits create migration scope boundaries
No publicly documented API endpoint reference
Sparse public review corpus limits migration risk assessment
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 export mechanism assessment
We audit the eZnet CRM environment across tier level, object count per entity (Accounts, Contacts, Leads, Opportunities, Activities, Documents), custom field schema, pipeline and stage configuration, and user count. Since eZnet CRM lacks a documented public API, we assess available export mechanisms during this phase including any built-in CSV or report exports, direct database access if on Private Cloud, and manual extraction options. We also identify the target Microsoft Dynamics 365 Sales edition (Professional at $65/user or Enterprise at $105/user recommended for most migrations) and confirm the required Dataverse API access is provisioned in the destination tenant. The discovery output is a written migration scope with record counts, export method, and timeline estimate.
Data extraction and schema mapping
We extract all record types from eZnet CRM using the identified export mechanism and parse the output into normalized staging tables. We map eZnet field names and types to Dynamics 365 Dataverse attribute names and types, including custom field creation in Dynamics 365 before any data load. We design the Activity split transform (Task, Event, EmailMessage) and test it against a sample of 50-100 records before full execution. Owner email-to-User resolution mapping is built from the Dynamics 365 User table. Pipeline and stage names are mapped to a Microsoft Dynamics 365 Sales Process configuration that we deploy to a Sandbox first.
Sandbox validation and reconciliation
We run a full migration into a Dynamics 365 Sandbox (Full Copy or Partial Copy) using production-equivalent data volume. The customer's CRM admin or a designated data steward reconciles record counts across all objects, spot-checks 25-50 records per object against the source data, and validates that parent-child relationships (Account-Contact, Account-Opportunity, Contact-Activity) are intact. Any field mapping corrections, data quality issues, or Activity transform adjustments happen in this phase before production migration begins. No production data moves until sandbox sign-off.
Owner provisioning and reconciliation queue resolution
We extract every distinct eZnet CRM owner referenced on Accounts, Contacts, Opportunities, and Activities and match by email against the Dynamics 365 User table. Owners without a matching User record go to a reconciliation queue. The customer's Dynamics 365 admin provisions any missing Users (active or inactive depending on whether the original eZnet user is still active) before production migration begins. Migration cannot proceed past record import without resolved OwnerId references because Dynamics 365 requires an OwnerId on most standard entities.
Production migration in dependency order
We run production migration in record-dependency order: Accounts first (no parent dependencies), Contacts (with AccountId resolved), Leads, Opportunities (with AccountId and OwnerId resolved and RecordTypeId set), Products (for inventory item migration), Activities (via the type-split transform using Bulk API with chunking and exponential backoff), Documents (metadata to Notes and SharePoint, file blobs flagged for separate transfer), and Custom Fields data (after the custom attribute schema is deployed). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and workflow inventory handoff
We freeze source system writes during cutover, run a final delta migration of any records modified during the migration window, then enable Microsoft Dynamics 365 Sales as the system of record. We deliver the workflow, automation, and form inventory document to the customer's admin team. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's sales or operations team. We do not rebuild eZnet CRM workflows as Power Automate flows or Microsoft Dynamics 365 Sales automation rules inside the migration scope; that work is a separate engagement.
Platform deep dives
eZnet CRM
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 eZnet CRM and Microsoft Dynamics 365 Sales .
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
eZnet CRM: Not publicly documented.
Data volume sensitivity
eZnet CRM 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 eZnet CRM to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your eZnet CRM 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 eZnet CRM
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.