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-Platform-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 the Tray.io Embedded platform, an OEM framework for SaaS companies to integrate with a wide variety of cloud software, databases, and files. SyncSmart is a top tier partner and customer of Tray, 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 Tray.io 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
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.
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 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 helps consolidate the data that marketing teams are collecting with the data that sales are collecting.
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.
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 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 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.
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 Platform as A Service (IPaas) 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.
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 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, 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.
Transactions are a type of record / object in NetSuite that have a unique ID, called a transaction ID, to match data with HubSpot deals.
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 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
Below is a list of objects synced between HubSpot and NetSuite and the fields that SyncSmart supports by object.
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:
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 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 tray 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 (hopefully Rob can make this a pretty clickable link, like maybe in a bubble or box?)
Filters on Standard and Custom Fields
Note: The integration uses RESTlet Web Services.
For syncing from NetSuite to HubSpot, it looks like:
Note: The integration uses User Event Scripts.
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].
Optional Add-On: Sandbox Environment
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 Tray.io’s proprietary system, which is fully encrypted.
Frequently Asked Questions
Q: Can sales teams work in HubSpot but quote in NetSuite?
A: Sales reps can stay in HubSpot and quote in NetSuite using an extension (iFrame window directly in HubSpot). Once the quote is created, the integration can sync the updated quote fields back to the original deal, including the deal stage, amount, close date, and more.
Q: How does the quote to deal sync work?
A: SyncSmart can sync NetSuite quotes bidirectionally with HubSpot deals. Users can choose to map any of the quote fields bidirectionally so that NetSuite will update the HubSpot Deal after there are changes to a quote. For any quotes accounting teams create directly in NetSuite, the sync can create a new HubSpot Deal to reflect the won quote data (if desired). This would result in a single sales pipeline that includes all of a sales team's deals plus purchase orders entered by accounting.
Q: Can SyncSmart import existing NetSuite quotes to HubSpot?
A: Yes, SyncSmart can import quotes as part of a historical sync. Each NetSuite quote will be created as a HubSpot deal.
Q: Can SyncSmart auto-create HubSpot deals for renewals in a pipeline?
A: Yes, this can be done directly in HubSpot by auto-creating renewal deals using a HubSpot workflow. Trigger a closed/won deal to automatically create a new renewal deal with a future close date.
Q: If a quote or sales order is deleted in NetSuite, will it be deleted in HubSpot?
A: Deleted sales orders will not delete any data in HubSpot. This is standard functionality across all objects as SyncSmart will not delete data.
Q: Do all contacts between systems have to be synced?
A: No. SyncSmart allows for advanced filtering to control what syncs. For example, the integration can be configured to sync active contacts from one system to another and not touch inactive contacts.
Additionally, workflow logic can be set up so only contacts associated with a closed/won deal sync to your other system.
Q: How are duplicate records with duplicate emails addressed by the Sync?
A: HubSpot requires unique email addresses and does not support duplicate emails on contact records. Therefore, duplicate emails in the NetSuite system will flow into the same HubSpot record.
The best practice here is to manage duplicate emails in the other system to ensure unique contacts by email are syncing into HubSpot. The integration itself will not merge duplications and then sync automatically. The same applies to records deletions.
Q: For a one-directional sync, what happens to the opposing system? (Assume a one-directional sync for a field where NetSuite is the system of record and HubSpot is the opposing system.)
A: If the field is edited in HubSpot, it will not sync to NetSuite. NetSuite will be the system of record or source of truth and changes to NetSuite will always overwrite HubSpot.
Q: How are contacts mapped to companies? Does a certain ID need to be brought in?
A: The contact/company relationship will be synced over in both directions. For example, if someone creates company A with three associated contacts in HubSpot, the sync will create company A associated with the same contacts in NetSuite.
The sync will automatically match IDs. The only reason to load IDs in the system would be if someone were importing data from NetSuite to HubSpot. In these cases, SyncSmart matches IDs to avoid creating duplicates in the sync. Note: This does not apply if someone is starting with a fresh instance of a system.
Q: How would a company tie a NetSuite sales rep to a HubSpot user?
A: HubSpot owner is how SyncSmart syncs with NetSuite Sales Reps. Sales reps are matched by email address. As long as a NetSuite employee record has a matching email address with the HubSpot User, the integration will sync record ownership one-way or bidirectional.
Q: Can companies have multiple contacts on an account or company?
A: Using custom owner properties on the HubSpot company, businesses can have multiple owners in HubSpot (account executive, customer success manager, etc.).
Q: How do customers test integrations in a sandbox environment without pushing changes to production?
A: To disable the NetSuite integration in a Sandbox environment and avoid live changes, clients need to remove (blank out) the Webhook URL from NetSuite. Customers can follow this path to achieve it: setup-->companies-->general preferences-->custom-->syncsmart URL
This looks like:
A: To avoid duplicates before the integration sync is live, refer to these guidelines:
Ensure internal ID is set as a match field in the mapping sheet.
Ensure internal ID has been created as a custom property in HubSpot
Have client load NetSuite internal IDs to the internal ID property in HubSpot
When running the historical sync, duplicates will not be created
Integration will use internal ID as the primary match field moving forward with the ongoing sync
Q: How would a company sync leads as customers?
A: When syncing HubSpot companies to NetSuite customers, the integration will always create a Customer customer record type in NetSuite no matter what the entity status is. If a client wants to have Lead or Prospect customer records created then the SyncSmart team will need to check the syncLeadsAsCustomers setting in the Install NetSuite v2 new customers config wizard.
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.
Speak with an Integration Expert
Have additional questions on the integration or SyncSmart or need help with the product? Talk to our team today.