Oracle NetSuite and HubSpot integration
Oracle NetSuite runs your orders, fulfillment, and accounting. HubSpot runs your customer relationships and sales pipeline. Connecting the two keeps your customer master and billing records aligned. New customers created in NetSuite appear in HubSpot, and invoices flow from NetSuite into HubSpot linked to the correct contact and line items. Your sales and accounting teams work from the same customer view without manual sync or re-keying.
What moves between them
Customer and invoice data flows from Oracle NetSuite into HubSpot. Customers in NetSuite map to companies in HubSpot, and invoices sync with their line items and amounts. NetSuite vendors can also map to HubSpot companies to keep vendor master data aligned. The sync operates on a schedule you set, tied to your accounting close calendar or billing cycle, rather than in real-time, because HubSpot's invoice write support is in beta and NetSuite Event Subscriptions do not guarantee message order. No data flows back from HubSpot to NetSuite.
How ml-connector handles it
ml-connector stores both credential sets encrypted and uses NetSuite OAuth 2.0 Client Credentials flow, refreshing the bearer token every 60 minutes before expiry. On the HubSpot side it authenticates with the Private App Access Token presented as a Bearer header on each call. ml-connector reads customers and invoices from NetSuite via Event Subscriptions webhooks where enabled, or polls SuiteQL if webhooks are not configured. For each invoice, it creates or updates the corresponding HubSpot invoice object and associates it to a contact (pulled from the customer record) and line items. Because HubSpot enforces required associations and batch limits, ml-connector batches upserts to 100 records per call, maintains the association chain, and retries on rate limit (HTTP 429) with exponential backoff. NetSuite account IDs and token expiry are tracked to prevent outages when OAuth credentials rotate. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-market B2B SaaS company runs Oracle NetSuite for subscription billing, invoicing, and revenue recognition, and uses HubSpot to manage customer accounts and sales pipeline. Before the integration, the account team manually copied customer and invoice data from NetSuite into HubSpot to keep deal records and payment history current. Salespeople chased missing customer records and invoices appeared in HubSpot weeks late or not at all. With NetSuite and HubSpot connected, each new customer and invoice appears in HubSpot automatically, salespeople see the full customer timeline including recent invoices and payments, and the manual data entry step is gone. Month-end reconciliation now runs faster because customer balances in NetSuite match HubSpot without re-checking.
What you can do
- Sync customers from Oracle NetSuite to HubSpot companies, preserving names, addresses, and contact details.
- Create or update invoices in HubSpot with line items and amounts pulled from NetSuite, linked to the correct contact.
- Map NetSuite vendors to HubSpot companies to keep vendor master data current alongside customer records.
- Authenticate NetSuite with OAuth 2.0 Client Credentials and HubSpot with Private App tokens, handling token refresh and expiry.
- Poll NetSuite on a cadence tied to your billing calendar, with retries and a full audit trail on every record.
Questions
- How does ml-connector handle NetSuite OAuth token expiry?
- NetSuite OAuth 2.0 tokens expire after 60 minutes with no refresh token in the M2M flow. ml-connector tracks token creation time and automatically refreshes the bearer token before expiry on every call, so outages are prevented even if the token is about to expire. Credential rotation is logged to the audit trail.
- What associations are required for invoices in HubSpot?
- HubSpot enforces associations between invoices, contacts, and line items. ml-connector reads the customer from the NetSuite invoice header and looks up the matching HubSpot contact, then associates the invoice to that contact and adds the line items. If the contact does not exist in HubSpot, ml-connector syncs the customer record first before creating the invoice, ensuring the association chain is valid.
- Does the integration handle NetSuite webhooks or does it poll?
- ml-connector can subscribe to NetSuite Event Subscriptions for real-time push on invoices and customers, but because NetSuite webhooks do not carry HMAC signatures (they require IP allowlist protection) and do not guarantee message order, ml-connector can also poll SuiteQL on a scheduled cadence for reliable bulk reads. You can choose the mode that matches your compliance and performance requirements.
Related integrations
More Oracle NetSuite integrations
Other systems that connect to HubSpot
Connect Oracle NetSuite and HubSpot
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started