ERP migration

Migrate from Ostendo to Epicor Prophet 21

Field-level mapping, validation, and rollback between Ostendo and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.

Ostendo logo

Ostendo

Source

Epicor Prophet 21

Destination

Epicor Prophet 21 logo

Compatibility

64%

9 of 14

objects map 1:1 between Ostendo and Epicor Prophet 21.

Complexity

BStandard

Timeline

6-10 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Ostendo to Epicor ERP is a platform-scale migration for operations-focused manufacturers and distributors that have outgrown the SMB tier. Ostendo stores its data in a SQL-backended database and exposes exports via the built-in Data Exporting function (CSV or Excel) or custom scripting using GetTableNames and GetValueFromStore; there is no published REST API. Epicor ERP accepts data through its REST API (Kinetic) or direct SQL (on-premise versions 9 through 10.2), with BAQ (Business Activity Queries) serving as the primary reporting and extraction tool in cloud deployments. We handle extraction via Ostendo's Data Exporting layer, transform multi-site inventory records into Epicor's PartLot structure, flatten multi-level BOMs into revision-controlled Bill of Materials, and map Ostendo's Service Zones to Epicor Territories. We do not migrate saved reports, SQL Report Writer definitions, or custom workflow scripts; we deliver a written inventory of every Ostendo report and automation for the customer's admin to rebuild in Epicor Kinetic or Epicor 10.2.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Ostendo logo

Ostendo

What's pushing teams away

  • Support responsiveness varies by scenario, leaving some users without timely help when configuring complex workflows or custom fields.
  • Inconsistent UI behaviour across modules frustrates power users; some panels allow window resizing and others do not, depending on which screen you are in.
  • The platform lacks a well-documented public REST API, making integrations and automated data pipelines difficult to build and maintain.
  • Interface design lags behind modern SaaS standards, which creates a steeper learning curve for users accustomed to contemporary UX patterns.

Choosing

Epicor Prophet 21 logo

Epicor Prophet 21

What's pulling them in

  • Industry-specific design for wholesale distributors, not a general-purpose ERP repurposed for distribution — distributors choose P21 because it matches their replenishment, kitting, and counter-sale workflows out of the box.
  • Strong inventory control with automated replenishment, lot and serial tracking, and multi-warehouse management appeals to distributors with complex stock requirements and tight margin pressure.
  • Responsive customer support cited across G2 and Gartner reviews, with Epicor's 90% retention rate reflecting long-term customer satisfaction in a market where switching costs are high.
  • Cloud deployment on Microsoft Azure provides the flexibility to scale user counts and warehouse locations without on-premise infrastructure investment.
  • The Software Development Kit lets distributors personalize P21 to their specific business processes without modifying the application source code, preserving upgrade paths.

Object mapping

How Ostendo objects map to Epicor Prophet 21

Each row shows how a Ostendo 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.

Ostendo

Customer (CUSTOMER MASTER)

maps to

Epicor Prophet 21

Customer

1:1
Fully supported

Ostendo Customer records in the CUSTOMER MASTER table export via the Data Exporting function as CSV or Excel. We map to Epicor Customer (or CustCnt contact records) using customer code as the dedupe key. If the customer uses Ostendo's Contact sub-records, these map to Epicor CustCnt contact entries with the parent Customer linkage preserved. Address structures from CUSTOMER MASTER export as Customer address records in Epicor.

Ostendo

Item (ITEMMASTER)

maps to

Epicor Prophet 21

Part

1:1
Fully supported

ITEMMASTER holds all item records including Primary Supplier linkage, unit cost, and stock levels. We export the full item record and map to Epicor Part by part number as the dedupe key. The Ostendo supplier linkage maps to Epicor's Vendor table cross-reference so that Part-vendor relationships are preserved. Stocking type (make, buy, blank) maps to TypeCode in Epicor Part.

Ostendo

Stock / Inventory

maps to

Epicor Prophet 21

PartLot + WarehseBin

1:many
Fully supported

