CRM migration

Migrate from Oracle Eloqua to Salesforce Sales Cloud

Field-level mapping, validation, and rollback between Oracle Eloqua and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.

Oracle Eloqua logo

Oracle Eloqua

Source

Salesforce Sales Cloud

Destination

Salesforce Sales Cloud logo

Compatibility

77%

10 of 13

objects map 1:1 between Oracle Eloqua and Salesforce Sales Cloud.

Complexity

BStandard

Timeline

6-10 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Oracle Eloqua to Salesforce is a cross-category migration from B2B marketing automation to sales CRM. Eloqua uses a flat Contact and Account model built for campaign orchestration; Salesforce uses a relational hierarchy of Account-Contact-Lead-Opportunity with an explicit Convert action for promoting prospects. We resolve that structural difference during scoping, design the matching Account-to-Contact build rules in Salesforce, and preserve Eloqua engagement history (email opens, clicks, form submissions, page visits) as Activity records against the correct Contact or Lead. Custom Data Objects migrate to Salesforce Custom Objects with lookup relationships preserved. Lead Scoring models cannot be exported from Eloqua and must be rebuilt at the destination; we document the current model weights and triggers during discovery so the customer's admin has a written specification. Campaigns, Programs, Segments, and Shared Lists do not migrate as automation code; we deliver a written inventory of every active campaign flow for reconstruction in Salesforce Flow. Oracle deprecated the native Salesforce integration in February 2021 and is retiring the CRM sync in Eloqua 25D (November 2025), which has accelerated many teams' migration timelines.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud

What's pulling them in

  • The AppExchange marketplace with 5,000+ prebuilt apps gives enterprises integrations for nearly every business workflow without custom development.
  • Native Einstein AI for lead scoring, opportunity insights, and predictive forecasting adds intelligence without a separate platform purchase.
  • Territory management, multi-currency support, and advanced forecasting satisfy the needs of complex B2B sales organizations with structured revenue teams.
  • Slack, Tableau, and CPQ are deeply integrated into the core platform, keeping the sales stack unified for teams already in the Salesforce ecosystem.
  • Organizations with a large, established Salesforce implementation choose it because switching costs — integrations, custom code, trained admins — are prohibitive.

Object mapping

How Oracle Eloqua objects map to Salesforce Sales Cloud

Each row shows how a Oracle Eloqua object lands in Salesforce Sales Cloud, 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

Salesforce Sales Cloud

Lead or Contact (split required)

1:many
Fully supported

Eloqua Contacts with no sales engagement history (no opportunity association, no CRM sync activity) map to Salesforce Lead. Contacts with established buying intent signals or existing CRM records map to Salesforce Contact tied to an Account. We compute the split at migration time using Eloqua contact fields (ActivityType, OpportunityID, SFDCContactID) and apply a decision matrix agreed during scoping. The original contact record ID and all custom field values migrate to custom fields on both Lead and Contact for audit and future segmentation.

Oracle Eloqua

Account

maps to

Salesforce Sales Cloud

Account

1:1
Fully supported

Eloqua Accounts map directly to Salesforce Account. The Account Name maps to Name, Domain maps to Website, and Industry maps to Industry (with picklist alignment). Account-to-Contact associations migrate as Contact records with AccountId resolved via the Account lookup. We deduplicate on Account Name and Domain during import to prevent duplicate Account creation.

Oracle Eloqua

Custom Data Object (CDO)

maps to

Salesforce Sales Cloud

Custom Object

1:1
Fully supported

Each Eloqua CDO has its own schema of standard and custom fields. We export CDO records via Bulk API and create equivalent Salesforce Custom Objects with __c API names matching the CDO identifiers. CDO fields map to custom fields on the destination object by type (text, number, date, picklist). Lookup fields from one CDO to another or from CDO to Contact/Account are preserved as external ID relationships resolved during the import phase. We design the destination schema in Sandbox before any CDO data loads.

Oracle Eloqua

Campaign

maps to

Salesforce Sales Cloud

Campaign + Campaign Member

lossy
Fully supported

Eloqua Campaigns (multi-step orchestration containers) migrate as Salesforce Campaign records holding campaign metadata (name, start/end dates, cost, status). The multi-step Program Canvas logic does not migrate because it is tightly coupled to Eloqua's campaign execution engine. We deliver a Program Canvas inventory document describing each campaign's steps, conditions, wait periods, and triggers for the customer's admin to rebuild in Salesforce Flow. Campaign membership (which contacts were in which campaigns) migrates as Campaign Member records with Member Status mapped from Eloqua response statuses (Sent, Opened, Clicked, Responded, Registered, Attended, No Show).

