//
NS90: Integrate:
HubSpot and NetSuite

HubSpot deals become NetSuite orders, and reps see billing in HubSpot.

NS90: Integrate connects HubSpot to NetSuite through MHI's integration service on NSIP. Companies, contacts and closed-won deals become NetSuite customers and sales orders, while order status, invoices and the item catalog flow back to HubSpot.
System
HubSpot (Sales Hub CRM objects)
Direction
Both ways: companies, contacts and deals in; order status, invoices and items out
API
HubSpot CRM API; private app
Run mode
Scheduled, near real-time: every 15 minutes
Platform
NSIP + NSAW
Delivered
7 delivered · 3 in progress
//
WHY NOW

Closed-won → order

Reps see where every deal stands without asking finance

When a HubSpot deal closes, NS90: Integrate creates the NetSuite sales order from the deal and its line items, at the rate the rep agreed. Order status, fulfillment and invoices flow back to the deal, so reps have up-to-date order and billing information in HubSpot without reaching out to finance.
Flows delivered on NS90: Integrate: see Supported flows below.
//Supported flows

HubSpot flows delivered on NS90: Integrate

Each solid dot is a client project where MHI built the flow on NSIP. Hollow markers are flows in progress. NetSuite stays the system of record for items, price, tax, fulfillment and billing. Arrows show direction relative to NetSuite.

Master data

NETSUITE
Companies to customers
HubSpot company (lifecycle stage Customer) → NetSuite customer
15 min
Contacts and roles
HubSpot contact + association labels → NetSuite contact with role
15 min
Items to products
NetSuite item and list price → HubSpot product
15 min

Transactions

NETSUITE
Closed-won deals to sales orders
HubSpot deal + line items → NetSuite sales order
15 min
Order status to deals
NetSuite sales order status → HubSpot deal properties
15 min
Fulfillment status to deals
NetSuite item fulfillment → HubSpot deal properties
15 min
HubSpot quotes
HubSpot accepted quote → NetSuite sales order
In progress

Financial & reconciliation

NETSUITE
Invoices to HubSpot
NetSuite invoice → HubSpot invoice + deal totals
15 min
Payment status
NetSuite customer payment → HubSpot invoice paid and balance
In progress
Payments taken in HubSpot
HubSpot payments, fees and payouts → NetSuite deposits
In progress
//
How it runs
Every HubSpot run is counted, checked and recoverable
Records land in the NS90 data hub in Oracle Autonomous Data Warehouse before they reach NetSuite, so each one can be checked, retried and traced.
Balance and Control

Checks before and after posting

Source and target record counts are written to a job audit for every run.

HubSpot IDs are stored as NetSuite external IDs, so a re-run updates records instead of duplicating them.

A deal waits until its company exists as a NetSuite customer.

Self-healing

Record-level reprocessing

Failed records retry automatically up to five times a day.

Each record carries its own status and error, so one failure never blocks the batch.

Status values are set through a lookup, so a new status needs a lookup entry, not a rebuild.

Alerts and visibility

Dashboards and monitoring

Reps see order status, invoice amounts, paid and balance on the deal in HubSpot.

An observability dashboard can show runs, failures and queued records by flow.

//
What we’ve learned
5 lessons from HubSpot projects on NS90: Integrate

Confirm which owner is the sales rep

HubSpot accounts often have more than one owner property, for example a customer success owner and the rep who sold the deal. Mapping the right one to the NetSuite sales rep keeps commissions right.

Contact roles live on associations

Roles such as contractor or end user sit on HubSpot association labels, not contact properties, and are read with a separate call.

HubSpot doesn't dedupe API-created companies by domain

HubSpot merges duplicate companies on domain when people create them, but not when an integration does. If NetSuite customers are sent to HubSpot, look each one up before creating it, and store the NetSuite ID in a HubSpot property set to require unique values, so HubSpot rejects a duplicate itself.

Keep the land schema flexible

HubSpot properties change often while a CRM is still being rolled out, and when each property is its own column in the data hub, every new property means a table change and a mapping change. We build the land tables from a property list agreed with the client before any data is landed, and plan later property changes into set change rounds, so a new property is a scheduled update rather than rework mid-build.

Search requests have a size limit

HubSpot caps a search request at 3,000 characters, and every property you want back is listed in that request. A long property list has to be split across several calls and joined back together by record ID.
//
How we deliver
Six steps from assessment to steady state
01.

Assess

Review HubSpot pipelines, properties and owners, and the NetSuite records each should become.
02.

Map

Agree match keys, field ownership, required NetSuite fields and what reps should see back in HubSpot.
03.

Build on NSIP

Configure the HubSpot flows on NSIP, staged in your NSAW data hub.
04.

Test and reconcile

Run real closed-won deals end to end and confirm each order, invoice and status lands correctly.
05.

Go live

Align the product catalog, load history if needed, and run production smoke tests.
06.

Run and monitor

Run counts, retries and status on every record, with MHI support during hypercare.
About 4–5 months
from kickoff to production
Paced by
your CRM data readiness
// Oracle NetSuite Partner of the Year
A black and white photo of a clock tower.
A black and white photo of a clock tower.
A black and white photo with the words partner of the year.
A black and white photo with the words partner of the year.
//
FAQ
HubSpot integration questions
How do you prevent duplicate customers?
Who owns pricing?
Do HubSpot quotes sync?
Can reps see invoices and payments in HubSpot?
How do you stay within HubSpot's API limits?

Running sales in HubSpot
and finance in NetSuite?

Tell us how your deals turn into orders, and we'll show you the flows we'd set up.
//
More NS90: Integrate connectors