Ostendo tracks stock quantities per stock location, bin reference, and serial number. Multi-site records require denormalisation into Epicor's PartLot table (which holds lot number, serial number, and quantity) and WarehseBin (warehouse-bin location). Each unique combination of item, site, warehouse, and bin in Ostendo becomes a separate PartLot record in Epicor. Serial number tracking per location maps to the PartLot SerialNumber field.

Ostendo

Stock Locations / Service Zones

maps to

Epicor Prophet 21

Site + Warehouse + Territory

lossy
Fully supported

Ostendo Service Zones group assets geographically for field service deployment. We map these to Epicor Site records for the manufacturing or distribution entity, Warehouse records for each physical location, and Territory records for service dispatch geography. The mapping depends on whether the customer runs single-site or multi-site operations in Ostendo.

Ostendo

Sales Order

maps to

Epicor Prophet 21

Sales Order (SORels)

1:1
Fully supported

Ostendo Sales Orders export with header and line-level detail, including Order Style, quantities, pricing, and status. We map to Epicor Sales Order with line items and SORels (release) structure. If Ostendo POS generated orders, these require flagging during scoping as POS-order headers may carry non-standard status values. Order dates, ship dates, and due dates migrate as OrderRel dates in Epicor.

Ostendo

Purchase Order

maps to

Epicor Prophet 21

PO Header + POLine

1:1
Fully supported

Purchase Orders export from Ostendo with line items, quantities, supplier linkage, and order status. We map to Epicor PO Header with linked POLine records. Supplier code resolves to the Epicor Vendor record created from the ITEMMASTER Primary Supplier mapping. PO release dates migrate to Epicor's PO Release dates if the customer uses scheduled receipt functionality.

Ostendo

Work Order / Manufacturing Order

maps to

Epicor Prophet 21

JobMtl + JobOper + JobHead

1:1
Fully supported

Work Orders in Ostendo include job details, routing, and multi-level BOM references. Multi-level BOMs require flattening during transformation: each BOM level in Ostendo becomes a separate JobMtl record in Epicor with the parent assembly linked via JobMtl.ParentMtlSeq. Routing operations map to JobOper with work centre and estimated run time. We flag any non-standard Work Order statuses for customer review before loading.

Ostendo

Bill of Materials (multi-level)

maps to

Epicor Prophet 21

Part + PartMtl + PartOpr

lossy
Fully supported

Ostendo BOMs are stored per item with nested assembly levels. We extract all BOM levels, denormalise into PartMtl records with PartMtl.ParentPart and PartMtl.MtlPart linking, and map assembly operations to PartOpr. Epicor BOM revisions are versioned; if Ostendo uses revision control, each revision maps to a separate Epicor PartRev record. The customer identifies the active BOM revision during scoping.

Ostendo

Asset

maps to

Epicor Prophet 21

Asset

1:1
Fully supported

Asset records are linked to Service Zones and carry meter readings, equipment checks, and maintenance history. We export asset master data including current status, location (Service Zone), and maintenance history lines. In Epicor, assets map to the Asset register with AssetLoc records holding the site/warehouse location and MeterReadings linked to the asset for preventive maintenance tracking.

Ostendo

Timesheet / Time Entry

maps to

Epicor Prophet 21

Labor (laborHdr + laborDtl)

1:1
Fully supported

Timesheet records linked to Work Orders and Jobs export from Ostendo with clock-in, clock-out, work centre, and materials issued. We map to Epicor laborHdr (header) and laborDtl (detail) records, resolving the employee reference to the Epicor Employee table. GPS data from Freeway Mobile entries cannot migrate to Epicor's standard Labour module; we flag GPS-bearing entries for customer review and document the source location for manual reference.

Ostendo

User (concurrent licence)

maps to

Epicor Prophet 21

User

lossy
Fully supported

Ostendo user records export from User Security and Options, but the licensing model is concurrent users (simultaneous logins), not named users. We export the full user record set and present a named-user equivalent count during scoping. Migration into Epicor requires provisioning named User accounts; the customer's admin creates Epicor User records and we validate Owner references on imported records against the resolved User table.

