Yes, HubSpot has its own NetSuite integration. It is built by HubSpot, listed in the HubSpot App Marketplace, and syncs contacts, companies, deals, orders, invoices, products, tickets and activities with their NetSuite records, one way or both ways. Custom field mappings need a paid Data Hub subscription.
The other routes are connector apps from third-party vendors, integration platforms such as Celigo, Workato and Boomi, Zapier for simple trigger and action steps, and custom code that runs in NetSuite and talks to HubSpot's API.
Which one fits depends on the NetSuite records your team works from and on who will look after the sync once it is live.
HubSpot's own NetSuite app
HubSpot's setup article says the app works with all HubSpot products and plans. On the NetSuite side an administrator turns on web services, token-based authentication and server SuiteScript, installs the HubSpot Sync bundle and creates an access token. A production or sandbox account can be connected.
As of October 2026 the listing maps these records:
| NetSuite record | HubSpot object |
|---|---|
| Companies | Companies |
| Contacts and individuals | Contacts |
| Opportunities | Deals |
| Sales orders | Orders |
| Invoices | Invoices |
| Assembly, inventory, kit, non-inventory and service items | Products |
| Support cases | Tickets |
| Calls, tasks and events | Calls, tasks and meetings |
You set each sync up as one-way or two-way. Neither the listing nor the setup article mentions NetSuite estimates, so if your reps quote from estimates, check that first.
Reps can also create a NetSuite sales order from a HubSpot deal, by hand or with a workflow action (workflows need a Professional or Enterprise subscription), and HubSpot Embed shows HubSpot records inside NetSuite.
Default field mappings work on any plan. Custom mappings need Data Hub, which HubSpot used to sell as Operations Hub, so check HubSpot's current Data Hub pricing. For sync settings the setup article points to HubSpot's data sync guide. That guide says contacts match on email and companies on name or domain by default, and that after the first full sync, changes reach the other side within about 10 minutes.
Third-party connectors and integration platforms
Connector apps from other vendors
Other vendors list NetSuite apps in the HubSpot marketplace too. SyncSmart's Integrate NetSuite maps NetSuite customers and vendors to companies, and opportunities, sales orders, invoices and quotes to deals. Commercient's NetSuite Sync maps estimates to HubSpot quotes, and orders and invoices to deals. Both are vendor subscriptions priced on usage. You configure the app and the vendor maintains it.
Integration platforms (iPaaS)
An iPaaS gives you connectors for both systems and a place to build the flows between them. Celigo's integrator.io has a HubSpot NetSuite Quickstart template with flows in both directions for companies, contacts, products and deals, including closed-won deals to sales orders. Its docs ask for a NetSuite ID field on both sides to tie records together.
Workato lists HubSpot and NetSuite triggers and actions for building your own automations. Boomi has separate HubSpot CRM and NetSuite connectors that you wire into a Boomi process. You pay a platform subscription, and someone on your side or a partner builds and runs the flows.
Zapier
Zapier has a HubSpot and NetSuite integration. NetSuite is a Premium app there, so it needs a paid plan, and its polling triggers check for new or updated records at an interval that depends on your plan. That works for single steps, such as creating a NetSuite record when a deal closes. A two-way sync is harder, because each direction is its own Zap and you have to stop updates bouncing back.
Custom code with SuiteScript and a HubSpot private app
This is how I build it. A scheduled SuiteScript in NetSuite finds the records that changed since its last run and sends them to HubSpot's CRM API using NetSuite's N/https module. HubSpot accepts the calls through a private app whose token only has the scopes the sync needs. HubSpot's docs now call these legacy private apps, and on the new developer platform the same setup is an app with static auth and private distribution.
For the other direction, a script can ask HubSpot for recently changed records through the CRM search API and write them into NetSuite. If you want HubSpot to push changes the moment they happen, its Send a webhook workflow action needs Data Hub Professional or Enterprise. For a sync that runs outside NetSuite, Oracle's comparison of RESTlets and REST web services recommends SuiteTalk REST web services for system-to-system integrations.
My builds include a dry-run switch, so you can test against real data without writing a record, and scoping by rep or team, so you can start small. The upside of code is control. You can sync estimates or custom records, write your own matching rules and pay no connector fee. The cost is that the code needs an owner who watches for errors, rotates tokens and adjusts the scripts when either API changes.
What to map before you build
Whatever tool you pick, decide these first.
- NetSuite customers (company records) to HubSpot companies.
- NetSuite contacts and individual customers to HubSpot contacts.
- Leads and prospects. In NetSuite these are stages of the customer record, so decide when a HubSpot contact should become a NetSuite lead. HubSpot's app handles this with a NetSuite Status property.
- Estimates to deals on their own pipeline, with each estimate status mapped to a stage, or to HubSpot quotes.
- Sales orders to deals or to HubSpot orders.
- Invoices to HubSpot invoices, or to amount and status properties on the deal.
- Items to products, and transaction lines to line items. A HubSpot line item belongs to one parent record, so a deal and its quote each need their own.
Match on IDs. Store the NetSuite internal ID on each HubSpot record in a property that requires unique values (HubSpot allows up to ten per object). Store the HubSpot record ID on the NetSuite side too, in a custom field or as the record's external ID.
Set an owner for each field. Decide which system is the source for every mapped field, for example NetSuite for billing details and transaction totals, HubSpot for lifecycle stage and lead source. A field both sides can edit needs a rule for which value wins.
Pick a frequency per object. Records don't all need the same schedule. In one of my builds, estimates sync every 15 minutes and customer records once a day.
How to choose
| Option | Setup effort | Ongoing fee | Flexibility | Who maintains it |
|---|---|---|---|---|
| HubSpot's NetSuite app | Low: bundle, token, then mappings | No separate app fee listed. Data Hub for custom mappings | The objects HubSpot lists | HubSpot |
| Other marketplace connectors | Low to medium | Vendor subscription, tied to usage | The vendor's object list | The vendor |
| iPaaS (Celigo, Workato, Boomi) | Medium to high: you build or adapt flows | Platform subscription | High | You or a partner, on the vendor's platform |
| Zapier | Low for each Zap | Paid Zapier plan, priced by task volume | Good for single steps, weak for two-way sync | You |
| Custom code | Highest: scripts, mapping, testing | No connector fee. Developer time to build and maintain | Any record the two APIs expose | You or your developer |
Problems to plan for
Duplicates
HubSpot deduplicates contacts by email, but its own deduplication article says companies created through the API are not deduplicated by domain, and that includes sync apps. A sync that creates companies without searching first will make copies. HubSpot's data sync also skips contacts without a valid email by default, which matters if NetSuite holds contacts with only a phone number.
Field ownership conflicts and loops
HubSpot's data sync lets you pick a default app that wins when values differ. In custom code you write that rule yourself. You also have to stop loops, where an update written by the sync is picked up as a fresh change and sent straight back. Celigo's template filters on the NetSuite ID to avoid this.
NetSuite governance limits
Oracle's usage unit limits are 10,000 units for a scheduled script and 5,000 for a RESTlet, while a map/reduce script has no cap on its total run time, so large backfills fit map/reduce better. Web services and RESTlet calls also share one account-wide concurrency limit set by your service tier and SuiteCloud Plus licenses, so your HubSpot sync competes with every other integration on the account.
HubSpot API limits
As of October 2026, HubSpot's usage guidelines allow private apps 100 requests per 10 seconds on Free and Starter and 190 on Professional and Enterprise. Daily limits are 250,000, 625,000 and 1,000,000 requests per account for Free and Starter, Professional and Enterprise. The CRM search API has its own limit of five requests per second per account and returns at most 10,000 results for one query. Calls over a limit get a 429 error, so the sync has to slow down and retry.
What I built for Freedom and Glory Flags
I've run the HubSpot portal for Freedom and Glory Flags, a flag company on NetSuite, since 2025. Before the sync, their quotes lived in NetSuite, where sales follow-up couldn't see them.
The sync is NetSuite SuiteScript plus a HubSpot private app. NetSuite estimates reach HubSpot every 15 minutes for the reps in scope, as deals on their own pipeline with mapped statuses, along with a 90-day backfill and a quotes dashboard. Customers and contacts for those reps sync daily. The sync matches existing records first, creates the missing ones and sets the right owner. In the other direction, when a contact is marked BANT Qualified, a NetSuite script creates a lead, or links the existing record if the email is already in NetSuite.
In a later phase a one-time backfill matched 207,879 contacts to their NetSuite IDs. Three NetSuite scripts now run, including a status sync every 15 minutes and the HubSpot to NetSuite script. NetSuite quotes now reach HubSpot within 15 minutes. The full story is in the Freedom and Glory Flags case study.
If you'd rather have this built for you, see my NetSuite integration service. Tell me which records need to move and in which direction, and you'll get a written scope.
Questions
Does HubSpot have a native NetSuite integration?
Yes. HubSpot builds and maintains a NetSuite app in its marketplace. A NetSuite administrator installs a bundle and creates an access token to connect it.
Do I need Data Hub (Operations Hub) to connect HubSpot and NetSuite?
Not for HubSpot's app with its default mappings. Custom field mappings need Data Hub. A custom build that calls HubSpot's API directly doesn't use data sync, so the requirement doesn't apply.
Can NetSuite estimates sync to HubSpot?
HubSpot's own app doesn't list estimates as of October 2026. Some third-party connectors do, and a custom build can turn each estimate into a deal with its status mapped to a pipeline stage.
How often does a HubSpot NetSuite sync run?
It depends on the tool. HubSpot's data sync updates within about 10 minutes of a change, Zapier's polling depends on your plan, and a custom script runs on the schedule you deploy.
How do I stop the integration creating duplicates?
Give every synced record the ID of its partner in the other system. Backfill those IDs for existing records, and let the sync create a record only when no match is found.