ERP migration
Field-level mapping, validation, and rollback between ECOUNT ERP and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
ECOUNT ERP
Source
Epicor Prophet 21
Destination
Compatibility
9 of 12
objects map 1:1 between ECOUNT ERP and Epicor Prophet 21.
Complexity
BStandard
Timeline
6-10 weeks
Overview
Moving from ECOUNT ERP to Epicor ERP is a migration from a flat-rate SMB cloud platform to an industry-specific enterprise ERP designed for manufacturing and distribution. ECOUNT uses a single flat data model around Items, Customers, Vendors, and Sales/Purchase Slips with no published API—data exchange happens through Excel upload and download. Epicor uses a relational schema with Part, PartMtl, PartOpr, Customer, Supplier, Orders, and Receipt records that support multi-site, multi-plant, and lot-tracked inventory. We extract ECOUNT data as structured Excel workbooks, normalize the BOM multi-level structure into Epicor's PartMtl rows, resolve custom screen fields by reverse-engineering the upload template columns, and load through Epicor's REST and Bulk APIs in the correct dependency sequence. Workflows, custom formulas, and approval chains do not migrate—we deliver a written inventory of these for the customer's implementation team to rebuild in Epicor Kinetic or Epicor Prophet 21.
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 ECOUNT 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.
ECOUNT ERP
Item
Epicor Prophet 21
Part
1:1ECOUNT Items (inventory) map to Epicor Part records. ECOUNT item code maps to Part.PartNum, description to Part.PartDescription, unit of measure to Part.IUM, standard cost to Part.StandardCost, and sales price to Part.MarketUnitCost or a PriceLbr record depending on the customer's pricing model. We also map the ECOUNT item type (finished goods, raw material, subassembly, service) to Part.TypeCode (M for manufactured, P for phantom, K for kit, S for sales). Multiple ECOUNT items cannot share one Part in Epicor without creating a PartPlant row per warehouse.
ECOUNT ERP
Item - BOM
Epicor Prophet 21
PartMtl
1:manyECOUNT Bills of Materials with multiple BOMs per product and process-level inventory adjustments map to Epicor PartMtl rows. We explode the multi-level BOM structure from ECOUNT's flat Excel export into parent-material rows with PartMtl.ParentPart = ECOUNT parent item, PartMtl.MtlPartNum = component item, PartMtl.QtyPer = quantity per, and PartMtl.BOMSequence = step number. Sub-assemblies require multiple passes to resolve the full indented structure. Process-level adjustments from ECOUNT map to PartOpr (operation routing) records in Epicor if the destination includes the Manufacturing module.
ECOUNT ERP
Customer
Epicor Prophet 21
Customer
1:1ECOUNT Customer records map to Epicor Customer by Company and CustID. ECOUNT customer code becomes Customer.CustID, name becomes Customer.Name, payment terms map to Customer.TermsCode, and credit limit maps to Customer.CreditLimit. The ECOUNT auto-retrieved outstanding balance field is not written to Epicor as a static field; instead, we import open AR invoices from ECOUNT Sales Slips as Epicor InvcHead records so the running balance is computed from transactions rather than stored as a stale number.
ECOUNT ERP
Vendor
Epicor Prophet 21
Supplier
1:1ECOUNT Vendor records map to Epicor Supplier. Vendor code maps to Supplier.VendorID, vendor name to Supplier.Name, and payment terms to Supplier.TermsCode. ECOUNT's vendor-specific fields for bank details and W-9 or tax registration migrate as Supplier-level UD fields. If the ECOUNT vendor holds open purchase orders, those map to Epicor PODetail after the Supplier record is created.
ECOUNT ERP
Sales Slip
Epicor Prophet 21
OrderHed + OrderDtl
1:1ECOUNT Sales Slips map to Epicor OrderHed (order header) and OrderDtl (order line). ECOUNT slip number becomes OrderHed.OrderNum, customer PO number maps to OrderHed.PONum, ship date maps to OrderHed.RequestDate, and sales amount maps to OrderHed.OrderAmt. Each Sales Slip line item becomes an OrderDtl row with PartNum, selling quantity, and unit price. We import open and closed Sales Slips depending on whether the customer wants historical orders in Epicor; closed orders affect AR aging but do not consume Epicor's ATP reservation engine.
ECOUNT ERP
Purchase Slip
Epicor Prophet 21
POHeader + PODetail
1:1ECOUNT Purchase Slips map to Epicor POHeader and PODetail. The ECOUNT slip number becomes POHeader.PONum, vendor code links to the Supplier record, and each slip line item becomes a PODetail row. Incidental cost allocations (freight, duty, handling) from ECOUNT purchase slips migrate to PODetail.DocInActiveCost. Closed purchase slips with received inventory post to Epicor's PartTran as positive quantity movements if the customer enables the receiving module.
ECOUNT ERP
Chart of Accounts
Epicor Prophet 21
GLAccount + Department + Division + Cost Center
lossyECOUNT accounts, departments, and cost centers map to Epicor's GL Account structure with segment components. We request the customer's ECOUNT account template during scoping, identify the segment count and format, and configure Epicor's COA segment rules (GLAccount, Division, Department, Cost Center) to match. Custom department-level restrictions from ECOUNT become Epicor Department or Division assignments on User-authorized records. The mapping is created during configuration before any financial record migration begins.
ECOUNT ERP
Employee / HR Records
Epicor Prophet 21
Employee
1:1ECOUNT Employee records map to Epicor Employee with EmployeeNum, Name, Title, and department assignment. Effective-dated compensation changes from ECOUNT migrate as Epicor PayClass and PayRate records tied to the Employee. Attendance records migrate as Epicor TimePhas mobile or Labor records depending on whether the customer licenses the MES module. We flag any ECOUNT HR data that has no Epicor equivalent (e.g., custom HR screens) as UD fields on Employee for the admin to populate or deprecate post-migration.
ECOUNT ERP
Invoice and Packing List
Epicor Prophet 21
InvcHead + PackSlip
1:1ECOUNT invoices generated from Sales Slips map to Epicor InvcHead (accounts receivable invoice) and InvcDtl rows. The ECOUNT invoice number becomes InvcHead.InvoiceNum, customer maps via InvcHead.CustNum, and shipped date becomes InvcHead.InvoiceDate. Packing lists from ECOUNT map to Epicor PackSlip and ShipDtl if the destination includes shipping and warehouse management. We extract complete invoice history and regenerate header and line records in Epicor AR so that open invoices appear in aging reports immediately after cutover.
ECOUNT ERP
Custom Input Screens
Epicor Prophet 21
UD Fields (PartX, OrderHedX, etc.)
lossyEcount allows companies to add, rename, or delete fields on any input screen with calculation formulas. These custom fields exist in the screen configuration rather than a standard metadata API. We request the customer's ECOUNT upload templates during scoping, identify all active custom columns, and map each to an Epicor User-Defined (UD) field on the equivalent table (PartX_c, OrderHedX_c, CustomerX_c, etc.). We pre-create the UD field schema in Epicor before any data migration begins. Calculation formulas from ECOUNT are documented but not reimplemented; Epicor admin rebuilds them as BPMs or calculated fields post-migration.
ECOUNT ERP
Documents and Attachments
Epicor Prophet 21
DocumentRev + Attachment
1:1File attachments linked to ECOUNT slips and records are extracted from the ECOUNT document store and re-associated in Epicor. We extract attachment references with their source record ID during the discovery phase, then link each file to the migrated Epicor record by looking up the new Epicor ID via the migration mapping table. Epicor stores attachments as DocumentRev records with FileName and URL or as Linked/Attachable records depending on the destination module configuration.
ECOUNT ERP
Bank Statement
Epicor Prophet 21
CashHead + BankRec
1:1Ecount's bank statement data (available through the free bank statement service) maps to Epicor CashHead and BankRec records for reconciliation. We extract the full bank transaction history including dates, amounts, and descriptions, and load them as unmatched BankRec lines so the customer's accounting team can match them against Epicor GL transactions during the reconciliation phase. We do not auto-match ECOUNT slip references to Epicor GL entries unless the customer provides a cross-reference table.
| ECOUNT ERP | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Item | Part1:1 | Fully supported | |
| Item - BOM | PartMtl1:many | Fully supported | |
| Customer | Customer1:1 | Fully supported | |
| Vendor | Supplier1:1 | Fully supported | |
| Sales Slip | OrderHed + OrderDtl1:1 | Fully supported | |
| Purchase Slip | POHeader + PODetail1:1 | Fully supported | |
| Chart of Accounts | GLAccount + Department + Division + Cost Centerlossy | Mapping required | |
| Employee / HR Records | Employee1:1 | Fully supported | |
| Invoice and Packing List | InvcHead + PackSlip1:1 | Fully supported | |
| Custom Input Screens | UD Fields (PartX, OrderHedX, etc.)lossy | Mapping required | |
| Documents and Attachments | DocumentRev + Attachment1:1 | Mapping required | |
| Bank Statement | CashHead + BankRec1: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.
ECOUNT ERP gotchas
Excel is the only documented bulk migration path
Custom input screen fields are not in a published schema
Invoice confirmation email creates recipient confusion
Open API requires active subscription to access docs
Report exports convert print layouts to Excel
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 ECOUNT template extraction
We request the customer's ECOUNT upload templates for each object (Item, Customer, Vendor, Sales Slip, Purchase Slip, BOM) and run a discovery extraction of all active records. We identify custom input screen columns by comparing the customer's upload template against ECOUNT's standard column set, flag any formula-driven fields, and document the ECOUNT screen formula logic for the customer's Epicor admin to rebuild as BPMs. We pair this with Epicor edition confirmation: Kinetic for cloud-first manufacturers, Prophet 21 for distributors, BisTrack for building materials. The discovery output is a written migration scope with object counts, custom field inventory, and BOM complexity assessment.
Epicor schema design and UD field provisioning
We design the destination Epicor schema in a Sandbox org. This includes Part and PartPlant setup per ECOUNT site, Customer and Supplier records, GL Account structure matching the ECOUNT chart of accounts with segment components, PartMtl BOM rows with multi-level explode sequencing, and all UD fields mapped from the identified ECOUNT custom screen columns. We deploy the schema via Epicor REST API or directly in the Sandbox and validate that PartMtl parent-child relationships resolve correctly before any data load. UD field data types are confirmed against the customer's active Epicor module and tier.
BOM explosion algorithm and flat-file normalization
We build the BOM explosion pipeline from ECOUNT's flat Excel export. The algorithm identifies the parent-item column, resolves recursive sub-assembly references by running multiple passes until no new items appear, and generates a structured parent-material row set ordered bottom-up for Epicor PartMtl ingestion. Concurrently, we flatten ECOUNT print-layout Excel exports by extracting data rows from merged-cell structures and normalizing column positions. Both cleaned datasets are validated against ECOUNT record counts before the Sandbox migration begins.
Sandbox migration and reconciliation
We run a full migration into an Epicor Sandbox using production-like data volume. The customer's operations lead reconciles record counts (Parts in, Customers in, BOM rows in, Sales Orders in, Purchase Orders in), spot-checks 25-50 random ECOUNT records against their Epicor Sandbox equivalents, and validates that BOM multi-level structure appears correctly in Epicor's PartMtl explorer view. Any mapping corrections, missing custom fields, or BOM resolution gaps are resolved here. The customer signs off the Sandbox results before production migration begins.
Production migration in dependency order
We run production migration in Epicor in the correct dependency sequence: GL Accounts and Cost Centers (required by all financial records), then Suppliers, then Customers, then Parts with PartPlant rows per warehouse, then PartMtl rows for BOM structure, then open Purchase Orders, then open Sales Orders, then open AR/AP invoices, then historical closed transactions if the customer elects to migrate them. Each phase emits a row-count reconciliation report before the next phase begins. UD fields are populated in the same phase as their parent record. Attachments are re-linked after all transactional records are migrated using the mapping table created during discovery.
Cutover, validation, and workflow inventory handoff
We freeze ECOUNT 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 all identified ECOUNT custom formulas, approval chains, and screen-level automation for the customer's Epicor admin to rebuild as BPMs or calculated fields. We do not rebuild ECOUNT workflows, approval chains, or custom formulas as Epicor configurations inside the migration scope. We support a two-week hypercare window where we resolve any record reconciliation issues reported by the customer's team.
Platform deep dives
ECOUNT 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 ECOUNT 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
ECOUNT ERP: Not publicly documented.
Data volume sensitivity
ECOUNT ERP 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 ECOUNT ERP to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your ECOUNT 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 ECOUNT 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.