CRM migration

Migrate from Oracle Eloqua to HubSpot

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

Oracle Eloqua logo

Oracle Eloqua

Source

HubSpot

Destination

HubSpot logo

Compatibility

100%

14 of 14

objects map 1:1 between Oracle Eloqua and HubSpot.

Complexity

BStandard

Timeline

4–6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Oracle Eloqua is an enterprise marketing automation platform built around contacts, accounts, and custom data objects (CDOs) with a separate campaign orchestration layer. HubSpot combines CRM and marketing automation in one platform, organizing data around contacts, companies, deals, and activities with its own lifecycle_stage and deal pipeline model. We map Eloqua contacts to HubSpot contacts and Eloqua accounts to HubSpot companies, preserving original_createdate as a custom property since HubSpot sets Createdate at import time. Custom data objects become either HubSpot custom properties (for simple flat data) or HubSpot custom objects at Enterprise tier (for relational or high-volume data). Eloqua's campaign membership data (email opens, clicks, form submissions, landing page views) migrates as HubSpot engagement activities or custom contact properties so your team retains behavioral context. Programs and nurture flows cannot migrate — we export Eloqua workflow definitions as a rebuild reference for HubSpot's automation tools. Our migration runs through Eloqua's Bulk API (2,000-record-per-hour soft limit) and HubSpot's Contacts API, sequencing records to resolve dependencies correctly. A delta-pickup window captures any records modified during cutover before the switch.

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

HubSpot logo

HubSpot

What's pulling them in

  • Lowest barrier to entry of any major CRM — the free tier with unlimited contacts lets teams validate fit before committing to a paid plan, according to G2 and Capterra reviewers.
  • Native integration between the CRM and sales engagement tools (sequences, email tracking, dialer) means no separate sync configuration, a theme across G2 Sales Hub reviews.
  • Pipeline visualization, deal tracking, and automated workflows are consistently praised as intuitive and easy to set up without developer involvement.
  • Strong onboarding for new team members — reviewers on Capterra and G2 highlight how quickly new reps become productive without formal training.
  • The HubSpot platform ecosystem (Marketing, Sales, Service, CMS hubs) allows growing companies to consolidate tools without building new integrations.

Object mapping

How Oracle Eloqua objects map to HubSpot

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

HubSpot

Contact

1:1
Fully supported

Eloqua contacts map directly to HubSpot contacts. Standard fields like email, phone, firstname, and lastname use HubSpot's built-in properties. The contact's primary company resolves to a HubSpot company association by domain match or by the primaryCompanyId value stored in Eloqua.

Oracle Eloqua

Account

maps to

HubSpot

Company

1:1
Fully supported

Eloqua accounts map to HubSpot companies. Company name becomes Company Name, domain maps to Website, industry maps to HubSpot's industry picklist, and employee count maps directly. Multi-site or subsidiary account structures in Eloqua need review — HubSpot does not have a native hierarchical company model, so parent-subsidiary relationships store in a custom property.

Oracle Eloqua

Custom Data Object (CDO)

maps to

HubSpot

Custom Property or Custom Object

1:1
Fully supported

Eloqua CDOs that are flat (one field per contact) become HubSpot custom contact properties. Relational CDOs with multiple records per contact or cross-contact relationships require HubSpot custom objects (Enterprise tier) and a junction association — your admin must create the custom object schema in HubSpot before migration runs.

Oracle Eloqua

Campaign

maps to

HubSpot

Campaign + List

1:1
Fully supported

Eloqua campaigns map partially to HubSpot campaigns for email performance tracking. Campaign membership (which contacts were enrolled in which campaign) stores as HubSpot list memberships — one static list per Eloqua campaign. Campaign assets (email templates, landing pages, forms) do not migrate and must be rebuilt in HubSpot.

Oracle Eloqua

Program

maps to

HubSpot

List

1:1
Fully supported