Oracle Eloqua

Program

maps to

Salesforce Sales Cloud

Campaign

lossy
Fully supported

Eloqua Programs (reusable campaign building blocks) map to Salesforce Campaigns with a naming convention that distinguishes them from primary campaigns. Program Canvas dependencies and shared assets are documented in the automation inventory. Programs that contain contact segmentation rules generate corresponding Salesforce Campaigns with Segment-defined membership rather than program-based membership.

Oracle Eloqua

Segment

maps to

Salesforce Sales Cloud

Campaign

1:1
Fully supported

Eloqua Segments define dynamic contact audiences based on filter criteria. We export segment definitions (filter logic, field conditions, operator types) and generate corresponding Salesforce Campaigns whose membership reflects the segment at migration time. Dynamic segment logic must be rebuilt in Salesforce using filters, reports, or Flow; the segment definition document we deliver includes the equivalent Salesforce filter criteria for each segment.

Oracle Eloqua

Shared List

maps to

Salesforce Sales Cloud

Campaign

1:1
Fully supported

Eloqua Shared Lists are static contact collections. Each Shared List becomes a Salesforce Campaign with membership built from the static contact list at migration time. List name becomes Campaign Name; list description maps to Campaign Description. Shared Lists do not maintain a live sync relationship in Salesforce; ongoing list maintenance requires manual campaign membership updates or a complementary marketing automation tool.

Oracle Eloqua

Email Asset

maps to

Salesforce Sales Cloud

Email Template

1:1
Fully supported

Eloqua Email Assets (HTML content, subject lines, sender addresses, reply-to addresses) migrate to Salesforce Email Templates. We export email body HTML and re-import as Salesforce HTML email templates. Design rendering depends on the destination email client's compatibility with the original HTML; we flag any email assets with inline CSS that may not render consistently. Subject line, sender name, and sender email migrate as template merge fields. Email assets used in active campaigns are flagged for priority migration.

Oracle Eloqua

Form

maps to

Salesforce Sales Cloud

Web-to-Lead or Salesforce Form

1:1
Fully supported

Eloqua form field configurations (field names, field types, required flags, default values, thank-you page URLs) export as form metadata. We deliver a form specification document describing each Eloqua form's fields, routing logic, and webhook integrations for rebuild in Salesforce Web-to-Lead, Experience Cloud forms, or a third-party form tool. The visual layout and design of Eloqua forms do not migrate and require rebuild at the destination.

Oracle Eloqua

Engagement Activity (email opens, clicks, form submits, page visits)

maps to

Salesforce Sales Cloud

Task + Event

1:1
Fully supported

Eloqua tracks engagement events as activity records linked to Contacts (EmailOpen, EmailClick, FormSubmit, PageView, WebinarRegister, WebinarAttend). We export activity records via Bulk API and map them to Salesforce Task and Event records. Email-related activities (opens, clicks) become Task records with a custom activity type field; webinar and event activities become Event records. WhoId on each record points to the migrated Contact or Lead; ActivityDate preserves the original Eloqua timestamp. Large activity exports (over 100,000 records) are chunked into 10,000-record batches per Salesforce Bulk API limits with exponential backoff.

Oracle Eloqua

Picklist

maps to

Salesforce Sales Cloud

Picklist (global value set or custom picklist)

1:1
Fully supported

Eloqua picklists (controlled vocabulary for custom fields) export as CSV with display names and stored values. We create corresponding Salesforce global value sets or custom picklists in the destination org, preserving both the display label and API value. Picklist values are created in the destination org before any record imports that reference them to prevent validation rule failures on load.

Oracle Eloqua

Image / Attachment (Eloqua Asset Library)

maps to

Salesforce Sales Cloud

ContentDocument / Salesforce Files

1:1
Fully supported

Images and attachments stored in Eloqua's asset library export via the Bulk API asset download. We re-upload assets to the Salesforce Files library and link them to the relevant records via ContentDocumentLink. Images embedded via external URLs in email assets are preserved by maintaining the external URL reference; images hosted within Eloqua are downloaded and re-hosted. Asset library folder structure does not migrate and requires reorganization in Salesforce.

