ERP migration
Field-level mapping, validation, and rollback between SoftLedger and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
SoftLedger
Source
Epicor Prophet 21
Destination
Compatibility
9 of 12
objects map 1:1 between SoftLedger and Epicor Prophet 21.
Complexity
BStandard
Timeline
4-6 weeks
Overview
Moving from SoftLedger to Epicor ERP is a shift from a cloud-native multi-entity accounting ledger to a full manufacturing-centric ERP. SoftLedger organizes financial data around Locations with independent COAs and currencies; Epicor ERP consolidates financial data under a Company-Plant-Warehouse hierarchy with GL accounts shared across legal entities. We map each SoftLedger Location to an Epicor Company (or a Division within a Company), resolve the multi-currency journal entries with their custom exchange rate overrides, and load opening trial balances through Epicor's Data Management Tool rather than standard journal postings. Epicor's manufacturing modules (production, inventory, BOMs) do not exist in SoftLedger and are scoped as new configuration rather than migration. We do not migrate SoftLedger's workflow rules or financial report definitions; we deliver a written inventory of each for the customer's Epicor admin to rebuild in BAQ and Kinetic.
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 SoftLedger 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.
SoftLedger
Location
Epicor Prophet 21
Company / Site
1:manySoftLedger Locations are top-level entities with independent currency, COA, and address. Each Location maps to an Epicor ERP Company (the legal entity level). If the customer operates multiple co-located divisions within one legal entity, we split the Location into one Company plus multiple Epicor Sites under that Company. The mapping decision is made during scoping based on whether the customer needs separate legal-entity financials or shared-entity management reporting.
SoftLedger
Chart of Accounts
Epicor Prophet 21
GL Account
1:1SoftLedger's per-Location COA (account number, name, type, tax code, status) maps to Epicor GL Account records under the destination Company. We extract the full account range per entity and create corresponding Epicor accounts in the same number/name/type structure. Active/inactive status maps to the Epicor AcctFlag. Accounts used only in specific SoftLedger dimensions are flagged as restricted by Plant or Division in Epicor.
SoftLedger
Customer
Epicor Prophet 21
Customer
1:1SoftLedger Customers (name, email, address, payment terms, currency, custom fields) map to Epicor Customer records. The customer number in Epicor is assigned from a configurable range; we preserve the SoftLedger customer ID in a User-Defined field for reference. Payment terms map to Epicor's Terms of Payment table. Multi-currency customers carry their billing currency through to the Epicor AR invoice currency field.
SoftLedger
Vendor
Epicor Prophet 21
Supplier
1:1SoftLedger Vendors (name, email, address, payment terms, 1099 eligibility, currency) map to Epicor Supplier records. The 1099 eligibility flag maps to the Epicor 1099 Code field on Supplier. We preserve all vendor metadata including any custom field values in Epicor UD fields. Outstanding AP balances transfer as open PO receipts or unmatched bills depending on the destination payables workflow.
SoftLedger
Journal Entry
Epicor Prophet 21
GL Journal Entry
1:1SoftLedger Journal Entries carry lines with account ID, amount, currency, dimension tags, and source references. Multi-currency entries require explicit exchange rate extraction: we pull the effective rate at posting date and any manual override stored as journal metadata, then apply the same rate type in Epicor GL. Epicor supports multiple rate types (Actual, Budget, Historical) and we assign the equivalent type based on the SoftLedger source. We chunk large journal batches to respect the SoftLedger 200 req/min API limit and load them via Epicor DMT using the GLJrnHed / GLJrnDtl template.
SoftLedger
Dimension
Epicor Prophet 21
Epicor Analysis Code (Category) or UD Field
lossySoftLedger Dimensions tag journal lines with organizational attributes (department, cost center, region). We map these to Epicor Analysis Codes or map them to User-Defined fields on GLJrnDtl depending on how the customer uses dimensional reporting in Epicor. The decision is made during scoping by reviewing the customer's existing SoftLedger dimension usage and Epicor reporting patterns. All tag assignments are preserved so analytical reporting continuity is maintained.
SoftLedger
Invoice (AR)
Epicor Prophet 21
AR Invoice
1:1SoftLedger AR Invoices map to Epicor AR Invoice records with status preserved (Open, Closed). We extract the invoice header, line items, and tax information, then load via DMT. Customer lookup is resolved against the Customer mapping completed in the earlier phase. Open invoices are migrated with their payment status so the destination AR team picks up the outstanding balance; closed invoices are migrated as historical records without reopening the AR cycle.
SoftLedger
Invoice (AP)
Epicor Prophet 21
AP Invoice / Bill
1:1SoftLedger AP Invoices map to Epicor AP Invoice or Bill records with status preserved. The vendor lookup is resolved against the Supplier mapping. Outstanding AP balances (unpaid bills) migrate with their open status so the accounts payable team manages payment in Epicor. SoftLedger's bill-to address and ship-to address are mapped to Epicor's separate address fields on the invoice.
SoftLedger
Bank Transaction
Epicor Prophet 21
Bank Transaction
1:1SoftLedger Bank Transactions link to Journal Entries and carry a reconciliation status flag. We preserve the reconciliation flag on each item and set the Epicor bank transaction to Open so the finance team completes reconciliation in the destination. Unreconciled items are not marked as reconciled during migration, which prevents prematurely closing the bank reconciliation and hiding outstanding variances.
SoftLedger
Custom Field
Epicor Prophet 21
User-Defined (UD) Field
lossySoftLedger Custom Fields on Invoices, Customers, Bills, and warehouse items map to Epicor UD fields on the corresponding business objects. We discover all active custom fields during scoping, map their data types to Epicor UD field types (character, numeric, date, checkbox), and create the UD field definitions in Epicor before loading data. Any SoftLedger custom fields with no Epicor equivalent are flagged as requiring a new UD field or a data model redesign.
SoftLedger
Beginning Balance
Epicor Prophet 21
GL Account Beginning Balance
1:1SoftLedger uses a specific Beginning Balance upload mechanism rather than standard journal entry posting for opening trial balances. We use Epicor DMT with the GLJrnDtl template to load account opening balances, structuring the payload to match the expected format for each entity's account range. Beginning balances are loaded before any historical transaction migration so the trial balance reflects the correct starting position.
SoftLedger
Financial Report Definition
Epicor Prophet 21
BAQ (Business Activity Query) / RDL Report
1:1SoftLedger stores custom report definitions as JSON configurations referencing account IDs. We extract each report definition, map the referenced SoftLedger account IDs to their Epicor GL Account equivalents, and deliver a written inventory of every report requiring rebuild in Epicor BAQ or SQL-based RDL. The rebuilt queries are created by the customer's Epicor admin or partner post-migration.
| SoftLedger | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Location | Company / Site1:many | Fully supported | |
| Chart of Accounts | GL Account1:1 | Fully supported | |
| Customer | Customer1:1 | Fully supported | |
| Vendor | Supplier1:1 | Fully supported | |
| Journal Entry | GL Journal Entry1:1 | Fully supported | |
| Dimension | Epicor Analysis Code (Category) or UD Fieldlossy | Fully supported | |
| Invoice (AR) | AR Invoice1:1 | Fully supported | |
| Invoice (AP) | AP Invoice / Bill1:1 | Fully supported | |
| Bank Transaction | Bank Transaction1:1 | Fully supported | |
| Custom Field | User-Defined (UD) Fieldlossy | Fully supported | |
| Beginning Balance | GL Account Beginning Balance1:1 | Fully supported | |
| Financial Report Definition | BAQ (Business Activity Query) / RDL Report1: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.
SoftLedger gotchas
200 req/min API rate limit can throttle bulk exports
Beginning balances require a dedicated upload mechanism
Unreconciled bank items carry status that must transfer intact
Custom exchange rate overrides on journal entries require explicit extraction
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 scoping
We audit the source SoftLedger environment across all Locations, the full COA per entity, active custom fields and dimensions, multi-currency usage (number of currency pairs and override frequency), journal entry volume and date range, open AR/AP invoice count, bank transaction reconciliation status, and any outstanding beginning balance entries. If Epicor ERP is already live, we also review the existing Company-Site hierarchy, active UD field definitions, and GL account structure. The discovery output is a written migration scope, a data volume estimate by object, and a timeline recommendation (four to six weeks for simple, ten to sixteen for complex).
Schema design and Company-Site mapping
We design the destination Epicor hierarchy. This includes mapping each SoftLedger Location to an Epicor Company (or Company + Sites), designing the GL account structure that accommodates all source accounts without duplication, defining the rate type setup for multi-currency entries, and planning the UD field creation for all active SoftLedger custom fields. If Epicor is already in use, we identify any conflicts between existing GL accounts and source accounts, and resolve them before migration. Schema is deployed via Epicor DMT into a Sandbox environment first for validation against the customer's Epicor admin.
Data extraction, transformation, and Sandbox validation
We extract all SoftLedger data in dependency order: Locations, COA, Customers, Vendors, then GL transactions and AP/AR. Multi-currency journal entries include the explicit rate metadata. We run the full migration in a Sandbox using Epicor DMT with the GLJrnHed / GLJrnDtl templates, the Customer and Supplier templates, and any custom UD field templates. The customer's finance team spot-checks 25-50 records against the SoftLedger source and reconciles trial balance totals. Any mapping corrections happen in Sandbox, not in production.
Beginning balance load and trial balance reconciliation
Before loading historical journal entries, we load beginning balances for each GL account per Company using Epicor DMT. We validate the Epicor trial balance after balance load against the SoftLedger pre-migration trial balance for each Location. The trial balance reconciliation sign-off is required before any historical transaction migration begins because correcting account balances after transactions are loaded is significantly more complex.
Production migration in dependency order
We run production migration in this order: Company / Site hierarchy, GL Account structure, Customer records (with UD fields), Supplier records (with UD fields), beginning balances, open AP invoices, open AR invoices, bank transactions (with open reconciliation status), then historical journal entries. Each phase emits a row-count reconciliation report and a trial balance delta before the next phase begins. Multi-currency entries are loaded last to ensure the correct exchange rates are applied after all account setup is confirmed.
Cutover, validation, and automation handoff
We freeze SoftLedger writes during cutover, run a final delta migration of any records modified during the migration window, then enable Epicor ERP as the system of record. We deliver the written inventory of SoftLedger automations, custom report definitions, and dimensional tagging schemes that require rebuild in Epicor. We support a one-week hypercare window where we resolve any reconciliation discrepancies. We do not rebuild SoftLedger workflows or reports as Epicor automations or BAQ queries inside the migration scope; those are documented for the customer's Epicor admin or implementation partner.
Platform deep dives
SoftLedger
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 SoftLedger 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
SoftLedger: 200 requests per minute per organization; returns HTTP 429 when exceeded.
Data volume sensitivity
SoftLedger 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 SoftLedger to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your SoftLedger 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 SoftLedger
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.