CRM migration
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
Source
Salesforce Sales Cloud
Destination
Compatibility
10 of 13
objects map 1:1 between Oracle Eloqua and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
6-10 weeks
Overview
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.
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.
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 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
Salesforce Sales Cloud
Lead or Contact (split required)
1:manyEloqua 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
Salesforce Sales Cloud
Account
1:1Eloqua 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)
Salesforce Sales Cloud
Custom Object
1:1Each 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
Salesforce Sales Cloud
Campaign + Campaign Member
lossyEloqua 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
Salesforce Sales Cloud
Campaign
lossyEloqua 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
Salesforce Sales Cloud
Campaign
1:1Eloqua 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
Salesforce Sales Cloud
Campaign
1:1Eloqua 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
Salesforce Sales Cloud
Email Template
1:1Eloqua 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
Salesforce Sales Cloud
Web-to-Lead or Salesforce Form
1:1Eloqua 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)
Salesforce Sales Cloud
Task + Event
1:1Eloqua 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
Salesforce Sales Cloud
Picklist (global value set or custom picklist)
1:1Eloqua 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)
Salesforce Sales Cloud
ContentDocument / Salesforce Files
1:1Images 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
Salesforce Sales Cloud
Not migrated
1:1Eloqua'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.
| Oracle Eloqua | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Lead or Contact (split required)1:many | Fully supported | |
| Account | Account1:1 | Fully supported | |
| Custom Data Object (CDO) | Custom Object1:1 | Fully supported | |
| Campaign | Campaign + Campaign Memberlossy | Fully supported | |
| Program | Campaignlossy | Fully supported | |
| Segment | Campaign1:1 | Fully supported | |
| Shared List | Campaign1:1 | Fully supported | |
| Email Asset | Email Template1:1 | Fully supported | |
| Form | Web-to-Lead or Salesforce Form1:1 | Fully supported | |
| Engagement Activity (email opens, clicks, form submits, page visits) | Task + Event1:1 | Fully supported | |
| Picklist | Picklist (global value set or custom picklist)1:1 | Fully supported | |
| Image / Attachment (Eloqua Asset Library) | ContentDocument / Salesforce Files1:1 | Fully supported | |
| Lead Scoring Model | Not migrated1: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.
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
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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
Oracle Eloqua
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Oracle Eloqua and Salesforce Sales Cloud.
Object compatibility
1 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
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave Oracle Eloqua
Other ways to arrive at Salesforce Sales Cloud
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.