CRM migration
Field-level mapping, validation, and rollback between Oracle Eloqua and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Oracle Eloqua
Source
Freshsales
Destination
Compatibility
7 of 10
objects map 1:1 between Oracle Eloqua and Freshsales.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Oracle Eloqua to Freshsales is a category shift, not an upgrade. Eloqua is an enterprise B2B marketing automation platform built for campaign orchestration, lead scoring, and multi-channel nurture across large contact databases. Freshsales is a sales CRM from Freshworks built for pipeline management, sales engagement, and SMB-to-mid-market teams who need built-in phone, email, and AI-powered lead scoring. The migration reduces your platform footprint and your per-seat cost but requires treating campaign logic, scoring models, and marketing automation workflows as rebuild items rather than migrated data. We extract Contacts and Accounts via the Eloqua Bulk API 2.0, map Custom Data Objects to Freshsales custom fields, transfer activity history as Notes or Tasks, and preserve unsubscribe and consent flags in Freshsales contact fields. We do not migrate Lead Scoring models, Campaign Canvas logic, Segments, Forms, Landing Pages, or Email assets as design elements. We deliver a written inventory of every active campaign and scoring model for your admin to rebuild in Freshsales.
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 Freshsales, 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
Freshsales
Contact
1:1Eloqua Contacts map directly to Freshsales Contacts. Standard fields including First Name, Last Name, Email, Phone, Address, and Title transfer with direct field mapping. We preserve unsubscribe and consent flags in Freshsales contact_fields.emailStatus or custom subscription fields, and we flag contacts with unsubscribed status explicitly to prevent Freshsales email sending to those addresses. Custom contact fields map to Freshsales custom fields on Contact. We resolve the primary Account lookup by matching Eloqua Account name or domain to Freshsales Account records.
Oracle Eloqua
Account
Freshsales
Account
1:1Eloqua Accounts map to Freshsales Accounts (Organizations). Account-level fields including company name, industry, website, address, phone, and revenue transfer as direct field mapping. Account-to-contact associations migrate so that the primary contact relationship is preserved. We use Account domain or company name as the dedupe key during import to avoid duplicate Account creation.
Oracle Eloqua
Custom Data Object (CDO)
Freshsales
Custom Fields on Contact or Account
lossyEloqua CDOs are independent objects with their own schemas. Freshsales does not support standalone custom objects with separate API endpoints; enrichment data stored in CDOs must map to custom fields on the Contact or Account object. We pre-create the equivalent custom fields in Freshsales during schema setup, map CDO record fields to the correct contact or account reference, and document any CDOs that have no natural home in Freshsales' standard object model for the customer's admin to address.
Oracle Eloqua
Campaign and Program
Freshsales
Deal or Workflow
1:1Eloqua Campaigns are multi-step orchestration containers with wait steps, conditional branches, and trigger-based execution. Freshsales has no equivalent campaign canvas. We export campaign metadata (name, dates, targeting criteria) as a written inventory document. For campaigns that represent sales-oriented milestones or deal stages, we create Freshsales Deals with campaign name and dates as reference data. Active campaign logic does not migrate; it requires rebuild in Freshsales Workflows or sequences.
Oracle Eloqua
Segment and Shared List
Freshsales
Contact Filter or List
1:1Eloqua Segments define dynamic contact audiences based on filter criteria. Shared Lists are static contact collections. Freshsales supports contact filters and lists but uses different filter logic. We export segment definitions and list memberships as reference data. The customer's admin rebuilds dynamic segments as Freshsales contact filters post-migration. Shared list membership transfers as contact tag or custom field assignments for static list recreation.
Oracle Eloqua
Activity and Engagement Data
Freshsales
Note or Task
1:1Eloqua tracks engagement events (email opens, clicks, form submissions, page visits) as activity records linked to Contacts. Freshsales does not have a native engagement analytics model for marketing interactions. We migrate significant engagement history as Notes on the Contact record with the engagement type, timestamp, and detail preserved as note content. Email click and open data from Eloqua converts to Freshsales contact activities with a descriptive activity title. Form submission history migrates as note records documenting the submission.
Oracle Eloqua
Email Asset
Freshsales
Email Template
1:1Eloqua email assets include HTML content, subject lines, and sender configuration. We export email HTML and map it to Freshsales email templates. Design rendering depends on Freshsales' template builder capabilities; complex HTML emails with dynamic content blocks may require simplification. Subject lines, sender names, and reply-to addresses transfer to Freshsales template configuration.
Oracle Eloqua
Lead Scoring Model
Freshsales
Freddy AI Scoring (manual documentation)
lossyEloqua's weighted demographic and behavioral Lead Scoring models are stored in proprietary configuration with no export mechanism. We document the current scoring model structure including weights, thresholds, and contributing factors during the discovery phase and deliver this as a written specification. Freshsales Freddy AI provides predictive lead scoring but uses a machine learning model rather than manual weight configuration. The customer's admin uses the Eloqua scoring documentation as input when setting up Freddy AI scoring goals and thresholds in Freshsales.
Oracle Eloqua
Form and Landing Page
Freshsales
Not migrated (rebuild required)
lossyEloqua forms capture contact data and can be embedded on landing pages. Freshsales does not have a native form builder equivalent to Eloqua's form functionality. We export form field configurations and landing page metadata as a written reference document. The customer's admin rebuilds forms in Freshsales web forms or a third-party form tool, and landing pages require rebuild in Freshsales' page builder or an external tool. Form submission history data migrates as engagement notes on the contact record.
Oracle Eloqua
Picklist
Freshsales
Picklist or Custom Field
1:1Eloqua picklists define controlled vocabulary for custom fields. We export picklist definitions including display names and stored values as CSV and re-create them as Freshsales picklist fields or custom field options. Standard picklists like Industry, Country, and State transfer with direct value mapping. Any picklist values not present in Freshsales' standard field options create as custom picklist values on the equivalent Freshsales custom field.
| Oracle Eloqua | Freshsales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Account | Account1:1 | Fully supported | |
| Custom Data Object (CDO) | Custom Fields on Contact or Accountlossy | Fully supported | |
| Campaign and Program | Deal or Workflow1:1 | Fully supported | |
| Segment and Shared List | Contact Filter or List1:1 | Fully supported | |
| Activity and Engagement Data | Note or Task1:1 | Mapping required | |
| Email Asset | Email Template1:1 | Fully supported | |
| Lead Scoring Model | Freddy AI Scoring (manual documentation)lossy | Fully supported | |
| Form and Landing Page | Not migrated (rebuild required)lossy | Fully supported | |
| Picklist | Picklist or Custom Field1: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
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Discovery and data audit
We audit the source Eloqua environment across contact volume, account count, active CDOs and their schemas, campaign count and complexity, engagement data volume, picklist definitions, and lead scoring model structure. We identify which records have unsubscribe or consent flags and document the current scoring model weights and thresholds for handoff. We assess the Freshsales target environment for existing custom fields, picklists, and any data already present. The discovery output is a written migration scope document and a CDO mapping plan that assigns each CDO field to a Freshsales Contact or Account custom field.
Schema preparation in Freshsales
We pre-create all required custom fields in Freshsales on the Contact and Account objects to receive CDO data. We configure picklists to match Eloqua picklist values. We set up Freshsales contact fields to receive unsubscribe and consent flags from Eloqua. If the customer requires Freshsales Freddy AI scoring, we document the Eloqua scoring model as input for the Freshsales admin's Freddy AI configuration. All schema preparation happens in the customer's Freshsales production environment with a validation test before bulk import begins.
Eloqua Bulk API export in compliant batches
We extract Contacts and Accounts from Eloqua using the Bulk API 2.0 with rate-limit-compliant chunking (2,000 records per batch, throttled to stay within hourly limits). We export custom fields, custom field values, and engagement history in separate batch runs sequenced by dependency (Accounts before Contacts, because Account lookups must resolve during Contact import). We capture the unsubscribe and consent flag state on every contact record for Freshsales mapping. For large databases exceeding 50,000 records, we extend the export window and communicate timeline impact upfront.
CDO data extraction and field mapping
We export each Custom Data Object individually using Bulk API queries scoped to that CDO's schema. We map CDO fields to the pre-created Freshsales custom fields on Contact or Account, resolving the parent contact or account reference by email address or name match. If a CDO has cross-references to other CDOs, we flatten those into concatenated values or note fields in Freshsales since no cross-object relationship exists. We validate record counts against the CDO export totals and resolve any unmapped fields with the customer's admin before proceeding.
Production import and reconciliation
We run production import into Freshsales in dependency order: Accounts first, then Contacts with AccountId resolved, then custom field data, then engagement history as Notes. Each phase emits a row-count reconciliation report comparing Freshsales record counts to the Eloqua export totals. We validate a random sample of 25-50 records field-by-field against the Eloqua source. Any mapping corrections happen before the next phase begins. We freeze new contact creation in Eloqua during the final import window to capture any records modified during migration.
Cutover, validation, and handoff documentation
We enable Freshsales as the system of record after final reconciliation. We deliver the campaign inventory document listing every active Eloqua campaign with its step structure and targeting criteria, the lead scoring model documentation with weights and thresholds, the segment and list definitions for rebuild, and the form configuration reference for rebuild. We provide a one-week hypercare window to resolve any contact or account reconciliation issues raised by the sales team. We do not rebuild Eloqua campaigns as Freshsales Workflows or sequences within the migration scope; that is a separate engagement or internal admin task.
Platform deep dives
Oracle Eloqua
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Freshsales.
Object compatibility
2 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 Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Oracle Eloqua to Freshsales 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 Freshsales
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.