ERP migration
Field-level mapping, validation, and rollback between EF Enterprise and Epicor Prophet 21. We move data and schema; workflows are rebuilt natively in Epicor Prophet 21.
EF Enterprise
Source
Epicor Prophet 21
Destination
Compatibility
5 of 12
objects map 1:1 between EF Enterprise and Epicor Prophet 21.
Complexity
BStandard
Timeline
8-12 weeks
Overview
EF Enterprise and Epicor ERP serve fundamentally different operational domains — EF Enterprise manages exhibit booths, sponsors, attendee registrations, and badge hierarchies for event teams on Salesforce, while Epicor ERP is a manufacturing and distribution platform handling Parts, Jobs, Orders, Inventory, and Supply Chain. There is no direct object equivalence for Exhibitions, Booths, Sessions, or Badge Records in the Epicor schema. We map what we can (Sponsors to Customers, Attendees to Contacts or Job-linked records, Exhibition-level metadata to Job header fields), document the gaps in a written inventory, and recommend a selective historical archive for event records that exceed what Epicor can structurally represent. Epicor custom fields (UD columns and UD tables) migrate only when we receive a schema export from the source org; undocumented Salesforce custom fields on EF Enterprise are flagged as unsupported without schema access. Workflows, Flows, Apex triggers, and badge-print automations do not migrate; we deliver a written automation inventory for the customer's admin to rebuild in Epicor.
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 EF Enterprise 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.
EF Enterprise
Exhibition
Epicor Prophet 21
Job or Project
lossyEF Enterprise Exhibitions (top-level event container with name, dates, venue, status) map to Epicor Job or Project depending on whether the destination Epicor instance has Project module licensed. We use Job as the default since Project requires additional licensing. Exhibition metadata (name, start/end dates, venue) migrates to JobHead fields; custom fields storing exhibition type or classification migrate to UD columns on JobHead. If the customer has multi-year exhibition history, we recommend archiving Exhibitions older than 24 months rather than loading them into Epicor Job, since Epicor Job is optimized for active production rather than historical event records.
EF Enterprise
Booth
Epicor Prophet 21
Job (JobMtl + JobOper)
1:manyEF Enterprise Booth records (booth number, size, zone, per-booth pricing) map to Epicor Job records with JobMtl line entries for booth components. Booth size and zone assignment migrate as JobMtl or UD columns on JobMtl; per-booth pricing migrates to the JobProd cost record linked to the Job. We preserve the Exhibition parent reference as the JobHead.JobNum, and we flag any booth records that reference deprecated sponsors as orphaned and requiring resolution before migration.
EF Enterprise
Sponsor
Epicor Prophet 21
Customer
1:1EF Enterprise Sponsor records (company name, tier, contact information) map directly to Epicor Customer records. Sponsor tier (Gold, Silver, Bronze) migrates to Customer.Territory or a UD column on Customer if the destination Epicor org uses a territory structure not mapped to standard Customer fields. We use the sponsor company name as the Customer.Name and resolve the CustomerID from the Customer table before any Booth-to-Sponsor linking occurs.
EF Enterprise
Sponsor-Booth Link
Epicor Prophet 21
JobProd (via Customer and Job linkage)
1:1EF Enterprise Booth-Sponsor associations are resolved at migration time by matching the Sponsor CompanyName to the newly created Epicor Customer record and linking that CustomerID to the Job record representing the Booth. Epicor does not have a native booth-sponsor junction object; we represent the relationship as a UD table (e.g., SponsorBoothLink_c) with JobNum and CustNum columns if the customer requires queryable sponsor-booth linkage in Epicor.
EF Enterprise
Attendee Registration
Epicor Prophet 21
Contact or Customer
1:1EF Enterprise Attendee Registration records (contact reference, session selections, badge type) map to Epicor Contact records linked to the relevant Customer or Job. Session selections migrate as UD columns on Contact or as entries in a session-tracking UD table. Badge type migrates to a UD column on Contact. Attendee contact information (name, email, phone) maps to the standard Epicor Contact fields Name, EMailAddress, and PhoneNum.
EF Enterprise
Session
Epicor Prophet 21
Job or UD Table
lossyEF Enterprise Sessions (linked to Exhibition, with capacity limits and track classification) map to Epicor Job records if the destination uses Jobs for scheduling, or to a custom UD table (Session_c) with fields for Exhibition reference, capacity, track, and status. Multi-track sessions are flattened into individual session records at migration time, with each receiving a track-specific identifier in a UD column.
EF Enterprise
Badge Record
Epicor Prophet 21
Contact UD column or UD Table
lossyEF Enterprise Badge Records (attendee type, access level, print status) have no direct Epicor equivalent. We migrate the badge metadata as UD columns on the Contact record (badge_type_c, access_level_c, print_status_c). The badge print workflow does not migrate — we document the original Salesforce Flow or Apex trigger logic in the automation inventory and recommend rebuilding using Epicor BPMs or a third-party badge-printing integration post-migration.
EF Enterprise
Salesforce User (Owner)
Epicor Prophet 21
Epicor User
1:1EF Enterprise Owner assignments map to Epicor User records by resolving the Salesforce User email to the Epicor SysUserID. Inactive Salesforce Users (archived rather than deleted per the EF Enterprise pattern) are flagged for reassignment during scoping. Any EF Enterprise Owner without a matching Epicor User goes to the reconciliation queue for the customer's admin to provision before record import resumes.
EF Enterprise
ContentDocument (Attachments)
Epicor Prophet 21
Epicor Attachments BO
1:1Attachments linked to EF Enterprise Exhibitions, Booths, Sponsors, and Attendee Registrations migrate via the Epicor Attachments Business Object. We extract the Salesforce ContentDocument (file name, body, content type) and upload to Epicor with the related JobNum or CustNum reference. Large floor plan PDFs are chunked and re-uploaded individually. Attachments are linked to the Job record representing the Exhibition or Booth.
EF Enterprise
Tags and Custom Properties
Epicor Prophet 21
UD Columns or UD Tables
lossyEF Enterprise tag taxonomy (exhibitor classification tags, sponsor tier tags, zone tags) is exported in full and recreated in Epicor as UD column values or entries in a custom classification UD table depending on the cardinality. Duplicate tags are merged at migration time. The customer chooses tag-to-UD strategy during scoping.
EF Enterprise
Custom Objects
Epicor Prophet 21
UD Tables
lossyEF Enterprise custom objects (exhibitor contracts, floor plans, lead retrieval) have no direct Epicor equivalent and migrate to Epicor UD tables if the customer provides a schema export during discovery. UD table creation (ZDataTable metadata) is deployed to Epicor before data load. Without schema access, custom objects are flagged as unsupported and excluded from the migration scope.
EF Enterprise
Inactive (Archived) Records
Epicor Prophet 21
Archived or Excluded
lossyEF Enterprise marks deprecated exhibitor records as inactive rather than deleting them, a Salesforce pattern. We surface the full inactive record list during the discovery review. Inactive Exhibitions, Booths, and Sponsors are migrated as archived records (with a status flag in a UD column) only if the customer requests it; otherwise they are excluded from the migration scope. Archived Attendee Registrations are excluded by default since they represent past events already concluded.
| EF Enterprise | Epicor Prophet 21 | Compatibility | |
|---|---|---|---|
| Exhibition | Job or Projectlossy | Fully supported | |
| Booth | Job (JobMtl + JobOper)1:many | Fully supported | |
| Sponsor | Customer1:1 | Fully supported | |
| Sponsor-Booth Link | JobProd (via Customer and Job linkage)1:1 | Fully supported | |
| Attendee Registration | Contact or Customer1:1 | Fully supported | |
| Session | Job or UD Tablelossy | Fully supported | |
| Badge Record | Contact UD column or UD Tablelossy | Fully supported | |
| Salesforce User (Owner) | Epicor User1:1 | Fully supported | |
| ContentDocument (Attachments) | Epicor Attachments BO1:1 | Fully supported | |
| Tags and Custom Properties | UD Columns or UD Tableslossy | Mapping required | |
| Custom Objects | UD Tableslossy | Not supported | |
| Inactive (Archived) Records | Archived or Excludedlossy | 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.
EF Enterprise gotchas
Undocumented custom Salesforce fields are not migratable by default
Archived (inactive) records behave differently from deleted records
Badge print triggers fire on record insert, risking duplicate badges at cutover
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 schema audit
We audit the source EF Enterprise Salesforce org across Exhibitions, Booths, Sponsors, Attendee Registrations, Sessions, Badge Records, custom objects, attachments, and tag taxonomy. We request a Salesforce schema export to identify every custom field and its type. We simultaneously confirm the destination Epicor instance's licensed modules (Project, Financials, Distribution), existing UD table structure, and any Epicor validation rules or required fields that would block record insert. The discovery output is a written migration scope, an object-gap report identifying EF Enterprise objects without Epicor equivalents, and a recommendation on selective historical archive depth.
Epicor UD table and UD column schema design
We design the Epicor destination schema for all EF Enterprise data that has no standard Epicor equivalent. This includes provisioning UD columns on JobHead and JobMtl for booth metadata, UD columns on Customer for sponsor tier, UD columns on Contact for attendee badge type and session selections, and a custom SponsorBoothLink UD table for sponsor-booth associations. UD tables are created via the Epicor ZDataTable adapter. We also design any required Epicor BPMs to populate UD fields on record insert. Schema is validated in a non-production Epicor environment before production deployment.
Sandbox migration and reconciliation
We run a full migration into a non-production Epicor environment using representative data volume. The customer's Epicor administrator reconciles record counts (Customers in, Contacts in, Jobs in, UD table entries in), spot-checks 25-50 records against the source EF Enterprise org, and signs off the schema and mapping before production migration begins. Any UD column mapping corrections, BPM logic issues, or validation rule conflicts are resolved here. Epicor UD table creation errors (ZDataTable adapter validation failures) are the most common finding at this stage.
Owner reconciliation and Epicor User provisioning
We extract every distinct EF Enterprise Owner referenced on Exhibition, Booth, Sponsor, and Attendee records and match by email against the Epicor destination org's SysUser table. Owners without a matching Epicor User go to a reconciliation queue. The customer's Epicor administrator provisions any missing Users. Migration cannot proceed past this step because Epicor Job and Customer records require Owner or CreatedBy references to valid SysUser records.
Production migration in dependency order
We run production migration in record-dependency order: Epicor UD table metadata deployed first, then Customers (from EF Enterprise Sponsors), Contacts (from EF Enterprise Attendees), Job headers (from EF Enterprise Exhibitions), Job materials and operations (from EF Enterprise Booths), session UD table entries, badge metadata UD columns, SponsorBoothLink UD table entries, and attachments via the Epicor Attachments BO. Epicor BPMs for UD field population are activated after bulk data load. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and automation inventory delivery
We freeze writes to the source EF Enterprise org 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 automation inventory documenting every Salesforce Flow, Apex trigger, and badge-print automation with its trigger, conditions, actions, and recommended Epicor BPM equivalent. We support a one-week hypercare window for reconciliation issues raised by the customer's team. We do not rebuild Salesforce automations as Epicor BPMs inside the migration scope; that is a separate engagement or an internal Epicor admin task.
Platform deep dives
EF Enterprise
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 EF Enterprise 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
EF Enterprise: Salesforce API governor limits apply (varies by Salesforce edition).
Data volume sensitivity
EF Enterprise exposes a bulk API — large-volume migrations stream efficiently.
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 EF Enterprise to Epicor Prophet 21 migration scoping. Not seeing yours? Book a call.
Walk through your EF Enterprise 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 EF Enterprise
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.