Integrating to Netsuite? What You’ll Need to Know

By:  David Honan

Netsuite is a complete ERP system to support rapid growth and long-term financial health of any size business. According to Netsuite’s website, “20% of Fortune 100 Companies use Netsuite.” They claim that they are the #1 Cloud ERP system. I believe it; Netsuite seems to be everywhere and many of our prospects and customers are looking to Cloud Elements to help make their integration to Netsuite less painful.

If you have a SaaS application or are a system integrator, it is very likely that some subset of your customers currently use Netsuite and will require that your application integrates and syncs data with it. If not, your customers may select a different vendor who can integrate with their version of Netsuite.

Given that, what are example use cases that would trigger an integration with Netsuite?

  • New lead generated in cloud marketing service. Lead to Customer: Connect and sync lead or contact information with Netsuite to manage from prospect to customer.
  • Quote-to-Cash: Opportunity set to closed won in cloud CRM service. Connect and sync data across Netsuite services from customer’s intent to buy to realization of revenue.
  • Hire-to-Retire: New Employee added into your cloud HR service. Build a single employee view with Netsuite and other services by syncing Employee demographics (id, status, name, address, phone number, email, hire dates, etc). Automatically order computer equipment, uniforms, setup emails — and reverse the process upon retirement.

Netsuite is truly amazing — a powerful ERP that has all the components required to run a business, including:

  1. Finance/Accounting
  2. Customer Relationship Management (CRM)
  3. Ecommerce
  4. Professional Services Automation (PSA)
  5. Business Intelligence (BI)

DynamicsFocus, LLC. is the leading recruiting source for experienced NetSuite, Salesforce and MS Dynamics professionals throughout North America, learn how here

However, powerful software typically has an equally powerful API and Netsuite is no exception. Integrating with the Netsuite SOAP API can be daunting. Here are some items that you will need to contend with in order successfully integrate to Netsuite:

  1. SOAP API: You will need a strong working knowledge of the SOAP API: SOAP protocol. For example, Netsuite’s API is complex for conducting searches, e.g. searching for a contact by email address. If you have standardized on HTTPS and REST in your application or services, you may need to write scriptlets (JavaScript exposed as REST) to convert Netsuite’s SOAP protocols to REST in order to support HTTPS calls.
  2. Authentication: Netsuite supports both Token based and Basic (Username and Password) authentication. Which you should use depends on your use case – you may need to support both.
  3. Concurrency limitations: Netsuite allows for 1 API call per user account at any given time. If more than one API call is made at the same time, all will fail. Thus, you will need to architect a solution that ensures “gating” of API calls for a given user account.
  4. Bulk Framework: Netsuite has asynchronous APIs for moving data in bulk. This can help with moving a large amount of data records depending on your use case. You will need to understand how Netsuite queries using SOAP API calls (see above).
  5. Eventing: Netsuite does not provide webhooks or other polling based built in eventing framework. Consequently, you will need to be build one – again using their SOAP queries. Note: You will also need to manage event queries vs. API requests due to the concurrency limitations noted earlier.
  6. Versioning: Currently two major versions being used, 2016.1 and 2018.1, you will need to ensure forward compatibility if your customers switch to the newer version.
  7. REST Conversion. Optionally, if you standardize to REST, when integrating to your customer’s Netsuite services, it may require writing Scriptlets (JS exposed as REST) – which you will have to risk loading into your customer’s Netsuite sandbox.

It sounds complex because it is.