Guru's Verification engine ensures consistency, confidence, and trust in the knowledge your organization shares. Learn more.

SyncSmart NetSuite User Documentation

Introduction

This document describes SyncSmart’s integration between HubSpot and NetSuite. Terminology and definitions will be specific to NetSuite, HubSpot, and SyncSmart and will cover features, capabilities, security, FAQs, and more.

Defining NetSuite, HubSpot, and SyncSmart

What is NetSuite?

NetSuite, acquired by Oracle, provides cloud software to manage business finance, operations, accounting, and customer relationships. It has the functionality of customer relationship management (CRM) software and enterprise resource planning (ERP). For example, a sales team might use the CRM functionality during their sales process. Once the sales process is complete, the accounting team might use the ERP functionality for post sale invoicing, reporting and other accounting activities. SyncSmart offers object mapping for companies that use NetSuite as a CRM, but can offer custom functionality for those who use the tech as an ERP software.

What is HubSpot?

HubSpot provides cloud software to manage marketing, sales, operations, and customer service. It has the functionality of customer relationship management (CRM) software and content management system (CMS), marketing automation, and operational software. For example, HubSpot tracks and automates the journey a contact takes from when they first interact with the company’s marketing campaigns and website to the point sales closes the deal and customer service begins offering support.

What is SyncSmart?

SyncSmart.io is a cloud-based Integration-as-a-Service provider, backed by Lynton, a HubSpot Elite partner. SyncSmart offers a variety of integrations and products that range from minimal interaction with the team to managed support packages. SyncSmart is powered by a middleware OEM framework for SaaS companies to integrate with a wide variety of cloud software, databases, and files. SyncSmart is a top tier partner, receiving the highest level of support from their engineering team. SyncSmart’s goal is to help companies align tech stacks to ramp up their business operations and achieve real marketing and sales success.

How Do They Work Together?

SyncSmart has created a HubSpot NetSuite integration that offers bidirectional syncing of HubSpot companies, contacts, deals, products and line items, including field level data, with their respective objects in NetSuite. Bidirectional syncing means that what happens in one system will happen in the other. For instance, if you create a lead or contact in HubSpot, it will automatically show in NetSuite and vice versa.

The Benefits of the HubSpot NetSuite Integration for Customers

SyncSmart’s technology helps companies using HubSpot and NetSuite create better marketing campaigns, delegate sales tasks, improve customer nurturing, and generate higher revenue. For HubSpot NetSuite integration customers, specific benefits include:

  • Unified platform, connecting disparate data sources and improving sales and marketing teamwork
  • Strong lead intelligence and automated communication for sales representatives
  • Targeted contact information on prospects for marketing, allowing for personalized and contextual campaigns that hit home
  • Data entry in one platform, reducing errors and saving ample time
  • Proof of ROI with lifecycle stage, revenue, and closed-loop reporting (see the entire customer journey from start to finish)
  • Control of what objects and fields sync (all standard and custom fields supported with SyncSmart technology)
  • Integration fires in the background every few minutes
  • Powered by enterprise middleware and built on AWS with enterprise data centers for optimal security and functionality
  • Real-time monitoring of the SyncSmart integration platform
  • Supported by a multi-step, multi-level security system
  • Completely software-free, eliminating the need to learn or license a new system
  • Created by SyncSmart which offers an array of products, integrations, and levels of support to transform martech stacks in the HubSpot ecosystem
  • Backed by Lynton, a HubSpot Elite partner agency that offers services ranging from web design and development to inbound marketing strategy that accelerate business growth

Common HubSpot NetSuite Integration Definitions for Customers

API

Application-Programming Interface (API) helps software developers design products that automatically connect to CRM like HubSpot’s. It means that a business can integrate previous data and start using CRM right away.

Company

Companies are standard HubSpot integration objects. They help the CRM distinguish between different companies, and store information properly so it can be reached when necessary. They also contain data like addresses, opportunities, etc.

Bidirectional sync

Bidirectional sync helps get information both from HubSpot integration, and a business’s own data. APIs communicate that information, and bidirectional syncs are “bridges” that help them reach one another.

Closed-loop reporting

Closed-loop reporting helps consolidate the data that marketing teams are collecting with the data that sales are collecting.

Connector

Connectors are integrations that use bidirectional sync to connect HubSpot CRM with an external system. This means that data is stored in a central hub, eliminating multiple logins or shuffling between systems.

CRM

