CRM migration

Migrate from Oracle Eloqua to Microsoft Dynamics 365 Sales

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 logo

Oracle Eloqua

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

70%

7 of 10

objects map 1:1 between Oracle Eloqua and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Oracle Eloqua logo

Oracle Eloqua

What's pushing teams away

  • The $2,000/month starting price plus per-contact and per-send overage charges make Eloqua cost-prohibitive for mid-market teams not running enterprise-scale campaigns.
  • Oracle's declining investment in Eloqua innovation, including workforce reductions in the CX group, has prompted organizations to evaluate platforms with more active development roadmaps.
  • The legacy interface and steep learning curve frustrate smaller marketing teams who need intuitive tools rather than enterprise-grade complexity requiring dedicated admin support.
  • Organizations report limited customization in reporting and dashboards, forcing them to export data to BI tools for the analysis they need.
  • Implementation timelines of several weeks to months plus the need for ongoing dedicated marketing ops resources create total cost of ownership that outpaces platform value for some teams.

Choosing

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

What's pulling them in

  • Deep Microsoft 365, Teams, and Outlook integration makes Microsoft Dynamics 365 Sales a natural fit for Microsoft-first organizations already invested in that ecosystem
  • Sales Enterprise and Premium tiers offer unlimited custom tables and advanced AI-driven forecasting and predictive analytics not available in lower tiers
  • Professional tier pricing at $65 per user per month offers a lower entry cost than Salesforce for SMB teams with straightforward CRM needs
  • Flexible customization options allow businesses to build bespoke apps, tailor forms and views, and integrate with other Dynamics 365 modules
  • Microsoft Copilot AI tools are embedded directly into the sales workflow on Enterprise and Premium, automating routine tasks and providing deal intelligence

Object mapping

How Oracle Eloqua objects map to Microsoft Dynamics 365 Sales

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

maps to

Microsoft Dynamics 365 Sales

Lead and Contact (split required)

1:many
Fully supported

Eloqua 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

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Eloqua 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)

maps to

Microsoft Dynamics 365 Sales

Dataverse Custom Tables

1:1
Mapping required

Eloqua 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

maps to

Microsoft Dynamics 365 Sales

Campaign

1:1
Fully supported

Eloqua 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

maps to

Microsoft Dynamics 365 Sales

Marketing List

1:1
Fully supported

Eloqua 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

maps to

Microsoft Dynamics 365 Sales

Power Apps Scoring Field (rebuild required)

lossy
Fully supported

Eloqua'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

maps to

Microsoft Dynamics 365 Sales

Dataverse Activity Records

1:1
Mapping required

Eloqua 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

maps to

Microsoft Dynamics 365 Sales

Dynamics 365 Email Templates or SharePoint

1:1
Fully supported

Eloqua 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

maps to

Microsoft Dynamics 365 Sales

Dynamics 365 Marketing Form or Power Apps

1:1
Fully supported

Eloqua 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

maps to

Microsoft Dynamics 365 Sales

Option Set

lossy
Fully supported

Eloqua 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.

Gotchas + challenges

What specifically takes care here

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 logo

Oracle Eloqua gotchas

High

Contact-based pricing model inflates migration scope

High

No native export or migration tooling in Eloqua

Medium

Bulk API soft limits throttle large data transfers

Medium

5 GB import file size cap complicates bulk data loads

Low

SOAP API deprecated; REST/Bulk APIs require endpoint caching

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales gotchas

High

Professional tier 15-table custom table limit blocks migrations

High

October 2024 pricing increase applies at renewal for all customers

Medium

Custom fields must be created in the UI before API writes

Medium

Power Platform request limits apply to bulk migrations

Medium

Activity records orphaned to inactive owners fail silently