Eloqua programs track member enrollment and step progression. Program membership migrates as HubSpot list membership. Step-level progression data (which program step a contact was in) stores as a custom property on the contact record, preserving the enrollment context without recreating the program logic.

Oracle Eloqua

Email Activity (opens, clicks)

maps to

HubSpot

Engagement Timeline

1:1
Fully supported

Eloqua email engagement events (opens, clicks, bounces, unsubscribes) map to HubSpot engagement activities on the contact timeline. Each engagement type becomes a separate activity record with original timestamps and campaign context preserved as activity metadata. This preserves the complete behavioral history of each contact so your team can see the full email engagement picture without relying on external reporting tools.

Oracle Eloqua

Form Submission

maps to

HubSpot

Custom Property + Activity

1:1
Fully supported

Eloqua form submission data stores as both a custom property on the contact (which form was submitted) and an activity event. If Eloqua captures form field values, each field becomes a custom property on the HubSpot contact. Multiple form submissions per contact accumulate as comma-separated or multi-value custom properties.

Oracle Eloqua

Landing Page Submission

maps to

HubSpot

Activity + Custom Property

1:1
Fully supported

HubSpot tracks form submissions broadly. Landing page names from Eloqua migrate as a custom property (hs_landing_page_source) on the contact record, with submission timestamps preserved as an engagement activity. Full landing page assets must be recreated as HubSpot landing pages. This approach keeps the contact record clean while still preserving the historical context of which landing pages drove conversions in Eloqua.

Oracle Eloqua

Lead Scoring Model

maps to

HubSpot

Custom Number Property

1:1
Fully supported

Eloqua's lead scoring scale (which can vary per model and often extends beyond 100) rescale to HubSpot's 0–100 numeric property. We preserve the Eloqua score as a custom property with its original scale noted, and create a mapped hs_score property scaled to HubSpot's 0–100 range for use in HubSpot workflows.

Oracle Eloqua

Contact Segment / Group

maps to

HubSpot

HubSpot List (static or dynamic)

1:1
Fully supported

Eloqua contact segments and shared lists migrate as HubSpot static lists. Active segment membership is preserved — contacts in an Eloqua group land in the corresponding HubSpot list. Dynamic segments (which re-evaluate based on criteria) require manual recreation as HubSpot smart lists.

Oracle Eloqua

Eloqua Contact ID

maps to

HubSpot

Custom Property (hs_eloqua_id)

1:1
Fully supported

HubSpot has no native field for the source system's internal ID. We create hs_eloqua_id as a custom string property on every contact record, storing the original Eloqua contact GUID for traceability, de-duplication across delta runs, and cross-referencing in audits. This GUID mapping ensures you can always trace any HubSpot contact back to its original Eloqua source record, even months or years after the migration.

Oracle Eloqua

Eloqua Account ID

maps to

HubSpot

Custom Property (hs_eloqua_account_id)

1:1
Fully supported

Similar to the contact ID, the original Eloqua account GUID stores as hs_eloqua_account_id on HubSpot company records. This supports delta-run de-duplication and maintains the link between your historical Eloqua records and their new HubSpot counterparts. The company ID mapping also enables you to rebuild account-based reporting hierarchies and associate historical engagement data with the correct accounts after migration.

Oracle Eloqua

Eloqua createdDate

maps to

HubSpot

Custom Property (hs_original_createdate)

1:1
Fully supported

HubSpot overwrites Createdate when records are imported via API. The original Eloqua createdDate preserves as a custom datetime property (hs_original_createdate) on both contacts and companies, enabling reporting continuity and sorting by true record age in HubSpot's analytics. This ensures that contacts and companies appear in HubSpot reports with their original creation dates, maintaining historical accuracy for date-based filtering and cohort analysis.

Oracle Eloqua

Email Subscription Status

maps to

HubSpot

Custom Property + HubSpot subscription status

1:1
Fully supported