Customer relationship management (CRM) is a set of processes and tools that help businesses build a better relationship with customers. NetSuite and HubSpot are CRM tools that are extremely beneficial as they help improve data collection and application.

Accounts and information relevant to them are constantly tracked through CRM. With a HubSpot integration, companies can automatically customize offers and communicate with customers (since the system has the necessary information), and save time.

Deal pipeline

Deal pipelines predict revenue and identify problems in sales. Each pipeline has multiple stages through which the customer typically has to progress in order for the deal to be closed.

This is done automatically with HubSpot integration.

Deal stages

Deal stages are parts of the standardized deal pipeline process.

For example, when customer reaches stage #3, they can be offered a demo or a proposal. Deal stage features in HubSpot integration simplify the process for the sales team, and allow streamlined customer onboarding.

Default match field

The default field / field property that the integration uses to match records between NetSuite and HubSpot.

For example, when a HubSpot company syncs to a NetSuite customer and vice versa, the supported fields are matched by the associated internal ID or domain. For HubSpot contacts and NetSuite person customers, it is the email.

Domain

A domain is the physical location on a web server at which a website is located. A domain name is the address of that physical location. In the integration, a domain is used for matching fields between the two systems (internal IDs, transaction IDs, and emails are also used).

Fields or properties

Fields or properties are information storages about companies and other objects. They can include contact information, deal stage, and any other information needed to improve marketing and/or sales. SyncSmart can support almost all standard and custom fields for all objects available in an integration. Here are examples of the details that can be synced on customer, contact, and deal objects.

Integration as a service

Integration as A Service (IaaS) is a cloud service that supports application, data and process integration. It combines multiple applications, sources, APIs and systems to create a central, accessible hub.

Internal ID

In NetSuite, every record (customer, customer status, contact, etc) has an internal ID, which is a unique integer number that is typically called the Table’s Primary Key. The internal ID never changes for the life of that record. In HubSpot, an internal ID is also a unique number associated with records.

Leads and contacts

In HubSpot, leads and contacts are one and the same. However, they are different in CRM. Leads are sales prospects. They’re usually the first stage in the deal pipeline, as they’ve yet to be convinced to become your customer. Once a lead progresses through the deal pipeline and becomes more qualified, it turns into a contact.

Custom object

Custom objects are a way of adding additional fields and features that a business might need, and that HubSpot or NetSuite don’t originally have.

Objects

Objects, like contacts, companies, opportunities, and more, represent the different types of relationships and processes a business has. NetSuite and HubSpot both have standard objects to perform various sales and marketing functions. The integration syncs all standard objects and their associated fields.

Opportunities and deals

Deals in HubSpot integration help identify opportunities for increasing revenue by boosting leads down the sales funnel. For example, companies can create a deal when a lead takes an important action such as booking a demo.

Sync / data synchronization

Data synchronization is the ongoing process of synchronizing data between two or more devices and updating changes automatically between them to maintain consistency within systems. Syncing refers to the process of flowing data between HubSpot and NetSuite, or any other two systems.

Transaction ID

Transactions are a type of record / object in NetSuite that have a unique ID, called a transaction ID, to match data with HubSpot deals.

Webhook

A webhook is a lightweight API that powers one-way data sharing triggered by events. Used with an API, they enable applications to share data and functionality.

Workflows

Workflows are a way of automating processes by triggering relevant actions based on context. For example, if a lead books a demo, they can be automatically sent a deal.

HubSpot NetSuite Integration Features & Capabilities

Object Mapping

Below is a list of objects synced between HubSpot and NetSuite and the fields that SyncSmart supports by object.

image.png

HubSpot - NetSuite Default Match IDs:

  • Company <-> Customer: Internal ID and Domain
  • Contact <-> Person Customers: Email
  • Contact <-> Contact: Email
  • Deal <- Transactions: Transaction ID
  • Deal <-> Opportunity: Internal ID
  • Deal Line Items <-> Line Items: Internal ID
  • Products <- Products: Internal ID
  • Engagements <- Activity: Internal ID

Anything related to a person/company/account will typically match by email. Transactional data will match by transaction ID. Others will typically match by their unique internal ID from HubSpot / NetSuite.

Notes: All standard and custom fields that contain data ARE supported by SyncSmart. For example, HubSpot contacts fields like stress address, name, and description will sync. However, they MUST have data to sync. If the field doesn’t have data or the field doesn’t exist on a different record type, it will not sync.

An example here: “Abandoned cart” would display on a customer record but because it doesn’t actually contain data, just simply shows there, the integration can’t map it. Additional example: A field text cannot sync to a dropdown. Workarounds can be built though.

