Summary
HubSpot products can be transferred from iPaaS.com products through the Add/Update HubSpot Product FROM iPaaS.com mapping collection, which either creates a new HubSpot product or updates the existing one on every transfer. Products reach HubSpot either on their own, from the Manual Sync page or a scheduled transfer, or automatically ahead of an order whose line items reference them. This collection writes to HubSpot only; HubSpot products are not transferred back into iPaaS.com.
ID Format
Manual Sync ID Format
Enter the iPaaS.com Product id on the iPaaS.com Manual Sync page to send that product to HubSpot. The id is entered on its own, with no prefix, suffix, or separator, and it is the only value this collection accepts for a manual sync.
External ID Format
On the first successful transfer, the HubSpot product's own record id is saved as the external id against the iPaaS.com product. It is stored on its own, in the same plain form as it appears in HubSpot, with nothing appended to it. That saved link is what makes every later transfer update the same HubSpot product instead of creating a second one, and it is also how a HubSpot webhook payload is matched back to the iPaaS.com product.
Deleted Record Support
Product deletion is not supported. Deleting an iPaaS.com product does not delete or archive the HubSpot product, and no delete mapping collection is included in the default template. A HubSpot product that should no longer exist must be removed or archived in HubSpot by hand.
Custom Field Support
Custom fields are supported for this collection. A custom field lets subscribers or their MiSP populate a HubSpot product property that is not covered by the standard mappings.
The HubSpot property must be created manually before the mapping will work. In HubSpot, go to Settings, then Data Management, then Properties, and create the property against the Product object type in the group of your choice. The iPaaS.com custom field name must match the HubSpot property's label; the integration looks the label up against the live property list and writes to the matching HubSpot property.
Provide source data that suits the HubSpot property's field type, otherwise HubSpot may reject the value or store something unexpected:
Text: values can usually be provided as-is.
Number: only numeric values are accepted.
Date: source data must be provided in Epoch time format.
Boolean or Checkbox: set with true or false, where true means Yes.
Multi-select: multiple values must be separated with a semicolon in the source data, for example first;second.
Unlike the standard product properties, a custom field carrying a zero or an empty value is written to HubSpot. See HubSpot Known Limitations for the contrasting behavior of the standard properties.
Mapping Collection Status
Status: Enabled. The sync type is Add/Update, in the FROM iPaaS.com direction only. The collection has no mapping filter, so every product submitted to it is processed.
Trigger Events: this collection runs on iPaaS.com outbound triggers. A transfer starts when an iPaaS.com Outbound Data Flow sends a product change to the HubSpot subscription, when a product is transferred by hand from the Manual Sync page, or when a product is pulled in as a prerequisite ahead of an order. HubSpot webhook events do not apply in this direction: nothing a subscriber does in HubSpot causes this collection to run.
Duplicate or Conflicting Mappings
No subscriber-selectable duplicate-handling option is presented for this collection. The integration decides between adding and updating using the external id link described under ID Format.
A HubSpot product that already carries the same SKU but has never been linked to the iPaaS.com product is therefore not recognized as the same record, and a second HubSpot product can be created. Subscribers or their MiSP who are loading products into a HubSpot account that already contains products should validate the outcome in a staging environment before running a full catalogue load.
This collection is the only one that writes HubSpot products. Because it is FROM iPaaS.com only, there is no opposing collection importing HubSpot products into iPaaS.com that could contend with it.
Supported Child Collections
None. This collection has no child collections.
System Caveats
HubSpot Caveats
Custom properties must exist in HubSpot first: a custom field mapped to a property that has not been created in HubSpot has nothing to write to.
Custom property data types must match the source data: see the field-type guidance under Custom Field Support. Supplying a value that does not suit the property type can cause errors in HubSpot.
A unit price is not required to create a product: HubSpot accepts a product with no price, but a product without one cannot price an order line.
Rate limits are not absorbed by the integration: when HubSpot throttles a request, the transfer fails rather than waiting and retrying. Avoid running several large manual syncs at once, and stagger bulk catalogue jobs.
iPaaS.com Caveats
A price of zero is not sent: a zero on a standard product property, such as the price, is treated as though no value had been supplied. A free product transfers with no price set, and a HubSpot product that already carries a price keeps the price it had rather than being reduced to zero. See HubSpot Known Limitations.
A cleared value is not sent: an emptied name, description, or date is likewise treated as no value at all, so the HubSpot property keeps its previous content. Where a HubSpot property must be emptied, empty it in HubSpot.
Product type is set for every product: the standard mappings assign the same HubSpot product type to all transferred products. Subscribers or their MiSP who need a different classification per product should change that mapping.
The prerequisite setting is exact: only true, in any capitalization, enables automatic product transfers ahead of orders. Any other value, including 1, yes, and on, silently turns product prerequisites off with no error.
Variants are represented by their parent: when an order line references a variant SKU rather than a product SKU, the integration resolves the variant's parent product and transfers that parent to HubSpot instead.
Setup Requirements
iPaaS.com Configuration
Enable the Add/Update HubSpot Product FROM iPaaS.com mapping collection.
Subscribe to the iPaaS.com Product create and update outbound triggers under Outbound Data Flows so product changes transfer automatically. Manual Sync is always available regardless.
Set Transfer Products as a Prerequisite for Transactions to exactly true if products should transfer automatically ahead of the orders that reference them. Confirm the value reads true and not 1, yes, or on.
HubSpot Configuration
Create any HubSpot product property a custom field will target, against the Product object type, before enabling that mapping. This includes the Product Tracking Method property used by the shipped mappings.
Confirm the connected HubSpot account has Commerce products available and that the authenticated user can create and edit them.
Authentication and connection setup are covered in HubSpot Installation Instructions and HubSpot Connections and Settings.
Integration Flow
An iPaaS.com product create or update, a manual sync, or an order transfer that needs the product dispatches the Add/Update HubSpot Product FROM iPaaS.com collection.
When the product arrives as a prerequisite for an order, the integration first checks the Transfer Products as a Prerequisite for Transactions setting. If the setting does not read exactly true, no product is transferred ahead of the order.
If an order line's SKU does not match an iPaaS.com product, the integration looks the SKU up as a product variant and transfers that variant's parent product instead.
The Id mapping looks up the HubSpot product id already linked to the iPaaS.com product. When an id is found, the transfer updates that HubSpot product; when no id is found, the mapping returns nothing.
HubSpot creates a new product when no id was supplied, and its record id is saved as the external id so later transfers update the same product.
Only the values the transfer actually has are sent. A standard property whose value is zero or empty is left out, and the HubSpot property keeps whatever it held. Properties that are not mapped at all are never blanked.
Custom field values are written to the HubSpot properties whose labels match, including values of zero or empty.
Mappings
Add/Update HubSpot Product FROM iPaaS.com (Parent)
iPaaS.com data type: Product
This collection transfers an iPaaS.com catalog product into HubSpot as a Commerce product, adding it or updating the linked one on each transfer.
Mapping Type | Source Field (iPaaS.com) | Destination Field (HubSpot) | Description |
Field | DefaultPrice | Price | Recommended. Sets the HubSpot product's unit price from the iPaaS.com product's default price. Every iPaaS.com product carries a default price, so this mapping normally has a value to send. HubSpot does not require a unit price in order to create a product, but a product without one cannot price an order line, so leave this mapping in place if the products will be referenced on HubSpot orders. A default price of zero is the exception: it is treated as though no price had been supplied and is not written to HubSpot. A genuinely free product therefore transfers with no price set, and a HubSpot product that already carries a price keeps the price it had rather than being reduced to zero. Where free or zero-priced items exist in the catalogue, set the price in HubSpot by hand, and validate the result in a staging environment before a full catalogue load. |
Field | Name | Name | Required. Copies the iPaaS.com product name to the HubSpot product name, which is the product's primary label throughout HubSpot. Removing this mapping leaves transferred products without a usable name in the HubSpot interface. |
Field | Sku | HsSku | Recommended, and effectively required when transactions are in use. Copies the iPaaS.com product SKU to the HubSpot SKU property. When a transaction is transferred FROM iPaaS.com, its line items are resolved to HubSpot products by SKU, so a product transferred without one cannot be matched to a line item later. |
Static |
| HsProductType | Optional. Assigns the same HubSpot product type to every product transferred through this collection, classifying them as HubSpot's Inventory type. HubSpot's default product types are Inventory, Non-Inventory, and Service. Subscribers or their MiSP who need products classified differently can replace this static value, or change the mapping to a Dynamic Formula that selects the type from the source product. |
Field | Description | Description | Optional. Copies the iPaaS.com product description into the HubSpot product description. If the iPaaS.com product has no description, nothing is written and any description already on the HubSpot product is left as it is. |
Dynamic Formula |
| Id | Required. Looks up the HubSpot product id already linked to this iPaaS.com product. When an id is found, the transfer updates that HubSpot product; when the product has never been transferred the lookup returns nothing, and HubSpot creates a new product which is then linked for future transfers. This mapping is what keeps repeat transfers from creating duplicate HubSpot products, so it should be left in place. |
Field | TrackingMethod | Product Tracking Method | Optional. Writes the iPaaS.com product's tracking method — Product or Variant — to a HubSpot custom property, so the tracking model is visible on the HubSpot record. This is a custom field mapping, so the HubSpot property carrying the label Product Tracking Method must be created against the Product object type before the mapping can populate it. Create it as a single-line text property to accept either value as-is. |
A default price of zero does not transfer, and the HubSpot product keeps any price it already had: see HubSpot Known Limitations.
Error Handling
The errors this collection can raise are catalogued, with their causes and resolutions, in HubSpot Error Messages. Rather than repeat them here, the entries most relevant to product transfers are:
HubSpot API Communication: covers the messages raised when HubSpot rejects or cannot receive a product write, including the rate limit case. At the time this documentation was written, the integration does not wait and retry when HubSpot throttles it, so a throttled transfer fails and must be re-run.
Product could not be transferred before the transaction: raised against an order whose line references a product SKU that does not yet exist in HubSpot, when the product's own prerequisite transfer failed. The product's underlying error is reported separately in the Error Logs; resolve that error, then re-sync the order.
Product could not be transferred before the transaction after resolving a variant SKU: the same case, where the line's SKU resolved to a variant and the variant's parent product failed to transfer.
Errors raised by this collection are visible under Dashboard / Integration Monitoring / Error Logs.
Testing & Validation
Test Scenarios
Product creation: create a product in iPaaS.com and transfer it. Expected outcome: a new HubSpot product appears with the correct name, SKU, price, and description, and the iPaaS.com product is linked to it.
Product update: change the name or price of an already-transferred product and re-transfer it. Expected outcome: the same HubSpot product is updated in place; no second product is created.
Required field validation: transfer a product with no name. Expected outcome: the HubSpot product has no usable label, confirming why the Name mapping should stay in place.
ID format: transfer a product from the Manual Sync page using the iPaaS.com Product id. Expected outcome: the transfer succeeds and the HubSpot product id is saved as the external id.
Custom field: create a HubSpot product property, map an iPaaS.com custom field to its label, and transfer. Expected outcome: the value lands on the matching HubSpot property, including when the value is zero or empty.
Zero price: transfer a product whose price is zero, then a product whose price is reduced to zero after it has already transferred. Expected outcome: the first arrives with no price set; the second keeps its earlier HubSpot price.
Order prerequisite: with Transfer Products as a Prerequisite for Transactions set to exactly true, transfer an order whose line references a product not yet in HubSpot. Expected outcome: the product transfers first and the line resolves to it. Repeat with the setting reading 1 to confirm the prerequisite silently does not run.
Duplicate SKU: transfer a product whose SKU already exists on an unlinked HubSpot product. Expected outcome: a second HubSpot product is created, confirming that unlinked SKU matches are not detected.
Validation Checklist
The iPaaS.com Product create and update outbound triggers are subscribed under Outbound Data Flows.
The Add/Update HubSpot Product FROM iPaaS.com collection is enabled.
Every HubSpot property targeted by a custom field mapping exists against the Product object type, including Product Tracking Method.
Transfer Products as a Prerequisite for Transactions reads exactly true if products should transfer ahead of orders.
The HsProductType static value matches the product classification the account needs.
Free or zero-priced items carry a nominal price in iPaaS.com, or have their price set in HubSpot by hand.
The HubSpot account was checked for existing products before a full catalogue load.
Additional Notes
The following are out of scope for this collection:
Deleted records: deleting an iPaaS.com product does not delete or archive the HubSpot product.
Variants and related records: iPaaS.com product variants, options, units, kits, and related products are not transferred as records in their own right. A variant participates only through the parent-product resolution described under Integration Flow.
Inventory and costs: inventory quantities, costs, and stock levels are not transferred.
The reverse direction: HubSpot products are not transferred back to iPaaS.com. This collection is FROM iPaaS.com only.
