CRM migration
Field-level mapping, validation, and rollback between Oracle EBS CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Oracle EBS CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 12
objects map 1:1 between Oracle EBS CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
6-10 weeks
Overview
Migrating from Oracle EBS CRM to Salesforce Sales Cloud requires extracting data from an Oracle database that has no standard REST API, navigating a monolithic APPS schema that stores CRM data alongside ERP and HR records in the same tables, and untangling multi-org structures that have no direct Salesforce equivalent. We connect directly to the Oracle database with read-only credentials scoped to the relevant CRM schemas, enumerate the source tables during discovery, and build a migration order that loads parent records before child records so foreign-key constraints are satisfied. Oracle Workflows, Territory definitions, and Forecast data cannot migrate as code or structured data; we document these as transformation candidates for the customer's admin to rebuild in Salesforce Flow or the declarative automation builder. The pricing reflects the extraction complexity, schema analysis scope, and multi-phase testing required when migrating from a tightly coupled on-premise system to a cloud CRM.
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 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 EBS CRM
Account (ARHZTARZ base tables)
Salesforce Sales Cloud
Account
1:1Oracle EBS Accounts stored in the ARHZTARZ and APPS schemas map to Salesforce Account. The AR_CUSTOMER_NUMBER or RA_CUSTOMERS.CUSTOMER_NUMBER becomes an external ID field in Salesforce for dedupe during import. Oracle Operating Unit (ORG_ID) does not have a direct Salesforce equivalent — we map this to a custom picklist field ebs_operating_unit__c or to a Salesforce Division if the Enterprise org uses Divisions. Account Type (ORGANIZATION, PERSON) maps to Salesforce Account Type.
Oracle EBS CRM
Contact (HR/AR schemas)
Salesforce Sales Cloud
Contact
1:1Contacts in EBS reside in the HR schema (PER_ALL_ASSIGNMENTS_F for employees) or AR schema (HZ_CONTACTS for external parties) depending on party type. We extract from the correct base table identified at discovery and map to Salesforce Contact. The HZ_PARTIES.PARTY_ID becomes a custom field ebs_party_id__c for reconciliation. Contact relationship to Account is preserved via HZ_CUST_ACCOUNT_ROLES linking to RA_CUSTOMERS.
Oracle EBS CRM
Opportunity (CZ Collaborative Selling schema)
Salesforce Sales Cloud
Opportunity
1:1Oracle EBS Opportunities stored in the CZ schema map to Salesforce Opportunity. The CZ_OPPORTUNITIES.CZ_OPPORTUNITY_ID becomes an external ID. Stage, Amount, CloseDate, and Owner map directly. If the EBS CRM uses the deprecated ASF schema instead of CZ, we identify this at discovery and adjust the extraction query — ASF uses different column names and the migration mapping must reflect the actual schema deployed.
Oracle EBS CRM
Custom Objects (user-defined tables)
Salesforce Sales Cloud
Custom Objects (__c)
1:1EBS CRM custom objects are stored in user-defined tables within the base product schemas, often with FK columns referencing RA_CUSTOMERS (Account) or OE_HEADERS (Order). We extract the DDL for each custom table during discovery, map the column types to Salesforce field types (VARCHAR2 to Text, NUMBER to Number, DATE to Date, CLOB to Long Text Area), pre-create the destination custom object in Salesforce, and import in dependency order so that parent Account lookups are resolved before child custom object records insert.
Oracle EBS CRM
Attachments (BFILE/CLOB in DB or filesystem)
Salesforce Sales Cloud
ContentDocument (Salesforce Files)
1:1Oracle EBS attachments are stored as LOB data (BFILE pointing to filesystem or inline CLOB) in FND_ATTACHMENT_FUNCTIONS or the ICM tables. We extract them as binary BLOBs or BASE64-encoded blobs, upload to Salesforce Files (ContentVersion), and link via ContentDocumentLink to the parent Account, Contact, or Opportunity record. The original filename and MIME type are preserved in ContentVersion.
Oracle EBS CRM
Sales Activities / Tasks (Teleservice or Interaction Center tables)
Salesforce Sales Cloud
Task
1:1Activities and tasks are stored across deprecated Teleservice tables or modern Interaction Center tables depending on the CRM module version installed. We identify the correct schema at discovery, extract the activity type (call, email, meeting, task), timestamp, owner reference, and free-text body, and map to Salesforce Task with the appropriate TaskSubtype. Activity ordering is preserved by setting ActivityDate to the original EBS timestamp.
Oracle EBS CRM
Notes / History (FZ_NOTES or audit trail)
Salesforce Sales Cloud
Note
1:1Notes and audit history in EBS CRM are stored in FZ_NOTES or the application-level audit trail. We extract them as text blobs with timestamps and owner references and migrate to Salesforce Note records linked via ContentDocumentLink to the parent Account, Contact, or Opportunity. Rich-text formatting is preserved where present; plain-text notes carry over verbatim.
Oracle EBS CRM
User / Employee (FND_USER + FND_RESPONSIBILITY + HR schema)
Salesforce Sales Cloud
User
1:1Oracle EBS users are employees sourced from PER_ALL_ASSIGNMENTS_F with CRM responsibilities assigned via FND_RESPONSIBILITIES. We extract FND_USER (username, email, start/end dates) and FND_RESPONSIBILITY (responsibility name, application) during discovery. Salesforce User records must be provisioned manually by the customer's admin before migration because User creation requires active Salesforce licenses. We provide a user mapping table that matches EBS user emails to Salesforce User IDs for OwnerId resolution during record migration.
Oracle EBS CRM
Territory (AS_TERRITORIES base tables)
Salesforce Sales Cloud
Territory (or Custom Field)
lossyOracle EBS Territory definitions stored in AS_TERRITORIES with hierarchical org references map to a combination of Salesforce custom fields or the native Territory Management object (available in Enterprise and above with territory management enabled). We extract the territory hierarchy and assignment rules and document them as a mapping for the customer's Salesforce admin to implement via Territory Management or a custom territory custom object with rollup hierarchy.
Oracle EBS CRM
Oracle Workflows (WF_ tables, PL/SQL packages)
Salesforce Sales Cloud
Documentation only (Salesforce Flow rebuild required)
1:1Oracle Workflows encode routing, approval, and notification logic in PL/SQL packages with no export mechanism. We document every active Workflow at discovery — triggering event, routing conditions, approver assignments — in a structured report. This report is handed off to the customer's implementation team to rebuild the automation logic in Salesforce Flow. Workflows do not migrate as data or code within standard migration scope.
Oracle EBS CRM
Forecasts (CZ forecast tables)
Salesforce Sales Cloud
Documentation only (Salesforce Forecasting rebuild required)
1:1Forecasting in Oracle EBS CRM is implemented through the Collaborative Selling module with forecast data in versioned CZ tables tightly coupled to Opportunities and Territories. There is no standard export mechanism for forecast data, and forecast records represent point-in-time snapshots that are not meaningful in a new CRM with a different data model. We do not migrate Forecast data. We document the EBS forecast structure (versions, territory rollup, amount vs quantity forecast) and recommend rebuilding in Salesforce Collaborative Forecasting post-migration.
Oracle EBS CRM
Lead (if Oracle CRM On Demand or Fusion path)
Salesforce Sales Cloud
Lead
1:1If the source system is Oracle CRM On Demand rather than Oracle EBS (a related but distinct product), Leads are available as a standard object and map directly to Salesforce Lead. Lead Status, Lead Source, and any custom Lead fields migrate with type mapping. This mapping applies only when the source is Oracle CRM On Demand; Oracle EBS CRM does not have a standalone Lead object separate from the Account-Contact model.
| Oracle EBS CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Account (ARHZTARZ base tables) | Account1:1 | Fully supported | |
| Contact (HR/AR schemas) | Contact1:1 | Fully supported | |
| Opportunity (CZ Collaborative Selling schema) | Opportunity1:1 | Fully supported | |
| Custom Objects (user-defined tables) | Custom Objects (__c)1:1 | Fully supported | |
| Attachments (BFILE/CLOB in DB or filesystem) | ContentDocument (Salesforce Files)1:1 | Fully supported | |
| Sales Activities / Tasks (Teleservice or Interaction Center tables) | Task1:1 | Fully supported | |
| Notes / History (FZ_NOTES or audit trail) | Note1:1 | Fully supported | |
| User / Employee (FND_USER + FND_RESPONSIBILITY + HR schema) | User1:1 | Fully supported | |
| Territory (AS_TERRITORIES base tables) | Territory (or Custom Field)lossy | Fully supported | |
| Oracle Workflows (WF_ tables, PL/SQL packages) | Documentation only (Salesforce Flow rebuild required)1:1 | Fully supported | |
| Forecasts (CZ forecast tables) | Documentation only (Salesforce Forecasting rebuild required)1:1 | Fully supported | |
| Lead (if Oracle CRM On Demand or Fusion path) | Lead1: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
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 schema enumeration
We audit the source Oracle EBS database across all relevant schemas (ARHZTARZ for Accounts, HZ tables for Contacts, CZ or ASF for Opportunities, IC tables for Activities, FND tables for Users, and any user-defined custom tables). We identify the EBS version (12.1 or 12.2), the CRM module version, the active schema for Opportunities, and the attachment storage configuration (LOB in database or filesystem). We also enumerate Oracle Workflow definitions (WF_ tables) and Territory structures (AS_TERRITORIES) for the documentation deliverables. The discovery output is a written schema map, a record-count estimate per object, and a migration scope document signed off by the customer's technical lead.
Destination schema design and pre-creation
We design the Salesforce destination schema to match the extracted EBS data model. This includes creating custom objects (with __c API names), custom fields, Record Types for multi-pipeline Opportunity structures, Sales Processes for stage whitelist management, and custom picklist fields for EBS Operating Unit mapping. We deploy the destination schema into a Salesforce Sandbox via metadata API before any data migration begins. If the destination org is an existing Salesforce deployment (rather than a fresh org), we coordinate with the customer's admin to ensure field API names do not conflict with existing custom fields.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume extracted from the Oracle EBS database. The customer's technical lead reconciles record counts (Accounts in, Contacts in, Opportunities in, Activities in), spot-checks 25-50 records against the EBS source, and validates that the Operating Unit and responsibility mappings are correctly applied. Schema corrections, field mapping adjustments, and any custom object additions happen in Sandbox before production migration begins. EBS 12.1 customers must acknowledge the unsupported status of the source system during this phase.
User provisioning and Owner reconciliation
We extract every distinct EBS user (FND_USER) and their responsibility assignments (FND_RESPONSIBILITY) and match by email against the Salesforce destination org's User table. Users without a matching Salesforce User go to a reconciliation queue. The customer's Salesforce admin provisions any missing Users with appropriate profiles and licenses. Migration cannot proceed past this step because OwnerId references on Account, Contact, and Opportunity require valid Salesforce User IDs. We provide a structured Owner mapping spreadsheet that the admin completes before the production migration window.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from ARHZTARZ with AR_CUSTOMER_NUMBER as external ID), Contacts (with AccountId resolved via the Account external ID), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Custom Objects (with FK references to Accounts resolved at insert time), Attachments (uploaded as ContentVersion and linked via ContentDocumentLink), Activities (Tasks with TaskSubtype mapped), and Notes. Each phase emits a row-count reconciliation report before the next phase begins. We use Salesforce Bulk API 2.0 with batch chunking for large data volumes and handle API rate limits with exponential backoff.
Cutover, validation, and automation rebuild handoff
We freeze EBS 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 Oracle Workflow inventory document and the Territory mapping documentation to the customer's admin team for rebuild in Salesforce Flow and Territory Management. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's sales team. We do not rebuild Oracle Workflows as Salesforce Flow within migration scope; that is a separate engagement or an internal admin rebuild task.
Platform deep dives
Oracle EBS CRM
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 EBS CRM 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 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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Oracle EBS CRM 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 EBS CRM
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.