CRM migration
Field-level mapping, validation, and rollback between ZeyOS and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
ZeyOS
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
9 of 12
objects map 1:1 between ZeyOS and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from ZeyOS to Microsoft Microsoft Dynamics 365 Sales is a structural migration from a REST-only, token-authenticated PostgreSQL-backed platform to a Dataverse-backed CRM with per-user licensing and Azure integration. ZeyOS exposes only a REST API at cloud.zeyos.com with no bulk import endpoint, requiring us to paginate through all record types individually and parallelize inserts where possible. Unix epoch timestamps stored as int8 in ZeyOS must be explicitly converted to ISO 8601 datetime strings compatible with Dataverse. Financial records in ZeyOS carry an audit-lock flag that prevents post-booking edits; we sequence Quotes, Orders, and Invoices in chronological order and flag any out-of-sequence records for manual review before import. Workflows, automations, and custom iXML scripting do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in Power Automate or Dynamics 365 workflows.
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
ZeyOS platform overview
Scorecard, SWOT, gotchas, and pricing for ZeyOS.
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 ZeyOS 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.
ZeyOS
Account
Microsoft Dynamics 365 Sales
Account
1:1ZeyOS Accounts map directly to Microsoft Microsoft Dynamics 365 Sales Account (the company-level record). We use the account name as the primary dedupe key during import and preserve any external ID from ZeyOS's extdata fields as a custom field on the Dynamics 365 Account for cross-system reference. Account is imported before Contact to satisfy the primary contact lookup relationship.
ZeyOS
Contact
Microsoft Dynamics 365 Sales
Contact
1:1ZeyOS Contacts map to Microsoft Dynamics 365 Sales Contact. The parent Account reference resolves at import time by matching the ZeyOS account FK to the newly created Dynamics 365 Account record ID. We preserve ZeyOS nickname and address fields from extdata as custom Contact fields and convert any date fields from Unix epoch to Dataverse datetime format.
ZeyOS
Lead
Microsoft Dynamics 365 Sales
Lead
1:1ZeyOS Leads are a distinct CRM object and map to Microsoft Dynamics 365 Sales Lead. Lead status and lead score values from ZeyOS custom fields migrate as custom Lead properties. Any ZeyOS lead-specific fields that have no direct Dynamics 365 equivalent become custom fields on the Lead entity.
ZeyOS
Deal
Microsoft Dynamics 365 Sales
Opportunity
1:1ZeyOS Deals map to Microsoft Dynamics 365 Sales Opportunity. The ZeyOS dealstage property maps to Dynamics 365 StageName. Pipeline assignments from ZeyOS map to Opportunity Record Types or Sales Processes that we configure before migration. Closed-Lost and Closed-Won reasons migrate as custom Opportunity fields.
ZeyOS
Item
Microsoft Dynamics 365 Sales
Product2
1:1ZeyOS Items (inventory and product catalog) map to Microsoft Dynamics 365 Sales Product2 records. The ZeyOS barcode and model fields migrate as custom Product2 fields. Stock quantities from ZeyOS's automated inventory tracking require customer review for mapping to Dynamics 365 Inventory Management or a separate inventory module.
ZeyOS
Ticket
Microsoft Dynamics 365 Sales
Incident (Case)
1:1ZeyOS Tickets map to Microsoft Dynamics 365 Sales Case (Incident entity in Dataverse). Ticket pipeline stages become Case status values, and ticket conversations migrate as EmailMessage records linked to the Case. Subject line ticket-number associations are preserved as a custom Case field.
ZeyOS
Project
Microsoft Dynamics 365 Sales
BookableResource (Project Service)
lossyZeyOS Projects map to Dynamics 365 Project Service entities. The project hierarchy (parent project with child Tasks and time entries) requires configuration in the destination environment to set up the correct project structure. Time entries from ZeyOS map to the BookableResourceBooking entity. Customer chooses whether Project Service licensing is required or if Tasks serve as the project tracking equivalent.
ZeyOS
Task
Microsoft Dynamics 365 Sales
Task
1:1ZeyOS Tasks belong to Projects and map to Microsoft Dynamics 365 Sales Task. Parent-Project linkage preserves through the project configuration step. Task assignees resolve by matching ZeyOS owner email to the User record in the destination org.
ZeyOS
Document
Microsoft Dynamics 365 Sales
SharePoint Document or Note
1:1ZeyOS files table stores binary blobs that we download individually from the REST API and re-upload to Dynamics 365 SharePoint integration or as Note attachments. Files exceeding 25MB are flagged for customer review. Document associations (record FK or comment FK) map to SharePoint document location or Note parent record references.
ZeyOS
Quote, Order, Delivery, Invoice
Microsoft Dynamics 365 Sales
Opportunity (financial fields)
many:1ZeyOS financial pipeline objects (Quotes, Orders, Deliveries, Invoices) merge into the Microsoft Dynamics 365 Sales Opportunity with financial field extensions. We preserve ZeyOS invoice chronology because invoices are audit-locked once booked; we sequence them in strict chronological order and flag any out-of-sequence invoices for manual review before import. Financial totals and line items become custom Opportunity fields or related OpportunityProduct records.
ZeyOS
Contract
Microsoft Dynamics 365 Sales
Contract
lossyZeyOS Contracts map to Microsoft Dynamics 365 Sales Contract with metadata preserved (contract number, start date, end date, account link). Renewal rules and contract-specific terms require manual review in the destination system post-migration because Dynamics 365 Contract renewal logic may differ from ZeyOS behavior.
ZeyOS
User
Microsoft Dynamics 365 Sales
User
1:1ZeyOS Users map to Microsoft Dynamics 365 Sales User records. We match by email address. Inactive ZeyOS users are flagged for deactivation review in Dynamics 365. User provisioning in the destination org must complete before record migration begins because OwnerId references are required on most standard entities.
| ZeyOS | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Account | Account1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Item | Product21:1 | Fully supported | |
| Ticket | Incident (Case)1:1 | Fully supported | |
| Project | BookableResource (Project Service)lossy | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Document | SharePoint Document or Note1:1 | Fully supported | |
| Quote, Order, Delivery, Invoice | Opportunity (financial fields)many:1 | Fully supported | |
| Contract | Contractlossy | Fully supported | |
| User | User1: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.
ZeyOS gotchas
Audit-locked invoices block post-import edits
No documented bulk API forces iterative record-by-record migration
Unix epoch timestamps require explicit conversion
File attachments require binary blob download from REST API
Token auth without OAuth limits automation scope
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 ZeyOS API scoping
We audit the source ZeyOS instance via its REST API across all record types (Accounts, Contacts, Leads, Items, Projects, Tasks, Tickets, Contracts, Documents, Quotes, Orders, Deliveries, Invoices, Time Entries, Activities). We paginate through each object to establish record counts, identify custom fields via the extdata JSON pattern, and assess attachment volume. We verify token authentication validity and document any API rate-limit responses observed during scoping.
Microsoft Dynamics 365 Sales environment preparation
We assess the destination Microsoft Dynamics 365 Sales edition (Sales Professional at $65/user or Sales Enterprise at $95/user), provision the target Dataverse environment, and create custom fields to receive ZeyOS extdata properties. We configure Record Types and Sales Processes to match ZeyOS pipeline and deal stage structures, and set up the SharePoint document management integration for file attachment storage.
Schema design and field mapping
We map every ZeyOS object to its Microsoft Dynamics 365 Sales equivalent with attention to the financial pipeline merge (Quotes, Orders, Deliveries, Invoices into Opportunity with financial field extensions) and the invoice chronology sequencing requirement. Custom fields from ZeyOS extdata are typed and mapped to Dataverse attribute types. We validate the mapping in a Dataverse sandbox environment before production migration begins.
Sandbox migration and reconciliation
We run a full migration into a Microsoft Dynamics 365 Sales sandbox using production-like data volume. The customer reconciles record counts (Accounts in, Contacts in, Leads in, Opportunities in, Activities in), spot-checks 25-50 random records against the ZeyOS source, and validates that date fields appear correctly in Dataverse datetime format. Any mapping corrections happen in sandbox before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Users (provisioned and validated by customer admin), Accounts (from ZeyOS Companies), Contacts (with AccountId resolved), Leads, Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Items (Products), Tickets (Cases), Projects and Tasks, Activities (via Dataverse Bulk API with batch chunking), Contracts, Financial records (Quotes, Orders, Invoices in strict chronological order), and Documents (binary blob download and SharePoint re-upload). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation rebuild handoff
We freeze ZeyOS 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 a written inventory of ZeyOS workflows, automations, and custom iXML scripts that require rebuild in Power Automate or Dynamics 365 workflows. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's team. We do not rebuild ZeyOS automations as Power Automate flows inside the migration scope; that is a separate engagement.
Platform deep dives
ZeyOS
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 ZeyOS and Microsoft Dynamics 365 Sales .
Object compatibility
2 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
ZeyOS: Not publicly documented — we apply exponential backoff on 429/5xx responses and confirm tenant-specific limits during scoping.
Data volume sensitivity
ZeyOS 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 ZeyOS to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your ZeyOS 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 ZeyOS
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.