Summary
The Add/Update QuickBooks Online Item TO iPaaS.com mapping collection creates and updates iPaaS.com products from QuickBooks Online items, with QuickBooks as the item master. Each item's name, SKU, type, sales price, sales description and active state reach iPaaS.com. Product fields the integration does not read from QuickBooks (dimensions, weight, MSRP, sale price, barcode, tax class, unit, in-stock threshold and the allow-backorders and allow-discounts flags) keep the values they already have in iPaaS.com.
Only QuickBooks Inventory, NonInventory and Service items are sent. For Inventory items, the quantity on hand travels with the item through the child collection Add/Update QuickBooks Online Item Inventory TO iPaaS.com, so a new product arrives with its stock level at the iPaaS.com location named in the Inventory Location setting, and a changed item keeps its stock current.
ID Format
Manual Sync ID: the QuickBooks item id, a number such as 41.
External ID saved after sync: the QuickBooks item id, for example 41. iPaaS.com keeps it in an external-ID record for this subscription that links the QuickBooks item to its iPaaS.com product, so every later transfer of the same item updates that product instead of creating another.
Quantity record: the quantity of an Inventory item is linked separately, by the item id followed by |QOH, for example 41|QOH.
Deleted Record Support
Not supported. QuickBooks Online does not delete items; it makes them inactive. The filter sends inactive items, and an inactive item arrives in iPaaS.com as a Disabled product, so retiring an item in QuickBooks retires its product in iPaaS.com without removing it.
Mapping Collection Status
Status: Enabled (the parent and its child).
Trigger events: the item/poll scope (scheduled polling). Intuit webhooks are not offered in this release. The child collection has no trigger of its own: it runs as part of each transfer of the parent.
Duplicate or Conflicting Mappings
These mapping collections also work with QuickBooks items or iPaaS.com products:
Add/Update QuickBooks Online Item FROM iPaaS.com: creates and updates QuickBooks items from iPaaS.com products.
Update QuickBooks Online Item Inventory TO iPaaS.com: sends quantity-on-hand changes of Inventory items on their own, without resending the product. It uses the same external ID for a quantity (the item id followed by |QOH), so it updates the same iPaaS.com inventory record as the child collection instead of creating a second one.
Add QuickBooks Online Sales Receipt FROM iPaaS.com and Add/Update QuickBooks Online Invoice FROM iPaaS.com: can create a missing QuickBooks item for a transaction line when the Create Missing Items setting is on. Those items then reach iPaaS.com through this collection's poll.
Important: before enabling this collection alongside Add/Update QuickBooks Online Item FROM iPaaS.com, decide which system is the source of truth for product names, SKUs, prices and descriptions, and review both collections' filters. With both directions active on the default mappings, a change in either system reaches the other on its next transfer. This collection overwrites the product's name, SKU, type, default price and status in iPaaS.com on every update, even when another integration maintains those values. Likewise, the quantity in iPaaS.com is replaced with the QuickBooks quantity every time the item or its quantity transfers, so use one system as the source of truth for stock levels at the Inventory Location.
Collision handling is not needed on this collection, and the default template does not set a Collision Handling Method. Before a QuickBooks item that is not linked yet is transferred, the integration looks for an iPaaS.com product with the same SKU (the item's SKU, or its name when it has no SKU), in any letter case:
Same SKU: QuickBooks item WIDGET-01 is linked to iPaaS.com product WIDGET-01 or widget-01, and the transfer updates that product instead of creating a duplicate. No error is logged.
No match: a new iPaaS.com product is created.
Several matches, or a product linked elsewhere: when more than one iPaaS.com product has the SKU, or the one that has it is already linked to another QuickBooks item of this subscription, nothing is linked automatically and iPaaS.com refuses to create a second product with the same SKU. Subscribers or their MiSP can link the right one once by setting the QuickBooks item id (for example 41) as the external ID of that iPaaS.com product for this subscription.
Supported Child Collections
Add/Update QuickBooks Online Item Inventory TO iPaaS.com: the quantity on hand of a QuickBooks Inventory item, sent with the item to the iPaaS.com location in the Inventory Location setting. NonInventory and Service items have no quantity record. Each quantity is linked by the item id followed by |QOH.
System Caveats
QuickBooks Online Caveats
Items are never deleted: QuickBooks makes an item inactive instead. When an item is made inactive, QuickBooks adds (deleted) to the end of its name, and the iPaaS.com product takes that name on the next transfer, with the status Disabled.
No variants: QuickBooks Online items have no variants. Each size or color that is sold separately is its own item with its own SKU, and becomes its own iPaaS.com product.
Categories and bundles: QuickBooks Category and bundle (Group) items are not products, and the item poll does not send them TO iPaaS.com. Bundles sold in QuickBooks have no iPaaS.com product.
One quantity per item: QuickBooks keeps one quantity on hand per item, with no inventory locations and no reserved or committed quantity. The quantity on hand is sent as both the quantity on hand and the quantity available. Quantities need QuickBooks inventory tracking, which only Inventory items have.
Rate limits: QuickBooks Online allows 500 requests a minute and 10 requests a second for each company and app. If QuickBooks limits the rate, iPaaS.com holds the transfer and retries it after a minute. If rate-limit errors continue for hours, QuickBooks' monthly limit for the iPaaS.com app may have been reached: contact your MiSP or iPaaS.com Support (see QuickBooks Online Known Limitations).
iPaaS.com Caveats
One product per SKU: iPaaS.com allows one product per SKU. Keep SKUs unique in QuickBooks; two items with the same SKU cannot both become products.
Inventory location: fill the Inventory Location setting with the id of the iPaaS.com location the stock belongs to before Inventory items transfer. Left blank, iPaaS.com refuses the quantity of every Inventory item.
Whole-record updates: an update TO iPaaS.com replaces the product's standard fields. The default template maps every standard product field: fields QuickBooks owns are sent from QuickBooks, and the fields QuickBooks does not have are carried forward with DestinationValue formulas so they keep their current iPaaS.com values. Keep the mappings for AllowBackorders, AllowDiscounts, Barcode, Depth, Height, InStockThreshold, MSRP, SalePrice, TaxClass, Unit, Weight and Width: removing one blanks that field on the next update. TrackingMethod is also carried forward, and Description keeps its iPaaS.com value when the QuickBooks description is blank. Product categories and options are separate lists and are not cleared by this collection.
Inventory cost is not mapped: the child collection replaces the inventory record's standard fields too, and its default template does not map Cost, so an existing cost on these inventory records is cleared each time the quantity transfers. To keep it, add a Dynamic Formula mapping
return DestinationValue != null ? DestinationValue.Cost : null;to the iPaaS.com Cost field, and validate it in a staging environment before relying on it in production.Retries: iPaaS.com retries every errored transfer automatically on a growing schedule. An item that cannot transfer fails again on each retry until the item or the mapping is fixed.
Prerequisite Handling
None. A product depends on no other record. The quantity record of an Inventory item is sent after its product in the same transfer, so it always has a product to belong to.
Setup Requirements
iPaaS.com Configuration
Automatic transfers do not start by themselves. In Dashboard / Integration Monitoring / Events, add a polling event for this subscription and the item/poll scope, and set it to run every 15 minutes (see Events). No items or quantities are transferred automatically until that polling event exists.
Before Inventory items transfer, enter the id of an iPaaS.com location (for example 12) in the Inventory Location subscription setting.
Initialization is not supported. The first poll looks back only the number of days in the Initial Poll Days subscription setting (7 when blank), so QuickBooks items that have not changed recently are not found by it. To bring in all existing items, transfer each item with Manual Sync (scope qbo.item.created.v1 or qbo.item.updated.v1 and the QuickBooks item id), or raise Initial Poll Days before the first poll. That setting applies to the first poll of every collection that has not polled yet, so a large value also makes those first polls look back that far. Whether a Manual Sync creates or updates the iPaaS.com product depends on whether the item is already linked, not on which scope is chosen.
QuickBooks Online Configuration
Give each item a SKU: the default filter only takes items that have one, because iPaaS.com requires a SKU on every product. Keep SKUs unique.
Give each item a Sales price (0 is a valid price), because iPaaS.com requires a default price on every product.
To send quantities, turn on inventory tracking in QuickBooks (included in Plus and Advanced, an add-on for Simple Start and Essentials) and use the Inventory item type.
Integration Flow
The item/poll scope finds the items changed in QuickBooks since the previous poll, active and inactive, and keeps only Inventory, NonInventory and Service items. Manual Sync starts at the next step with the id you enter.
The integration reads the item from QuickBooks. For an Inventory item it also prepares the quantity record: the quantity on hand (0 when QuickBooks has none) at the location in Inventory Location.
If the QuickBooks item is not linked yet, the integration links it to the one iPaaS.com product with the same SKU, when there is exactly one (see Duplicate or Conflicting Mappings).
The filter keeps only items that have a SKU.
iPaaS.com creates the product, or updates the linked one, with the mapped values.
For an Inventory item, the child collection creates or updates the product's inventory record at the Inventory Location.
Mappings
Add/Update QuickBooks Online Item TO iPaaS.com
iPaaS.com data type: Product
Mapping Filter
// QuickBooks items with a SKU, active or not: an inactive item arrives as Disabled. return Sku != null;
Filter Description. Only QuickBooks items that have a Sku pass, whether they are active or inactive; an inactive item arrives in iPaaS.com with the status Disabled. Items without a SKU are skipped without an error, because iPaaS.com requires a SKU on every product.
Mapping Type | Source Field (QuickBooks Online) | Destination Field (iPaaS.com) | Description |
Dynamic Formula |
| Sku | Required. Sends the item's QuickBooks SKU, or its name when it has no SKU (only if the filter is changed to admit such items). iPaaS.com allows one product per SKU, and the SKU is also how an item that is not linked yet finds its existing product. |
Dynamic Formula |
| Description | Recommended. Sends the item's QuickBooks sales description; when it is blank, keeps the description already on the iPaaS.com product instead of erasing it. |
Translation | Type (translation QuickBooks Online Item Type TO iPaaS.com) | Type | Required. Translates the QuickBooks item type to an iPaaS.com product type (see Item Type Translation Values below). |
Field | UnitPrice | DefaultPrice | Required. The item's QuickBooks sales price, overwritten on every update. Give each item a sales price (0 is a valid price). |
Dynamic Formula |
| AllowBackorders | Keeps the allow-backorders flag already on the iPaaS.com product; QuickBooks items have no such flag. Empty on a new product. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| AllowDiscounts | Keeps the allow-discounts flag already on the iPaaS.com product. Empty on a new product. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| Barcode | Keeps the barcode already on the iPaaS.com product; QuickBooks items have no barcode. Empty on a new product. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| Depth | Keeps the depth already on the iPaaS.com product; QuickBooks items have no dimensions. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| Height | Keeps the height already on the iPaaS.com product; QuickBooks items have no dimensions. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| InStockThreshold | Keeps the in-stock threshold already on the iPaaS.com product; the integration does not read the QuickBooks reorder point. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| MSRP | Keeps the MSRP already on the iPaaS.com product; QuickBooks items have no MSRP. Keep this mapping: removing it blanks the field on every update. |
Field | Name | Name | Required. The item's QuickBooks name, overwritten on every update. QuickBooks requires a name on every item, so it is always present. |
Dynamic Formula |
| SalePrice | Keeps the sale price already on the iPaaS.com product; QuickBooks items have only one sales price, mapped to DefaultPrice. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| Status | Required. An inactive QuickBooks item becomes Disabled, every other item Active. Allowed values: Active, Disabled, Discontinued, Preorder. |
Dynamic Formula |
| TaxClass | Keeps the tax class already on the iPaaS.com product; the integration does not read a tax class from QuickBooks. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| Unit | Keeps the unit already on the iPaaS.com product; the integration does not read a unit from QuickBooks. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| Weight | Keeps the weight already on the iPaaS.com product; QuickBooks items have no weight. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| Width | Keeps the width already on the iPaaS.com product; QuickBooks items have no dimensions. Keep this mapping: removing it blanks the field on every update. |
Dynamic Formula |
| TrackingMethod | Required. A new product is tracked per Product, because QuickBooks items have no variants; an existing product keeps its tracking method. Allowed values: Product, Variant. Keep this mapping: without it iPaaS.com refuses the product. |
Add/Update QuickBooks Online Item Inventory TO iPaaS.com (child)
iPaaS.com data type: Product Inventory
This collection has no mapping filter. Only QuickBooks Inventory items carry a quantity record, so only they reach it.
Mapping Type | Source Field (QuickBooks Online) | Destination Field (iPaaS.com) | Description |
Field | LocationId | LocationId | Required. The iPaaS.com location the quantity belongs to, filled from the Inventory Location setting for every Inventory item. It must be the id of an existing iPaaS.com location; left blank, iPaaS.com refuses each quantity. |
Field | QtyOnHand | QtyAvailable | Recommended. The QuickBooks quantity on hand, sent as the quantity available because QuickBooks has no reserved or committed quantity. Subscribers or their MiSP who calculate availability elsewhere can remove or replace this mapping. |
Field | QtyOnHand | QtyOnHand | Recommended. The item's QuickBooks quantity on hand (0 when QuickBooks has none). Keep this mapping: the quantity is what this collection exists to send. |
Item Type Translation Values
The Type mapping uses the translation QuickBooks Online Item Type TO iPaaS.com, which ships with these rows:
QuickBooks item type | iPaaS.com product type |
NonInventory | Non-Inventory Items |
Service | Service Items |
Inventory | Physical |
There is no row for QuickBooks Category or bundle (Group) items, and none is needed: the item poll does not send them TO iPaaS.com.
Error Handling
This collection raises no error of its own: items without a SKU are skipped, and linking by SKU never fails a transfer. Errors appear in Dashboard / Integration Monitoring / Error Logs, and iPaaS.com retries an errored transfer automatically on a growing schedule.
QBOL-EXTN-1013: QuickBooks limited the request rate; iPaaS.com retries after a minute.
BIZL-1006 (from iPaaS.com): the QuickBooks item could not be linked (several iPaaS.com products have its SKU in some letter case, or the one that has it is linked to another QuickBooks item), and iPaaS.com refused a second product with the same SKU. Link the right product by hand (see Duplicate or Conflicting Mappings).
NFND-1003 - Location Id: 0 does not exist or can not be found (from iPaaS.com): the Inventory Location setting is blank, so the quantity of an Inventory item has no location. Enter the id of an iPaaS.com location in Inventory Location and transfer the item again.
Connection errors (QBOL-AUTH codes) are covered in QuickBooks Online Error Messages.
If an error keeps returning after the item and the mappings are fixed, contact your MiSP or iPaaS.com Support.
Testing & Validation
Create a NonInventory item in QuickBooks with a SKU (for example WIDGET-01) and a sales price, and transfer it with Manual Sync, or wait for the next poll. Confirm iPaaS.com has a product with that name, SKU and default price, type Non-Inventory Items, status Active and tracking method Product.
With Inventory Location filled, create an Inventory item with a SKU and a quantity on hand of 10 and transfer it. Confirm the product has type Physical and an inventory record at that location with a quantity on hand and a quantity available of 10.
Transfer a QuickBooks item whose SKU matches an existing iPaaS.com product that is not linked (for example widget-02 against WIDGET-02). Confirm no new product is created and the existing product is updated.
Set an MSRP and a Weight on the product in iPaaS.com, edit the item in QuickBooks, and transfer it again. Confirm the MSRP and weight are unchanged.
Make the item inactive in QuickBooks and transfer it. Confirm the product is Disabled and its name ends in (deleted).
Create an item without a SKU and transfer it. Confirm no product is created and no error is logged.
Additional Notes
Out of scope: deleting products (QuickBooks never deletes items); QuickBooks Category and bundle items; variants; quantities at more than one location; writing quantities to QuickBooks FROM iPaaS.com.
Known limitations: the standalone inventory poll does not read inactive items, so a quantity change made after an Inventory item is made inactive reaches iPaaS.com only when the item itself is transferred again through this collection (for example with Manual Sync). See QuickBooks Online Known Limitations.
Related Documents
Related Mapping Documentation
