There are several ways to connect NetSuite and HubSpot, and middleware is often the first option businesses consider.
Platforms such as Celigo, Boomi, and Workato can be excellent solutions, especially when a business already has multiple integrations running through the same platform or wants a low code approach.
However, middleware is not always the best fit.
On a recent project, we built a direct integration between NetSuite and HubSpot without using a middleware platform. The decision came down to the specific requirements of the business, the level of control needed, and the long term value of the solution.
This is a useful example of when a direct integration can be the right approach.
The Two Approaches
Most businesses connecting NetSuite and HubSpot will typically consider one of two options.
Using middleware
Middleware platforms provide a layer between the two systems. They handle data movement, transformations, and workflows through pre built connectors and visual tools.
For many organisations, this is the right choice. It can speed up development, simplify maintenance, and work particularly well when multiple systems need to connect together.
The trade off is that you are working within the boundaries of the platform. Most middleware tools are excellent at standard use cases, but more complex requirements can become difficult when you need very specific logic or control over how data moves.
Building a direct integration
The alternative is connecting NetSuite and HubSpot directly.
NetSuite provides SuiteScript, which allows custom logic to interact with records, searches, and external APIs. HubSpot provides webhooks and a REST API, giving developers everything needed to create a two way connection.
The result is a direct line between the two platforms without another system sitting in the middle.
Both approaches can achieve the same goal: keeping data consistent between NetSuite and HubSpot. The difference comes down to flexibility, ongoing costs, and how closely the solution needs to match the way the business operates.
The brief we were working to
The project was focused. NetSuite for finance and operations, HubSpot for sales and account management, no existing middleware platform and no other integrations to consolidate. The team needed:
• Customer and company records synchronised between both systems
• Contracts created in HubSpot to automatically create live projects in NetSuite
• Real time data updates without waiting for scheduled syncs
• Clear ownership over which system controlled specific fields
The requirement was not simply moving data from one place to another. It was creating a reliable connection between two teams and making sure each system supported the way they worked.
With that scope, direct was the natural fit.
Why a direct integration made sense
No additional vendor or subscription
The client wasn't paying for a middleware platform already, and adding one for two systems felt heavy. A direct build has a one-off implementation cost and no per-record or per-connection fees afterwards. Over time, those savings add up.
Real time, not minutes
HubSpot webhooks fire on events, not schedules. NetSuite scripts trigger on record save. A change on either side propagates in seconds. For a team trying to act on a signed contract immediately, the difference between real-time and a five-minute polling interval is the difference between a smooth handover and a phone call.
Granular field-level control
Some fields needed to flow HubSpot to NetSuite only. Some the other way. Some both directions. A single customer ended up with a mix of all three. That kind of per-field rule is easier to express in code than in most visual builders, where the unit of sync tends to be the whole record.
What direct actually means
When something changes in HubSpot, such as a company being created, a deal closing, or contact information being updated, HubSpot sends a webhook notification to NetSuite.
NetSuite receives the update, finds or creates the matching record, and updates the relevant information.
The same happens in reverse.
When a customer record is created or updated in NetSuite, SuiteScript sends the required information through the HubSpot API to keep both systems aligned.
There is no scheduled polling and no overnight batch processing. Each system responds to changes as they happen.
Controlling the direction
A big part of getting this right was deciding what should flow which way, per field. The patterns we ended up with were:
HubSpot to NetSuite only
Company records. HubSpot was the source of truth because that's where the sales team worked. The matching fields were made read-only in NetSuite, and any change in HubSpot propagated automatically. A "View in HubSpot" button on the NetSuite record gave anyone who wanted to edit a one-click route to the right place.
NetSuite to HubSpot only
Internal IDs, system links and finance-owned fields like ledger codes, subsidiaries and the full billing address. Visible in HubSpot but not editable there. Once a record was created on the NetSuite side, the deep link back appeared automatically in HubSpot so the sales team could jump straight to it.
Two-way
Some information, such as contact details and notes, needed to be updated from either system.
For these fields, changes were synchronised automatically so both teams always had access to the latest information.
The result is that each team owns the fields they're responsible for and the systems agree on the rest without anyone managing it.
What the team sees day to day
The integration is invisible until someone notices they've stopped checking the other system. A salesperson updates a primary contact in HubSpot and trusts that finance has it. The finance team creates a customer in NetSuite and the matching HubSpot record appears with a link straight back. Nobody is reconciling records by email any more.
A "View in HubSpot" button on the NetSuite record and a deep link on the HubSpot record send users straight between the two systems with a single click. Nobody is copying IDs into a search bar.
The constraint is design, not code
With SuiteScript on one side and HubSpot's workflows and API on the other, there are very few technical limits on what can be built. That moves the project's centre of gravity, the important question is no longer "can we do this", it's "how do you actually want it to work".
What triggers a sync, and at what point does a record become eligible to flow across? Which fields belong to which team? What does each side need to be able to see from the other? How should users move between the two systems day to day?
Whatever the answer to each of those questions, the build can express it. Once those decisions are made the engineering is straightforward.
In short
A direct NetSuite and HubSpot integration delivers real-time sync between the two systems, field-level control over what flows where, and no recurring platform fees. Built around your business, not the other way around.
Get in touch with the team at Fowlers Consulting and we'll help you work out what that looks like for you.