Ostendo

Custom Fields (Freeway Mobile)

maps to

Epicor Prophet 21

UD Fields

lossy
Fully supported

Ostendo Freeway Mobile templates create user-defined fields per object including checklists, compliance forms, and QA inspections. These are stored per-object without a standard export format. We flag all custom template field definitions during discovery, create explicit field mappings for each one, and pre-create Epicor UD fields (using UD Service Designer in Kinetic or extended table columns in On Prem) before data load. Fields that cannot hold equivalent data (for example, GPS coordinates on non-geographic objects) are flagged for manual recreation in Epicor.

Ostendo

Reports / Saved Queries

maps to

Epicor Prophet 21

BAQ (deferred rebuild)

1:1
Not supported

Ostendo SQL Report Writer creates saved reports, inquiries, and pivot tables referencing Ostendo-specific table structures. These have no direct equivalent in Epicor ERP and do not migrate. We deliver a written inventory of every Ostendo report and saved query with its table references and logic, plus a recommended Epicor BAQ equivalent for the customer's admin or Epicor partner to rebuild post-migration.

Ostendo

Quote

maps to

Epicor Prophet 21

Quote

1:1
Fully supported

If Ostendo Quotes are generated as Sales Order-style records with an order style of Quote, we export them and map to Epicor Quote. Quote headers, lines, and pricing migrate as Epicor Quote records. Signed or accepted quote status does not automatically advance the Quote to Order in Epicor; the customer reviews Quote-to-Order conversion after migration.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Ostendo logo

Ostendo gotchas

High

No public REST API for automated data extraction

Medium

Concurrent user licensing creates user-count mapping complexity

Medium

Custom fields from mobile capture layer require manual mapping

Epicor Prophet 21 logo

Epicor Prophet 21 gotchas

High

Third-party bolt-on integrations complicate migration scope

High

Dirty data without standardized processes compounds migration risk

Medium

SDK customizations and BPMs may not survive platform upgrades

Medium

Report-based export only for non-technical users

Low

Per-user pricing model requires accurate user count before migration planning

Pair-specific challenges

  • Ostendo has no REST API; extraction relies on Data Exporting function

    All data extraction from Ostendo goes through the built-in Data Exporting function (CSV or Excel), custom scripting with GetTableNames and GetValueFromStore, or direct SQL table access. There is no published REST endpoint. This constrains the migration schedule because exports require either manual steps inside the Ostendo client or customer-provided SQL access. We extract through the Data Exporting function and scripting layer, but any third-party integrations feeding Ostendo will need to be replaced with Epicor REST API calls or middleware after cutover. We identify all integration touchpoints during discovery so the customer can plan the integration rebuild.

  • Concurrent-to-named user translation may reveal licence under-counting

    Ostendo concurrent user licensing (simultaneous logins, typically 25-40% of total headcount) means a business with 50 staff may have licensed 15 concurrent seats. Epicor charges per named user. We capture the full Ostendo user record count during discovery and present the named-user equivalent before finalising scope. Some customers discover they were under-licensed in Ostendo relative to their actual user headcount, which affects both the Epicor licence budget and the migration scope.

  • Multi-level BOMs require flattening and BOM revision strategy

    Ostendo supports nested Bill of Materials with multiple assembly levels. Epicor PartMtl records require a flat structure with parent-part linkage, and BOM revisions must be explicitly managed. We flatten nested BOMs during the transform phase, preserving the quantity-per-assembly relationship at each level. If Ostendo uses revision-controlled BOMs, we identify the active revision and map it to an Epicor PartRev with the current effective date; inactive or prototype revisions are archived in a separate table for the customer's engineering team to review.

  • Epicor Kinetic cloud does not provide direct database access

    On-premise Epicor (9 through 10.2) exposes the underlying SQL database for direct query and integration. Epicor Kinetic cloud does not. Migrating from an on-premise Ostendo environment (or even an on-premise Epicor 10.2) to Epicor Kinetic cloud means losing direct SQL access. In Kinetic, BAQ is the primary reporting and extraction tool, and integrations use the REST API. We validate the destination environment type (cloud vs on-prem) during scoping and plan extraction and loading accordingly. If the customer is moving from on-premise Ostendo to on-premise Epicor 10.2, we can use direct SQL loads; if Kinetic cloud is the destination, we use the REST API with BAQ as the extraction bridge.

  • Custom fields from Freeway Mobile have no standard export format

    Ostendo Freeway Mobile allows user-defined templates for field data capture including checklists, compliance forms, and QA inspections. These custom field definitions do not export through the Data Exporting function in a structured format. We flag all custom template fields during discovery, enumerate their data types and object assignments, and pre-create Epicor UD fields before data load. Where Freeway Mobile captures GPS coordinates, photos, or signatures, Epicor's standard UD field types may not hold equivalent data without custom development; we document each gap for the customer's admin to address post-migration.

