ERP migration
Field-level mapping, validation, and rollback between Sage 100cloud and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
Sage 100cloud
Source
Epicor Prophet 21
Destination
Compatibility
11 of 12
objects map 1:1 between Sage 100cloud and Epicor Prophet 21.
Complexity
BStandard
Timeline
8-12 weeks
Overview
Moving from Sage 100cloud to Epicor ERP is a SQL-to-API migration: Sage 100cloud exposes no public REST API for transactional records, so we establish a read-only SQL connection to the underlying Pervasive SQL or Microsoft SQL Server database during discovery, extract data views mirroring the Sage Business Objects Information layer, and load into Epicor Kinetic via REST API calls or the Data Management Tool. We map the Sage Chart of Accounts, AR and AP masters, inventory with multi-bin and BOM structures, fixed asset depreciation schedules, and open sales and purchase orders with line-item detail. We do not migrate Workflows, automations, custom UDFs, or payroll deduction setups as code; we deliver a written inventory of these for the customer's admin to rebuild. Epicor Kinetic's customer retention rate of 97 percent versus Sage 100cloud's 83 percent reflects the operational stability and API access that manufacturing and distribution companies prioritize when leaving the MAS 90/200 codebase.
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 Sage 100cloud 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.
Sage 100cloud
Chart of Accounts (GL Account Master)
Epicor Prophet 21
GL Account
1:1Sage 100cloud stores the GL account master in a flat table with optional segment columns (Type, Division, Department). We export the full account structure via SQL query, preserving account code, description, account type, and active status. Epicor Kinetic GL Accounts are created with the same account code structure; segment-aware accounts map to Epicor's standard or advanced account codes depending on the customer's chart configuration. Parent account lookups are resolved before child account inserts to satisfy referential integrity.
Sage 100cloud
Customer (AR Customer Master)
Epicor Prophet 21
Customer
1:1Sage 100cloud AR_Customer records include billing and shipping addresses, payment terms, credit limits, salesperson assignments, and 1099 flag. We export the full customer table, validate address completeness, and map each Sage customer to Epicor Kinetic Customer. The Sage customer code becomes the Epicor CustomerCmp.CustID. Payment terms are mapped to Epicor Terms tables, and any Sage customer-specific discounts are preserved as customer price group assignments in Epicor.
Sage 100cloud
Vendor (AP Vendor Master)
Epicor Prophet 21
Supplier
1:1Sage 100cloud AP_Vendor records include address, 1099 settings, payment terms, W-9 status, and 1099 box assignments. We export the vendor table and map to Epicor Kinetic Supplier. The Sage vendor code becomes Epicor Supplier.SupplierID. 1099 flag values and W-9 status are preserved in Epicor Supplier fields. Payment terms map to Epicor Terms records. Any vendor-specific discounts are recorded as supplier terms adjustments in the destination.
Sage 100cloud
Inventory Item (IC_Item Master)
Epicor Prophet 21
Part
1:1Sage 100cloud Inventory module supports multi-warehouse, multi-bin, lot/serial tracking, and BOM structures across IC_Item and IC_BOM tables. We export Part master records including the stocking unit, costing method, cost levels, and commodity code. The Sage item code becomes Epicor Kinetic Part.PartNum. Stocking UOM and purchasing UOM map to Epicor Part.UOMClass and PartFrostings. For parts using lot or serial tracking, we map the Sage lot-numbering scheme to Epicor's lot and serial number configuration. Bin locations map to Epicor WarehseBin records.
Sage 100cloud
BOM (Bill of Materials)
Epicor Prophet 21
Part BOM and Revision
1:1Sage 100cloud IC_BOM tables define multi-level bill of material structures with quantity-per, scrap percentages, and operation steps. We reconstruct the BOM hierarchy in Epicor Kinetic using Part.BOM and PartRev records with the correct revision level, effective dates, and quantity-per relationships. Phantom BOMs, sub-assemblies, and BOM rollups are resolved by traversing the Sage BOM structure before insertion to ensure parent parts exist before their component BOMs are created.
Sage 100cloud
Open AR Invoices
Epicor Prophet 21
Invoice and AR Invoice
1:1Open accounts receivable from Sage 100cloud are exported as individual invoice records with original invoice date, due date, amount remaining, aging bucket, and payment status. We preserve the original invoice number, invoice date, and open balance. Sage invoices with partial payments retain the payment history as applied amounts in Epicor's AR Invoice payment records. Unapplied credits migrate as AR Credit memos linked to the customer account. CustomerCmp.CustID is resolved via the customer mapping before invoice insert.
Sage 100cloud
Open AP Invoices
Epicor Prophet 21
AP Invoice and Supplier Invoice
1:1Sage 100cloud AP_Invoice and AP_Payment tables are queried to export open accounts payable with header and line-item detail. We preserve vendor ID references, invoice date, due date, payment terms, and balance remaining. Epicor Kinetic AP Invoice records are created with VendorID resolved via the supplier mapping. Sage pre-payments and partially-applied invoices are mapped to Epicor AP adjustments and prepayment records. Historical check registers export as AP Payment records with check number and date preserved.
Sage 100cloud
Fixed Assets
Epicor Prophet 21
Fixed Asset
1:1FA_Asset records in Sage 100cloud include acquisition cost, depreciation method, book value, useful life, asset class, location, and accumulated depreciation. We export the full fixed asset register and reconstruct depreciation schedules in Epicor Kinetic Fixed Asset records. Sage depreciation methods (straight-line, declining balance, sum-of-years) map to Epicor depreciation method codes. Placed-in-service date and asset life in months transfer directly. Sage asset classes map to Epicor Asset Group codes.
Sage 100cloud
Sales Orders and Invoices
Epicor Prophet 21
Order and Order Line
1:1Sage 100cloud SO_SalesOrder and OE_Invoice headers and line items are accessible via SQL. We export open and held sales orders with customer reference, order date, ship date, and line-item detail including part number, quantity ordered, unit price, and discount. These map to Epicor Kinetic OrderHed and OrderDtl records. Epicor OrderHed.CustNum is resolved via the customer mapping. Custom fields attached to order headers require a separate sidecar extraction and manual mapping to Epicor OrderHed user-defined fields.
Sage 100cloud
Purchase Orders
Epicor Prophet 21
PO Header and PO Detail
1:1PO_PurchaseOrder records in Sage 100cloud are accessible via SQL but often include partial receipts already applied in inventory. We export PO header records with vendor reference, terms, and line-item detail including part number or description, quantity ordered, unit cost, and received quantity. Epicor Kinetic POHeader and PODetail are created with SupplierID resolved via the vendor mapping. Any partially-received POs are flagged during scoping so the customer decides whether to export the PO as open or as received before migration.
Sage 100cloud
Job Costing Records
Epicor Prophet 21
Project and Job
1:1Sage 100cloud JC_Job and JC_Transaction tables hold project cost tracking data including phases, cost codes, budget vs. actual amounts, and labor and material transactions. Job structures map to Epicor Kinetic Project (for project-based tracking) and JobMfg records (for shop-floor production jobs) depending on the customer's usage. We export phase budgets and cumulative actuals, then reconstruct them in Epicor as project phases with WBS elements. Job transactions requiring Epicor job cost codes are mapped during the scoping phase because the cost code structure differs between platforms.
Sage 100cloud
Custom Fields / UDFs
Epicor Prophet 21
UD Fields / Custom Fields
lossySage 100cloud stores user-defined fields in module-specific extension tables whose schema varies by company database and are not exposed through any standard export path. We identify every UDF during discovery by querying the database schema for non-standard column names per module, export them to a sidecar CSV file, and flag them for manual re-entry in Epicor Kinetic. The sidecar CSV lists the UDF name, the source module, the record types it applies to, and a recommended Epicor UD field target. This step requires planning and budgeting because UDF content is customer-owned re-entry work.
| Sage 100cloud | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Chart of Accounts (GL Account Master) | GL Account1:1 | Fully supported | |
| Customer (AR Customer Master) | Customer1:1 | Fully supported | |
| Vendor (AP Vendor Master) | Supplier1:1 | Fully supported | |
| Inventory Item (IC_Item Master) | Part1:1 | Fully supported | |
| BOM (Bill of Materials) | Part BOM and Revision1:1 | Fully supported | |
| Open AR Invoices | Invoice and AR Invoice1:1 | Fully supported | |
| Open AP Invoices | AP Invoice and Supplier Invoice1:1 | Fully supported | |
| Fixed Assets | Fixed Asset1:1 | Fully supported | |
| Sales Orders and Invoices | Order and Order Line1:1 | Mapping required | |
| Purchase Orders | PO Header and PO Detail1:1 | Mapping required | |
| Job Costing Records | Project and Job1:1 | Mapping required | |
| Custom Fields / UDFs | UD Fields / Custom Fieldslossy | Not 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.
Sage 100cloud gotchas
No native REST API exposes live transactional data
Rate limits and login attempt thresholds block API access
Parallel Migration Wizard breaks after moving to a new installation
Custom UDFs and custom fields have no standardized export path
Historical GL periods may be locked or archived
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 source SQL schema audit
We audit the Sage 100cloud database across every module: GL Account Master, AR Customer, AP Vendor, IC Item, IC BOM, Open AR Invoice, Open AP Invoice, FA Asset, SO Sales Order, PO Purchase Order, and JC Job. We identify the SQL Server instance and database name, verify read-only access credentials, enumerate the Sage company codes, and map the BIE data views to the underlying physical tables. We also identify UDF columns by scanning each module's schema for non-standard column names and build the sidecar export list. The discovery output is a written data inventory, row-count estimates per table, and a source SQL access confirmation.
Destination schema design in Epicor Kinetic
We design the Epicor Kinetic destination schema using the REST API or through direct configuration. This includes provisioning warehouse codes and bin locations, configuring lot and serial number formats, setting up Part classes and stocking UOMs, creating GL account segments, and defining customer and supplier records with payment terms. UD field tables are created for every Sage UDF identified during discovery. BOM structures and revision levels are mapped to Epicor PartRev records. All schema creation happens in a non-production Epicor environment for validation before any data loads begin.
Sandbox migration and reconciliation
We run a full migration into an Epicor non-production or sandbox environment using production-like data volume. The customer's operations lead reconciles record counts for each object class (customers in, vendors in, parts in, open invoices in), spot-checks 25-50 records per object against the Sage source for field-level accuracy, and validates BOM hierarchies and lot/serial number continuity. Any mapping corrections — including GL account code format, customer number length, or part number character restrictions — are documented and corrected here. The customer signs off the schema and mapping before production migration proceeds.
Company and vendor code reconciliation
We extract every distinct Sage customer code, vendor code, and GL account code referenced across all transactional tables and match them against the Epicor destination codes. Epicor's key field lengths and character restrictions differ from Sage — customer codes in Epicor Kinetic are typically limited to 20 characters, GL account codes to the configured segment length. Any codes that exceed Epicor limits are truncated per a documented truncation rule, and the customer approves the remapped code list. Reconciliation reports are shared with the customer before each production load phase begins.
Production migration in dependency order
We run production migration in record-dependency order: Warehouses and bins (inventory locations), GL accounts, Customers, Suppliers, Parts with BOM and revision levels, Fixed Assets, Open AP Invoices, Open AR Invoices, Sales Orders, Purchase Orders, and Job Costing records. Each phase emits a row-count reconciliation report before the next phase begins. Epicor Kinetic REST API calls are throttled with exponential backoff; bulk loads use the Data Management Tool with validation enabled. We freeze Sage 100cloud write access during the final production migration window and run a delta migration of any records modified during cutover.
Cutover, validation, and handoff
After production migration, we run post-load validation queries against Epicor Kinetic to confirm record counts, open balance totals for AR and AP, and GL trial balance reconciliation against the Sage source. We deliver the UDF sidecar CSV with re-entry instructions and the automation inventory document listing every Sage workflow and automation requiring rebuild in Epicor Kinetic BPM or the Epicor Business Process Management tool. We support a one-week post-cutover window for reconciliation issues. We do not rebuild Sage workflows or automations as Epicor BPMs inside the migration scope; that work is a separate engagement.
Platform deep dives
Sage 100cloud
Source
Strengths
Weaknesses
Epicor Prophet 21
Destination
Strengths
Weaknesses
Complexity grading
Standard ERP migration. 3 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 Sage 100cloud and Epicor Prophet 21.
Object compatibility
3 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
Sage 100cloud: 100 req/min per company; 5,000 req/day per company; 20 failed login attempts per hour before 24-hour lockout.
Data volume sensitivity
Sage 100cloud 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 Sage 100cloud to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your Sage 100cloud 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 Sage 100cloud
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.