Case Studies / HubSpot–NetSuite Pricing Sync
NetSuite HubSpot CRM SuiteScript Automation

Their HubSpot Was Showing the Wrong Price on Thousands of Products. Two Hidden Problems. One Permanent Fix.

The prices in HubSpot were wrong. The product records weren't updating. And after trying the obvious fixes, nothing worked. What we eventually found — buried deep in NetSuite's backend and hidden in a misconfigured field — explains why the standard approaches all failed.

100%

Data Accuracy

6,000+

Products Corrected

0

Manual Updates Needed

The Problem

HubSpot Was Showing Prices That Were Never Meant for Retail — and Nobody Could Work Out Why

This client runs a large product catalogue through NetSuite and uses HubSpot as their CRM. The two systems are connected — when a product is updated in NetSuite, those changes are supposed to flow through to HubSpot automatically.

The problem was that the prices in HubSpot were wrong. Not slightly off — wrong in a fundamental way. NetSuite holds two separate prices for products: a base price, which is the wholesale rate used for trade orders and internal purposes, and an online price, which is the actual retail price shown on the website.

The sync had always been pulling the base price — the wholesale rate — into HubSpot. So the entire product catalogue in the CRM was populated with prices that were never intended for retail. Sales teams using HubSpot were quoting incorrect figures. Reports based on product pricing were inaccurate. The problem had been there for a long time without anyone realising why.

On top of that: even when we tried to fix it, the products weren't updating at all. Records in HubSpot were staying stale no matter what changes were made in NetSuite. Something in the sync was silently failing — and failing completely.

"The standard fixes weren't working. The prices couldn't be found through normal means, and products weren't updating no matter what we tried. Both problems had the same root cause: the wrong data was being used as the reference point, and that reference point was invisible until we went looking in the right place."

The Investigation

Two Problems Hiding in Plain Sight

Before we could fix anything, we needed to understand what was actually going wrong. What we found were two separate problems — each invisible unless you knew exactly where to look.

1

The Online Price Was Buried in NetSuite's Backend

In NetSuite, product pricing is stored in what's called a pricing matrix — a table that can hold multiple price levels for different customer types, quantities, and currencies. The "Online Price" was in this matrix, but it wasn't accessible through the usual methods.

We tried the standard approaches — the typical scripts for pulling pricing data, the documented API fields, the visible configuration options. None of them returned the online price. It simply didn't appear through any of the normal routes.

We eventually found it by going into the browser's developer tools while on the product page in NetSuite and logging the underlying data structures directly from the console. The online price was sitting on a specific line in a hidden sublist — line 552 of the pricing table, to be precise — in a part of the system that isn't exposed through the standard interface. That was the only way to locate it. Once we had it, we could work with it.

2

The Integration Was Matching on a Field That Was Always Blank

The second problem explained why products were never updating — even when we pushed changes through. The HubSpot-NetSuite integration was configured to match products between the two systems using the SKU field. A product in NetSuite would look for its counterpart in HubSpot by comparing SKU codes.

The issue: the SKU field in their setup was empty. It had never been populated. So every time the sync ran, it tried to match products on a blank field — which matched nothing — and the update quietly failed. With over 6,000 products and variations, this had been silently broken the entire time.

When we looked at the product data more carefully, the answer was right there: in their NetSuite catalogue, the product's name was being used as the unique identifier that HubSpot actually expected. The integration just needed to be told to match by product name instead of SKU — a single configuration change that unlocked the entire sync.

The Solution

An Automated Fix That Runs Itself — No Manual Work Ever Again

Once both problems were understood, the fixes were clear. We built a permanent, automated architecture so that neither issue could come back.

1

Built a Script to Automatically Extract the Correct Price on Every Save

We wrote a custom NetSuite script (a SuiteScript User Event Script) that activates every time a product record is saved. The script goes directly to the correct location in the pricing matrix — the specific line where the online price lives — extracts the value, and copies it into a new, dedicated custom field we created called "HubSpot Online Price."

This means the correct retail price is always available in a clean, accessible field that the integration can read reliably. No manual steps. No complex formulas. Every time someone updates a product in NetSuite, the right price flows through automatically.

2

Reconfigured the Integration to Match Products Correctly

We updated the HubSpot-NetSuite connection to match products by Item Name instead of SKU. This single change meant that every product in the catalogue now had a reliable match point between the two systems — and the silent update failures stopped immediately.

We also updated the sync settings to cover the entire product catalogue rather than individual variations, so all 6,000+ products could be kept in sync — not just a subset.

3

Managed the One-Off Update of 6,000+ Products Without Breaking Anything

Once the fixes were in place, all 6,000+ product records needed to be updated at once to populate the new pricing field for the first time. This created a short-lived issue: the product feed that picks up changes was designed to handle a few hundred records at a time. When thousands of changes suddenly arrived, it temporarily overwhelmed the system.

This looked alarming initially — the feed appeared to crash — but it was a one-time consequence of correcting years of missing data in a single pass. Once the system caught up and processed the backlog, everything settled. From that point on, only the products that have actually changed are updated on each cycle, keeping the volume well within normal limits.

The Results

Correct Prices. Products Syncing. No Manual Work.

100%

Data Accuracy

Every product in HubSpot now shows the correct online retail price, sourced directly from NetSuite.

6,000+

Products Corrected

The entire catalogue was updated and is now kept in sync automatically on every product save.

0

Manual Updates

The automation handles everything. Price changes in NetSuite flow through to HubSpot without any human intervention.

What Changed for the Business

  • Sales teams in HubSpot now work with accurate, up-to-date prices — no more quoting wholesale rates to retail customers or cross-referencing NetSuite manually before every deal.
  • Any price change in NetSuite automatically updates HubSpot — the script runs on every product save, so the two systems are always in sync without anyone needing to push a button.
  • Product matching is now reliable across the entire catalogue — every record has a consistent identifier that both systems can use, ending the silent update failures that had been happening for years.
  • The system is documented and maintainable — the team knows exactly where the pricing logic lives, what it does, and how to update it if the pricing structure ever changes in future.

Does This Sound Familiar?

HubSpot-NetSuite integration issues like this are more common than most businesses realise — often because the problems fail silently. This project is relevant if any of the following sounds like your situation:

Prices in HubSpot don't match what's on your website or what your sales team expects

Product updates in NetSuite don't seem to be reaching HubSpot, or take a very long time

You have a HubSpot-NetSuite integration that was set up a while ago but has never worked quite right

You have multiple price levels in NetSuite (trade, retail, online) and the wrong one is being used

Your team manually corrects prices in HubSpot after NetSuite updates — a recurring, time-consuming task

You have a large product catalogue (hundreds or thousands of SKUs) and data quality is inconsistent

These problems are common because NetSuite is a powerful but complex system, and the default integration settings often don't account for how businesses actually structure their data. We've worked with NetSuite SuiteScript and HubSpot integrations across a range of industries — if your sync isn't behaving the way it should, we can find out why.

Common Questions

Is Your HubSpot-NetSuite Sync Working the Way It Should?

We'll review your integration and tell you exactly what's syncing correctly, what isn't, and what it would take to fix it. No jargon, no guesswork.