ERP migration
Field-level mapping, validation, and rollback between FACT ERP.NG and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
FACT ERP.NG
Source
Epicor Prophet 21
Destination
Compatibility
13 of 15
objects map 1:1 between FACT ERP.NG and Epicor Prophet 21.
Complexity
BStandard
Timeline
6-10 weeks
Overview
Moving from FACT ERP.NG to Epicor ERP is a structural migration across two manufacturing-first ERP platforms with different schema philosophies. FACT ERP.NG stores business rules and workflow states as platform parameters in its configuration-only model; Epicor stores equivalent logic as User-Defined Columns (UDCs), UD Codes, and BPMs. We extract every active non-default parameter from FACT ERP.NG during discovery, map each to an equivalent Epicor UDC or system control, and replay the configuration into the destination before transactional data loads begin. The payroll module in FACT ERP.NG posts directly to the General Ledger as journal entries, creating a mandatory sequencing dependency: we must extract Payroll first, extract the resulting GL postings as a linked journal entry set, and load Payroll before GL in the destination. Epicor ERP targets manufacturers with 50 to 2,500 employees and supports discrete, make-to-order, engineer-to-order, and mixed-mode production alongside wholesale distribution. FACT ERP.NG ships with a 29-day go-live promise for SMEs, while Epicor implementations routinely require 4 to 18 months depending on company size and customization scope.
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 FACT ERP.NG 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.
FACT ERP.NG
Customer
Epicor Prophet 21
Customer
1:1FACT ERP.NG Customer records carrying addresses, contact details, GST/Tax IDs, credit limits, and payment terms map directly to Epicor Customer records. The customer code, name, address, phone, email, tax registration number, credit limit, and payment terms migrate 1:1. We use CustomerCustNum or a comparable dedupe key during import. Customer-to-Sales-Order references are preserved so that existing orders link correctly to the customer record.
FACT ERP.NG
Supplier
Epicor Prophet 21
Supplier
1:1FACT ERP.NG Supplier master records including bank details, tax registration, and payment terms map to Epicor Supplier (Vendor) records. Supplier-to-Purchase-Order and Supplier-to-AP-invoice references are retained as linked records. If FACT stores bank account details in a separate address or contact record, we flatten them into Epicor's VendorBank table during transform.
FACT ERP.NG
Item / Product
Epicor Prophet 21
Part / Product
1:1FACT ERP.NG Items carry pricing, BOM links, serial number flags, and barcode data. They map to Epicor Part records. Standard cost, average cost, and list price fields migrate to Epicor's PartCost and PartPlant records. Serial number tracking and lot control flags map to Epicor's PartLotControl and Part.NumSerial masked fields. Item.UOM from FACT maps to Epicor UOMClass and Part.UOMCode conversions.
FACT ERP.NG
Bill of Materials
Epicor Prophet 21
ECOMtl (Multi-Level BOM)
1:1FACT ERP.NG multi-level BOM structures map to Epicor's ECOMtl table with parent part and revision revision-level assembly lines. We extract BOM rows individually, chunk by parent part, and load them in revision sequence so that sub-assemblies and components are resolved before the parent BOM loads. If FACT BOMs include phantom assemblies, we map these to Epicor's MtlPartFlag = Phantom on the ECOMtl record.
FACT ERP.NG
Sales Order
Epicor Prophet 21
OrderHed + OrderDtl
1:1FACT ERP.NG Sales Orders carry customer references, line items, pricing, taxes, and fulfillment status. Each order header and its lines migrate as a single transactional unit so that partial fulfillments, backorder flags, and pricing tiers are preserved. OrderHed.OrderNum and OrderDtl.OrderLine provide the parent-child linkage. We flag open versus closed order status against Epicor's OrderHed.OpenOrder field.
FACT ERP.NG
Purchase Order
Epicor Prophet 21
POHeader + PODetail
1:1FACT ERP.NG Purchase Orders carry supplier references, line items, expected delivery dates, and GRN linkages. We preserve the header-to-line structure and map open PO status to Epicor's POHeader.OpenPo field. GRN linkages from FACT map to Epicor PartTran receiving transactions if the customer chooses to carry forward receiving history; otherwise, open PO lines are migrated without historical PartTran records.
FACT ERP.NG
GL Account / Chart of Accounts
Epicor Prophet 21
GLAccount
1:1FACT ERP.NG's standard COA structure with account codes, descriptions, and account types maps to Epicor GLAccount records. Account codes migrate directly. Any account carrying a balance is flagged so that opening balances post correctly to Epicor's GLJrnDtl in the first open period. Account types (Asset, Liability, Equity, Revenue, Expense) map to Epicor GLAccount.AcctType.
FACT ERP.NG
Journal Entries / Transactions
Epicor Prophet 21
GLJrnDtl
1:1FACT ERP.NG posts AR, AP, and payroll directly to the GL as journal entries. These date-stamped, source-referenced records extract in date-range batches and map to Epicor GLJrnDtl. Journal batch number and journal code from FACT map to Epicor GLJrnDtl.JournalNum and GLJrnDtl.JournalCode. We enforce date-range chunking (typically monthly or quarterly) to manage batch size and maintain ledger integrity.
FACT ERP.NG
Payroll / Employee
Epicor Prophet 21
EmpBasic + Payrollhdr / PayChk
1:manyFACT ERP.NG Employee records include salary components, tax deductions, EPF/CPF contributions, and leave balances. They map to Epicor EmpBasic (employee master) plus Payrollhdr or PayChk (payroll transaction records). Because FACT payroll posts directly to the GL as journal entries, we must extract Payroll first, extract the resulting GL postings as a linked journal set, and then load Payroll before GL in Epicor. The payroll transactions carry period, salary, deductions, and employer contributions as line items that must resolve to the correct Epicor PayCode and Deduction/Benefit codes.
FACT ERP.NG
Payroll Journal Postings
Epicor Prophet 21
GLJrnDtl (from payroll)
1:1FACT ERP.NG's tight payroll-to-GL coupling means the GL postings generated by payroll processing are the authoritative financial record for salary expenses, tax withholdings, and employer contributions. We extract these as a separate journal batch marked with a payroll source code, then load them into Epicor GLJrnDtl after EmpBasic and Payrollhdr are committed. Loading GL before Payroll would create duplicate or orphaned debit/credit pairs in Epicor. We document the payroll journal sequence explicitly in the migration runbook.
FACT ERP.NG
Inventory / Warehouse
Epicor Prophet 21
PartWhse + PartBin
1:1FACT ERP.NG inventory balances maintained per warehouse per item map to Epicor PartWhse records with current qty, reorder point, and min/max levels. Serial and batch tracking fields require value-level mapping to Epicor PartLot. Warehouse codes from FACT map to Epicor Warehse.WarehouseCode and PartWhse.WarehouseNum. Multi-warehouse configurations are preserved with each warehouse's stock position as a separate PartWhse record.
FACT ERP.NG
Fixed Asset
Epicor Prophet 21
FAAsset
1:1FACT ERP.NG Fixed Asset records include acquisition cost, depreciation method, accumulated depreciation, and asset location. These map to Epicor FAAsset records. Depreciation schedules generated per accounting period migrate as FADepRul (depreciation rule) records. Asset book and tax book values from FACT map to separate FAAssetBook records in Epicor.
FACT ERP.NG
Configuration Parameters
Epicor Prophet 21
UDC + UD Code + System Maintenance
lossyFACT ERP.NG's Configuration Only model stores tax rates, approval workflows, pricing tiers, inventory matrix settings, and workflow states as platform parameters rather than custom fields. We extract every active non-default parameter during discovery and map each to an equivalent Epicor UDC (User-Defined Code) table or system control setting. If a FACT parameter has no direct Epicor equivalent, we document it in the configuration-replay section of the migration package and flag it for the customer's Epicor administrator to configure manually post-load.
FACT ERP.NG
CRM / Leads / Contacts
Epicor Prophet 21
Customer + Contact
1:1FACT ERP.NG's CRM module holds Leads, Contacts, Opportunities, and Activities. We migrate all four as linked objects preserving the contact-to-opportunity relationship. Lead records with no opportunity association map to Epicor Prospect or Lead tables if the destination Epicor edition supports them; qualified contacts with active business relationships map to Epicor Customer and Contact records. Opportunity stage and owner assignment are preserved on Epicor Opportunity or Quote records depending on the customer's sales process configuration.
FACT ERP.NG
E-Invoice Records (LHDN / InvoiceNow)
Epicor Prophet 21
Not migrated — no direct Epicor equivalent
1:1FACT ERP.NG supports Malaysian e-invoicing via LHDN/IRB and Singapore InvoiceNow compliance. We extract e-invoice metadata and XML payloads as reference records but do not load them into Epicor as functional e-invoice transactions. The destination Epicor system must have an equivalent compliance module (Epicor Tax Connect, Avalara, or a regional e-invoicing add-on) or the customer's administrator configures the compliance module separately. We provide a rebuild guide listing the e-invoice fields that require reconfiguration in the destination.
| FACT ERP.NG | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Customer | Customer1:1 | Fully supported | |
| Supplier | Supplier1:1 | Fully supported | |
| Item / Product | Part / Product1:1 | Fully supported | |
| Bill of Materials | ECOMtl (Multi-Level BOM)1:1 | Fully supported | |
| Sales Order | OrderHed + OrderDtl1:1 | Fully supported | |
| Purchase Order | POHeader + PODetail1:1 | Fully supported | |
| GL Account / Chart of Accounts | GLAccount1:1 | Fully supported | |
| Journal Entries / Transactions | GLJrnDtl1:1 | Mapping required | |
| Payroll / Employee | EmpBasic + Payrollhdr / PayChk1:many | Fully supported | |
| Payroll Journal Postings | GLJrnDtl (from payroll)1:1 | Fully supported | |
| Inventory / Warehouse | PartWhse + PartBin1:1 | Mapping required | |
| Fixed Asset | FAAsset1:1 | Fully supported | |
| Configuration Parameters | UDC + UD Code + System Maintenancelossy | Fully supported | |
| CRM / Leads / Contacts | Customer + Contact1:1 | Fully supported | |
| E-Invoice Records (LHDN / InvoiceNow) | Not migrated — no direct Epicor equivalent1: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.
FACT ERP.NG gotchas
Configuration parameters must be mapped as first-class migration objects
Payroll journal entries create a mandatory sequencing dependency with the GL
Slow report rendering can extend migration validation cycles
No publicly documented API for direct programmatic extraction
Dashboard configurations are not exportable data objects
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 extraction method confirmation
We audit the FACT ERP.NG environment across all active modules — Financials, CRM, Inventory, Manufacturing, Payroll, and Fixed Assets — and confirm the extraction method available. If direct database access is available, we document the schema, identify cross-module foreign key references, and map every table that holds transactional data. If direct access is not available, we confirm which FACT export utilities (Excel, CSV) cover each module and adjust the transform pipeline accordingly. We also extract the full configuration parameter dump from FACT's parameter layer. The discovery output is a written migration scope, extraction method confirmation, and object inventory with record counts per module.
Epicor schema design and configuration mapping
We design the destination Epicor schema in a sandbox environment. This includes provisioning Part records with the correct TypeCode (stock, non-stock, service, etc.), creating PartRev revisions for any manufacturing parts, mapping FACT UOM codes to Epicor UOMClass units, designing the GL account structure and fiscal calendar alignment, mapping FACT tax codes to Epicor Tax Connect or Avalara tax codes, and identifying all UDC tables that will hold FACT configuration parameter equivalents. Configuration parameters from FACT are mapped to Epicor UDC Code, UD01-UD30 UD columns, or system control settings. The schema design is validated in the sandbox before any production data moves.
Configuration replay and sandbox migration
We replay every active non-default configuration parameter from FACT ERP.NG into Epicor as UDC codes, system maintenance settings, and workflow configuration records. This is the first data load into Epicor, as all downstream transactional records depend on these settings being in place. After configuration replay, we run a full sandbox migration using production-like data volumes. The customer's finance and operations leads reconcile account balance totals, inventory counts, open order values, and payroll headcounts against the FACT ERP.NG source before signing off on the schema and mapping. Corrections are applied to the migration scripts in the sandbox, not in production.
Payroll-first extraction and GL sequencing
We extract FACT ERP.NG Payroll records first, including employee salaries, deductions, EPF/CPF contributions, and leave balances. From the extracted payroll run, we identify the resulting GL journal entries generated by the payroll posting. These journal entries are extracted as a separate batch tagged with a payroll source code. This sequencing is mandatory: Payroll data (EmpBasic, Payrollhdr) must be committed to Epicor before GL journal entries load, so that salary expense accounts, tax withholding accounts, and employer contribution accounts exist and are correctly mapped in Epicor. We document the payroll journal source codes in the migration runbook for audit traceability.
Production migration in dependency order
We run production migration in strict record-dependency order: Configuration parameters (UDCs, system settings) first, then Employees and Payroll, then GL Accounts, then GL journal entries (after payroll is committed), then Customers and Suppliers, then Parts and PartRev revisions, then BOMs (ECOMtl) in topological load order, then Inventory (PartWhse), then Sales Orders and Purchase Orders, then Fixed Assets, then CRM data. Each phase emits a row-count reconciliation report before the next phase begins. Epicor's Bulk API is used for high-volume loads (GL journals, inventory transactions) with batch chunking and exponential backoff on rate-limit responses.
Cutover, delta migration, and workflow rebuild handoff
We freeze FACT ERP.NG writes during the cutover window, run a final delta migration capturing any records created or modified since the initial production load, and then hand over Epicor as the system of record. We deliver a written inventory of FACT workflows, approval chains, and automated processes that do not migrate into Epicor, with recommendations for Epicor Workflow, BAM, and BPM equivalents. E-invoice rebuild guidance is included separately. We support a one-week post-cutover window to resolve data reconciliation issues raised by the customer's team. We do not rebuild FACT workflows as Epicor BPMs as part of standard migration scope; that is a separate engagement or an internal Epicor administrator task.
Platform deep dives
FACT ERP.NG
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 FACT ERP.NG 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
FACT ERP.NG: Not publicly documented.
Data volume sensitivity
FACT ERP.NG 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 FACT ERP.NG to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your FACT ERP.NG 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 FACT ERP.NG
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.