ERP migration

Migrate from FACT ERP.NG to Epicor Prophet 21

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 logo

FACT ERP.NG

Source

Epicor Prophet 21

Destination

Epicor Prophet 21 logo

Compatibility

87%

13 of 15

objects map 1:1 between FACT ERP.NG and Epicor Prophet 21.

Complexity

BStandard

Timeline

6-10 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

FACT ERP.NG logo

FACT ERP.NG

What's pushing teams away

  • Slow report rendering and processing delays—users report waiting extended periods for what should be quick queries, especially on larger datasets with full period ranges.
  • Limited depth in certain functional areas—some users supplement FACT ERP.NG with separate software for tasks like advanced HR analytics or niche manufacturing scheduling that the built-in modules do not fully cover.
  • Learning curve for new users despite ease-of-use claims—while the interface is familiar to power users, employees unfamiliar with integrated ERP workflows require structured training before becoming productive.
  • Customisation constraints frustrate niche industry requirements—the Configuration Only model means businesses with highly specific workflows sometimes cannot adapt the system without workaround processes.

Choosing

Epicor Prophet 21 logo

Epicor Prophet 21

What's pulling them in

  • Industry-specific design for wholesale distributors, not a general-purpose ERP repurposed for distribution — distributors choose P21 because it matches their replenishment, kitting, and counter-sale workflows out of the box.
  • Strong inventory control with automated replenishment, lot and serial tracking, and multi-warehouse management appeals to distributors with complex stock requirements and tight margin pressure.
  • Responsive customer support cited across G2 and Gartner reviews, with Epicor's 90% retention rate reflecting long-term customer satisfaction in a market where switching costs are high.
  • Cloud deployment on Microsoft Azure provides the flexibility to scale user counts and warehouse locations without on-premise infrastructure investment.
  • The Software Development Kit lets distributors personalize P21 to their specific business processes without modifying the application source code, preserving upgrade paths.

Object mapping

How FACT ERP.NG objects map to Epicor Prophet 21

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

maps to

Epicor Prophet 21

Customer

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

Supplier

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

Part / Product

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

ECOMtl (Multi-Level BOM)

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

OrderHed + OrderDtl

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

POHeader + PODetail

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

GLAccount

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

GLJrnDtl

1:1
Mapping required

FACT 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

maps to

Epicor Prophet 21

EmpBasic + Payrollhdr / PayChk

1:many
Fully supported

FACT 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

maps to

Epicor Prophet 21

GLJrnDtl (from payroll)

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

PartWhse + PartBin

1:1
Mapping required

FACT 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

maps to

Epicor Prophet 21

FAAsset

1:1
Fully supported

FACT 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

maps to

Epicor Prophet 21

UDC + UD Code + System Maintenance

lossy
Fully supported

FACT 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

maps to

Epicor Prophet 21

Customer + Contact

1:1
Fully supported

FACT 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)

maps to

Epicor Prophet 21

Not migrated — no direct Epicor equivalent

1:1
Fully supported

FACT 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.

Gotchas + challenges

What specifically takes care here

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 logo

FACT ERP.NG gotchas

High

Configuration parameters must be mapped as first-class migration objects

High

Payroll journal entries create a mandatory sequencing dependency with the GL

Medium

Slow report rendering can extend migration validation cycles

Medium

No publicly documented API for direct programmatic extraction

Low

Dashboard configurations are not exportable data objects

Epicor Prophet 21 logo

Epicor Prophet 21 gotchas

High

Third-party bolt-on integrations complicate migration scope

High

Dirty data without standardized processes compounds migration risk

Medium

SDK customizations and BPMs may not survive platform upgrades

Medium

Report-based export only for non-technical users

Low

Per-user pricing model requires accurate user count before migration planning

