CRM migration
Field-level mapping, validation, and rollback between Oracle Eloqua and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Oracle Eloqua
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
7 of 10
objects map 1:1 between Oracle Eloqua and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from Oracle Eloqua to Microsoft Microsoft Dynamics 365 Sales is a platform-class migration, not a like-for-like replacement. Eloqua is a B2B marketing automation platform centered on contact-based campaign orchestration, lead scoring, and multi-touch nurturing. Microsoft Dynamics 365 Sales is a CRM centered on lead management, opportunity pipelines, and sales activity tracking. The fundamental challenge is that Eloqua Campaign structures, Program logic, and Lead Scoring models have no direct Microsoft Dynamics 365 Sales equivalent, and these objects do not migrate. We map Contacts to Leads and Contacts, Accounts to Accounts, Custom Data Objects to Dataverse custom entities, and engagement history (email opens, clicks, form submissions, page visits) to Dataverse activity records. We document Campaign metadata, Program filter logic, and Lead Scoring weight matrices as written handoff artifacts for the customer's admin team to rebuild in Microsoft Dynamics 365 Sales or Power Automate. Workflows, automated campaigns, and engagement programs do not migrate as code.
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
Oracle Eloqua platform overview
Scorecard, SWOT, gotchas, and pricing for Oracle Eloqua.
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 Oracle Eloqua 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.
Oracle Eloqua
Contact
Microsoft Dynamics 365 Sales
Lead and Contact (split required)
1:manyEloqua Contacts map to Microsoft Dynamics 365 Sales in a two-stage split. Unqualified prospects (no assigned sales rep, early engagement stage) map to Salesforce-style Lead records. Contacts with assigned sales ownership or Account association map to Contact records under an Account. We compute the split using Eloqua's contactScore, isBounceCount, and segment membership as proxies for qualification status. The original Eloqua contact ID, subscription status, and marketing consent flags migrate to Dataverse contact fields and contact-point consent records.
Oracle Eloqua
Account
Microsoft Dynamics 365 Sales
Account
1:1Eloqua Accounts map directly to Microsoft Dynamics 365 Sales Account. The Account Name, Website, Industry, Number of Employees, and Annual Revenue fields map from Eloqua Account standard fields. We preserve the Account ID as a custom field for reference back to the source system. Account-to-Contact associations migrate via the Dataverse Contact parentCustomerId lookup.
Oracle Eloqua
Custom Data Objects (CDOs)
Microsoft Dynamics 365 Sales
Dataverse Custom Tables
1:1Eloqua CDOs with customer-defined schemas map to Dataverse custom tables. Each CDO's fields (text, number, date, picklist, boolean, lookup) map to the equivalent Dataverse column type. CDO-to-Contact relationship fields map to Dataverse lookup columns on the custom table pointing to Contact. We pre-create the Dataverse schema (tables, columns, relationships, picklist values) in a Sandbox environment before migration so that lookups are satisfied at insert time. CDO record volumes often require Bulk API chunking due to Dataverse batch limits of 2,000 records per request.
Oracle Eloqua
Campaign
Microsoft Dynamics 365 Sales
Campaign
1:1Eloqua Campaign metadata (name, type, status, start/end dates, budget, targeting criteria) migrates as Microsoft Dynamics 365 Sales Campaign records. Campaign step logic, conditional branches, wait steps, and trigger configurations cannot migrate as automation code and are documented as written artifacts. The customer admin rebuilds campaign orchestration in Microsoft Dynamics 365 Sales using Sales Campaign member distribution and manual list loading, or via Power Automate flows for more complex logic.
Oracle Eloqua
Segment and Shared List
Microsoft Dynamics 365 Sales
Marketing List
1:1Eloqua Segments (dynamic filter-based audiences) and Shared Lists (static contact collections) migrate as Microsoft Dynamics 365 Sales Marketing Lists. Dynamic segment filter logic cannot be reproduced automatically; we export the filter criteria and deliver a written reconstruction guide mapping Eloqua operators to Dynamics 365 filter equivalents. Shared List memberships migrate as Marketing List member records linked to Contact or Lead.
Oracle Eloqua
Lead Scoring Model
Microsoft Dynamics 365 Sales
Power Apps Scoring Field (rebuild required)
lossyEloqua's weighted demographic and behavioral Lead Scoring models are stored in proprietary configuration with no export mechanism. We capture the current scoring model structure (score categories, weight percentages, threshold values, and the field-to-score mapping) as a written specification document. The customer's admin rebuilds scoring using Power Apps canvas components, Power Automate flows, or a third-party scoring solution like InsideView or Clearbit. Scoring results do not migrate; scoring history is not portable.
Oracle Eloqua
Activity and Engagement Data
Microsoft Dynamics 365 Sales
Dataverse Activity Records
1:1Eloqua engagement events (email opens, clicks, form submissions, page visits, unsubscribes, bounces) map to Dataverse custom activity records or the standard Email Engagement table. Each engagement event links to the Contact record via the Dataverse regardingObjectId lookup. We export engagement history via Eloqua Bulk API, transform timestamps and event types to Dataverse column schemas, and insert via Dataverse Web API with batch sizes of 2,000 records per request. Page visit duration and referrer URL data, where present, migrate as custom columns.
Oracle Eloqua
Email Asset
Microsoft Dynamics 365 Sales
Dynamics 365 Email Templates or SharePoint
1:1Eloqua email assets (HTML content, subject lines, from-name, from-address, reply-to) migrate as Dynamics 365 Email Templates stored in Dataverse. We export email HTML and metadata via the Eloqua Asset API and import as EmailTemplate records in Dynamics. Design rendering depends on the destination email client; inline CSS and images embedded via external URLs are preserved as-is. Customers who use Dynamics 365 Customer Insights - Journeys for email sending will need to reconfigure sender profiles and deliverability settings.
Oracle Eloqua
Form
Microsoft Dynamics 365 Sales
Dynamics 365 Marketing Form or Power Apps
1:1Eloqua form field configurations (field names, types, required flags, validation rules, thank-you message content) migrate as written specifications. The visual form builder layout cannot be transferred. We deliver a form field inventory document that the customer's admin uses to rebuild forms in Dynamics 365 Marketing (if licensed), Power Apps portals, or a third-party form tool. Form submission history migrates as Contact or Lead records with submission metadata.
Oracle Eloqua
Picklist
Microsoft Dynamics 365 Sales
Option Set
lossyEloqua picklists (controlled vocabulary fields) export as CSV including display labels and stored values. We create corresponding Dataverse Option Sets in the destination schema before contact and CDO migration begins. Picklist value changes since the last full export require delta updates during migration.
| Oracle Eloqua | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Lead and Contact (split required)1:many | Fully supported | |
| Account | Account1:1 | Fully supported | |
| Custom Data Objects (CDOs) | Dataverse Custom Tables1:1 | Mapping required | |
| Campaign | Campaign1:1 | Fully supported | |
| Segment and Shared List | Marketing List1:1 | Fully supported | |
| Lead Scoring Model | Power Apps Scoring Field (rebuild required)lossy | Fully supported | |
| Activity and Engagement Data | Dataverse Activity Records1:1 | Mapping required | |
| Email Asset | Dynamics 365 Email Templates or SharePoint1:1 | Fully supported | |
| Form | Dynamics 365 Marketing Form or Power Apps1:1 | Fully supported | |
| Picklist | Option Setlossy | 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.
Oracle Eloqua gotchas
Contact-based pricing model inflates migration scope
No native export or migration tooling in Eloqua
Bulk API soft limits throttle large data transfers
5 GB import file size cap complicates bulk data loads
SOAP API deprecated; REST/Bulk APIs require endpoint caching
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 consent model design
We audit the source Eloqua environment across installed tier (Basic, Standard, Enterprise), contact volume, Account-to-Contact ratio, CDO count and schema complexity, segment and Shared List definitions, engagement history volume, and email asset count. We pair this with a Microsoft Dynamics 365 Sales edition assessment (Professional at $70/user or Enterprise at $195/user) and a consent-model design session to map Eloqua consent flags to Dataverse contact-point consent records. The discovery output is a written migration scope document including the Lead-Contact split rule, CDO schema map, and engagement history retention decision (full history, last 24 months, or last 12 months).
Dataverse schema provisioning in Sandbox
We pre-create the destination schema in a Microsoft Dynamics 365 Sales Sandbox: custom tables for each Eloqua CDO with lookup columns, option sets for picklists, custom Contact and Lead fields for Eloqua source IDs and consent metadata, and the Campaign record type. Schema is deployed via the Dataverse XML import tool or Power Platform CLI. We validate that all lookup relationships resolve (CDO-to-Contact, Campaign-to-Contact, Activity-to-Contact) before any data is staged. This step runs in parallel with data profiling from Eloqua.
Data profiling and cleansing
We extract Eloqua Contacts, Accounts, CDO records, and engagement events via the Bulk API with chunking at the 2,000-record-per-hour soft limit. Data profiling identifies duplicate contacts (same email address with divergent Account assignments), stale records (no engagement in 24+ months), and type-inconsistent fields requiring transformation. We deliver a data quality report with the customer and agree on a deduplication and archiving strategy before migration begins. According to migration case studies, data quality issues cause 30-40% of delays if not addressed before the production cutover window.
Sandbox migration and reconciliation
We run a full migration into the Microsoft Dynamics 365 Sales Sandbox using production-like data volume. The customer's RevOps lead reconciles record counts across all objects (Accounts, Contacts, Leads, CDO records, Campaign memberships, Activity records), spot-checks 25-50 records per object against the Eloqua source, and validates that lookup relationships resolved correctly. Any schema corrections, transformation logic adjustments, or deduplication rule changes happen in this phase. The customer signs off on the Sandbox migration before we proceed to production.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (first, no dependencies), Leads and Contacts (with the qualification split applied), CDO records (with Contact lookups resolved), Campaign records, Marketing List memberships, and engagement history (last, because Activities depend on Contact IDs being established). Each phase emits a row-count reconciliation report. We freeze Eloqua write access during the cutover window and run a delta migration of any records modified between the Sandbox migration date and the cutover date. Microsoft Dynamics 365 Sales becomes the system of record at go-live.
Campaign and automation rebuild handoff
We deliver the Campaign metadata inventory (every Eloqua Campaign with its targeting criteria, step structure, and performance history as a CSV), the Lead Scoring model specification document, the Segment filter reconstruction guide, and the Program logic map. We do not rebuild Eloqua campaigns, lead scoring models, or automation programs in Microsoft Dynamics 365 Sales as part of the migration scope. We provide a one-week post-go-live hypercare window for data reconciliation issues raised by the sales team. Workflow rebuild in Power Automate or Dynamics 365 Customer Insights - Journeys is a separate engagement.
Platform deep dives
Oracle Eloqua
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Oracle Eloqua and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Oracle Eloqua and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Oracle Eloqua 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
Oracle Eloqua: Bulk API: 2,000 records/hour per sync type; REST API: 10-20 concurrent requests depending on tier.
Data volume sensitivity
Oracle Eloqua 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 Oracle Eloqua to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Oracle Eloqua 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 Oracle Eloqua
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.