Line Items - SKU from Product?

AEidbo
Member

I am trying to use a Zap to associate line items with a product. We are using a third party, most of the time, to create line items, and they do not populate product id on the line items, but they do populate SKU. But, once and awhile, we'll need to manually update line items in HubSpot, and when we do that, it populates product id, but NOT SKU. Everythign I have read says it should be, but I have tested over and over and SKU does not show up in Zapier. I have tried find associations and find crm object with the same results. 

0 Upvotes
3 Accepted solutions
HubDoPete
Solution
Key Advisor | Gold Partner
Key Advisor | Gold Partner

Hi @AEidbo and thanks @chighsmith for the tag!

 

@AEidbo I am having a little trouble understanding your exact use case. You should be able to update the SKU on your line items, so let me add some tips and extra questions here. 

  • When a line item is created in the UI from HubSpot Product library, HubSpot copies the product object to a new line item object and populates the line item's "Product ID" [hs_product_id] property. This is described as "ID of the product this was copied from". But there is no association between the Product and the new line item; the reference to the originating product ID typically serves no functional role once the line item is created. But perhaps in your use case, you want to take data from the originating product object, to update the line item objects that were created as copies of that product object. Please let me know if I am on the right track.
  • You also mention Zapier, so when you say you sometimes need to manually update line items, do you mean updating through Zapier automation? Please let me know if that's what you mean.
  • If I am correctly understanding you on both points, I assume that you want to use Zapier to update some line items by reading fresh data from the originating product object, then refreshing the line item with the product data. I think that this should be possible by:
    1. Read the [hs_product_id] from the line item,
    2. Get the product object, using the [hs_product_id] from above, reading all the properties that you need, including [hs_sku]
    3. Update your line item, including [hs_sku] from above.
      In Zapier, this property is "Line item information: SKU"
  • Finally, line items are a 'pseudo' object that cannot exist in isolation; they must be associated with a Deal, Quote, Invoice or Subscription. There can be differences in line item behaviour depending on which of these objects the line item is associated with. Please confirm, are your line items associated with a Deal. or some other object.

Maybe I am on the wrong track, and you want to update a HubSpot Product and have Zapier automatically update line items on open deals, that were created from that product. If so you should be able to find line items with a matching [hs_product_id] and update them.

 

Please tell us a little more and together hopefully, we can enable your Zaps to make your edits to your line items, including the Line Item's product SKU.

 

best

Pete

View solution in original post

0 Upvotes
HubDoPete
Solution
Key Advisor | Gold Partner
Key Advisor | Gold Partner

Thanks @AEidbo that extra context helps a great deal.

 

Fortunately, we're familiar with your setup because we support hundreds of agencies and end users on PandaDoc+HubSpot as a managed service. Line Item data merge to HubSpot has improved leaps and bounds in the last few years, but some issues can still arise, like you describe.

 

Firstly, PandaDoc does not normally use Product (Object) ID, as users normally add products to PandaDoc from the PandaDoc Catalog, not HubSpot Product library. The HubSpot Product Library can be synced to the PandaDoc Catalog, but only USD today. (are you syncing them?)

 

Also, object IDs are a generally unreliable primary key between systems, because HubSpot regularly replaces line items object IDs with new IDs and the originating product ID will not be present unless the line item was added in the HubSpot Deal UI from the HubSpot Product Library.

 

If you are adding line items to the deal from the HubSpot Product Library, the SKU should always populate. It should be greyed out to prevent editing. There have been issues where line items created on a deal via an integration may sometimes have a blank SKU, which cannot be edited. The only way to add a SKU to such a line item is to delete it and re-add it from the HubSpot Product Library.

 

As you are trying to maintain a synchronised system, I recommend:

  • For Line Items, focus on product SKU as the primary key, not object IDs
  • Troubleshoot why some line items synced from PandaDoc to HubSpot are not populating the SKU. Contact PandaDoc support if you can reproduce the issue and demonstrate it to the PandaDoc support team to take a closer look.
  • Then you should not be faced with the messy business of deleting line items in HubSpot only to re-add them from the HubSpot Product Library to populate the grayed-out SKU.

I appreciate that this initial advice might not be the end game, but hopefully it is a start. Please let us know how you get on, so that as a community we can help you.

 

best

Pete

 

 

 

View solution in original post

0 Upvotes
RubenBurdin
Solution
Top Contributor

Hi @AEidbo 

I’ve run into this same mismatch in teams that mix HubSpot line items, PandaDoc items, and Zapier automation. What you’re seeing is not something you can fix with settings.

 

HubSpot treats SKU and Product ID very differently depending on where the line item comes from, and the UI copy logic doesn’t behave the way the documentation suggests. When a line item is created from the HubSpot Product Library in the UI, HubSpot copies the product reference into hs_product_id but does not always carry over hs_sku into the line item object.

 

