Q. Is Celigo integrator.io capable of mapping multiple items in multiple orders in a single HTTP request?
A. There are two scenarios to consider, for realtime and scheduled flows, and in both cases you can accomplish the mapping in a single import flow step, but multiple individual requests are made to map the data.
To gain more insight, it helps to understand how an export generates data and how an import maps it. At minimum, scheduled integrator.io flows have an export and an import step. The export step generates a list of data and the import maps the data and sends it somewhere.
An export builds a list of data (most commonly from NetSuite) in one of three ways:
- A webhook listener generates a list of size 1 with one record in it. That one record can contain multiple items.
- A scheduled export can generate either...
- A list of data where each element is a search result, or
- A list of search results
A transaction search usually contains either a list of items, or a list of transactions, where each transaction can have many items.
An import maps each element of the list and then generates a RESTful request. For the realtime flow, the list would contain only one order. That is, the import does not map multiple orders; it maps one order with many items.
A scheduled export does in fact send one request for each transaction downstream. This scenario is similar to the listener, except that it does generate one request per transaction instead of one request with one transaction.
Caution: Be careful when chaining related flows like customers and sales orders. When flows are chained together, two separate exports run at different times. In this case, there will be a request to get a list of customers and then a later request to get sales orders. Alternatively, there could be a request to get sales orders (and use the sales order to create a customer) followed by a later request to get sales orders again to create sales orders.
Problems could occur when an order is placed between when the customer export runs and when the sales order export runs. Since the order is created after the customer flow generates a list of data, no customer will be created. However since the order is created before the sales order export runs, it will be included in the sales order export. That will cause an error since the customer won’t be created when the sales order is.