CRM migration
Field-level mapping, validation, and rollback between Oracle EBS CRM and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Oracle EBS CRM
Source
Freshsales
Destination
Compatibility
6 of 8
objects map 1:1 between Oracle EBS CRM and Freshsales.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Oracle EBS CRM to Freshsales is a migration from an on-premise, tightly coupled APPS-schema architecture to a modern cloud-native CRM with a standard Leads-to-Contacts-to-Companies model. Oracle EBS CRM has no REST API for CRM objects, so we connect directly to the Oracle database with read-only credentials scoped to the relevant schemas. We extract Accounts from ARHZTA base tables, Contacts from HR or AR schemas, and Opportunities from the CZ Collaborative Selling schema, determining which schema applies during discovery. We preserve all parent-to-child relationships by sequencing parent records before child records in every load phase, and we resolve the Owner-to-User mapping by matching FND_USER email addresses to Freshsales user accounts. Territory assignments from AS_TERRITORIES are extracted as a structured report and reassigned as Freshsales territory ownership by the customer's admin post-migration because the routing logic has no direct equivalent in Freshsales. Custom objects migrate to Freshsales custom modules after we pre-create the destination schema with matching field types and lookup relationships. Oracle Workflows, Reports, and Forms do not migrate; we deliver a written inventory of active Workflows and routing definitions for rebuild in Freshsales Automations.
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 EBS CRM 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 EBS CRM
Account
Freshsales
Company
1:1Oracle EBS CRM Accounts are stored in ARHZTA base tables and exposed through the APPS schema. We extract them directly via SQL with read-only database credentials scoped to the relevant CRM schemas, bypassing the absence of a REST API. The account_name and location_id columns map to Freshsales Company name and address fields. Company is loaded first in every migration phase so that the parent relationship is satisfied when Contacts are imported.
Oracle EBS CRM
Contact
Freshsales
Contact
1:1Contacts in Oracle EBS CRM reside in base HR or AR schemas depending on whether they represent employees or external parties. We extract the full contact record including name fields, email address, phone, and the party_id that links to the corresponding Account. The contact-to-Account relationship is resolved by matching the Oracle party_id to the Account record we imported in the prior phase, satisfying Freshsales' required account_id lookup on Contact.
Oracle EBS CRM
Opportunity
Freshsales
Lead and Deal (split required)
1:manyOpportunities in Oracle EBS CRM are stored in the CZ (Collaborative Selling) schema or deprecated ASF schema depending on the CRM module version deployed. We identify the correct schema during discovery and extract stage, probability, owner, and amount. Open opportunities with no confirmed close date map to Freshsales Lead; opportunities with a confirmed close date and amount map to Freshsales Deal. EBS stage names and probabilities migrate as a custom field so the customer's admin can map them to Freshsales pipeline stages during sandbox testing.
Oracle EBS CRM
Territory
Freshsales
Territory (assignment report)
1:1Territory definitions in Oracle EBS CRM are stored in AS_TERRITORIES tables with hierarchical org structures and assignment rules that reference OE_ASSIGNMENTS or per-party region mappings. Freshsales Territory settings support territory-based lead and deal assignment but do not replicate EBS routing logic. We extract the territory hierarchy and assignment rules as a structured CSV and deliver it to the customer's admin for manual territory creation and assignment in Freshsales Settings. This step requires admin input and is sequenced after the production data load.
Oracle EBS CRM
Sales Activities / Tasks
Freshsales
Task
1:1Activities and tasks in Oracle EBS CRM are stored across multiple schemas — the deprecated Teleservice tables or the modern Interaction Center tables — depending on which CRM module is installed. We identify the active schema during discovery and extract call disposition, duration, owner, and timestamp. Activities map to Freshsales Task with status, priority, owner, and Activity Date preserved. Call-type activities get a custom field to hold the EBS call disposition value.
Oracle EBS CRM
Notes / History
Freshsales
Note
1:1Notes and audit history in Oracle EBS CRM are stored in generic note tables (FZ_NOTES or equivalent) or in the application-level audit trail. We extract them as text blobs with timestamps and owner references and import them to Freshsales Note linked via the parent record (Contact, Company, or Deal). Rich-text formatting in EBS notes is preserved as plain text; any embedded objects are extracted as separate file attachments.
Oracle EBS CRM
Custom Object
Freshsales
Custom Module
lossyCustom objects in Oracle EBS CRM are stored in user-defined tables within the base product schemas, often with FK columns pointing to core tables like RA_CUSTOMERS or OE_HEADERS. We extract the DDL for each custom table during discovery, map the columns to Freshsales custom module fields (with type conversion from Oracle data types to Freshsales field types), and pre-create the custom module schema in Freshsales before any data loads. Lookup relationships to Accounts and Contacts are preserved as Freshsales lookup fields. Custom object migration is sequenced last because they often have cross-references to migrated standard objects.
Oracle EBS CRM
Attachment
Freshsales
Attachment (via Freshsales file API)
1:1Attachments in Oracle EBS CRM are stored as LOB data (BFILE or CLOB columns) or on the file system depending on the attachment configuration. We extract them as binary or base64-encoded blobs during the extraction phase and attach them to the corresponding parent record (Contact, Company, Deal, or Note) using the Freshsales file upload API. The original filename and MIME type are preserved in the attachment metadata.
| Oracle EBS CRM | Freshsales | Compatibility | |
|---|---|---|---|
| Account | Company1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Opportunity | Lead and Deal (split required)1:many | Fully supported | |
| Territory | Territory (assignment report)1:1 | Fully supported | |
| Sales Activities / Tasks | Task1:1 | Mapping required | |
| Notes / History | Note1:1 | Mapping required | |
| Custom Object | Custom Modulelossy | Fully supported | |
| Attachment | Attachment (via Freshsales file API)1: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 EBS CRM gotchas
No native REST API for EBS CRM data extraction
APPS schema coupling spans CRM, ERP, and HR in one database
Premier Support for EBS 12.1 ended — Extended Support for 12.2 has a cost cliff
Oracle Workflow engine has no direct migration path to cloud CRM automation
Per-module licensing creates billing ambiguity at destination
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 database connection
We connect directly to the Oracle database with read-only credentials scoped to the CRM-relevant schemas (ARHZTA for Accounts, HR or AR for Contacts, CZ for Opportunities). We run discovery queries to enumerate the target tables, row counts per object, and identify the correct schema variant for Activities and Opportunities. We extract the FND_USER and FND_RESPONSIBILITY tables to get an accurate CRM user count and responsibility matrix. We capture territory definitions from AS_TERRITORIES and inventory every active Oracle Workflow in WF_ tables. Discovery typically takes five to ten business days and produces a written migration scope, record counts per object, and a custom object schema map.
Freshsales environment provisioning
We configure the Freshsales CRM modules and custom fields to receive the EBS CRM data. We map EBS column names to Freshsales field types (Oracle VARCHAR2 to Freshsales text, Oracle DATE to Freshsales date, Oracle NUMBER to Freshsales number or currency). We configure Freshsales deal pipelines to match the EBS opportunity stages and probability percentages. We provision Freshsales users mapped from the EBS FND_USER-to-responsibility matrix. This phase runs three to five business days and is executed in parallel with data extraction so the destination tenant is ready before any data loads.
Test migration and sandbox validation
We run a full migration into the customer's Freshsales sandbox environment before touching production data. We export CRM data from Oracle, transform it through the field mapping, and load it via the Freshsales CRM API. We validate record counts for each object and spot-check twenty to thirty records field-by-field against the Oracle source. Any mapping corrections are captured and applied before the production migration begins. The customer reviews and approves the sandbox migration results before we schedule the production cutover window.
Owner reconciliation and user provisioning
We extract the FND_USER and FND_RESPONSIBILITY tables from Oracle EBS during discovery to identify every CRM user and their responsibility assignments. We match FND_USER email addresses to Freshsales user accounts and resolve the Owner-to-User mapping. Any EBS user without a matching Freshsales account is held in a reconciliation queue; the customer's admin provisions missing users before production migration begins. This step must complete before record import because OwnerId is a required reference on most standard objects.
Production migration in dependency order
We run production migration in record-dependency order: Companies first (no parent dependencies), Contacts with account_id resolved, Leads and Deals split by opportunity status, Tasks, Events, and Notes, then custom objects last. Each phase emits a row-count reconciliation report before the next begins. We use the Freshsales CRM API with rate-limit handling and exponential backoff to manage API throughput constraints. We flag any records that fail import (due to missing required fields or lookup resolution failures) to a retry queue for resolution before final sign-off.
Cutover, delta sync, and automation rebuild handoff
We freeze Oracle EBS CRM writes during cutover, run a final delta migration of any records created or modified during the migration window, and then enable Freshsales as the system of record. We deliver the Oracle Workflow and Territory inventory report to the customer's admin team with rebuild recommendations for Freshsales Automations and Territory settings. We provide a one-week hypercare window to resolve any data reconciliation issues raised by the customer's team. Oracle Workflow rebuilds in Freshsales Automations are outside the standard migration scope and are handled as a separate engagement or internal admin task.
Post-migration validation
We run post-migration validation against the production Freshsales tenant, comparing record counts for every object against the Oracle source totals and flagging any discrepancies above a 1% threshold. We spot-check representative records across all migrated object types for field-level accuracy and validate that parent-to-child lookups (Contact to Company, Deal to Contact) resolve correctly. We deliver a final migration report with record counts, import errors and resolutions, and a list of any remaining data quality flags that the customer should address in Freshsales.
Platform deep dives
Oracle EBS CRM
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 EBS CRM 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 EBS CRM: Not applicable — direct database query, throttling depends on customer's DB server capacity and concurrent workload.
Data volume sensitivity
Oracle EBS CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 EBS CRM to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Oracle EBS CRM 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 EBS CRM
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.