ERP migration
Field-level mapping, validation, and rollback between Sales ERP and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
Sales ERP
Source
Epicor Prophet 21
Destination
Compatibility
11 of 14
objects map 1:1 between Sales ERP and Epicor Prophet 21.
Complexity
BStandard
Timeline
10-16 weeks
Overview
Moving from Sales ERP to Epicor ERP is a CRM-to-manufacturing-ERP migration, not a lateral CRM swap. Sales ERP inherits Salesforce's CRM-centric object model—Accounts, Contacts, Opportunities, Orders, Contracts—where production, inventory, and shop-floor data typically live outside the system or in custom objects. Epicor ERP is built around the manufacturing data model: Customers, Suppliers, Parts, Jobs, Quotes, MES, and Supply Chain Management are native objects with deep relationships. We extract from Sales ERP using the Bulk API 2.0, transform the CRM schema into Epicor's relational model (resolving Account-to-Customer, Opportunity-to-SalesOrder, and Product-to-Part mappings), and ingest through Epicor's Service Connect REST and OData endpoints. We do not migrate Workflows, Automations, or Flows as code; we deliver a written inventory of every active automation for the customer's Epicor admin to rebuild post-migration.
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 Sales ERP object lands in Epicor Prophet 21, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Sales ERP
Account
Epicor Prophet 21
Customer
1:1Sales ERP Accounts map to Epicor Customers. The Account Name, Billing Address, Shipping Address, Phone, and Website fields translate directly. Parent Account relationships (hierarchy) in Salesforce map to Epicor Customer Territory or Customer Group assignments. We resolve CustomerID at ingestion time by matching Account Name against Epicor's Customer table, and we flag any duplicate Customer names for the customer's Epicor admin to resolve before the Orders phase begins.
Sales ERP
Contact
Epicor Prophet 21
Contact
1:1Sales ERP Contacts map to Epicor Contacts. The Contact Name, Email, Phone, and Title fields migrate directly. Salesforce Account.Contact relationships map to Epicor Customer.PhoneNum linked to Customer via CustomerID. We preserve the Contact's original Salesforce ID in a reference field for audit trail purposes.
Sales ERP
Opportunity
Epicor Prophet 21
Sales Order / Quote
1:manySales ERP Opportunities map to Epicor Quotes and Sales Orders depending on pipeline stage. Open pipeline Opportunities (Stage not Closed-Won or Closed-Lost) map to Epicor Quotes. Closed-Won Opportunities with fulfillment intent map to Epicor Sales Orders with OrderHed and OrderDtl records. We preserve the original Opportunity StageName as a custom field for post-migration reconciliation.
Sales ERP
Order
Epicor Prophet 21
OrderHed + OrderDtl
1:1Sales ERP Orders map to Epicor OrderHed (header) and OrderDtl (line) records. The Account-Order-Contract lineage in Salesforce translates to Customer-SalesOrder-ShipTo relationships in Epicor. Order status transitions (draft, submitted, fulfilled, invoiced) map to Epicor OrderRel records and their ReleaseStatus values. We validate that all Order line items have a matching Epicor Part or Miscellaneous charge.
Sales ERP
Contract
Epicor Prophet 21
Customer Contract / Quote
1:1Sales ERP Contracts map to Epicor Customer Contracts (Service Contracts) if the customer's Epicor license includes Epicor Service. Contract start and end dates, status, and renewal terms migrate as ContractHed records. Contracts without an active service entitlement migrate as reference records with a flag for manual review.
Sales ERP
Product2
Epicor Prophet 21
Part
1:1Sales ERP Products map to Epicor Parts (Part table). The Product2 Name, ProductCode, Description, and IsActive flag map to Part.PartNum, PartDescription, and InActive flag. We validate that each Product has at least one active Price Book Entry before migration; those entries map to Epicor Part Plant pricing records or Price Lists.
Sales ERP
Price Book Entry
Epicor Prophet 21
Part Plant / Price List
lossySalesforce Price Book Entries map to Epicor Part Plant records (site-specific pricing) and Price List entries (standard pricing). Custom Price Books require explicit mapping to Epicor Price Codes. UnitPrice migrates as the base price; we flag any Price Book Entry linked to an inactive Product.
Sales ERP
Opportunity Line Item
Epicor Prophet 21
OrderDtl
1:1Sales ERP Opportunity Line Items map to Epicor OrderDtl records at the same time as their parent Sales Order. We resolve the Product2 reference to an Epicor Part.PartNum at migration time and validate that the Quantity and UnitPrice translate correctly to Epicor's pricing conventions (rounded to the destination currency decimal places).
Sales ERP
User
Epicor Prophet 21
Customer / Supplier / Employee
1:1Sales ERP Users map to Epicor Customer records if the User represents a company (account-type logic), or to Employee records if the User represents an Epicor employee who will log into the system. Owner assignments on Salesforce records (AccountId, OwnerId) translate to Epicor's RequestByID (Employee) or ShipToNum references. We match by email.
Sales ERP
Case
Epicor Prophet 21
Service Call / Service Order
1:1Sales ERP Cases map to Epicor Service Call (FieldService) records if the customer licenses Epicor's Service module. Case Status, Priority, and Description map to ServiceCallHed fields. Account-Contact relationships on Cases translate to Epicor Customer.Contact references. Cases without FieldService licensing migrate as reference records.
Sales ERP
Campaign
Epicor Prophet 21
Customer Group / Segment
lossySales ERP Campaigns map to Epicor Customer Groups or Marketing Segments depending on the Epicor modules licensed. Campaign Member statuses do not have a direct Epicor equivalent; we map CampaignMember Status to a custom field on the related Customer record for segmentation purposes.
Sales ERP
Lead
Epicor Prophet 21
Prospect / Customer (pre-onboarding)
1:1Sales ERP Leads that have not converted to Contacts map to Epicor Prospect records if Epicor Prospect management is licensed. Lead Source and Lead Status migrate as custom fields on the Prospect record. Converted Leads that already exist as Contacts in Salesforce map to Epicor Contacts as described above.
Sales ERP
Custom Objects
Epicor Prophet 21
User-Defined Tables / UD Tables
1:1Sales ERP Custom Objects (ending in __c) map to Epicor User-Defined (UD) Tables or standard Epicor tables based on their data function during discovery. Custom object records migrate as rows in the corresponding Epicor UD table, with foreign key relationships resolved to the appropriate Epicor primary table. We cannot replicate Salesforce formula fields, validation rules, or roll-up summaries in Epicor; these require rebuild as Epicor calculated fields or UD method code.
Sales ERP
Attachments and Notes
Epicor Prophet 21
Document Management (EDMS)
1:1Sales ERP Attachments and Notes export as Base64-encoded binary records and migrate to Epicor's Document Management system (EDMS) or as file references linked to the parent Epicor record (Customer, Order, Part, Job). We preserve the original Salesforce ID in a reference field for audit. Multi-attachment-per-record scenarios are resolved by creating a folder structure in Epicor EDMS that mirrors the Salesforce parent-child hierarchy.
| Sales ERP | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Account | Customer1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Opportunity | Sales Order / Quote1:many | Fully supported | |
| Order | OrderHed + OrderDtl1:1 | Fully supported | |
| Contract | Customer Contract / Quote1:1 | Fully supported | |
| Product2 | Part1:1 | Fully supported | |
| Price Book Entry | Part Plant / Price Listlossy | Fully supported | |
| Opportunity Line Item | OrderDtl1:1 | Fully supported | |
| User | Customer / Supplier / Employee1:1 | Fully supported | |
| Case | Service Call / Service Order1:1 | Fully supported | |
| Campaign | Customer Group / Segmentlossy | Fully supported | |
| Lead | Prospect / Customer (pre-onboarding)1:1 | Fully supported | |
| Custom Objects | User-Defined Tables / UD Tables1:1 | Mapping required | |
| Attachments and Notes | Document Management (EDMS)1:1 | Mapping required |
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.
Sales ERP gotchas
API rate limits cap daily call volume by license tier
Historical data is often left behind to cut implementation scope
Custom object attachments require Base64 encoding
Object relationships break silently without ID preservation
Data quality issues derail migration timelines
Epicor Prophet 21 gotchas
Third-party bolt-on integrations complicate migration scope
Dirty data without standardized processes compounds migration risk
SDK customizations and BPMs may not survive platform upgrades
Report-based export only for non-technical users
Per-user pricing model requires accurate user count before migration planning
Pair-specific challenges
Migration approach
Discovery and Epicor edition assessment
We audit the source Sales ERP org across license tier (Starter through Unlimited), API call allocation, active custom objects, Opportunity pipeline count, Order volume, Product count with BOM complexity, Contract records, and Case volume. We pair this with an Epicor edition assessment: which modules are licensed (Core Financials, MES, APS, Quality, Field Service, Supply Chain Management), how many sites, and whether the Epicor deployment is cloud or on-premise. The discovery output is a written migration scope, a Salesforce-to-Epicor object mapping draft, and a BOM and Job readiness assessment.
Epicor schema design and BOM resolution
We design the destination Epicor schema: Customer records with territory and group assignments, Part records with PartClass and UOM translations, Price List configuration, and the Quote versus Sales Order versus Job routing rules derived from the Opportunity pipeline. If Sales ERP Products require multi-level BOMs in Epicor, we extract the BOM structure from custom objects or customer-supplied engineering data before any Epicor table is populated. We deploy schema changes to the Epicor test environment first.
Sandbox migration and reconciliation
We run a full migration into the Epicor test or sandbox environment using production-like data volume. The customer's Epicor admin and operations lead reconcile record counts (Customers in, Orders in, Parts in, Jobs in), spot-check 25-50 random records against the Salesforce source, and validate BOM structure on a sample of manufactured parts. Any mapping corrections, BOM gaps, or missing Part assignments happen here. Sign-off on the sandbox migration gates production migration.
Owner and user provisioning
We extract every distinct Salesforce User referenced on Account, Contact, Order, Contract, and Case records and match by email against the Epicor destination Employee and Customer tables. Sales ERP Owner assignments for CRM records translate to Epicor Employee (RequestByID) references on production records. Any Salesforce User without a matching Epicor Employee goes to a reconciliation queue for the customer's Epicor admin to provision before production migration continues.
Production migration in dependency order
We run production migration in record-dependency order: Customers (from Accounts), Contacts, Parts (from Products with BOM resolution), Price Lists (from Price Book Entries), Sales Orders (from Orders and Opportunities), Order Details (from Line Items), Contracts, Service Calls (from Cases), then Custom Objects (UD Tables). Active Job and Job material records import last. Each phase emits a row-count reconciliation report before the next phase begins. Epicor's OData and Service Connect REST endpoints handle the ingestion with chunking and error logging.
Cutover, validation, and automation rebuild handoff
We freeze Salesforce ERP writes during cutover, run a final delta migration of any records modified during the migration window, then enable Epicor as the system of record. We deliver a written inventory of every Salesforce Flow, Workflow Rule, and automation requiring rebuild in Epicor BPM or Kinetic automations. We support a one-week post-go-live window where we resolve reconciliation issues. We do not rebuild Salesforce automations as Epicor BPMs inside the migration scope; that is a separate engagement or an internal Epicor admin task.
Platform deep dives
Sales ERP
Source
Strengths
Weaknesses
Epicor Prophet 21
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP 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 Sales ERP and Epicor Prophet 21.
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
Sales ERP: 1,000 to 100,000 API calls per day depending on license tier; concurrent request limits also apply.
Data volume sensitivity
Sales ERP exposes a bulk API — large-volume migrations stream efficiently.
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 Sales ERP to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your Sales ERP to Epicor Prophet 21 migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Sales ERP
Other ways to arrive at Epicor Prophet 21
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.