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:
- 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.