Pair-specific challenges

  • Eloqua Campaign automation logic has no Dynamics equivalent

    Eloqua multi-step Campaign orchestration (conditional branches, wait steps, trigger-based execution, A/B testing, and event-driven progression) is tightly coupled to the Eloqua execution engine and has no exportable representation. Microsoft Dynamics 365 Sales Campaign records serve as list-attribution and response-tracking containers only, not automation engines. We document every Eloqua Campaign's structure, targeting criteria, and step logic as a written handoff artifact for the customer's admin to reproduce in Power Automate or Dynamics 365 Customer Insights - Journeys. Skipping this documentation step leaves the customer with no automation roadmap at cutover.

  • Lead Scoring models and Program filters cannot export

    Eloqua's Lead Scoring models store weighted demographic scores, behavioral scores, and threshold values in proprietary configuration that cannot be accessed via API or export. Segments and Programs similarly store filter logic in the application layer. We capture the current state of these configurations during discovery by working directly with the customer's Eloqua admin to document the score categories, weight percentages, and segment filter definitions. This documentation becomes the rebuild specification. Without it, the customer loses institutional knowledge of scoring and targeting logic that may have taken years to develop.

  • Eloqua-to-Dataverse field type mismatches require transformation

    Eloqua custom fields support text, number, date, boolean, and picklist types, but field-level type enforcement is loose. Dataverse enforces column types strictly. We profile each Eloqua field before migration to detect type inconsistencies (dates stored as text, numbers with trailing symbols, multi-value fields). Transformations are applied during the ETL phase. Fields that cannot be cleanly transformed (for example, Eloqua multi-select checkbox fields stored as semicolon-delimited strings) map to Dataverse multi-select option sets or text fields per the customer's choice.

  • Dataverse API batch limits cap large record imports

    Dataverse Web API limits batch requests to 2,000 records and 50 concurrent requests per organization. Eloqua databases with over 100,000 Contacts or large CDO record volumes require chunked migration with dependency sequencing (Accounts before Contacts, Contacts before Activities). We implement exponential backoff on 429 responses and checkpointing to resume interrupted batches. For activity histories exceeding 1 million records, we recommend a staged migration with the most recent 24 months in the primary cutover and historical records migrated post-go-live via a separate batch job.

  • Dynamics 365 contact-point consent model differs from Eloqua consent flags

    Eloqua stores consent at the contact level (Email Address Opt-Out, bounce count, suppression status) and at the email campaign level (subscription list membership). Dynamics 365 Customer Insights - Journeys uses the contact-point consent model from Dataverse where each communication preference (email, SMS, phone) is a separate record with opt-in status, source, and timestamp. We map Eloqua consent flags to the contact-point consent schema during migration. If the destination does not include Dynamics 365 Customer Insights - Journeys, consent flags map to custom Contact fields and the customer must configure compliance settings manually.

Migration approach

Six steps for a successful Oracle Eloqua to Microsoft Dynamics 365 Sales data migration

  1. 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).

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Oracle Eloqua logo

Oracle Eloqua

Source

Strengths

  • Industry-standard enterprise marketing automation with two decades of campaign orchestration maturity
  • Deep native CRM integration with Salesforce, Microsoft Dynamics, and Oracle CX Sales applications
  • Advanced multi-touch lead scoring with weighted demographic and behavioral components
  • Scalable contact database architecture supporting large enterprise B2B marketing programs
  • Robust Bulk API with documented rate limits enabling reliable batch data operations

Weaknesses

  • Contact-based pricing model creates unpredictable costs as database scales with email volume overages
  • No native data migration tooling; all migrations require custom export/import processes or third-party services
  • Steep learning curve and legacy interface design requiring dedicated marketing operations resources
  • Limited reporting customization forces teams to export data to external BI platforms for advanced analysis
  • Oracle's declining investment in Eloqua CX innovation raises long-term platform viability concerns
Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

Destination

Strengths

  • Native integration with Microsoft 365, Teams, Outlook, and SharePoint for unified productivity workflow
  • Unlimited custom tables and complex workflows on Enterprise tier enable deep customization for complex sales processes
  • AI-driven predictive analytics and deal intelligence on Enterprise and Premium tiers help sales teams prioritize pipeline
  • Dataverse unified data layer provides a consistent API and data model across all Dynamics 365 and Power Platform apps
  • Strong security model with Field-Level Security and Record Ownership rules for governance-conscious enterprises

Weaknesses

  • Sales Professional tier caps custom tables at 15, creating a migration ceiling for highly customized SMB environments
  • October 2024 pricing increases of $15 per user across all tiers apply to existing customers upon renewal
  • Implementation typically requires costly certified partners, adding 30–50% to total project cost
  • Updates and platform releases can disrupt customizations and plugins, requiring regression testing after each wave
  • Non-Microsoft integrations require additional configuration or middleware, limiting flexibility for heterogeneous tech stacks

Complexity grading

How hard is this migration?

Standard CRM migration. All 8 core objects map 1:1 between Oracle Eloqua and Microsoft Dynamics 365 Sales .

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Oracle Eloqua and Microsoft Dynamics 365 Sales .

  • Object compatibility

    A

    All 8 core objects map 1:1 between Oracle Eloqua and Microsoft Dynamics 365 Sales .

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Oracle Eloqua: Bulk API: 2,000 records/hour per sync type; REST API: 10-20 concurrent requests depending on tier.

  • Data volume sensitivity

    A

    Oracle Eloqua exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Oracle Eloqua to Microsoft Dynamics 365 Sales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Oracle Eloqua to Microsoft Dynamics 365 Sales data migrations

Answers to the questions buyers ask most during Oracle Eloqua to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between four and eight weeks for accounts under 25,000 Contacts with no CDOs or minimal engagement history. Projects with multiple Custom Data Objects, large engagement histories (over 200,000 activity records), or the need to document extensive Campaign and Lead Scoring logic move to ten to sixteen weeks because of Dataverse schema design, data profiling, and Sandbox reconciliation time. The most common delay factor is data quality issues discovered during profiling, which extend timelines by two to four weeks if not addressed early.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Oracle Eloqua.
Land in Microsoft Dynamics 365 Sales , intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day