CRM migration

Migrate from Oracle Eloqua to Freshsales

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

Oracle Eloqua logo

Oracle Eloqua

Source

Freshsales

Destination

Freshsales logo

Compatibility

70%

7 of 10

objects map 1:1 between Oracle Eloqua and Freshsales.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How Oracle Eloqua objects map to Freshsales

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

maps to

Freshsales

Contact

1:1
Fully supported

Eloqua 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

maps to

Freshsales

Account

1:1
Fully supported

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

maps to

Freshsales

Custom Fields on Contact or Account

lossy
Fully supported

Eloqua 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

maps to

Freshsales

Deal or Workflow

1:1
Fully supported

Eloqua 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

maps to

Freshsales

Contact Filter or List

1:1
Fully supported

Eloqua 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

maps to

Freshsales

Note or Task

1:1
Mapping required

Eloqua 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

maps to

Freshsales

Email Template

1:1
Fully supported

Eloqua 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

maps to

Freshsales

Freddy AI Scoring (manual documentation)

lossy
Fully supported

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

maps to

Freshsales

Not migrated (rebuild required)

lossy
Fully supported

Eloqua 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

maps to

Freshsales

Picklist or Custom Field

1:1
Fully supported

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

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

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • Lead Scoring models cannot be exported from Eloqua

    Eloqua's weighted demographic and behavioral Lead Scoring models are stored in proprietary configuration that has no export mechanism. We document the current scoring model structure during discovery including weights, thresholds, and contributing data fields, but the model itself must be rebuilt in Freshsales using Freddy AI scoring configuration. Teams relying heavily on Eloqua lead scoring should plan for a manual reconstruction phase after migration and should not expect scoring history to transfer. Freshsales Freddy AI uses predictive scoring rather than rule-based weight configuration, so the scoring paradigm differs.

  • Campaign automation logic does not migrate to Freshsales Workflows

    Eloqua Campaign Canvas supports multi-step orchestration with conditional branches, wait steps, and trigger-based execution across email, web, and event channels. Freshsales Workflows are scoped to sales engagement actions (task creation, field updates, email sequences) and do not support the multi-channel marketing orchestration model. We do not migrate campaign automation as code. We deliver a written inventory of every active Eloqua campaign with its step structure, targeting criteria, and trigger logic for the customer's admin to rebuild in Freshsales Workflows or Freshmarketer if marketing automation continues separately.

  • CDO schema must collapse into Freshsales custom fields

    Eloqua Custom Data Objects have independent schemas with their own fields, relationships, and record counts. Freshsales does not support standalone custom objects; all enrichment data must map to custom fields on the Contact or Account object. If an Eloqua CDO has a lookup relationship to another CDO, there is no equivalent structure in Freshsales. We pre-create custom fields on Contact or Account during schema setup, but complex CDO hierarchies may require flattening or the use of note fields to preserve data that has no natural field mapping.

  • Bulk API rate limits affect large contact database migration

    Eloqua's Bulk API 2.0 enforces hourly soft limits of 2,000 records per hour for exports and imports with concurrent REST API requests limited to 10-20 depending on subscription tier. For databases exceeding 50,000 contacts, migration timelines extend accordingly. We chunk large contact exports into rate-compliant batches, throttle API calls, and sequence imports to stay within limits. If the migration window is constrained, the customer should plan for extended migration duration or consider a phased approach that prioritizes active records.

  • No native migration tooling in Eloqua requires custom export construction

    Eloqua provides no built-in mechanism to export Campaigns, Programs, Lead Scoring models, or engagement data for migration. We must construct exports using the Bulk API and custom field-level queries. This requires more discovery time to map which Eloqua objects and fields contain the data, and more validation time to confirm the export represents the complete record set. We plan for this by documenting all campaign logic, scoring weights, and automation flows during the discovery phase before any data moves, and we provide a data completeness report before production migration begins.

Migration approach

Six steps for a successful Oracle Eloqua to Freshsales data migration

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

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

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

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

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

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

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
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 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 Freshsales.

  • Object compatibility

    B

    2 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 Freshsales 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 Freshsales data migrations

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

Can't find your answer?

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 consultation

Most migrations land between three and five weeks for accounts under 25,000 Contacts with no complex CDO schemas. Migrations with multiple Custom Data Objects, large engagement histories (over 100,000 records), or databases exceeding 50,000 contacts extend to six to ten weeks because of Bulk API chunking time, CDO field mapping work, and picklist reconciliation. We scope each migration individually and communicate timeline impact based on actual data volume during discovery.

Adjacent paths

Related migrations to explore

Ready when you are

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