Overview
This document outlines the workflow configuration for synchronizing completed Orders and Validated Returns from iPaaS into 99minds.
This workflow triggers when iPaaS marks an order or a validated return as Complete, ensuring that loyalty points, order totals, and refund amounts flow accurately into 99minds.
Mapping Collection Status
Mapping Status: Enabled.
Trigger Events: The sync is triggered Runs when an order or validated return in iPaaS reaches Status = Complete.
ID Format: When manually syncing, the Transaction ID from iPaaS is used.
Conflicting Mappings: This mapping applies only to Invoice. Ensure no other mappings target the same 99minds entity to prevent data from being overwritten.
System Caveats
iPaaS Caveats
Orders must contain valid TransactionNumber, CustomerId, Subtotal, and TotalQty.
Transactions with certain suffix modifiers (e.g., -D, -GC) should be excluded to avoid incorrect loyalty calculations.
99minds Caveats
99minds expects a stable IdempotentId to avoid duplicate transaction creation.
Refund amounts and loyalty point reversals rely on correct logic based on order type.
Missing CustomerId or invalid mapping will prevent transaction creation.
Setup Requirements
99minds Configuration
OriginalOrderId: Must correspond to a valid 99minds order.
Invoice Entity: Must exist when updating; otherwise, iPaaS triggers creation.
Comment Fields: Must align with 99minds’s order comment visibility and notification fields.
iPaaS.com Configuration
Type: Must be explicitly set to "Invoice".
Qty: Specifies the number of units invoiced per line item.
TransactionLineEntityId: Used for unique identification of invoice lines.
Authentication & Security
99minds2 API UserName: Used to access iPaaS API for fetching Company and related data.
99minds2 API Key: Used to access iPaaS API for fetching Company and related data
Integration Flow
Trigger & Retrieve Data: iPaaS triggers the mapping when a transaction with Type == "Order" or Validated Return is identified.
Determine Operation: If transaction number does not end with ‘D’ or ‘-GC’, it updates the order.
Map Transaction Identifiers: The TransactionNumber is mapped to the IdempotentId in the 99minds template to ensure uniqueness.
Map Quantities & Totals: TotalQty is mapped to TotalQuantity in 99minds, ensuring accurate item count synchronization.
Sync Line Items: For each invoiced item, map quantities, SKUs, and unique identifiers to 99minds.
Create or Update Workflow Record: 99minds creates or updates the Order Completed workflow entry using the IdempotentId to avoid duplicates.
Mappings
Parent Collection: 99minds Invoice From iPaaS
Mapping Filter
(Type == "Order" || Type == "Validated Return")
&& Status == "Complete"
&& !TransactionNumber.EndsWith("-D")
&& !TransactionNumber.EndsWith("-GC")
Description
Adjust filter as needed to limit orders from specific sources.
Mapping Type | Source (iPaaS.com) | Destination (99minds) | Description |
Dynamic Formula |
| IdempotentId |
|
Dynamic Formula |
| CustomerId |
|
Dynamic Formula | if (Type == "Order" && Total >= 0) return "order_paid"; if (Type == "Validated Return" || Total < 0) return "order_refunded"; return null; | Trigger |
|
Dynamic Formula | if (Type == "Validated Return" || Total < 0) return null; if (Total >= 0) return Total; return null; | TotalPrice | Adjust the total formula to indicate sale (not refund) amounts based on your iPaaS transaction types. |
Dynamic Formula |
| SubtotalPrice |
|
Dynamic Formula |
| TotalQuantity |
|
Dynamic Formula |
| LoyaltyPointsClaimed |
|
Dynamic Formula |
| RefundAmount | Adjust the refund amount formula to indicate refund(not sale) amounts based on your iPaaS transaction types |
Error Handling
Missing CustomerId
Unable to resolve customer.
Description: Customer lookup failed in iPaaS or 99minds.
Resolution: Ensure customer exists and mapping is correct.
Unsupported Transaction Type
Type is not Order or Validated Return.
Resolution: Check mapping filter or source system configuration.
Excluded Transaction (Suffix Match)
TransactionNumber ends with -D or -GC.
Resolution: Expected behavior—these are intentionally filtered.
Invalid Refund Data
ReturnAmount missing for Validated Return.
Resolution: Confirm return processing workflow populates the correct fields.
Validation Rules & Testing
Validation Checklist
Order and Return Types: Ensure only Orders and Validated Returns with Status = Complete are processed.
Exclusion Rules: Confirm transactions ending with “-D” or “-GC” are skipped.
IdempotentId Accuracy: Verify IdempotentId matches the iPaaS TransactionNumber and prevents duplicates.
Customer Resolution: Check that a valid 99minds CustomerId is returned for each processed order.
Price Calculations: Confirm TotalPrice and SubtotalPrice values accurately match iPaaS source values, including negative adjustments for returns.
Quantity Mapping: Ensure TotalQuantity correctly reflects the iPaaS TotalQty value.
Refund Handling: Ensure RefundAmount is populated only for Validated Returns and equals the correct refunded value.
Test Scenarios
Completed Order Sync: Create a new order in the source system, allow it to reach iPaaS, mark it as Complete, and verify that a corresponding order record is created in 99minds with accurate TotalPrice, SubtotalPrice, TotalQuantity, and LoyaltyPointsClaimed.
Validated Return Sync: Create a validated return in iPaaS, mark it as Complete, and confirm that 99minds receives a return transaction with the correct negative TotalPrice, correct refund amount, and reversed loyalty points.
Exclusion Filter Check: Use an order whose TransactionNumber ends with “-D” or “-GC”, mark it Complete, and verify that the workflow does not create a record in 99minds.
Customer Resolution Failure: Trigger the workflow with an order whose CustomerId cannot be resolved in 99minds and confirm that no transaction is created and appropriate error logging occurs.
Duplicate Prevention: Re-run the workflow using the same TransactionNumber and verify that 99minds does not create a duplicate transaction due to IdempotentId enforcement.
Field Mapping Verification: Sync a completed order with known Subtotal, TotalQty, and Total values, and verify that all mapped fields appear correctly in 99minds.
Additional Notes
This workflow handles both completed orders and validated returns.