Oracle Eloqua

Lead Scoring Model

maps to

Salesforce Sales Cloud

Not migrated

1:1
Fully supported

Eloqua's Lead Scoring models (weighted demographic scores, behavioral scores, and model thresholds) are stored in proprietary configuration with no export mechanism. We cannot migrate scoring models as code. During discovery, we document the current scoring model structure including score weights per demographic field, behavioral activity point values, model thresholds for grade assignment (A/B/C/D/F), and any scoring change triggers. This specification document is delivered to the customer's admin for rebuild using Salesforce Flow, Salesforce Connect, or an AppExchange scoring tool like Saleswings or Veloxy.

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

Salesforce Sales Cloud logo

Salesforce Sales Cloud gotchas

High

Workflow Rules and Process Builder are retired

High

Bulk API batch quota exhaustion during large imports

Medium

Storage overage billing is non-obvious

Medium

Account-Contact many-to-many relationship mapping

Low

Territory and team member import ordering dependencies

Pair-specific challenges

  • Eloqua native Salesforce integration retirement forces migration timing

    Oracle deprecated the native Salesforce integration in February 2021 and announced retirement of the CRM sync in Eloqua 25D (November 2025). Organizations still using the deprecated native connector face an unsupported integration that may cease to function without warning. Teams planning a migration from Eloqua to Salesforce should treat the November 2025 retirement as a hard deadline and begin discovery no later than Q2 2025 to ensure completion before the integration sunsets. We flag the retirement timeline in our discovery intake and prioritize the migration work accordingly.

  • Lead Scoring models cannot be exported and must be rebuilt

    Eloqua's weighted demographic and behavioral Lead Scoring models are stored in proprietary configuration with no documented export API. We document the current model structure (score weights, thresholds, activity triggers) during discovery and deliver a written scoring model specification for the customer's admin to rebuild in Salesforce Flow or an AppExchange scoring tool. Organizations that skip this documentation step lose the institutional knowledge embedded in the scoring model once Eloqua access is terminated.

  • Activity history exceeds CSV loader capacity and requires Bulk API

    Eloqua engagement records (email opens, clicks, form submits, page visits, webinar registrations) can number in the hundreds of thousands for active marketing databases. Salesforce's Data Loader and Data Import Wizard are not suitable for large engagement migrations. We use the Salesforce Bulk API 2.0 with batch chunking, parent-record lookup resolution (WhoId against migrated Contact/Lead IDs), and exponential backoff on ConcurrentLimitExceeded responses. Large activity exports are sequenced after standard object import to ensure parent records exist before activity records reference them.

  • Campaign and Program Canvas logic does not migrate as automation

    Eloqua Campaign and Program Canvas workflows (multi-step orchestration with wait steps, conditional branches, A/B test splits, and CRM update triggers) are tightly coupled to Eloqua's execution engine and have no export mechanism. We export campaign metadata and member responses; we do not export automation logic. We deliver a Program Canvas inventory document describing each active campaign's structure, steps, conditions, and triggers so that the customer's admin can rebuild them in Salesforce Flow. This inventory is a required deliverable before cutover, not an optional add-on.

  • Salesforce field-level security and validation rules can block import

    Salesforce orgs commonly enforce validation rules (required formats, conditional required fields, picklist whitelists) and field-level security that block record inserts during data load. We coordinate with the customer's Salesforce admin to grant the migration user Modify All Data and Bulk API permissions, and we either temporarily disable blocking validation rules during load or extend them with a migration-context exclusion. Skipping this step results in 5-30 percent record rejection on the first import pass and requires a remediation pass before the migration can proceed.

Migration approach