Virtual fields (such as calculations) are not supported. For engagements, pre-defined fields are supported but custom fields are not. It is also possible that some nuances with fields will arise and may not be supported in all instances. In this case, connect with a SyncSmart rep.

Syncing Frequencies and Dependencies

All syncs check for new and updated data every five minutes, with a processing time of about 30 seconds to sync each record. Customers should have the expectation that it takes a minimum of five minutes to sync a record, with a maximum time of 10 minutes under normal working conditions. Syncing also comes with some dependencies. For example, with the HubSpot NetSuite, there are dependent objects for syncing that alter the time it takes to sync:

blob

It is important to note that SyncSmart uses DataDog to monitor our integration platform in real-time to look for any sync downtime or other issues. The team sends out alerts and notifications as needed.

Associations

Associations serve a purpose to map extra records (companies or contacts) to existing records such as deals, or even to other record types like contacts and companies.

In HubSpot, the associations are shown on the right side panel, and are differentiated by labels which are comma separated on the bottom of the association cards. There are primary and other (flexible) associations that can be separated with labels in the payload: Any and every, Primary, and Labeled.

  • Any (every) association: In a deal to company association example, every association will have an object in JSON payload with a tag of deal_to_company_unlabeled.
  • Primary association: The primary association will also have the deal_to_company label.
  • Labeled association: Any custom labeled association will have an object with that label in the payload (like end_user or portal_admin).

Note: Labels don’t need to match display names.

Mapping Flexible Associations

To map flex associations, field types are needed. Associations on the HubSpot side are just dropdown fields on the NetSuite side. Dropdown fields which accept the ID's of associated records.

For HubSpot to NetSuite, that looks like:

Ping/crm/v3/associations/:recordType/:toRecordType/batch/read API for the associations, then loop through all associations, match them to the NetSuite records by ID, pass to the mapping script and in the mapping script the SyncSmart teams attaches it to literal fields of the upsert payload. SyncSmart sets all flex association fields that are mapped to empty string (equals on NetSuite to a delete of an association), and then populates the ones that the team has, thus accommodating for any association deletes on HubSpot.

For NetSuite to HubSpot, that looks like:

Loop through the mapped flex associations to see if any are present in the mapping, and if so to take the field names on the HubSpot. SyncSmart matches the HubSpot ID's from the NetSuite payloads, loads previously stored records to see what flex associations were then in that payload, and checks them vs. current payload. If something exists now but did not exist in the previous payload, add it to the new associations array, and vice versa if something existed in previous but is not present in the current payload add it to the remove associations array. First loop the remove association then loop the add association.

Mapping Primary Associations

Primary associations are added in the hardcoded part of the mapping scripts

For HubSpot to NetSuite, that looks like:

The first (primary) association in the payload is taken and manually added to the entity field of the upsert payload.

For NetSuite to HubSpot, that looks like:

Entity ID is taken straight from the webhook payload, passed to the callable. Than that ID is loaded to see if the sync already has data of the HubSpot company under that name and either creates it (with await in middleware storage to see that newly created company ID) and then the association is created on the HubSpot

Matching and Differentiating Primary vs Flex Associations

The most important thing is how to map the flex associations, and how to tell the integration what fields to use. SyncSmart uses association as the HubSpot type, which will tell the integration to treat these fields differently in the mapping scripts. The NetSuite field type is still select. Field names correspond to appropriate on the respective platforms, only the HubSpot Type is set to association as a "special" field, while hubspot field type is set to number.

Additional information on how to map flexible associations.

Filters on Standard and Custom Fields

When syncing from HubSpot to NetSuite, the integration can filter on any combination of standard or custom fields. Currently, these filters are written by the integration developers as JavaScript code; users / clients will be expected to provide their filter criteria in plain English to their Implementation Consultant. Additionally, a set of standard filters are always applied before syncing:

Note: The integration uses RESTlet Web Services.

blob

For syncing from NetSuite to HubSpot, it looks like:

Note: The integration uses User Event Scripts.

blob

Syncing Custom Objects

For users that have Enterprise level HubSpot portals with custom objects, the SyncSmart team can enable the sync of a custom record type in HubSpot and a custom record type in NetSuite. It can sync bidirectionally. To accomplish this, the SyncSmart team must:

  • Enable the HSNS configurator, and enter custom record objects both from NetSuite and HubSpot in the middleware installation wizard.
  • Set up the mappings on Google Sheets (some manual tweaking).
  • Run the "GSheet to JSON Config" in the configurator's solution instance.