Eloqua's email subscription flags (global opt-out, campaign-level unsubscribes) map to HubSpot's contact. Each Eloqua subscription list with its opt-in/opt-out status becomes a corresponding HubSpot subscription type, preserving the contact's preferences across all relevant email programs. This mapping ensures compliance with contact communication preferences and prevents accidental re-subscription during HubSpot onboarding.

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

HubSpot logo

HubSpot gotchas

High

Marketing Contacts billing model is migration-critical

High

Feature tier gating is not visible until onboarding

Medium

Mandatory onboarding fees inflate year-one cost

Medium

HubSpot CSV importer cannot migrate engagements or attachments

Medium

Custom objects require Enterprise and a pre-existing schema

Pair-specific challenges

  • Eloqua custom data objects require HubSpot Enterprise custom objects or property creation

    Eloqua's Custom Data Objects (CDOs) support relational schemas with multiple records per contact and cross-object references. HubSpot's native model handles flat custom properties on contacts and companies directly, but relational CDOs require HubSpot's custom objects feature, which is gated to the Enterprise tier. We audit every CDO's field count, record volume, and relationship structure during the discovery phase and recommend whether each CDO maps to a HubSpot custom property (flat), a custom object with association (relational), or a junction property (N:N). If your migration uses multiple CDOs with complex relationships, plan for Enterprise-tier HubSpot licensing before migration begins.

  • Eloqua marketing automation workflows and programs do not migrate to HubSpot

    Eloqua campaign canvases, program steps, nurture tracks, and engagement programs are built on Eloqua's automation engine and cannot export in a form that HubSpot can import. Each automation must be rebuilt in HubSpot's workflow tool using HubSpot's own trigger-and-action logic. We export your Eloqua workflow definitions — including step conditions, wait periods, and contact progression rules — as a structured document your team can use as a blueprint for HubSpot workflow recreation. This is the most common source of migration scope surprises, and we flag it explicitly during the discovery call before any migration work begins.

  • Eloqua lead scoring scales do not map directly to HubSpot's 0–100 model

    Eloqua's lead scoring model allows configurable numeric ranges that often exceed 100 points, with weighted criteria and separate profile and behavioral scores. HubSpot's native contact score and company score properties operate on a fixed 0–100 scale. We capture the raw Eloqua score as a custom property preserving its original scale for audit purposes, then generate a mapped hs_lead_score scaled to 0–100 for use in HubSpot's workflow triggers and list conditions. If your team uses separate profile and behavioral scores, both store as custom properties and the combined or dominant score scales to HubSpot's range.

  • Eloqua picklist values do not auto-populate HubSpot property options

    Eloqua manages picklists as database entities with distinct display labels and stored values, and many teams use custom picklists on contact fields and CDOs. When these fields migrate to HubSpot, the picklist values do not transfer automatically — they must be created manually in HubSpot's property settings before the import runs. We export the full picklist definition (display name, stored value, sort order) from Eloqua and deliver it as a configuration checklist your HubSpot admin can use to pre-create every option. If picklist values are skipped, contacts land with blank values for those fields, breaking HubSpot list filters and workflow triggers that depend on the pick-list.

  • Eloqua Bulk API export rate limits affect migration timelines for large databases

    Eloqua's Bulk API enforces a soft limit of 2,000 records per hour per sync type for exports. For migrations with 50,000 or more contacts, a single export pass takes 25+ hours across contacts, accounts, activities, and CDO records. We batch exports to respect Eloqua's rate limits and avoid triggering throttling, which would delay the migration further. API-based migration also means Eloqua's database must remain stable during the export window — high write volume from active campaigns during export can cause field-level data inconsistency in the exported records.

Migration approach