Six steps for a successful Oracle Eloqua to Salesforce Sales Cloud data migration

  1. Discovery and migration scoping

    We audit the source Eloqua instance across pricing tier (Basic/Standard/Enterprise), contact database size, Custom Data Object schemas, active campaigns and programs, segment definitions, engagement activity volume, picklist definitions, and the current Salesforce integration method (native deprecated connector or Salesforce Integration app). We pair this with a Salesforce edition decision: Professional ($80/user) covers most migrations without custom objects; Enterprise ($165/user) is required if the customer needs advanced Flow, territory management, or Salesforce Inbox; Unlimited ($330/user) only for 24x7 support requirements. The discovery output is a written migration scope, a Lead-Contact split decision matrix, and a Lead Scoring model documentation request.

  2. Schema design and Sandbox preparation

    We design the destination schema in Salesforce. This includes creating Custom Objects (with __c API names matched to Eloqua CDO names), custom fields (with type-mapped Salesforce field types), Campaign Record Types, page layouts, and the Lead-Contact split mapping rule. Schema is deployed via Salesforce Metadata API into a Full Copy or Partial Copy Sandbox for validation before any production load. We also pre-create picklist value sets referenced by migrating records to prevent validation failures during import.

  3. Sandbox migration and reconciliation

    We run a full migration into the Sandbox using production-like data volume. The customer's RevOps lead reconciles record counts (Contacts in, Leads in, Accounts in, Campaigns in, Campaign Members in, Activities in), spot-checks 25-50 random records against the Eloqua source, and validates the Lead-Contact split logic. The Lead Scoring model documentation is reviewed against the Eloqua instance to confirm accuracy before delivery. The customer signs off the Sandbox migration before production migration begins.

  4. Owner reconciliation and User provisioning

    We extract every distinct Eloqua Owner referenced on Contact, Account, and engagement records and match by email against the Salesforce destination org's User table. Any Eloqua Owner without a matching Salesforce User goes to a reconciliation queue for the customer's admin to provision. OwnerId references are required on most standard object inserts; migration cannot proceed past this step without confirmed user coverage in Salesforce.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Accounts (from Eloqua Accounts), Contacts (with the Lead-Contact split applied and AccountId resolved), Leads, Campaigns (metadata only, not Canvas logic), Campaign Members (contact-to-campaign associations), Custom Objects (with external ID lookups to standard objects resolved), Activity history (Tasks and Events via Bulk API 2.0 with parent-record resolution), Picklist values, and Email Templates. Each phase emits a row-count reconciliation report before the next phase begins. We disable the Eloqua-to-Salesforce sync during the migration window to prevent write conflicts.

  6. Cutover, validation, and automation rebuild handoff

    We freeze Eloqua writes during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We deliver the Program Canvas inventory document (describing every active campaign for Flow rebuild), the Lead Scoring model specification document, and the Segment mapping document. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's sales and marketing teams. We do not rebuild Eloqua campaigns as Salesforce Flow inside the migration scope; that work is handled by the customer's admin or a Salesforce Flow implementation partner.

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
Salesforce Sales Cloud logo

Salesforce Sales Cloud

Destination

Strengths

  • Largest enterprise app ecosystem in CRM with 5,000+ AppExchange integrations covering nearly every vertical workflow.
  • Native Einstein AI delivers lead scoring, opportunity insights, and predictive forecasting without a third-party layer.
  • Advanced territory management, multi-currency, and flexible forecasting satisfy complex B2B revenue structures.
  • Deep platform extensibility: Custom Objects, Apex, Flow, and the Metadata API allow full schema customization.
  • Well-documented REST API, Bulk API, and Composite API with published rate limits for programmatic migration.

Weaknesses

  • Pricing model is layered and opaque in practice: per-seat fees plus storage overages, add-on subscriptions, and annual uplifts compound to 30–40% above sticker price.
  • Workflow Rules and Process Builder are deprecated, forcing all orgs onto Salesforce Flow — a migration task that catches many teams by surprise.
  • Steep administrative complexity: meaningful configuration requires a dedicated Salesforce admin or consultant.
  • API rate limits are edition-gated (100k/day base for Enterprise) and easily exhausted by large historical imports without throttling.
  • Data export is exportable via Data Loader but preserving relationship integrity across 30+ objects requires careful ETL sequencing.

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Oracle Eloqua and Salesforce Sales Cloud.

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • 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 Salesforce Sales Cloud 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 Salesforce Sales Cloud data migrations

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

Can't find your answer?

Walk through your Oracle Eloqua to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between six and ten weeks for databases under 50,000 Contacts with no more than three Custom Data Objects and under 100,000 engagement records. Migrations with multiple CDOs, large engagement histories (over 1 million activity records), complex campaign member rollups, or multi-org Salesforce destinations move to twelve to eighteen weeks because of Bulk API throughput constraints, CDO schema design in Sandbox, and the Lead-Contact split reconciliation work. The Eloqua 25D retirement (November 2025) creates a hard deadline for teams currently using the deprecated native Salesforce integration.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Oracle Eloqua.
Land in Salesforce Sales Cloud, 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