That SKU field is read-only and its value depends on how HubSpot’s copy process resolves the product at creation time. HubSpot outlines how these system backed properties behave in their property history docs 

(https://knowledge.hubspot.com/records/view-record-property-history )

 

On the other side, PandaDoc writes the SKU directly because it is not using the HubSpot product library at all, so the two sources never produce a consistent identifier. The CRM v3 product and line item object definitions show why hs_product_id is copy only and not a true relationship between product and line item 

(https://developers.hubspot.com/docs/api-reference/crm-line-items-v3/guide )

 

For your Zapier lookup problem, the cleanest workaround is indeed what you hinted at: create a custom property on the line item, then populate it either with the SKU or the product ID depending on the source of creation.

 

A simple workflow that triggers on line item creation can check whether SKU is blank and copy the product’s SKU into your custom field. That gives you a single, reliable lookup key for Zapier, regardless of whether the item was created by PandaDoc or HubSpot UI.

 

If these SKU or product identifiers also need to stay aligned across your quoting system and HubSpot, Stacksync keeps those line item and product fields mapped in both directions so these inconsistencies disappear entirely. Hope this helps

Did my answer help? Please mark it as a solution to help others find it too.

Ruben Burdin Ruben Burdin
HubSpot Advisor
Founder @ Stacksync
Real-Time Data Sync between any CRM and Database
Stacksync Banner

View solution in original post

0 Upvotes
8 Replies 8
RubenBurdin
Solution
Top Contributor

Hi @AEidbo 

I’ve run into this same mismatch in teams that mix HubSpot line items, PandaDoc items, and Zapier automation. What you’re seeing is not something you can fix with settings.

 

HubSpot treats SKU and Product ID very differently depending on where the line item comes from, and the UI copy logic doesn’t behave the way the documentation suggests. When a line item is created from the HubSpot Product Library in the UI, HubSpot copies the product reference into hs_product_id but does not always carry over hs_sku into the line item object.

 

That SKU field is read-only and its value depends on how HubSpot’s copy process resolves the product at creation time. HubSpot outlines how these system backed properties behave in their property history docs 

(https://knowledge.hubspot.com/records/view-record-property-history )

 

On the other side, PandaDoc writes the SKU directly because it is not using the HubSpot product library at all, so the two sources never produce a consistent identifier. The CRM v3 product and line item object definitions show why hs_product_id is copy only and not a true relationship between product and line item 

(https://developers.hubspot.com/docs/api-reference/crm-line-items-v3/guide )

 

For your Zapier lookup problem, the cleanest workaround is indeed what you hinted at: create a custom property on the line item, then populate it either with the SKU or the product ID depending on the source of creation.

 

A simple workflow that triggers on line item creation can check whether SKU is blank and copy the product’s SKU into your custom field. That gives you a single, reliable lookup key for Zapier, regardless of whether the item was created by PandaDoc or HubSpot UI.

 

If these SKU or product identifiers also need to stay aligned across your quoting system and HubSpot, Stacksync keeps those line item and product fields mapped in both directions so these inconsistencies disappear entirely. Hope this helps

Did my answer help? Please mark it as a solution to help others find it too.

Ruben Burdin Ruben Burdin
HubSpot Advisor
Founder @ Stacksync
Real-Time Data Sync between any CRM and Database
Stacksync Banner
0 Upvotes
AEidbo
Member

Hi Pete, 
Sorry, I was unclear. We are using a 3rd party tool, PandaDoc, to get line items into HubSpot for the most part. When they come in from PandaDoc, they bring over the SKU, but not the product id. But, when I create a line item in the HubSpot UI, it stamps the product id on that line item, but not the SKU. The SKU field is grayed out and says it should come from the product, and we have them on the product, but it does not copy over. The majority of the team, the line items will be created by PandaDoc, but there will be cases we need to make an adjustment directly in the HubSpot UI, which is causing my problem. 
I need a consistent id to use to look up information from the product in Zapier. 
Hope this is clearer - thank you for your help!

0 Upvotes
HubDoPete
Solution
Key Advisor | Gold Partner
Key Advisor | Gold Partner

Thanks @AEidbo that extra context helps a great deal.

 

Fortunately, we're familiar with your setup because we support hundreds of agencies and end users on PandaDoc+HubSpot as a managed service. Line Item data merge to HubSpot has improved leaps and bounds in the last few years, but some issues can still arise, like you describe.

 

Firstly, PandaDoc does not normally use Product (Object) ID, as users normally add products to PandaDoc from the PandaDoc Catalog, not HubSpot Product library. The HubSpot Product Library can be synced to the PandaDoc Catalog, but only USD today. (are you syncing them?)

 

Also, object IDs are a generally unreliable primary key between systems, because HubSpot regularly replaces line items object IDs with new IDs and the originating product ID will not be present unless the line item was added in the HubSpot Deal UI from the HubSpot Product Library.

 

If you are adding line items to the deal from the HubSpot Product Library, the SKU should always populate. It should be greyed out to prevent editing. There have been issues where line items created on a deal via an integration may sometimes have a blank SKU, which cannot be edited. The only way to add a SKU to such a line item is to delete it and re-add it from the HubSpot Product Library.

 

As you are trying to maintain a synchronised system, I recommend:

  • For Line Items, focus on product SKU as the primary key, not object IDs
  • Troubleshoot why some line items synced from PandaDoc to HubSpot are not populating the SKU. Contact PandaDoc support if you can reproduce the issue and demonstrate it to the PandaDoc support team to take a closer look.
  • Then you should not be faced with the messy business of deleting line items in HubSpot only to re-add them from the HubSpot Product Library to populate the grayed-out SKU.

I appreciate that this initial advice might not be the end game, but hopefully it is a start. Please let us know how you get on, so that as a community we can help you.

 

best

Pete

 

 

 

0 Upvotes
AEidbo
Member

Ok, sounds like it isnt fixable. From the PandaDoc integration, I can get the sku, so that's fine, but for whatever reason, when you create a line item directly in HubSpot, the sku does not come with it. 
I'm not trying to use the line item id, but instead the product id on the line item, of the product associated with it. I don't care which I use, I just need something that i can rely on. 

We'll have to do some other workaround, like having either one copy into a 3rd field. 

0 Upvotes
HubDoPete
Key Advisor | Gold Partner
Key Advisor | Gold Partner

There are known issues creating line items in HubSpot via API, but you said you are creating them via UI, and the SKU is not populating. In this case, PandaDoc probably has no bearing on it. I would reproduce the issue in HubSpot UI and take it up with HubSpot Support. It sounds like a traceable bug. Support will likely ask you for a HAR file too 🙂 best, Pete.

0 Upvotes
HubDoPete
Solution
Key Advisor | Gold Partner
Key Advisor | Gold Partner

Hi @AEidbo and thanks @chighsmith for the tag!

 

@AEidbo I am having a little trouble understanding your exact use case. You should be able to update the SKU on your line items, so let me add some tips and extra questions here. 

  • When a line item is created in the UI from HubSpot Product library, HubSpot copies the product object to a new line item object and populates the line item's "Product ID" [hs_product_id] property. This is described as "ID of the product this was copied from". But there is no association between the Product and the new line item; the reference to the originating product ID typically serves no functional role once the line item is created. But perhaps in your use case, you want to take data from the originating product object, to update the line item objects that were created as copies of that product object. Please let me know if I am on the right track.
  • You also mention Zapier, so when you say you sometimes need to manually update line items, do you mean updating through Zapier automation? Please let me know if that's what you mean.
  • If I am correctly understanding you on both points, I assume that you want to use Zapier to update some line items by reading fresh data from the originating product object, then refreshing the line item with the product data. I think that this should be possible by:
    1. Read the [hs_product_id] from the line item,
    2. Get the product object, using the [hs_product_id] from above, reading all the properties that you need, including [hs_sku]
    3. Update your line item, including [hs_sku] from above.
      In Zapier, this property is "Line item information: SKU"
  • Finally, line items are a 'pseudo' object that cannot exist in isolation; they must be associated with a Deal, Quote, Invoice or Subscription. There can be differences in line item behaviour depending on which of these objects the line item is associated with. Please confirm, are your line items associated with a Deal. or some other object.

Maybe I am on the wrong track, and you want to update a HubSpot Product and have Zapier automatically update line items on open deals, that were created from that product. If so you should be able to find line items with a matching [hs_product_id] and update them.

 

Please tell us a little more and together hopefully, we can enable your Zaps to make your edits to your line items, including the Line Item's product SKU.

 

best

Pete

0 Upvotes
AEidbo
Member

I need a single id of some sort that I can track back to the product via Zapier. When a line item is created via PandaDoc, it does not stamp over the product id, but it does stamp the SKU. When a line item is created directly in HubSpot, it does stamp over the product id, but it does NOT stamp over the SKU. 
I'm trying to figure out how to make line items created in HubSpot include the SKU from the product. 

0 Upvotes
chighsmith
Community Manager
Community Manager

Hi @AEidbo,

Thank you for posting to the Community!

I understand that you’re trying to associate line items with products in HubSpot using SKU via Zapier, but while third-party tools populate the SKU (not product ID) and manual updates populate the product ID (not SKU), the SKU field is still not showing up in Zapier despite your tests and research.


I'd like to tag in some of our Top Contributors to see if they have any ideas -- Hi @StjepanGrcic @HubDoPete and @MandyDROS Do any of you all have any suggestions for @AEidbo?

Thank you!

Cassie, Community Manager

 

 





loop


Loop Marketing is a new four-stage approach that combines AI efficiency and human authenticity to drive growth.

Learn More




0 Upvotes