Six steps for a successful Oracle Eloqua to HubSpot data migration

  1. Audit Eloqua instance and build the migration schema

    We catalogue every object in your Eloqua instance: contact fields, account fields, custom data objects, campaign names, program membership records, and engagement activity types. We review picklist definitions, lead scoring models, and any custom field constraints. This audit produces a migration schema document that maps each Eloqua field to its HubSpot destination — contact property, company property, custom property, or custom object — with transformation notes for pick-list value mapping, score rescaling, and date handling. Your team reviews and approves the schema before any data moves.

  2. Create HubSpot custom properties and custom objects

    Based on the approved schema, we create all required HubSpot custom properties (for hs_original_createdate, hs_eloqua_id, hs_eloqua_account_id, hs_lead_score, campaign membership properties, and any CDO-derived fields) before importing data. For relational CDOs that require HubSpot custom objects, we define the object schema, association labels, and required fields so the custom objects are ready when the migration run executes. Your HubSpot admin reviews the property list and enables the custom objects at Enterprise tier if needed.

  3. Export and map contacts, accounts, and custom data objects

    We export contacts and accounts from Eloqua using the Bulk API, sequencing accounts before contacts so the associatedcompanyid resolves correctly on each contact record. CDO records export separately and map to either HubSpot custom properties (flat data) or custom object records (relational data) depending on the schema decision from step one. We run a sample migration of 100–200 records first and generate a field-level diff so you can verify pick-list mapping, score rescaling, and campaign membership assignment before the full run commits. Duplicate detection uses email as the primary key with Eloqua ID stored for cross-reference.

  4. Migrate engagement history and campaign membership data

    Email engagement events (opens, clicks, bounces), form submissions, landing page submissions, and program memberships export as separate data sets and map to HubSpot engagement activities and custom contact properties. Campaign membership creates one HubSpot static list per Eloqua campaign and populates it with the corresponding contact IDs. We preserve original engagement timestamps as activity metadata so HubSpot's timeline reflects the true engagement history rather than the migration date.

  5. Run delta-pickup and validate the full migration

    After the initial migration run, we open a delta-pickup window — typically 24–48 hours — during which any records created or modified in Eloqua after the export timestamp are captured and applied to HubSpot. Your team runs reconciliation checks against Eloqua's record counts by list, by campaign membership, and by custom object before the cutover is finalized. We deliver an audit log of every import operation, and one-click rollback is available if reconciliation reveals data gaps that exceed the agreed tolerance threshold.

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

HubSpot

Destination

Strengths

  • Genuinely useful free CRM tier with no seat limit on contact records.
  • All-in-one sales engagement layer (sequences, email tracking, calling, dialer) embedded natively in the CRM, eliminating a separate integration.
  • Intuitive interface and fast onboarding for individual reps, per G2 and Capterra reviews.
  • Workflow automation triggers across contacts, deals, and tickets with a visual builder.
  • API coverage for all standard objects including custom objects at Enterprise tier.

Weaknesses

  • Pricing model is contact-based at the marketing layer — importing all records as marketing contacts can multiply the monthly bill by 4×.
  • Feature tier cliffs are frequent surprises: sequences, calling, advanced reporting, and quoting are all gated, often requiring plan upgrades mid-implementation.
  • Mandatory onboarding fees at Professional ($1,500) and Enterprise ($3,500) are not prominently disclosed on the pricing page.
  • API rate limits are restrictive for bulk migration — burst limits of 100-200 req/10sec and search endpoint limits of 4 req/sec require careful job queuing.
  • Custom objects, additional pipelines, and advanced forecasting are Enterprise-only, making cost projections difficult for growing teams.

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

  • 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 HubSpot 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 HubSpot data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Eloqua-to-HubSpot migrations complete in 4–6 weeks for databases under 100,000 contacts with standard custom data objects and minimal campaign history. Larger setups with multiple CDOs, relational data structures, or heavy engagement history extend to 6–10 weeks. The longest phase is schema planning and HubSpot property setup, not the data transfer itself — bulk exports from Eloqua run in batches due to API rate limits, and each batch must validate before the next one begins.

Adjacent paths

Related migrations to explore

Ready when you are

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