This article describes the known limitations of the Epicor Prophet 21 integration. These limitations are inherent to the integration's current design and to the capabilities of the Epicor Prophet 21 API, and they apply to all subscribers. They are described here so that subscribers, or their MiSP, can plan their configuration with the integration's behavior in mind. The descriptions reflect the integration as it was at the time this documentation was written.
Platform Scope and Tested Versions
This integration was built for Epicor Prophet 21 and communicates with a Prophet 21 instance over its REST and OData web services.
Platform: Epicor Prophet 21 (REST and OData web services).
API version: Epicor Prophet 21 exposes these endpoints without a stable, public version namespace. The integration was built against the documented Prophet 21 production endpoints and was last tested end-to-end on 2026-06-29.
Not built for other Epicor products. This integration is specific to Epicor Prophet 21. It is not built for, and will not work with, other Epicor products — including Epicor Kinetic / Epicor ERP, Epicor Eclipse, Epicor BisTrack, or any other Epicor distribution or manufacturing platform. If Epicor introduces a separate product line, or a materially different API version, in the future, this integration will not automatically support it. Subscribers running a non-Prophet 21 Epicor system should not point this integration at that system.
1. Synchronization runs on a scheduled poll, not on webhooks
The integration keeps Prophet 21 and iPaaS.com aligned by polling on a schedule rather than by receiving real-time push notifications. Records flowing from Prophet 21 into iPaaS.com are picked up on the integration's regular polling cycle, within a per-entity look-back window controlled by the relevant Poll Search Days subscription setting. Records flowing from iPaaS.com into Prophet 21 are processed when the integration next runs. No webhook configuration is required, and none is used.
What this means for you: Changes are not reflected on the other platform the instant they happen — they appear after the next poll. This is the right shape for this integration: the look-back windows and polling cadence are designed for steady, reliable synchronization. If you need a record to move immediately, use the Manual Sync page to transfer it on demand rather than waiting for the next scheduled poll. If your workflow depends on tightening or widening how far back the integration looks, adjust the per-entity Poll Search Days settings described in the Connections and Settings article.
2. Bulk initialization is not available; use polling, Manual Sync, or a bulk-load run
The integration does not provide a one-click bulk initialization that loads an entire historical dataset in a single pass. Synchronization is driven by the scheduled poll and by Manual Sync, both of which work on a record-by-record basis.
What this means for you: To bring existing records across for the first time, you can either widen the relevant Poll Search Days window so the scheduled poll reaches further back, or transfer individual records on demand from the Manual Sync page. For a larger historical or one-time load, follow the canonical iPaaS.com bulk-sync procedure, which uses Postman's Collection Runner to drive a Manual Sync across many records:
Note: Plan a bulk load to respect the integration's throttling controls — the per-entity Poll Search Days windows and the Concurrent Batch Executions setting — so a large run does not overwhelm either platform. These controls are described in the Connections and Settings article.
3. Writes into Prophet 21 update only the fields you map; other fields are preserved
When the integration writes a record into Prophet 21 — a customer, an order and its lines, a shipping address, or tracking detail — it sends only the fields that are populated and mapped on the iPaaS.com source. Fields that are not mapped, or that have no value, are left out of the write. Prophet 21 keeps its existing value for any field the integration does not send.
What this means for you: There is no risk that an unmapped field in Prophet 21 is blanked out or overwritten on a transfer. For the fields you do map, iPaaS.com is the source of truth — those values are written into Prophet 21 on each transfer. For everything else, the existing Prophet 21 value remains intact. If you want a particular Prophet 21 field to be maintained from iPaaS.com, map it; if you want Prophet 21 to retain its own value for a field, leave that field unmapped.
Note: This applies to the collections that write into Prophet 21 (the FROM iPaaS.com direction — customers, orders, order lines, order addresses, and tracking detail). For collections that read from Prophet 21 into iPaaS.com (the TO iPaaS.com direction), the record in iPaaS.com reflects the Prophet 21 record as it stood at the most recent poll.
4. Records transfer in parent-before-child order
Several entities are organized as a parent record with one or more child records — for example, a company with its address and its related contacts, a product with its inventory, or an order with its lines, shipping address, and tracking detail. A child record attaches to its parent using the parent's external identifier, which iPaaS.com saves after the parent transfers successfully.
What this means for you: A child record can only attach once its parent is present on the destination platform and carries its external identifier. In normal operation the integration handles this for you, transferring parents and their children together. If you transfer records manually, transfer the parent first (for example, the company before its address and contacts, or the product before its inventory) so the children have a parent to attach to.
5. Each order line must carry a unique SKU
When an order is written into Prophet 21, the integration requires that every line on that order carries a distinct SKU. Prophet 21 treats the SKU as the line's key, so the same SKU cannot appear on two lines of the same order. The integration checks this before the order is written: if a transaction has two or more lines that share a SKU, the transfer is stopped and the duplicated SKUs are reported.
What this means for you: Build orders so that each line item has its own unique SKU. If a single product appears more than once on an order, combine those into one line with the total quantity rather than repeating the SKU across multiple lines. If a transfer is stopped for a duplicate SKU, the reported SKU tells you which product is repeated so you can consolidate it on the source order.
6. Products and locations must exist before the records that depend on them
Some transfers depend on related records already being present:
Order lines depend on products. Each order line is matched to a Prophet 21 item by its SKU, so every product referenced by an order must already exist in Prophet 21 before the order is transferred.
Product inventory depends on its location. Inventory records transfer into iPaaS.com only for a location that already resolves to an iPaaS.com location. When no matching location is found, the inventory record is skipped until the location is present.
Tracking detail read into iPaaS.com depends on a matching Shipping Method. When Prophet 21 tracking detail is read into iPaaS.com, the carrier is matched to an iPaaS.com Shipping Method by name. A Shipping Method that matches the Prophet 21 carrier must already exist in iPaaS.com; if none matches, the tracking record is not processed until one is created.
What this means for you: Sync products before the orders that reference them, sync locations before the inventory that belongs to them, and make sure a matching iPaaS.com Shipping Method exists before relying on tracking detail to flow into iPaaS.com. If an order, an inventory record, or a tracking record does not transfer as expected, confirm that its product, its location, or its Shipping Method has already been set up. Once the prerequisite record is present and carries its identifier, the dependent record transfers on the next run.
7. Some fields are set to fixed values supplied by the integration
A small number of fields are set automatically to fixed values that the integration supplies, rather than being mapped from your data. These are deliberate design choices that place each record correctly in the destination platform:
Products created from Prophet 21 are always typed as Physical, with a tracking method of Product.
Company relationships (the related contact created with a company) are always given the role SuperUser.
Orders written into Prophet 21 are placed against a fixed sales location and assembled using the fixed line-item grouping the order API expects. The carrier on the order's tracking detail is also set to a fixed shipping method.
Transactions read into iPaaS.com are typed as invoices, and their order lines as product lines, so each record is classified consistently in iPaaS.com.
What this means for you: These values are part of the integration's design and are applied consistently to every record of that type — you do not need to map them, and they are not intended to be changed per record. If your workflow requires a different product type, a different relationship role, a different sales location, or a different default carrier, validate the behavior in a staging environment first, and submit a feature request through your iPaaS.com partner channel describing the requirement so it can inform a future release.
8. Orders require a complete shipping address and a resolvable carrier
When an order is written into Prophet 21, its shipping address and tracking detail come with their own expectations:
The shipping address is taken from the address on the iPaaS.com transaction that is marked as the primary shipping address. A transaction without a primary shipping address yields no address values for the order.
Prophet 21 expects a complete shipping address; the region, city, and country should be populated on the primary shipping address so the order ships correctly.
When tracking detail is written, the referenced pick ticket must already exist in Prophet 21, and the carrier must match a valid, pre-configured shipping method in Prophet 21.
Tracking detail is written into Prophet 21 only for order-type transactions; a transaction of any other type is skipped for tracking.
What this means for you: Make sure the source transaction has one address flagged as the primary shipping address, with its city, region, and country filled in. For tracking detail, confirm that the pick ticket exists in Prophet 21 and that the shipping method matches a carrier already configured there. If a carrier is not configured in Prophet 21, add it there before relying on the tracking transfer.
9. Some display names are composed by the integration rather than mapped directly
For certain records, the name shown in the destination platform is built by the integration from the detail available on the source record, rather than being a single field you map:
A Prophet 21 customer name is composed from the iPaaS.com first and last name.
A Prophet 21 address name is resolved from the best available detail — the company name, the contact's personal name, and finally the first address line when no name detail is available.
An iPaaS.com company is built from the Prophet 21 customer account that represents that business.
What this means for you: You do not map these composed names directly; the integration produces them from the underlying fields. To influence the resulting name, maintain the fields it draws on — keep first and last names, company names, and address detail populated and accurate on the source record so the composed name resolves to the value you expect.
10. Prophet 21 allows duplicate email addresses
Prophet 21 permits more than one customer to carry the same email address. When email is the value used to find a matching record, duplicate emails can make that lookup ambiguous.
What this means for you: A unique email address per customer is recommended so that records match cleanly and are not conflated. Likewise, keep customer numbers and source identifiers unique on the iPaaS.com side so each record resolves to a single counterpart. Reviewing and de-duplicating email addresses in Prophet 21 helps the integration link records to the right customer.
11. Creation and ongoing updates are handled by separate collections for some entities
For some entities, the initial creation of a record and its later updates are handled by separate mapping collections. For example, a Prophet 21 customer, company, or location is created by one collection and kept up to date by a companion "Update" collection.
What this means for you: This is simply how those flows are organized — both the create and the update collections ship with the integration and work together, so a record is created once and then kept current on subsequent polls. No action is needed beyond having both collections enabled, which is their shipped state. The mapping collection descriptions identify which collection handles creation and which handles updates for each entity.
12. The connection check confirms settings are saved, not live reachability
When connection settings are saved in the subscriber portal, the integration confirms the settings are in place. This is not a live round-trip test that contacts Prophet 21 to verify the API URL and credentials at that moment.
What this means for you: A saved connection does not by itself guarantee that the API URL is reachable or that the credentials are valid — those are exercised on the first real transfer. After configuring the connection, run a Manual Sync on a single record to confirm the integration can actually reach Prophet 21 and authenticate. If that first transfer reports an authentication or connection error, re-check the API URL, user name, and password in the Connections and Settings before relying on the scheduled poll. Transfer errors appear in Dashboard / Integration Monitoring / Error Logs.
This article covers 12 known limitations of the Epicor Prophet 21 integration. For the detailed, per-collection technical documentation — including the exact fields each collection transfers and the conditions under which records are processed — see the Epicor Prophet 21 mapping collection descriptions.