Pair-specific challenges

  • FACT payroll GL postings require sequenced extraction before general ledger import

    FACT ERP.NG posts payroll transactions directly to the General Ledger as journal entries, tightly coupling the Payroll module and Financials module. When migrating out of FACT ERP.NG, we must extract Payroll records first, extract the resulting GL postings as a linked journal entry batch, and load Payroll data into Epicor EmpBasic and Payrollhdr before loading the GL journal entries. If GL is loaded before Payroll, Epicor will receive journal debit and credit lines that have no corresponding payroll record in the destination, creating orphaned entries or duplicate postings. We document the payroll source code and journal batch number in the migration runbook and enforce this sequencing dependency in all migration timelines for this pair.

  • FACT configuration parameters are not custom fields — they must be explicitly extracted and mapped

    FACT ERP.NG's Configuration Only model stores business rules, approval workflows, tax configurations, and inventory matrix settings as platform parameters rather than named custom fields. During migration scoping, we treat every non-default parameter as a configuration record that must be extracted, evaluated for an Epicor equivalent (UDC table, UD Code, system control, or BPM), and either replayed in Epicor or documented as a manual post-migration task. If parameters are skipped, Epicor runs with default values, causing incorrect tax rates, pricing tiers, and approval workflows in production. We generate a configuration-replay checklist during discovery and deliver it as part of the migration package.

  • No publicly documented API — extraction method must be confirmed during discovery

    FACT ERP.NG does not publish a public REST or GraphQL API with documented endpoints, authentication flows, or rate limits in its marketing or help materials. This means API-based migration cannot be guaranteed for all customers. We rely on database-level extraction where direct access is available, and on FACT's built-in export utilities (Excel, CSV) for file-based extraction. File-based extraction affects migration timelines and adds transform work for denormalized or multi-sheet exports. We confirm the extraction method during the discovery phase and adjust timelines accordingly. Epicor, by contrast, offers a documented REST API and Bulk API, which we use for destination loading.

  • Epicor custom fields require UD column setup and optional BPM for population

    Epicor ERP does not expose custom fields through a standard custom field interface like Salesforce or NetSuite. Instead, companies add User-Defined Columns (UD columns) to standard tables (UD01-UD30) or create UD Tables for standalone custom data. Custom fields added to transactional tables (such as OrderHed.MyZip_c) require BPM logic to populate them with derived values from related records. Forum threads on Epicor Users Help confirm this is a common implementation gap when mapping data from platforms with more flexible custom field models. We confirm the custom field requirements during scoping, pre-create UD column schemas in the Epicor test environment, and document any BPM requirements for the customer's Epicor administrator.

  • BOM and manufacturing routing dependencies can create circular load order challenges

    Multi-level Bills of Materials in FACT ERP.NG reference sub-assemblies that are also top-level parts. When migrating to Epicor, Part records must exist before ECOMtl (BOM) rows can reference them, and revision-controlled BOMs must load in a specific sequence: first the Part master, then the PartRev revision record, then the ECOMtl component rows. For customers with 50+ part numbers and 3+ BOM levels, we extract the full BOM dependency graph before migration, identify circular references (parts that reference themselves), and build a topological load order for Epicor PartRev and ECOMtl. Epicor's revision control adds a layer that FACT ERP.NG may not expose, so we confirm the customer's Epicor revision strategy during schema design.

Migration approach

Six steps for a successful FACT ERP.NG to Epicor Prophet 21 data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

FACT ERP.NG logo

FACT ERP.NG

Source

Strengths

  • Configuration-only deployment with 29-day go-live and no coding required
  • 600+ updates per year included in annual subscription with zero downtime
  • Integrated e-invoicing for Malaysian (LHDN) and Singapore (InvoiceNow) compliance
  • Real-time data sharing across financials, CRM, inventory, manufacturing, and payroll
  • Fast CXO Control Tower dashboard reporting across the full data model

Weaknesses

  • Processing speed degrades on large datasets or full period-range reports
  • Configuration-only model limits adaptation for niche industry workflows
  • Limited depth in certain modules may require third-party supplementation
  • Dashboard exports and API capabilities are not publicly documented for migration tooling
  • No public pricing—quotes are custom per company size and turnover
Epicor Prophet 21 logo

Epicor Prophet 21

Destination

Strengths

  • Purpose-built for wholesale distribution with industry-specific replenishment, kitting, and counter-sale workflows out of the box.
  • Multi-warehouse management with bin locations, cross-docking, and real-time inventory visibility across all warehouse locations.
  • Automated replenishment engine with demand-based and min-max planning reduces stockouts and overstock carrying costs.
  • AI-infused reporting via Epicor Prism provides Gen AI-driven insights into ERP data without requiring a BI team.
  • Strong customer retention at 90% and a 50-year track record in the distribution vertical provides long-term vendor stability.

Weaknesses

  • High total cost of ownership — per-user pricing of $150-200/month plus $10K-$500K implementation creates significant budget commitment for small and mid-market distributors.
  • Customization via SDK requires technical expertise and introduces upgrade risk when custom code conflicts with new P21 releases.
  • Report generation performance is a known pain point — multiple users report system freezes during large or complex report exports.
  • Third-party bolt-on reliance for functionality that competitors include natively increases integration complexity and total solution cost.
  • Limited public API documentation — developers building custom integrations report difficulty finding P21 API authentication methods and endpoint specifications.

Complexity grading

How hard is this migration?

Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across FACT ERP.NG and Epicor Prophet 21.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    FACT ERP.NG: Not publicly documented.

  • Data volume sensitivity

    B

    FACT ERP.NG doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your FACT ERP.NG to Epicor Prophet 21 migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about FACT ERP.NG to Epicor Prophet 21 data migrations

Answers to the questions buyers ask most during FACT ERP.NG to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between six and ten weeks for accounts with direct database access, under 500,000 transactional records, and no multi-level BOM structures. Migrations requiring file-based extraction from FACT ERP.NG, Epicor Prophet 21 as the destination, multi-site warehouse configurations, multi-level BOM hierarchies with 100+ parts and 3+ BOM levels, or full GL history alongside payroll journal sequencing move to twelve to twenty weeks. Epicor implementation timelines cited in industry data range from 4 to 18 months for mid-market ERP deployments; the migration component typically represents a subset of that total project time.

Adjacent paths

Related migrations to explore

Ready when you are

Move from FACT ERP.NG.
Land in Epicor Prophet 21, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day