Integrating to Netsuite? What You'll Need to Know
Let's take a look at integrating to NetSuite and explore what you need to know about it, such as SOAP API and eventing.
Join the DZone community and get the full member experience.Join For Free
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:
- Customer Relationship Management (CRM)
- Professional Services Automation (PSA)
- Business Intelligence (BI)
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:
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
Complexity creates a maze between you and success. Simplicity ensures a clear line of sight.
- Lee J. Colan, Power Exchange
What's an Element? It is a super smart connector that produces a uniform, REST API — simplifying complex integration protocols like Netsuite's. The super smarts come into play because our Element is much more than a simple connection and much smarter than a "connector" that all other integration platforms offer.
The Netsuite Element knows how to communicate using Netsuite's SOAP APIs, translating each to uniform REST APIs. There's no need to know the details on how Netsuite's SOAP API interacts. In addition, the Netsuite Element features:
- SQL-based query statements (translated to Netsuite's query language) — searching for that contact by email is intuitive.
- Webhooks for Events — Built in and run behind the scenes - no need to construct a polling framework.
- Versioning is managed for you — backwards compatible with earlier versions. We keep it up to date — we migrated NS 2016.1 to 2018.1 in our Netsuite Element, our customers didn't feel any pain.
- Authentication is built in, both types — and, yes, it is simplified and well documented
- Bulk is managed and simplified — including chucking of files.
You can even try out and test each and every resource that the Netsuite Element exposes using the Element's built-in Open API spec documentation:
Now you can focus on catching and keeping those customers who have use cases that require a solid integration to Netsuite rather than getting tangled up with a custom, one-off, and complex direct integration to Netsuite's SOAP API.
Want to know more about the Netsuite Element? Feel free to check out our Netsuite API documentation or get in touch with one of our API integration specialists.
Published at DZone with permission of David Honan, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.