Migration approach

Six steps for a successful Ostendo to Epicor Prophet 21 data migration

  1. Discovery and environment assessment

    We audit the source Ostendo environment including version, deployment type (on-premise or managed cloud), database access permissions, module usage (inventory, manufacturing, service, field, POS), and export function configuration. We enumerate all CUSTOMER MASTER records, ITEMMASTER entries, Work Order count and status, stock location structure, Asset register, and user record count. We confirm the destination Epicor environment type (Kinetic cloud or On Prem) and identify API access level, BAQ capability, and UD field support. The discovery output is a written migration scope, record counts by object, and a data quality report flagging duplicates, missing required fields, and non-standard statuses.

  2. Extraction via Ostendo Data Exporting function

    We extract data from Ostendo using the built-in Data Exporting function for each object: Customers, Items, Stock (per location), Sales Orders, Purchase Orders, Work Orders, Assets, Timesheets, and Service Zones. Custom scripting with GetTableNames and GetValueFromStore handles any objects not covered by the standard export wizard. We export to CSV with UTF-8 encoding and validate record counts against the discovery audit. If direct SQL access is available, we supplement CSV exports with SQL queries for transactional tables with foreign key resolution. All exports run against a point-in-time snapshot with HubWrite access frozen during extraction.

  3. Transform and object mapping

    We transform extracted records into Epicor-compatible format. Key transformations include: Customer records to Epicor Customer with address normalisation; ITEMMASTER to Part with supplier cross-reference; multi-site stock to PartLot per site-warehouse-bin combination with serial numbers preserved; multi-level BOMs to PartMtl flat structure with revision mapping to PartRev; Work Orders to JobMtl and JobOper with BOM assembly linkage and routing operations; Service Zones to Site, Warehouse, and Territory records; Timesheets to laborHdr and laborDtl with employee resolution. We resolve the concurrent-user-to-named-user mapping for User records and pre-create Epicor User accounts in a holding queue.

  4. Destination schema pre-creation

    Before any data loads, we create the Epicor destination schema. This includes Part records (from Item transformation), Customer records, Site and Warehouse structures (from Service Zone mapping), PartLot configuration for serial and lot tracking, PartMtl and PartOpr for BOM and routing, Asset register structure, UD fields for each Freeway Mobile custom template, and Territory records for service dispatch. Schema is deployed into a Sandbox org first (for Epicor Kinetic) or validated via direct SQL connection (for On Prem) before production migration begins.

  5. Sandbox migration and reconciliation

    We run a full migration into the Epicor Sandbox using production-like data volume. The customer's operations lead reconciles record counts (Customers in, Parts in, Stock locations normalised, Work Orders loaded, Assets registered), spot-checks 25-50 records per object against the Ostendo source, and validates PartLot serial numbers and BOM assembly linkage. Epicor Kinetic customers validate BAQ output against source CSV to confirm data completeness. Any mapping corrections, required field gaps, or Epicor validation rule rejections are resolved in the Sandbox before production migration begins.

  6. Production migration in dependency order

    We run production migration in record-dependency order: Sites and Warehouses first (dependency for PartLot), then Customers, then Parts with Part-vendor linkage resolved, then Stock and PartLot (with multi-site denormalisation verified), then Assets, then Sales Orders, Purchase Orders, Work Orders with BOM flattening applied, then Timesheets, then Custom Fields. Each phase emits a row-count reconciliation report before the next phase begins. Owner and User references resolve against the pre-provisioned Epicor User table at each phase.

  7. Cutover, validation, and report rebuild handoff

    We freeze Ostendo 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 the Report and Automation Inventory document to the customer's admin team, listing every Ostendo SQL Report Writer definition, saved query, and custom workflow script with its table references and recommended Epicor BAQ equivalent. We support a one-week hypercare window for reconciliation issues. We do not rebuild Ostendo reports as Epicor BAQ reports or re-create custom scripts as Epicor BPMs within the migration scope; these are separate engagements or internal admin tasks.

