Summary
The Update QuickBooks Online Item Inventory TO iPaaS.com mapping collection sends quantity-on-hand changes of QuickBooks Online Inventory items to iPaaS.com on their own, without resending the product. When an inventory adjustment changes an item's quantity in QuickBooks, the next inventory poll picks up the item and this collection updates the stock level of the linked iPaaS.com product.
QuickBooks Online keeps one quantity per item and has no inventory locations, so every quantity is recorded at the one iPaaS.com location named in the Inventory Location subscription setting. NonInventory and Service items have no quantity and are never sent through this collection. The item must already be linked to an iPaaS.com product: this collection updates stock levels, it does not create products.
ID Format
Manual Sync ID: the QuickBooks Online item id, a number such as 41, either on its own or followed by |QOH (for example 41|QOH), with the scope inventory/updated. An id that belongs to a NonInventory or Service item, or to no item, transfers nothing.
External ID saved after sync: the item id followed by |QOH, for example 41|QOH. iPaaS.com keeps it as the external ID of the inventory record. It is the same external ID the child collection Add/Update QuickBooks Online Item Inventory TO iPaaS.com uses, so both collections update the same iPaaS.com inventory record. The product the quantity belongs to is found from the external ID of the item itself, which Add/Update QuickBooks Online Item TO iPaaS.com or Add/Update QuickBooks Online Item FROM iPaaS.com saves when the item is first linked.
Deleted Record Support
Not supported. QuickBooks items cannot be deleted, only made inactive, and the inventory poll reads only active Inventory items, so making an item inactive in QuickBooks does not change or remove its iPaaS.com inventory record.
Mapping Collection Status
Status: Enabled.
Trigger events: the inventory/poll scope (scheduled polling), and inventory/updated for Manual Sync. Intuit webhooks are not offered in this release.
Duplicate or Conflicting Mappings
Add/Update QuickBooks Online Item Inventory TO iPaaS.com: a child of Add/Update QuickBooks Online Item TO iPaaS.com that sends the same quantity as part of each item transfer. Both collections use the same external ID, so they update one inventory record.
Add/Update QuickBooks Online Item TO iPaaS.com: transfers the item itself and links it to its iPaaS.com product, which this collection needs.
Use one system as the source of truth for stock levels. The quantity in iPaaS.com is replaced with the QuickBooks quantity on every transfer, so a stock level maintained in iPaaS.com by another integration for the same location is overwritten. Quantities are never written to QuickBooks FROM iPaaS.com.
Collision handling is not supported on this collection, and the default template does not set a Collision Handling Method. An inventory record is linked only through its external ID (41|QOH); it is never matched to an existing iPaaS.com inventory record by any other value.
Supported Child Collections
None.
System Caveats
QuickBooks Online Caveats
One quantity per item: QuickBooks Online has no inventory locations or reserved quantities. The quantity on hand is sent as both the quantity on hand and the quantity available.
Quantity changes in QuickBooks: the quantity on hand changes in QuickBooks through sales and inventory adjustments. Both are picked up by the next inventory poll.
Inventory items only: only items of type Inventory have a quantity. Quantities need QuickBooks inventory tracking: included in Plus and Advanced, an add-on for Simple Start and Essentials.
Inactive items: the inventory poll reads only active Inventory items. A quantity change on an inactive item is not picked up by this collection (see Additional Notes).
Rate limits: QuickBooks Online allows 500 requests a minute and 10 requests a second for each company and app. When the limit is reached, the transfer is rescheduled automatically to run after about 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.
iPaaS.com Caveats
Inventory Location setting: fill Inventory Location with the id of the iPaaS.com location the stock belongs to before turning on the inventory poll. Left blank, iPaaS.com refuses every quantity because location 0 does not exist.
Product link first: the item must be linked to an iPaaS.com product before its quantity can transfer. A quantity for an item that is not linked yet fails; transfer the item through Add/Update QuickBooks Online Item TO iPaaS.com first.
Whole-record updates: an update TO iPaaS.com replaces the whole inventory record. Cost is not mapped in the default template, so an existing cost is overwritten with an empty value each time a quantity transfers. If iPaaS.com holds a cost on these records, 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. Keep the four default mappings (ParentId, LocationId, QtyAvailable, QtyOnHand).Retries: iPaaS.com retries every errored transfer automatically on a growing schedule. A quantity that cannot transfer fails again on each retry until the cause is fixed.
Prerequisite Handling
None. The integration does not transfer the product first. The item must already be linked to its iPaaS.com product by Add/Update QuickBooks Online Item TO iPaaS.com or Add/Update QuickBooks Online Item FROM iPaaS.com; until it is, its quantity fails and is retried.
Setup Requirements
iPaaS.com Configuration
Set Inventory Location in the subscription settings to the id of an existing iPaaS.com location (for example 12).
In Dashboard / Integration Monitoring / Events, add a polling event for this subscription and the inventory/poll scope, and set it to run every 15 minutes (see Events). No quantities are transferred automatically until that polling event exists.
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 items whose quantity has not changed recently are not found by it. To bring in more history, raise Initial Poll Days before the first poll runs, transfer items with Manual Sync, or use bulk sync using Postman. Initial Poll Days 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.
QuickBooks Online Configuration
Turn on inventory tracking in QuickBooks, so that items of type Inventory carry a quantity on hand.
Give each Inventory item a SKU. An item without a SKU is not brought in as an iPaaS.com product, so its quantity has nowhere to go and is skipped.
Integration Flow
The inventory/poll scope finds the active Inventory items changed in QuickBooks since the previous poll. Manual Sync starts at the next step with the id you enter on the inventory/updated scope.
The integration reads the item from QuickBooks. An item that is not an Inventory item, or that does not exist, transfers nothing.
The integration builds the quantity record: the external ID 41|QOH, the quantity on hand (0 when QuickBooks has none) and the location from Inventory Location.
The filter keeps only items with both an item id and a SKU.
The mappings find the linked iPaaS.com product, and iPaaS.com creates the inventory record, or updates the existing one, at that location.
Mappings
Update QuickBooks Online Item Inventory TO iPaaS.com
iPaaS.com data type: Product Inventory
Mapping Filter
// Inventory items with a SKU: an item without one has no iPaaS.com product for its quantity (Item TO takes only items with a SKU). return ItemId != null && Sku != null;
Filter Description. Only quantities of QuickBooks items that have both a QuickBooks item id and a SKU pass. An Inventory item without a SKU is skipped without an error: Add/Update QuickBooks Online Item TO iPaaS.com takes only items with a SKU, so such an item has no iPaaS.com product for its quantity. Only Inventory items reach the filter, because the inventory poll and Manual Sync read nothing else.
Mapping Type | Source Field (QuickBooks Online) | Destination Field (iPaaS.com) | Description |
Dynamic Formula |
| ParentId | Required. Finds the iPaaS.com product linked to the QuickBooks item id on this subscription (QuickBooks item 41 resolves to the iPaaS.com product it was transferred to or from). A quantity for an item that is not linked yet finds no product and fails; transfer the item first. |
Field | LocationId | LocationId | Required. The iPaaS.com location the quantity belongs to, filled from the Inventory Location setting for every item. Enter the id of an iPaaS.com location (for example 12) before turning on the inventory poll; left blank, iPaaS.com refuses each quantity because location 0 does not exist. |
Field | QtyOnHand | QtyAvailable | Recommended. Sends the QuickBooks quantity on hand as the quantity available, because QuickBooks tracks no reserved or committed quantity. Subscribers or their MiSP who calculate availability elsewhere can remove this mapping or replace it with a formula. |
Field | QtyOnHand | QtyOnHand | Recommended. Sends the item's QuickBooks quantity on hand (0 when QuickBooks has none). iPaaS.com accepts a record without it, but the quantity is what this collection exists to send, so keep the mapping. |
Error Handling
Errors appear in Dashboard / Integration Monitoring / Error Logs, and iPaaS.com retries an errored transfer automatically on a growing schedule. Items skipped by the filter (no SKU) and ids that are not Inventory items raise no error.
QBOL-EXTN-1013: QuickBooks limited the request rate; iPaaS.com retries after a minute.
Location refused (from iPaaS.com): Inventory Location is blank or names a location that does not exist. Set it to the id of an existing iPaaS.com location; the retries then succeed.
Product not found (from iPaaS.com): the item is not linked to an iPaaS.com product yet, so ParentId is empty. Transfer the item through Add/Update QuickBooks Online Item TO iPaaS.com (for example with Manual Sync); the retries then succeed.
Connection errors (QBOL-AUTH codes) are covered in QuickBooks Online Error Messages.
Testing & Validation
Set Inventory Location, and make sure a QuickBooks Inventory item with a SKU (for example item 41) is linked to an iPaaS.com product.
Record an inventory adjustment for the item in QuickBooks. After the next inventory/poll, or a Manual Sync of 41 on inventory/updated, confirm the iPaaS.com product has an inventory record at that location with QtyOnHand and QtyAvailable equal to the new QuickBooks quantity.
Record a sale of the item in QuickBooks and confirm the next poll brings the reduced quantity.
Run a Manual Sync of a NonInventory or Service item id. Confirm nothing is transferred.
Transfer the quantity of an Inventory item that is not linked to an iPaaS.com product yet. Confirm the error in Dashboard / Integration Monitoring / Error Logs, then transfer the item and confirm the retry succeeds.
Additional Notes
Inactive items: a quantity change on an item that is inactive in QuickBooks reaches iPaaS.com only when the item itself is transferred again through Add/Update QuickBooks Online Item TO iPaaS.com (for example with Manual Sync), which sends the quantity through its child collection.
Out of scope: writing quantities to QuickBooks FROM iPaaS.com; more than one inventory location; quantities of NonInventory and Service items.
Known limitations: one inventory location; inactive items are not polled. See QuickBooks Online Known Limitations.
Related Documents
Related Mapping Documentation