More information on setting up custom objects in the HubSpot + NetSuite integration can be found here.

The SyncSmart Bundle and HubSpot iFrame

Once an integration project is started, a NetSuite bundle is installed. To access it, go to Customization > SuiteBundler > Search & Install Bundles > List > ~ look for “SyncSmart HubSpot <> NetSuite.” The bundle contains scripts to provide Webhook events and RESTet functions, which allow for more performant integrations.

Note about NetSuite sandboxes: If a sandbox refresh occurs prior to repointing SyncSmart to a production environment, it does delete the SyncSmart bundle from the sandbox environment, resulting in an additional charge and increased timeline for re-installation. Do not refresh NetSuite sandboxes during implementation. If a sandbox does refresh, someone must clear out the SyncSmart Webhook URL from your sandbox instance as the URL from production gets copied into the sandbox, resulting in potential duplicate records being created during a sync.

The HubSpot iFrame is a part of this bundle. It is a tab on the preferred contact form (HubSpot SyncSmart) which displays a summary of the HubSpot timeline (five most recent activities) inside NetSuite and redirects to HubSpot for a comprehensive look. NetSuite users will need a HubSpot account to see it.

Optional Add-On: List Sync

Users can opt to add syncing for any NetSuite Contact Saved Search to HubSpot Contact Lists. Components of this include:

  • The integration subscribes to saved searches. To sync a saved search to a HubSpot List, create a new HubSpot Marketing List Subscription record. This is a custom record type which is included in the list sync bundle.
  • The Marketing List Subscription is a simple record which stores the Saved Search and relevant HubSpot list data.
  • Each time the integration runs, it will update the last sync timestamp to inform NetSuite of the status of all list syncs.

It is recommended that users delete or deactivate list subscriptions when they don’t need the list actively syncing in HubSpot. Other things worth noting regarding the list sync:

  • If a contact doesn’t exist in HubSpot by its email address, the integration will create a new contact without custom field mappings.
  • The list sync process only runs during business days, Monday through Friday 7am - 7pm ET.
  • The list sync will always create two lists in HubSpot for every saved search. This is to optimize for speed and to support HubSpot bulk APIs.
  • The list will be created in HubSpot with the same name as your List Subscription record, with the added suffix [NS].

Additional information on the list sync can be found here.

Optional Add-On: Sandbox Environment

A user can request a HubSpot sandbox environment from the SyncSmart team where they can test new functionality of their integration without affecting their live integration or production environment. Discuss this with the implementation consultant prior or during installation.

Avoiding Duplicates of Companies that Exist in HubSpot & NetSuite

A common issue that happens during integrations is the duplication of data. To avoid duplicates of company records in HubSpot and NetSuite before the sync is live, follow these steps:

  • Ensure internal ID is set as a match field in the mapping sheet (SyncSmart’s sheet).
  • Ensure internal ID has been created as a custom property in HubSpot
  • Have clients load NetSuite internal IDs to the internal ID property in HubSpot.

When running the historical sync, duplicates will not be created. Going forward, the integration will use internal ID as the primary match field.

How Does SyncSmart Secure Data?

SyncSmart integrations are designed for performance, accuracy, reliability, and security. They are point-to-point integrations that transmit data between systems without mirroring to a data warehouse for analysis, which results in secure syncing. Data is encrypted with 256-bit AES encryption and located in data centers in the United States. SyncSmart uses OAuth and machine-to-machine authentication when applicable, and reserves the right to revoke HubSpot OAuth token-based authentication at any time. This authentication information for NetSuite is stored in middleware system SyncSmart uses, which is fully encrypted.

The Implementation Process

With the SyncSmart UI, a customer can stand up this integration on their own and reach out for support from the SyncSmart team as needed. Without the UI, the standard implementation consultant process looks like:

  • Kick off call to introduce the team, confirm use cases, present object mapping and field mappings, discuss dropdown and owner fields, and more.
  • Close the loop on any clarifications or questions and install mappings, including filters, and build out the sync.
  • Launch the integration with an optional historical sync to get up and running with pre-collected data.
  • Offer ongoing support as needed through managed services.

Information on managed services and support can be found here and more detail on the NetSuite HubSpot integration can be found here.

Speak with an Integration Expert

Have additional questions on the integration or SyncSmart or need help with the product? Talk to our team today.

You must have Author or Collection Owner permission to create Guru Cards. Contact your team's Guru admins to use this template.