ERP migration
Field-level mapping, validation, and rollback between Copyl and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
Copyl
Source
Epicor Prophet 21
Destination
Compatibility
9 of 12
objects map 1:1 between Copyl and Epicor Prophet 21.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from Copyl to Epicor ERP is a schema-first migration because Copyl has no fixed data model and every customer's workspace is built differently. We begin by enumerating every custom object, field, and relationship in the Copyl workspace before writing a single migration map. Epicor ERP uses a manufacturing-centric object model — Parts, BOMs, Jobs, Quotes, and Suppliers — that requires structural translation from Copyl's user-defined entities. We map Copyl custom objects to Epicor Part and Job records, Copyl Tasks to Epicor Jobs and Activities, Copyl Projects to Epicor Jobs or Sales Orders depending on whether they are make-to-order, and Copyl Resources to Epicor Resources with site and labor code resolution. UD fields in Epicor are pre-created via the Epicor REST API before data import begins. Custom status values from Copyl are mapped to Epicor Job status codes explicitly during scoping. Workflows, automations, and custom application logic built inside Copyl do not migrate as code; we deliver a written inventory of every automation requiring rebuild in Epicor BPM or MES configuration after cutover.
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 Copyl 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.
Copyl
Custom Objects (all user-defined)
Epicor Prophet 21
Part, Job, Quote, or UD Table (per entity type)
lossyEvery distinct custom object type in the Copyl workspace is enumerated during scoping. We classify each entity by its dominant data pattern: entities representing manufactured items map to Epicor Part; entities representing production orders map to Epicor Job; entities representing customer-facing deliverables map to Epicor Quote. Entities that do not fit a standard Epicor table are mapped to UD (user-defined) tables on the closest standard object, with UD column names derived from the original Copyl field API names.
Copyl
Custom Object Fields
Epicor Prophet 21
UD (User-Defined) Fields
lossyCopyl field definitions (field name, data type, required flag, picklist options) are translated to Epicor UD column definitions on the target table. Epicor Kinetic uses UD fields prefixed with a character (e.g., Character01, ShortChar01, Number01) with extended UD column maps to store the human-readable label. We pre-create all UD fields via the Epicor REST API or change set before any record import begins. Field types are mapped: Copyl text to ShortChar or Character, Copyl number to Number or Integer, Copyl date to Date, Copyl boolean to Checkbox.
Copyl
Task
Epicor Prophet 21
JobOper or JobHead
1:1Copyl Tasks map to Epicor Job Operations (JobOper) within a parent Job (JobHead) when the task represents a manufacturing step, or to Epicor Task records (PMTask or MultiJob) when the task represents an administrative or maintenance activity. The Copyl task title becomes the JobOper description; the assigned resource maps to the Epicor Resource Group or Labor code. Task status (custom Copyl values) is mapped to Epicor Job status codes explicitly during scoping.
Copyl
Resource
Epicor Prophet 21
ResourceGroup and Labor
1:1Copyl Resources (people, equipment, budgets) map to Epicor ResourceGroup for equipment resources and Labor for personnel resources. The resource allocation mapping from Copyl (which resource is assigned to which task and at what capacity) is reconstructed as Epicor LaborDtl entries with labor hours and pay rates if the destination is Kinetic with Labor tracking enabled.
Copyl
Project
Epicor Prophet 21
Job or SalesOrder
1:1Copyl Projects map to Epicor Job when the project represents a manufacturing production order, or to SalesOrder when it represents a make-to-order sales contract. The mapping decision is made during scoping based on whether the project has Bill of Materials and routing dependencies. Project-level custom fields from Copyl migrate as UD fields on the target Job or Order header.
Copyl
User
Epicor Prophet 21
User or Employee
1:1Copyl workspace users map to Epicor Employee records (linked to the User account). Role and permission data from Copyl is not migrated as access control rules because Epicor's security model (User Profiles and Permission Sets) is administered separately. We export user identities and map them by email to the Epicor Employee table.
Copyl
Comment
Epicor Prophet 21
JobHeadText, OrderHedText, or PartText
1:1Copyl comments attached to Tasks or Projects migrate to Epicor text note records on the corresponding parent object. Comments on manufacturing tasks attach to JobHeadText or JobOperText; comments on sales deliverables attach to OrderHedText. Comment author and timestamp are preserved in the Epicor text record metadata if the target table supports it, otherwise in a UD field.
Copyl
Attachment
Epicor Prophet 21
DocumentRev
1:1Files attached to Copyl Tasks or Projects migrate to Epicor Document Management (DocumentRev, DocumentType) if the Epicor tenant has Document Control enabled. For tenants without Document Control, we deliver attachments as a file inventory with the target Job number or Part number cross-referenced so the customer's admin can re-attach manually post-migration.
Copyl
Custom Status Values
Epicor Prophet 21
Job Status Code or UD Code
lossyCopyl allows arbitrary status values on any object. Epicor enforces fixed status picklists on Job (JobHead.JobClosed, JobHead.JobComplete) and other manufacturing tables. We collect every distinct status value during scoping, map each to the nearest Epicor status code or UD code, and store unmapped values in a UD field for admin review. Customers must confirm these mappings before transformation begins.
Copyl
Bill of Materials (if modeled in Copyl)
Epicor Prophet 21
JobMtl
1:1If the Copyl workspace models multi-level product structures as custom objects or linked records, those structures map to Epicor JobMtl (Job Material) records. We reconstruct the parent-component relationship using the Copyl entity references and create JobMtl records under the corresponding JobHead. Material quantity and scrap percent are mapped from the Copyl numeric fields.
Copyl
Supplier / Vendor (if modeled in Copyl)
Epicor Prophet 21
Supplier
1:1If the Copyl workspace tracks external vendors or suppliers as custom objects, those map to Epicor Supplier records. The Supplier.Address fields and payment terms migrate from Copyl address and custom fields. Epicor Supplier records are required for Purchase Order generation and MRP supply planning.
Copyl
Inventory / Stock (if modeled in Copyl)
Epicor Prophet 21
PartLot or PartBin
1:1If the Copyl workspace tracks inventory quantities or stock levels as custom objects, those map to Epicor PartLot (lot-controlled inventory) or PartBin (bin-controlled inventory) records. We resolve the Part number reference first, then create the corresponding lot or bin records with quantity on hand from the Copyl data.
| Copyl | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Custom Objects (all user-defined) | Part, Job, Quote, or UD Table (per entity type)lossy | Fully supported | |
| Custom Object Fields | UD (User-Defined) Fieldslossy | Fully supported | |
| Task | JobOper or JobHead1:1 | Fully supported | |
| Resource | ResourceGroup and Labor1:1 | Fully supported | |
| Project | Job or SalesOrder1:1 | Fully supported | |
| User | User or Employee1:1 | Fully supported | |
| Comment | JobHeadText, OrderHedText, or PartText1:1 | Fully supported | |
| Attachment | DocumentRev1:1 | Fully supported | |
| Custom Status Values | Job Status Code or UD Codelossy | Fully supported | |
| Bill of Materials (if modeled in Copyl) | JobMtl1:1 | Fully supported | |
| Supplier / Vendor (if modeled in Copyl) | Supplier1:1 | Fully supported | |
| Inventory / Stock (if modeled in Copyl) | PartLot or PartBin1: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.
Copyl gotchas
Custom schema variability across Copyl workspaces
No documented public API with bulk export capability
Custom status values require explicit mapping
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 Copyl workspace enumeration
We conduct a structured discovery session with the customer's Copyl workspace admin to enumerate every custom object type, field definition, relationship, and status value in use. We ask the customer to produce CSV or JSON exports of each entity type from within Copyl. We also collect the Copyl workspace export (if available) and document any linked records that represent Bill of Materials, multi-level projects, or resource allocations. The discovery output is a written entity inventory and an initial source-side data quality assessment identifying records with missing required fields or orphaned relationships.
Epicor target schema design and UD field mapping
We identify the Epicor edition and module set in scope (typically Epicor Kinetic Cloud with MES and Job Management, or Prophet 21 for distribution). We map each Copyl custom object to the nearest Epicor standard table, define the UD field translation table (Copyl field name to Epicor UD column name and type), and design the status mapping matrix. The target schema is deployed into a Salesforce Sandbox-equivalent Epicor test company first for validation. UD fields are created via the Epicor REST API using the Erp.BO.UDColumnSvc or via an Epicor change set before any data loads begin.
Epicor test environment migration and reconciliation
We run a full migration into the Epicor test company using production-like data volume. The customer's Epicor admin or implementation consultant reconciles record counts by entity type, spot-checks 25-50 records against the Copyl source for field accuracy, and validates that UD fields display correctly in the Epicor UI. The reconciliation phase is the last opportunity to correct mapping logic before production migration begins. Any mapping corrections are documented and applied to the production migration scripts.
Status mapping confirmation and transformation build
We present the complete status mapping matrix to the customer for explicit confirmation before building the transformation scripts. Each Copyl status value is assigned to a target Epicor status code or placed in a UD field. Transformation scripts are built to apply this matrix consistently across all records. Any Copyl status that has no Epicor equivalent is flagged with a note to the customer that the status will be preserved in a UD field and that Epicor workflow actions tied to status change will not fire for those records.
Production migration in dependency order
We run production migration in record-dependency order: Master data first (Parts, Suppliers, Employees, Resource Groups), then transactional data (Jobs with JobMtl and JobOper), then administrative records (Tasks, Projects, Comments, Attachments). UD fields are written during the same insert operation as the standard fields. Each phase emits a row-count reconciliation report. Any records rejected by Epicor's validation rules are logged, corrected, and retried in the same phase before moving forward.
Cutover, validation, and automation rebuild handoff
We freeze Copyl writes during cutover and run a final delta migration of any records modified during the migration window. Epicor is enabled as the system of record. We deliver the automation and workflow inventory document to the customer's Epicor admin, listing every Copyl task automation or conditional logic that requires rebuild in Epicor BPM, MES configuration, or Kinetic Dashboard Builder. We do not rebuild Copyl automations as Epicor workflows inside the migration scope. We support a one-week hypercare window to resolve reconciliation issues.
Platform deep dives
Copyl
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 Copyl 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
Copyl: Not publicly documented..
Data volume sensitivity
Copyl 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 Copyl to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your Copyl 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 Copyl
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.