CRM migration
Field-level mapping, validation, and rollback between Oracle EBS CRM and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Oracle EBS CRM
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
8 of 8
objects map 1:1 between Oracle EBS CRM and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
5-8 weeks
Overview
Migrating from Oracle E-Business Suite CRM to Microsoft Microsoft Dynamics 365 Sales requires extracting data from a tightly coupled APPS schema that spans CRM, ERP, HR, and supply chain modules in a single Oracle database instance — there is no modern REST API for CRM data in EBS. We connect directly to the Oracle database with read-only credentials scoped to CRM-relevant schemas, enumerate target tables during discovery, and sequence every object in parent-before-child dependency order so that AccountId and Contact lookups resolve before Opportunity and Activity inserts. We flag Oracle Workflow definitions (stored in WF_ tables with PL/SQL coupling) and Territory hierarchies (AS_TERRITORIES base tables) as transformation candidates — these have no direct equivalent construct in Microsoft Dynamics 365 Sales and are documented for the customer's admin to rebuild using Power Automate and the native Territory management tools. We do not migrate Workflows, Sequences, or automations as code; we deliver a written inventory of every active Oracle Workflow with its triggering event, routing conditions, and approver assignments for manual rebuild in Dynamics.
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.
Source platform
Oracle EBS CRM platform overview
Scorecard, SWOT, gotchas, and pricing for Oracle EBS CRM.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales , 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 (RA_CUSTOMERS / ARHZTA tables)
Microsoft Dynamics 365 Sales
Account
1:1Oracle EBS CRM Accounts reside in the ARHZTA_RZ base tables and are exposed through APPS schema views. We extract the party_id, account_number, customer_name, and status columns, then map them to Microsoft Dynamics 365 Sales Account (name, accountnumber, statecode). The APPS schema may include inactive accounts that must be flagged or excluded based on the customer's data retention policy. We run the Account import before any Contact import so that the AccountId lookup is satisfied at the moment of Contact insert.
Oracle EBS CRM
Contact (PER_ALL_ASSIGNMENTS_F / HR schema)
Microsoft Dynamics 365 Sales
Contact
1:1EBS Contacts live in the HR schema or AR schema depending on whether they are employees or external parties, with email and phone attributes spread across RA_CONTACTS and HZ_PARTIES. We extract per_person_id, email_address, and party_name, then map them to Microsoft Dynamics 365 Sales Contact (fullname, emailaddress1, telephone1). We preserve the link to the parent Account via the party_id to Account.customer_id mapping. Concurrent-user and shared-user licensing models in EBS may produce duplicate contact rows that we deduplicate by email before import.
Oracle EBS CRM
Opportunity (CZ Collaborative Selling schema)
Microsoft Dynamics 365 Sales
Opportunity
1:1Opportunities in EBS are stored in the CZ (Collaborative Selling) or deprecated ASF schemas depending on which CRM module version is deployed. We identify the correct schema at discovery, extract stage_name, probability, close_date, and revenue fields, then map them to Microsoft Dynamics 365 Sales Opportunity (name, closeprobability, estimatedclosedate, estimatedvalue). We create a Sales Process in Dynamics with stage values that match the EBS CZ stage names before migration so that stage assignment is consistent at insert time.
Oracle EBS CRM
Custom Objects (user-defined tables in base product schemas)
Microsoft Dynamics 365 Sales
Custom Table (Dataverse)
1:1EBS custom objects are stored in user-defined tables within base product schemas, often with FK columns pointing to RA_CUSTOMERS or OE_HEADERS. We extract the DDL for each custom table during discovery, map the column types to Dataverse column types (VARCHAR2 to Text, NUMBER to Decimal or Whole Number, DATE to DateTime), pre-create the destination custom table in the customer's Dynamics 365 environment, then import the records in dependency order after the parent standard objects are confirmed in the destination.
Oracle EBS CRM
Attachments (BFILE / CLOB columns or file system)
Microsoft Dynamics 365 Sales
Note / Attachment (SharePoint or Dataverse)
1:1Attachments in EBS CRM are stored as LOB data (BFILE or CLOB) in the database or on the file system depending on the attachment configuration. We extract them as BASE64-encoded binary blobs, create corresponding Note records in Microsoft Dynamics 365 Sales (notetext, objectid, objecttypecode) with the file content as an annotation, or route them to a SharePoint document location if the customer has SharePoint integration enabled. We preserve the original filename and MIME type in the annotation record.
Oracle EBS CRM
Sales Activities / Tasks (Teleservice or Interaction Center tables)
Microsoft Dynamics 365 Sales
Activity (Task, Email, Phone Call)
1:1Activities and tasks in 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 correct schema at discovery, extract the activity type, subject, description, and timestamp columns, then map each to the corresponding Microsoft Dynamics 365 Sales Activity type (Task, Email, PhoneCall). Activity owner maps to the resolved Dynamics User ID via the FND_USER email lookup performed during owner reconciliation.
Oracle EBS CRM
Notes / History (FZ_NOTES or application audit trail)
Microsoft Dynamics 365 Sales
Note
1:1Notes and audit history in EBS CRM are stored in generic note tables (FZ_NOTES or equivalent) or in the application-level audit trail. We extract the note body as a text blob with its creation timestamp and owner reference, then map to Microsoft Dynamics 365 Sales Note (notetext, createdon, ownerid). We link the Note to the parent Account or Contact record via the objectid reference resolved from the source note's reference columns.
Oracle EBS CRM
User / Employee (FND_USER + FND_RESPONSIBILITIES)
Microsoft Dynamics 365 Sales
User
1:1EBS users are employees sourced from the HR schema (PER_ALL_ASSIGNMENTS_F) with CRM-specific responsibilities assigned via FND_RESPONSIBILITIES. We extract the FND_USER and FND_RESPONSIBILITY tables during discovery to get an accurate user count and responsibility matrix. We match EBS users to Microsoft Dynamics 365 Sales Users by email address during owner reconciliation. Any EBS user without a matching Dynamics User is held in a reconciliation queue for the customer's admin to provision before record import resumes, since OwnerId references are required on most standard objects.
| Oracle EBS CRM | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Account (RA_CUSTOMERS / ARHZTA tables) | Account1:1 | Fully supported | |
| Contact (PER_ALL_ASSIGNMENTS_F / HR schema) | Contact1:1 | Fully supported | |
| Opportunity (CZ Collaborative Selling schema) | Opportunity1:1 | Fully supported | |
| Custom Objects (user-defined tables in base product schemas) | Custom Table (Dataverse)1:1 | Fully supported | |
| Attachments (BFILE / CLOB columns or file system) | Note / Attachment (SharePoint or Dataverse)1:1 | Fully supported | |
| Sales Activities / Tasks (Teleservice or Interaction Center tables) | Activity (Task, Email, Phone Call)1:1 | Fully supported | |
| Notes / History (FZ_NOTES or application audit trail) | Note1:1 | Fully supported | |
| User / Employee (FND_USER + FND_RESPONSIBILITIES) | User1: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
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Discovery and database connection scoping
We audit the source Oracle EBS environment to identify the CRM-relevant schemas (ARHZTA_RZ, CZ, HZ_PARTIES, FZ_NOTES, AS_TERRITORIES, and any custom object tables), the installed EBS CRM module version, and the active EBS version number. We validate direct database connectivity from our migration infrastructure to the EBS Oracle server, confirm the read-only credential requirements with the customer's Oracle DBA, and enumerate the distinct EBS org contexts (multi-org installations may have multiple sets of the same tables per org_id). We also extract FND_USER and FND_RESPONSIBILITY to get an accurate CRM user count and responsibility matrix. The discovery output is a written migration scope document covering schema inventory, data volume estimates, and a risk assessment for the APPS schema coupling.
Data quality assessment and cleansing
Legacy EBS data frequently contains duplicates, inactive records, and orphaned relationships (particularly in multi-org setups where the same account may appear in multiple org contexts). We run a data quality assessment against the extracted CRM records, flagging duplicate Account records by account_number, inactive Contacts without email addresses, and Opportunities with missing parent Account references. We deliver a cleansing report to the customer's CRM admin and agree on exclusion criteria before migration begins. Skipping this step is the most common cause of Dynamics 365 post-migration data cleanup projects.
Destination schema provisioning in Microsoft Dynamics 365 Sales
We pre-create any custom Dataverse tables required for EBS custom objects, including all columns, lookup relationships, and alternate keys that map to the source EBS table primary keys. We configure Sales Processes in Microsoft Dynamics 365 Sales that match the EBS Opportunity stage names and probability percentages. Territory structures extracted from AS_TERRITORIES are documented for post-migration rebuild. We deploy the destination schema into a Dynamics 365 Sandbox environment first for validation, then into the production org after customer sign-off. Oracle Workflow definitions are inventoried and documented for separate rebuild in Power Automate; they do not deploy into Dynamics as part of the migration.
Owner reconciliation and User provisioning
We extract every distinct EBS user referenced on Account, Contact, Opportunity, and Activity records and match by email against the Microsoft Dynamics 365 Sales User table. Users without a matching Dynamics User are held in a reconciliation queue. The customer's Dynamics admin provisions any missing Users (active or inactive depending on whether the original EBS user is still active in the organization). Migration cannot proceed past this step because OwnerId references on Account, Contact, and Opportunity are required fields in Microsoft Dynamics 365 Sales .
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from EBS RA_CUSTOMERS base tables), Contacts (with AccountId resolved via party_id mapping), Opportunities (with AccountId, OwnerId, and stage resolved from the CZ schema), Custom Objects (with their parent lookups resolved to Account or Contact), Attachments (BASE64-encoded and linked via annotation records), Activities and Tasks (mapped from Interaction Center or Teleservice tables to Dynamics Activity types), and Notes (from FZ_NOTES). Each phase emits a row-count reconciliation report before the next phase begins. We use the Dynamics Dataverse Bulk API 2.0 with batch chunking and exponential backoff for large record volumes.
Cutover, validation, and Workflow rebuild handoff
We freeze EBS writes during the cutover window, run a final delta migration of any records modified during the migration process, then enable Microsoft Dynamics 365 Sales as the system of record. We deliver the Oracle Workflow inventory document and the Territory mapping document to the customer's admin team, who rebuilds these in Power Automate and Dynamics native Territory Management respectively. 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 Power Automate flows or Dynamics workflows inside the migration scope; that is a separate engagement.
Platform deep dives
Oracle EBS CRM
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Oracle EBS CRM to Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales
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.