Platform deep dives

Context on both ends of the pair

Ostendo logo

Ostendo

Source

Strengths

  • Full operations suite covering inventory, manufacturing, job costing, field service, and POS under one licence.
  • Serial number tracking and multi-site stock location support for businesses with complex warehousing needs.
  • Preventive maintenance and service scheduling automation for field service operations.
  • SQL-based Report Writer with access to all database tables and export to Excel or Word.
  • Concurrent user licensing model reduces seat costs for organisations with lower simultaneous usage.

Weaknesses

  • No publicly documented REST API; integrations require scripting or third-party tools.
  • Limited review presence and thin public community data makes independent evaluation difficult.
  • Interface inconsistency between screens can cause usability friction for power users.
  • Mobile app and custom template layer introduces custom fields that require manual mapping during data migration.
Epicor Prophet 21 logo

Epicor Prophet 21

Destination

Strengths

  • Purpose-built for wholesale distribution with industry-specific replenishment, kitting, and counter-sale workflows out of the box.
  • Multi-warehouse management with bin locations, cross-docking, and real-time inventory visibility across all warehouse locations.
  • Automated replenishment engine with demand-based and min-max planning reduces stockouts and overstock carrying costs.
  • AI-infused reporting via Epicor Prism provides Gen AI-driven insights into ERP data without requiring a BI team.
  • Strong customer retention at 90% and a 50-year track record in the distribution vertical provides long-term vendor stability.

Weaknesses

  • High total cost of ownership — per-user pricing of $150-200/month plus $10K-$500K implementation creates significant budget commitment for small and mid-market distributors.
  • Customization via SDK requires technical expertise and introduces upgrade risk when custom code conflicts with new P21 releases.
  • Report generation performance is a known pain point — multiple users report system freezes during large or complex report exports.
  • Third-party bolt-on reliance for functionality that competitors include natively increases integration complexity and total solution cost.
  • Limited public API documentation — developers building custom integrations report difficulty finding P21 API authentication methods and endpoint specifications.

Complexity grading

How hard is this migration?

Standard ERP migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Ostendo and Epicor Prophet 21.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Ostendo: Not publicly documented.

  • Data volume sensitivity

    B

    Ostendo doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Ostendo to Epicor Prophet 21 migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Ostendo to Epicor Prophet 21 data migrations

Answers to the questions buyers ask most during Ostendo to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Ostendo to Epicor Prophet 21 migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most Ostendo to Epicor migrations land between six and ten weeks for environments under 5,000 items, 2,000 customers, and single-site stock with straightforward Work Order structures. Migrations with multi-site inventory requiring PartLot denormalisation, multi-level BOMs requiring flattening, large Work Order histories (over 10,000 open or closed records), or Asset records with extensive maintenance histories move to twelve to twenty weeks because of BOM resolution, site structure mapping, and Epicor schema validation cycles.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Ostendo.
Land in Epicor Prophet 21, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day