Overview
This integration transfers Transaction records from iPaaS to Prophet 21 as Invoices. The integration supports the creation and update of Invoice data in Prophet 21 based on changes made within the iPaaS Transaction entity. This ensures both platforms maintain consistent and accurate transaction information.
Mapping Collection Status
Mapping Status: Enabled.
Trigger Events: Create, Update.
Duplicate and Conflicting Mappings
This mapping applies only to Transactions from iPaaS. Ensure no other mappings target the same Prophet 21 Invoice entity to prevent data from being overwritten.
ID Format
When manually transferring data from iPaaS to Prophet 21, enter the iPaaS Transaction ID in the Manual Sync iPaaS.com input field (for example, 10001). The iPaaS Transaction ID is used directly without any suffix.
External ID Format: The Invoice ID serves as the external ID. For example: 0235598
System Caveats
iPaaS Caveats
iPaaS requires a unique TransactionNumber for each Transaction.
Duplicate SKUs inside the same Transaction are not allowed due to Prophet 21 rules.
Prophet 21 Caveats
Prophet 21 requires a unique SKU per line; duplicates cause sync rejection.
Prophet 21 may require a valid CustomerId, ShipToId, and ItemId before allowing order creation.
OrderDate must be in Prophet 21 accepted date format.
Setup Requirements
iPaaS Configuration
Ensure fields like TransactionNumber, CustomerId, Sku, Qty, and Address are available before syncing.
Each line item must have a unique SKU inside the transaction.
Prophet 21 Configuration
API calls will fail if required fields like CustomerId, ShipToId, or ItemId cannot be resolved.
Prophet 21 may require Sales Location setup before accepting orders.
Supported Child Collections
This parent mapping collection supports the following child collections:
Authentication & Security
Prophet 21 uses username and password authentication to access the iPaaS API. These credentials authorize all Prophet 21 API requests during transfer operations.
Integration Flow
The integration is triggered when a Transaction is created or updated in iPaaS or manually initiated.
Transaction data is fetched from iPaaS.
The mapping filter validates that no duplicate SKUs exist in line items.
Dynamic formulas resolve CustomerId, ShipToId, and ContactId from iPaaS references.
Field and static value mappings are applied to transform data.
Child collections (Address, Line Items, Tracking) are processed.
The Invoice and related entities are created or updated in Prophet 21.
Mappings
Parent: Prophet 21 Add/Update Transaction FROM iPaaS.com(Parent)
Mapping Filter
This filter validates that no duplicate SKUs exist in the transaction line items:
var skuGroups = Lines
.GroupBy(line => line.Sku)
.Where(g => g.Count() > 1)
.Select(g => g.Key)
.ToList();
if (skuGroups.Any())
{
var duplicateSkus = string.Join(", ", skuGroups);
throw new Exception($"Order line items contain duplicate SKUs not allowed in Prophet 21: {duplicateSkus}");
}
else
{
return true;
}
Description
Multiple line items with the same SKU are not allowed, as Prophet 21 requires each line to have a unique SKU.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Prophet 21) | Description |
Dynamic Formula |
| CustomerId | Returns the Company External ID (Prophet 21 Customer ID) if it exists. Otherwise, retrieves the Customer External ID and gets the Address ID by Contact ID. |
Dynamic Formula |
| OrderNo | Retrieves the Prophet 21 Order Number by looking up the iPaaS Transaction External ID. |
Dynamic Formula |
| OrderDate | Converts the iPaaS Transaction creation date to Prophet 21 date format. |
Field | TransactionNumber | PoNo | Maps the iPaaS TransactionNumber to the Prophet 21 Purchase Order Number. |
Dynamic Formula |
| ShipToId | Retrieves the customer Id (Prophet21 Contact Id) if it is not null then gets the Address ID (customer Id) and return the related ship to id of that customer id, if it is null then it gets the company Id (Customer Id of Prophet21) and return the related ship to id of that customer id |
Dynamic Formula |
| ContactId | Returns the Customer external id (Prophet21 Contact Id) if exists else it checks for the Company external id and gets the Contact id by Company id (Prophet21 Customer Id) |
Static | TP_ITEMS.items | TransactionItemInfoTabName | Sets the Transaction Item Tab name statically. This value is required for Prophet 21 item processing. |
Static | 70 | SalesLocId_Order | Sets the SalesLocId_Order to 70. |
Mapping Notes
TransactionItemInfoTabName Note
This Transaction Item Tab name is passed statically to the mapping.
"Name": "TP_ITEMS.items",
"ParentText": "Items",
"BusinessObjectName": "oe_line",
"KeyFields": [
"oe_order_item_id"
],
Child: Prophet 21 Add/Update Transaction Address FROM iPaaS.com
Description
This mapping collection transfers shipping address data from iPaaS transactions to Prophet 21. The mapping retrieves the primary shipping address from the parent transaction's address collection.
Mapping Type | Source Field (iPaaS) | Destination Field (Prophet 21) | Description |
Dynamic Formula |
| PhysAddress1_Order | Retrieves Address1 from the first address where IsPrimaryShipping is true. |
Dynamic Formula |
| PhysAddress2_Order | Retrieves Address2 from the first address where IsPrimaryShipping is true. |
Dynamic Formula |
| PhysCity_Order | Retrieves City from the first address where IsPrimaryShipping is true. |
Dynamic Formula |
| PhysState_Order | Retrieves Region from the first address where IsPrimaryShipping is true. |
Dynamic Formula |
| PhysPostal_Order | Retrieves PostalCode from the first address where IsPrimaryShipping is true. |
Dynamic Formula |
| PhysCountry_Order | Retrieves Country from the first address where IsPrimaryShipping is true. |
Child: Prophet21 Add/Update Transaction Line Item FROM iPaaS.com
Description
This mapping collection transfers line item data from iPaaS transactions to Prophet 21. Each line item must have a unique SKU.
Mapping Type | Source Field (iPaaS) | Destination Field (Prophet 21) | Description |
Field | Sku | ItemId | Maps the iPaaS Sku to the Prophet 21 ItemId. Must be unique per transaction. |
Field | Qty | Qty | Maps the iPaaS Qty to the Prophet 21 Qty. |
Field | UnitPrice | UnitPrice | Maps the iPaaS UnitPrice to the Prophet 21 UnitPrice. |
Field | Description | Description | Maps the iPaaS line item Description to the Prophet 21 Description. |
Child: Prophet 21 Add/Update Transaction Tracking FROM iPaaS.com
Filter
This filter ensures only Order-type transactions are processed for tracking information.
Type == "Order"
Description
This mapping collection transfers tracking and shipping information from iPaaS transactions to Prophet 21.
Mapping Type | Source Field (iPaaS) | Destination Field (Prophet 21) | Description |
Field | Cost | FreightOut | Maps the iPaaS tracking Cost to the Prophet 21 FreightOut field. |
Static | FedEx Ground | CarrierId_Order | Sets the Prophet 21 Carrier ID to the static value FedEx Ground. |
Error Handling
Missing Customer
CustomerId cannot be resolved.
Description: The iPaaS Company does not exist in Prophet 21 or the External ID mapping is missing.
Resolution: Create the Company in Prophet 21 or ensure the External ID mapping exists.
Missing Order Number
TransactionNumber missing.
Description: The TransactionNumber field is required but was not provided from iPaaS.
Resolution: Provide a valid TransactionNumber in iPaaS before syncing.
Duplicate SKU
Multiple line items contain the same SKU.
Description: Prophet 21 requires each line item to have a unique SKU within the transaction.
Resolution: Ensure each SKU in the Transaction is unique. Remove or consolidate duplicate line items.
Item Lookup Failure
Product does not exist in Prophet 21 by Sku.
Description: The SKU referenced in the line item cannot be found in Prophet 21.
Resolution: Create the Product in Prophet 21 or sync the product mapping before syncing transactions.
Missing Address Fields
Region, City, or Country missing.
Description: Required address fields are not populated in the iPaaS transaction.
Resolution: Provide complete address details in iPaaS, including Region, City, and Country.
Carrier Not Found
Shipping Method not supported.
Description: The CarrierId value does not match a configured carrier in Prophet 21.
Resolution: Use only configured CarrierId values (for example, FedEx Ground).
Validation & Testing
Validation Checklist
Before deploying this integration, verify the following configuration items and run the test scenarios to confirm proper operation.
TransactionNumber is present and unique.
CustomerId resolves to a valid Prophet 21 Customer.
ShipToId is generated correctly from Customer data.
ContactId is resolved successfully.
All line item SKUs are unique within the transaction.
All line item Products exist in Prophet 21.
Address fields are complete for the shipping address.
OrderDate is in a valid format.
Tracking CarrierId matches configured values.
Test Scenarios
Scenario 1: New Transaction Sync
Create a new Transaction in iPaaS with TransactionNumber, CustomerId, and line items. Sync to Prophet 21 and verify the Invoice is created with the correct data.
Scenario 2: Update Transaction
Modify a line item or price in an existing iPaaS Transaction. Sync to Prophet 21 and verify the Invoice updates correctly without creating duplicates.
Scenario 3: Duplicate SKU Test (Failure Case)
Intentionally add duplicate SKUs to a transaction. Attempt to sync and verify the mapping filter rejects the transaction with an appropriate error message.
Scenario 4: Address Sync
Create a transaction with a complete shipping address in iPaaS. Sync to Prophet 21 and verify that all address fields map correctly.
Scenario 5: Missing Customer (Failure Case)
Attempt to sync a transaction with an invalid or missing CustomerId. Verify the system returns an appropriate error.
Scenario 6: Tracking Sync
Add tracking information (Cost) to a transaction. Sync to Prophet 21 and verify FreightOut and CarrierId map correctly.
Additional Notes
Ensure Products are synced to Prophet 21 before sending Transaction referencing them.
