Integration

Connect HubSpot to NetSuite

Turn a closed-won HubSpot deal into a NetSuite customer and sales order without rekeying: the flow reads the deal's associated company and contacts, creates or matches the customer, and raises the order, with a value gate for large deals. Order number and billing status flow back to the deal. Every order is a run you can inspect step by step.
Two-way
Direction
Minutes after a won deal, status on a schedule
Latency
Deal moves to Closed Won
Common trigger
Build the flow, then map items and fields
Setup

Why teams connect HubSpot and NetSuite

Sales closes in HubSpot, finance fulfills and bills in NetSuite, and the handoff is a rep pasting deal details into a NetSuite form, or a nightly job that cannot handle a deal with a new company. Deals stack up at month-end and revenue recognition slips.

  • A closed-won deal becomes a NetSuite sales order within minutes, with the company and contacts read from the deal's associations
  • Customers are matched, not duplicated, on an external ID stored on both sides, and a new company is created from the HubSpot company record
  • Deals above a threshold pause for controller approval before the order posts, so a large or unusual order is checked
  • Order number, invoice, and payment status flow back to the deal, so reps stop asking finance. Every order is a run you can inspect

Worked example

The deal-to-order flow most teams turn on first.

Closed-won HubSpot deal to a NetSuite customer and sales order, with a value gate

Started by the polled deal trigger, using the deal's associations to resolve the customer.

  1. Trigger: HubSpot New or updated deal, polled on the schedule you set, with a Filter that continues only when dealstage is closedwon.
  2. Read associations: Get association from the deal to companies, and again to contacts, then a batch read for the records.
  3. Gate: if amount is 25,000 or more, a Wait for form step sends the controller an approval task with the company name and line items. On reject, log a note on the deal and stop.
  4. Customer: NetSuite Upsert by external id on Customer, keyed on externalId = hs_company_id, from the mapping below, with the primary contact's details.
  5. Order: NetSuite Upsert by external id on SalesOrder, keyed on externalId = hs_deal_id, with a line per HubSpot line item matched to a NetSuite item by SKU.
  6. Write back: write the order number to Deal.erp_order_number and post the order link to the deal owner.
  7. Ongoing: a second flow polls NetSuite invoices and customer payments with the Record Created or Changed trigger and updates a billing-status property on the deal.

Field mapping

The starting map for the deal and company to NetSuite Customer and Sales Order.

HubSpotNetSuiteNotes
company hs_object_idCustomer.externalIdMatch key. Creates the customer if missing.
deal hs_object_idSalesOrder.externalIdIdempotency key. A re-fire updates the order.
company nameCustomer.companyName
company domainCustomer.webAlso a secondary customer match on domain.
primary contact email, firstname, lastnameCustomer.contactPrimary contact on the customer record.
deal closedateSalesOrder.tranDateEpoch milliseconds in HubSpot. Cast and convert to the NetSuite timezone.
deal currencySalesOrder.currencyFails the run if the currency is not enabled in NetSuite.
line item hs_skuSalesOrder.item.itemResolved to internal item ID. A miss sends the order to a person for review.
line item quantitySalesOrder.item.quantity
line item priceSalesOrder.item.rateOverride, so NetSuite price rules do not restate the quoted price.
deal owner emailSalesOrder.salesRepResolved to a NetSuite employee record.

What syncs, each direction

  • Deals and companies. Closed-won deals become sales orders. Associated companies become customers. Deal amendments update the open order. (HubSpot to NetSuite)
  • Billing status. New invoices, payments, and shipments picked up by polling update a billing-status property and the amount on the deal. (NetSuite to HubSpot)
  • Account financials. Credit hold, payment terms, and balance sync onto the HubSpot company so reps see risk before they quote a renewal. (NetSuite to HubSpot)
  • Products and pricing. New items and price changes keep the HubSpot product library and the NetSuite item list aligned, with one source of truth. (Either direction)

Governance and audit

The same controls apply to this sync as to every other Neblex workload.

  • Run history. Every order is a run with the deal, the association reads, the customer and item resolution, and the sales order. A failed run can be replayed from the step that failed.
  • Approval and holds. Large deals pause for controller approval. Orders with an unmapped SKU go to a person as a review task.
  • Scoped access. HubSpot uses a private app token with deal, company, and product scopes. NetSuite uses a role limited to sales orders, customers, and items.
  • Environments. Build against a HubSpot test account and a NetSuite sandbox, then promote the same flow to production.

Frequently asked questions

How does the flow know which company a deal belongs to?

It reads the deal's associations: one Get association call for companies and one for contacts, so no company field on the deal is needed.

What happens to a deal with a line item that has no NetSuite item?

The flow sends the whole order to a person as a review task with the unmapped SKU named, rather than creating a partial sales order.

Are duplicate customers and orders prevented?

Yes. Customers match on the HubSpot company ID stored as an external ID, and the order is keyed on the deal ID, and written with Upsert by external id, so a re-fire updates rather than creates.

Does anything get installed in NetSuite?

No. The connector uses NetSuite's REST web services. No SuiteScript or bundle is deployed.

Can we use HubSpot line items, or do we need quotes?

Either. The flow reads line items directly from the deal, and can also read a HubSpot quote's line items if that is where your pricing lives.

Connectors used

HubSpot

CRM & Sales

Operations
336
Operations with typed output
81.5%
Change triggers
46 (poll)
Signs in with
API token
Connector reference

NetSuite

ERP & Enterprise Systems

Operations
271
Operations with typed output
0%
Change triggers
1 (poll)
Signs in with
Connection details
Connector reference

NetSuite does not describe its output fields in advance, so check the field mapping with Test this step when you build the flow.

See it on your data

Bring one real integration

We will build it with you against your own systems, with the run log open.