CRM migration
Field-level mapping, validation, and rollback between Optimove and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Optimove
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
5 of 9
objects map 1:1 between Optimove and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Optimove to Microsoft Microsoft Dynamics 365 Sales is a shift from a relationship marketing and customer data platform to a sales CRM built on Microsoft Dataverse. Optimove's central Customer object with embedded behavioral attributes and predictive values must split across Dynamics 365's Contact and Account objects, with lifecycle stage assignments and migration data preserved as custom fields. We export raw predictive scores from Optimove's Data Share views as numeric values in custom Contact fields since the underlying model logic cannot migrate. Campaign metadata (names, types, schedules, audience sizes) migrates to Dynamics 365 Campaigns, but the visual journey canvas and automation orchestration require manual recreation in the destination. Multi-brand Optimove deployments with separate customer databases per brand map to Dynamics 365 business units or separate tenant environments depending on the destination licensing structure. We do not migrate Workflows, Sequences, or campaign journey logic as code; we deliver a written inventory of these for the customer's admin to rebuild 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
Optimove platform overview
Scorecard, SWOT, gotchas, and pricing for Optimove.
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 Optimove 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.
Optimove
Customer
Microsoft Dynamics 365 Sales
Contact + Account
1:manyOptimove Customer records are the primary migration object and split across Dynamics 365's two-object model. The customer name and company-level data map to Account; individual contact details (email, phone, address) map to Contact with a required AccountId lookup. We use Optimove's CustomerID as an external identifier throughout import to maintain referential integrity across phases. If Optimove data does not distinguish between company and individual contact records, we create a single Account with the Contact data merged for simplicity, and the customer chooses the split strategy during scoping.
Optimove
Lifecycle Stages
Microsoft Dynamics 365 Sales
Custom fields on Contact
lossyOptimove lifecycle stages (such as Prospect, Active, At-Risk, Champion) migrate as a custom picklist field on Contact named optimove_lifecycle_stage__c. Historical stage transition data from the Migration Explorer export migrates to a related custom object or to custom date fields recording stage transition timestamps. The stage names are preserved verbatim so that reporting continuity is maintained. The customer's admin maps the specific Optimove stage values to Dynamics 365 picklist values during discovery.
Optimove
Customer Attributes
Microsoft Dynamics 365 Sales
Custom fields on Contact and Account
lossyOptimove's custom attributes migrate to Dynamics 365 custom fields on Contact or Account depending on whether the attribute applies to the individual or the organization. We audit the current Optimove attribute count during discovery to confirm the migration stays within a manageable scope given Dynamics 365's unlimited custom field model. Attributes that exceed the 50-attribute ceiling in Optimove are flagged before migration so that overflow data can be redistributed or trimmed. Each custom field gets a corresponding Dataverse column created in the destination environment before import.
Optimove
Predictive Values
Microsoft Dynamics 365 Sales
Custom fields on Contact
1:1Optimove's proprietary predictive scores (OptiGenie AI next-best-action values, propensity scores, migration scores) are exported as raw numeric values from Data Share SQL views. These migrate to Contact custom fields such as optimove_predicted_value__c and optimove_churn_risk__c. The underlying model logic, confidence intervals, and OptiGenie recommendation rules cannot migrate because they are calculated within Optimove's modeling engine. We flag this limitation clearly in the migration scope and recommend that the customer builds equivalent scores in Dynamics 365 using Power BI or Azure Machine Learning post-migration if predictive features remain a requirement.
Optimove
Target Groups
Microsoft Dynamics 365 Sales
Dynamics Lists (static or dynamic)
1:1Optimove Target Groups are dynamic customer segments built from attribute rules. We export the customer membership lists (the actual CustomerIDs included in each Target Group at the time of export) and recreate them as static Dynamics 365 Marketing Lists or as dynamic Marketing Lists with an equivalent filter criteria rebuilt manually. Complex nested rule structures require translation into Dataverse query syntax and may require a rules-rebuild workshop with the customer's marketing operations team post-migration.
Optimove
Campaign
Microsoft Dynamics 365 Sales
Campaign
1:1Optimove campaign metadata including campaign name, type, channels, and scheduling migrates to Dynamics 365 Campaign. We map the Optimove channel type (email, SMS, push, web) to the corresponding Dynamics 365 Campaign Type value. Audience size from Optimove's campaign definition migrates as a note or custom field. Campaign-level budget data migrates to the Campaign BudgetAmount field if populated in Optimove.
Optimove
Campaign Results / Engagement Metrics
Microsoft Dynamics 365 Sales
Campaign Member + Custom fields
1:1Historical campaign performance data including sends, opens, clicks, conversions, and control group metrics exports from Optimove's Data Share and maps to Dynamics 365 Campaign Member records and custom campaign response fields. Each campaign interaction (send, open, click, conversion) creates a Campaign Member entry with the appropriate Campaign Member Status value. Engagement timestamps preserve the original Optimove recorded time for timeline accuracy.
Optimove
Control Groups
Microsoft Dynamics 365 Sales
Custom fields on Campaign Member
1:1Optimove's Control Group feature is documented in Data Share and preserves customer membership assignments for accurate campaign ROI calculation. We export the control group membership list and create a custom field on Campaign Member (control_group__c as boolean) to mark which customers were in the control group for each campaign. This preserves the ability to calculate uplift post-migration by comparing control versus treatment group performance.
Optimove
Multi-Brand / Multi-Network Databases
Microsoft Dynamics 365 Sales
Business Units or Child Accounts
1:manyOptimove structures customer data by customer network and brand, each potentially having separate database schemas. We identify all separate networks during discovery and map each to an appropriate Dynamics 365 Business Unit (within a single tenant) or to separate child tenant environments depending on the destination licensing structure and data isolation requirements. Schema differences between networks within the same Optimove tenant may require separate mapping workstreams for each brand. We deliver a separate migration scope per network if the schema divergence is significant.
| Optimove | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Customer | Contact + Account1:many | Fully supported | |
| Lifecycle Stages | Custom fields on Contactlossy | Fully supported | |
| Customer Attributes | Custom fields on Contact and Accountlossy | Mapping required | |
| Predictive Values | Custom fields on Contact1:1 | Mapping required | |
| Target Groups | Dynamics Lists (static or dynamic)1:1 | Mapping required | |
| Campaign | Campaign1:1 | Fully supported | |
| Campaign Results / Engagement Metrics | Campaign Member + Custom fields1:1 | Fully supported | |
| Control Groups | Custom fields on Campaign Member1:1 | Fully supported | |
| Multi-Brand / Multi-Network Databases | Business Units or Child Accounts1:many | 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.
Optimove gotchas
Custom Attributes 50-attribute limit affects migration scoping
Predictive model scores are Optimove-specific and not portable
Multi-brand architecture requires schema mapping per network
Campaign journey logic has no export format
Longer onboarding timeline affects migration project planning
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 environment audit
We audit the Optimove environment across all customer networks, current attribute counts, active campaigns, target group definitions, and engagement history volume via Data Share SQL views and the Customers API. We map each Optimove network to a destination Dynamics 365 business unit or tenant. We review the destination Dynamics 365 environment's existing schema, security roles, validation rules, and field requirements to identify blocking constraints before any data is moved. The discovery output is a written migration scope document covering record counts per network, attribute audit results, field mapping matrix, and a timeline estimate.
Schema provisioning in Dynamics 365
We pre-create the destination schema in the customer's Dynamics 365 environment based on the discovery mapping. This includes provisioning custom fields on Contact and Account (for Optimove customer attributes, lifecycle stages, and predictive values), creating custom option sets for lifecycle stage values, configuring Dynamics 365 Marketing Lists, and setting up Campaign records with the appropriate Campaign Type values. Schema is deployed into a Sandbox or non-production environment first for validation. Business unit hierarchy is configured if multi-brand mapping requires separate business units per Optimove network.
Sandbox migration and reconciliation
We run a full migration into the Dynamics 365 non-production environment using representative data volume from the source. The customer's RevOps or marketing operations lead reconciles record counts (Contacts in, Accounts in, Campaign Members in, List memberships in), spot-checks 25-50 records against the Optimove source for accuracy, and validates that custom field values, lifecycle stage assignments, and predictive scores populated correctly. Any mapping corrections, data type mismatches, or validation rule conflicts are resolved here before production migration begins.
Owner and user reconciliation
We extract every distinct Optimove user referenced on Customer records and campaign assignments. Optimove user accounts and roles are listed via the platform admin interface. We map Optimove users to Dynamics 365 User records by email match. Users without a matching Dynamics 365 User go to a reconciliation queue for the customer's admin to provision before record import resumes. Role permissions and access levels require manual recreation in Dynamics 365 because Optimove's permission model is proprietary.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Optimove company-level data), Contacts (with AccountId resolved and custom attributes, lifecycle stages, and predictive values populated), Dynamics 365 Marketing Lists (static member population from Target Group exports), Campaigns (with metadata and audience size), Campaign Members (with engagement history and control group flags). Each phase emits a row-count reconciliation report before the next phase begins. We use Dynamics 365 Dataverse APIs with appropriate batch sizing and retry logic for rate limit handling.
Cutover, validation, and journey rebuild handoff
We freeze Optimove 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 campaign journey and automation inventory document to the customer's marketing operations team for manual rebuild in Dynamics 365 Marketing or Power Automate. We support a one-week post-cutover window where we resolve reconciliation issues raised by the customer's team. We do not rebuild Optimove campaign journeys as Dynamics 365 Marketing journeys inside the migration scope; that is a separate engagement or an internal marketing operations task.
Platform deep dives
Optimove
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Optimove and Microsoft Dynamics 365 Sales .
Object compatibility
1 of 8 objects need a manual workaround.
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
Optimove: Not publicly documented in developer documentation.
Data volume sensitivity
Optimove exposes a bulk API — large-volume migrations stream efficiently.
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 Optimove to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Optimove 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 Optimove
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.