ERP migration
Field-level mapping, validation, and rollback between KeyedIn and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
KeyedIn
Source
Epicor Prophet 21
Destination
Compatibility
11 of 14
objects map 1:1 between KeyedIn and Epicor Prophet 21.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from KeyedIn to Epicor ERP is a structural migration that spans two fundamentally different data architectures. KeyedIn uses a standalone project portfolio management model with separate Deliverables and Task Plan Milestones that are not automatically synchronized; Epicor Kinetic embeds Work Breakdown Structure phases within Projects, with milestones managed as phase attributes or linked records rather than as independent objects. We resolve the Deliverables-versus-Milestone duplication during scoping, flatten KeyedIn Task Plans to Epicor WBS Phase hierarchies, treat financial data as a separate migration plane, and map KeyedIn custom fields to Epicor UD column definitions. Epicor does not expose a public REST API for bulk extraction, so we coordinate the extraction method during discovery using KeyedIn's managed export, Jitterbit connector, or on-premise database access. Workflows, automations, and reporting configurations do not migrate; we deliver a written inventory of these for the customer's admin to rebuild in Epicor 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 KeyedIn 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.
KeyedIn
Project
Epicor Prophet 21
Project
1:1KeyedIn Projects map directly to Epicor Kinetic Projects. The Project Name, Status, Start Date, End Date, and Owner migrate as-is. Budget amounts from KeyedIn map to Epicor's Project Budget (Phase Budgets or direct Cost Category amounts). We validate total budget reconciliation after import because KeyedIn financial data may exist in a separate data plane from project task data.
KeyedIn
Task Plan
Epicor Prophet 21
Project + WBS Phases
1:manyKeyedIn Task Plans are standalone schedule entities attached to Projects. Epicor Kinetic has no separate Task Plan object; tasks live as WBS Phases within a Project. We map each KeyedIn Task Plan to the parent Project and its Tasks to WBS Phases. The Task Plan name is preserved as a Project Phase or WBS Group label. Epicor WBS supports two hierarchy levels (Project > Phase > WBS Task), so deeply nested Task Plans may require flattening at the lowest level.
KeyedIn
Task
Epicor Prophet 21
WBS Phase / WBS Task
1:1KeyedIn Tasks nested under Task Plans map to Epicor WBS Phases or WBS Tasks. Parent-child hierarchy is preserved by ordering records by parent reference and resolving the parent WBS Phase ID at migration time. Start/end dates, assignees, status, and percent complete migrate directly. Epicor's WBS does not support a three-level nesting equivalent to Project > Task Plan > Task > Subtask; we flatten Subtasks as child WBS Tasks under the parent Task Phase.
KeyedIn
Subtask
Epicor Prophet 21
WBS Task
1:1KeyedIn Subtasks nested under Tasks are mapped to Epicor WBS Tasks as the lowest hierarchy level. Epicor WBS Phase and WBS Task objects share the same Erp.BO.Project and Erp.BO.WbsSvc APIs, and WBS Tasks under a WBS Phase are the natural landing point for subtask records. The parent Task must be migrated first so that the WBS Phase reference is available when writing Subtask records.
KeyedIn
Resource (People/Pool)
Epicor Prophet 21
Employee / Labor
1:1KeyedIn Resources (People or generic pool entities) map to Epicor Kinetic Employee records. Resource-to-project assignments migrate as Labor entries with allocation hours, date, and billable flag. We resolve the Employee record by matching the KeyedIn resource email or name to the Epicor Kinetic employee table. If the Employee does not exist, we hold the record in a reconciliation queue for the customer's admin to provision the employee before labor allocation migration proceeds.
KeyedIn
Portfolio
Epicor Prophet 21
Project Group
1:manyKeyedIn Portfolios group related Projects for executive visibility. Epicor Kinetic does not have a native Portfolio object; we map Portfolio-to-Project associations to Epicor's Project Group feature or attach a custom Project Tag field to each Project record. The customer chooses the grouping strategy during scoping. Multiple KeyedIn Portfolios that reference the same Project are preserved as separate Project Group memberships.
KeyedIn
Deliverable
Epicor Prophet 21
WBS Phase Milestone or Project Issue (resolution required)
1:1KeyedIn standalone Deliverables are milestone records at the project level. Epicor Kinetic does not have an equivalent standalone Deliverable object. We map Deliverables to WBS Phase Milestone attributes where the destination WBS Phase structure supports milestone flags, or to Project Issue records with a milestone-type classification for cases where Epicor's Issue/Risk tracking is used for milestone governance. If the same milestone exists as a Task Plan Milestone, we flag it as a duplicate for customer resolution before migration.
KeyedIn
Task Plan Milestone
Epicor Prophet 21
WBS Phase Milestone
1:1KeyedIn Milestones embedded within Task Plans map to Epicor WBS Phase Milestone attributes. The milestone name, due date, and status migrate as Phase milestone fields. We validate that the parent Task Plan (mapped to WBS Phase) exists before writing the milestone. Deliverables that represent the same milestone are flagged for deduplication against Task Plan Milestones.
KeyedIn
Time Entry
Epicor Prophet 21
Labor Transaction
1:1KeyedIn Time Entries logged against Tasks or Resources migrate to Epicor Kinetic Labor transactions (Erp.BO.LaborSvc). Hours, date, labor type, and billable flag map directly. The Labor Transaction is linked to the resolved WBS Phase (from the KeyedIn Task) and Employee (from the KeyedIn Resource). If the destination uses project-specific labor entry approval workflows, we flag these for configuration after migration.
KeyedIn
Financial Budget
Epicor Prophet 21
Project Budget / Cost Category
1:1KeyedIn Enterprise financial budgets (amounts, cost codes, period breakdowns) migrate to Epicor Kinetic Project Budgets and Cost Categories. We treat financial data as a separate migration plane from task data because KeyedIn stores budgets not always co-located with Project and Task records. Budget amounts are reconciled to the parent Project total after migration. Currency mismatches or missing cost codes are flagged before write.
KeyedIn
Risk
Epicor Prophet 21
Project Risk
1:1KeyedIn Risks logged at the Project level with severity, status, owner, and description map to Epicor Kinetic Project Risk records. We preserve the link to the parent Project and validate that the Project record exists in Epicor before writing the Risk. Epicor Kinetic uses the Erp.BO.RiskAndIssueSvc for Risk and Issue records.
KeyedIn
Issue
Epicor Prophet 21
Project Issue
1:1KeyedIn Issues logged at the Project level map to Epicor Kinetic Project Issue records via Erp.BO.RiskAndIssueSvc. Status, priority, owner, description, and related Project are migrated directly. Issues that reference a KeyedIn Task Plan or Task are linked to the corresponding WBS Phase after hierarchy migration completes.
KeyedIn
Document / Attachment
Epicor Prophet 21
DocStar Attachment or URL Link
1:1Documents attached to KeyedIn Projects or Tasks are stored with file name, URL reference, and metadata. We migrate file metadata and URLs as Epicor DocStar attachments or as URL-type links on the Project record. Actual file blob migration depends on the Epicor edition's document management configuration. We flag the document storage approach during scoping.
KeyedIn
Custom Field
Epicor Prophet 21
UD Column
lossyKeyedIn custom fields on Projects, Tasks, and other objects are tenant-specific with no standard field registry. We perform a full field discovery scan during scoping to enumerate every custom field, map each to an Epicor Kinetic UD Column definition, and deploy UD fields before record migration. Complex custom fields that require BPM logic (such as cascading values or cross-object derivations) are flagged for post-migration Epicor developer configuration.
| KeyedIn | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Project | Project1:1 | Fully supported | |
| Task Plan | Project + WBS Phases1:many | Fully supported | |
| Task | WBS Phase / WBS Task1:1 | Fully supported | |
| Subtask | WBS Task1:1 | Fully supported | |
| Resource (People/Pool) | Employee / Labor1:1 | Fully supported | |
| Portfolio | Project Group1:many | Fully supported | |
| Deliverable | WBS Phase Milestone or Project Issue (resolution required)1:1 | Fully supported | |
| Task Plan Milestone | WBS Phase Milestone1:1 | Fully supported | |
| Time Entry | Labor Transaction1:1 | Fully supported | |
| Financial Budget | Project Budget / Cost Category1:1 | Fully supported | |
| Risk | Project Risk1:1 | Fully supported | |
| Issue | Project Issue1:1 | Fully supported | |
| Document / Attachment | DocStar Attachment or URL Link1:1 | Fully supported | |
| Custom Field | UD Columnlossy | 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.
KeyedIn gotchas
Deliverables vs Task Plan Milestone duplication
Financial data stored separately from tasks
Custom field schema varies per tenant
No publicly documented bulk export or API
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 extraction method identification
We audit the source KeyedIn environment across tier (Team, Professional, Enterprise), custom field schema, Task Plan structure depth, resource allocation volume, financial data presence, and document attachment count. We identify the available extraction method (managed export, Jitterbit connector, or on-premise database) with the customer's KeyedIn administrator. The discovery output is a written migration scope, extraction plan, and Epicor edition recommendation based on the customer's manufacturing and financial management needs.
Deliverables deduplication and milestone reconciliation
We extract all standalone Deliverables and Task Plan Milestones, compute the overlap by name and due date, and present the duplicate set to the customer's PMO lead for resolution. We use a canonical milestone rule: if a Deliverable and a Task Plan Milestone share the same name, due date, and parent project, we hold one for customer decision. The resolved canonical set becomes the migration target. This step prevents double-counting in Epicor's WBS phase completion tracking.
Epicor schema preparation and UD field deployment
We create Epicor Kinetic UD column definitions for every KeyedIn custom field, deploy them via Epicor Kinetic REST API into a Sandbox environment, and validate that the column types map correctly (string, integer, date, dropdown). We map KeyedIn Task Plans to Epicor Projects and WBS Phase structures, and map KeyedIn Deliverables to WBS Phase Milestone attributes or Project Issue records based on the customer's chosen milestone governance approach. Any custom fields requiring BPM logic are flagged for the customer's Epicor developer to implement before production migration.
Sandbox migration and reconciliation
We run a full migration into Epicor Kinetic Sandbox using representative data volume. The customer's project management and finance leads reconcile record counts (Projects in, WBS Phases in, Labor transactions in, Budget amounts reconciled), spot-check 25-50 random records against KeyedIn source data, and validate that WBS hierarchy depth matches the flattening strategy. Any schema corrections happen in Sandbox before production deployment.
Production migration in dependency order
We run production migration in record-dependency order: Epicor Employees (provisioned manually, validated), Projects (base container), WBS Phases (from KeyedIn Task Plans and Tasks), Labor Transactions (from KeyedIn Time Entries), Financial Budgets (from KeyedIn Enterprise financial data, reconciled to Project totals), Project Risks and Issues, and Document metadata. Each phase emits a row-count reconciliation report before the next phase begins. Epicor DMT handles CSV-based bulk imports; complex records use the Epicor Kinetic REST API with batch chunking.
Cutover, validation, and automation inventory handoff
We freeze KeyedIn writes during cutover, run a final delta migration of records modified during the migration window, then enable Epicor Kinetic as the system of record. We deliver a written inventory of KeyedIn automations, report configurations, and workflow triggers requiring rebuild in Epicor Kinetic for the customer's admin team. We support a one-week hypercare window where we resolve reconciliation issues raised by the project team. We do not rebuild KeyedIn workflows as Epicor Kinetic BPMs inside the migration scope; that is a separate engagement or internal Epicor developer task.
Platform deep dives
KeyedIn
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 KeyedIn 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
KeyedIn: Not publicly documented.
Data volume sensitivity
KeyedIn 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 KeyedIn to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your KeyedIn 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 KeyedIn
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.