NetSuite Integration Guide

Chapter 1: NetSuite Integrations Executive Summary

Success takes planning, planning deserves results. Whether you are in manufacturing, wholesale distribution, retail, or one of the many companies that benefit from solution integrations, this guide will give you a good overview of options you have when moving data and/or triggering business processes between your key business systems.

Many companies are finding that ‘do it all’ business systems are being enhanced, and at times replaced, by individual best of breed systems. This creates the challenge of moving data between multiple systems using labor force, or somehow integrating these systems. Furthermore, technologies are being delivered as/on PaaS, SaaS, IaaS, and more recently CaaS and FaaS. The question is, how do you streamline your business with this changing technological landscape and more importantly, is there a right way for your business to get there? Yes, in a word, integration. We will cover in detail the common variations of integration later in this document, but rest assured, integration is a cost effective and key component to linking various systems together for long term business success.

NetSuite integrates with many popular CRM systems like SsalesforceHubSpot and Zoho CRM, popular ecommerce platforms like MagentoShopifyBigCommerce, and WooCommerce, popular procurement systems like Ariba and Zycus and many other apps and platforms

To help make this article more meaningful, let’s provide a foundation of the types of integrations you may run into when streamlining business process and consolidating information. Note it is possible that an integration can be both application to application, and master data synchronization.

Application to Application (A2A) Integrations

A2A integration covers the interlinking of business processes between two or more business applications. This may or may not include data. For example, one application may alert or trigger another application to processes something without the need to pass it data. For this type of integration, a clear understanding of each application process is a must as well as the ability to trace the process at the individual business and data object levels.

Data Integration

This use case is purely about data exchange between disparate systems. In relatively simple system landscapes, this type of data exchange requires little or no orchestration and integrations can be achieved and maintained easily.

Master Data Sync

This use case refers to synchronization of master data (initial load or delta changes) between a system of records (source) and dependent applications.

More Complex Integration Scenarios

Additional use cases include technical considerations based on data complexities. For instance, data ingestion is required to sanitize or secured data. Your business may need workflow orchestration between disparate organizational boundaries, product configurations and controls, and other data lifecycle situations.

You will face decisions to reach your goals, such as changing a security model, defining SoT (source of truth) for various data elements in your business. For example, your eCommerce presence may allow a user to log in, make a purchase and become a customer. Should that customer also exist in NetSuite? Of course it should, but the two systems may use different back end databases and technology stacks. The solution? Integrating the two systems together. Furthermore, you may have other systems such as fulfillment that require access to that same customer information. Integration to the rescue again.

NetSuite (in the categories of Saas and Paas) offers several ways to integrate with external systems and the choices one takes plays a crucial role in the robustness, flexibility, and scalability of the integration. This post discusses the key aspects that one needs to pay attention to, while choosing from the available methods to integrate with NetSuite.

In this guide, we will continue to explore the choices you have when integrating with NetSuite, and how to make the right decisions for your business. Integrations should compliment your business and technology choices when delivered correctly.

Chapter 2: Why Integrate?

Companies often find themselves in a situation where NetSuite does not fulfill their business needs for a particular job or a third party application does that job better. Sometimes businesses adapting NetSuite already have smoothly running applications that they do not intend to discontinue in favor of NetSuite alternatives. In such cases, the need to integrate their NetSuite implementation with either custom-made or third party software arises. Apart from the need to take the right technical approach, certain decisions are of prime importance in order to make any integration project successful:

  1. What is the extent of integration you are seeking? How many integration points are required in order to achieve your requirements?
  2. What objects/records need to be integrated?
  3. What are the differences in the two (or more) systems you are trying to integrate? What measures need to be taken in order to settle these differences?
  4. What are the trigger points for each integration in your business operations?
  5. Do you have a technical team that can write integration code or will you need to engage a partner or an external team?
  6. Does your team have technical knowledge of NetSuite Development Platform? Would they be writing both sides of the integration?
  7. If there are two separate teams who handle two sides of integration, how are they going to interact? Are they able to overlap their timelines and work in parallel?
  8. How many concurrent connections with NetSuite would you need for this integration? Are there any concurrency limits in NetSuite that might become a bottleneck for your integration once it scales to meet your business needs? To that point, have you identified transactionally, how big is your business?
  9. Do you need a two-way sync or one-way sync is good enough for you operations?

The good news is that NetSuite has the ability to both push and pull data to/from other systems. If you need the integration activity to trigger from within NetSuite then the route of integration setup would be different from the case where integration activity gets triggered from outside NetSuite. Following are the details of both the scenarios.

Chapter 3: Integration Strategies

When you want to connect NetSuite to another system there are two basic options, of which one has to be chosen. We either pick an existing “connector” of the shelf, or build the integration ourselves. Below we discuss both approaches with pros and cons.

Existing Connectors

Existing connectors to NetSuite come in two flavors:

  • NetSuite Connectors such as Celigo NetSuite Connectors, are apps that connect NetSuite explicitly to one system at a time. Generally these tools provide a step-by-step wizard interface to the users. Filling it out configures the connection and options of integration between NetSuite and the other system
  • Integration Platforms such as Celigo iPaaS PlatformDell Boomi, Workato and few others facilitate a more generalized approach to integration. These platforms provide some sort of workflow tools to allow users to define the “synchronization steps”. 
Pros
  • Quick Setup
  • Easy to use
  • Usually, no or less technical skills required
Cons
  • Limitations/Lack of Abstraction: Since these tools are just a prebuilt abstraction, the integration team may run into a lack of control problem. When and how data is going from one system to the other differs from case to case in an integration. Such systems may have limitations that either make it impossible to achieve an integration requirement or compromises on the easy-to-use/quick-to-setup feature, which in the end defeats the purpose of choosing an existing tool over building the integration from scratch.
  • Monthly/Annual Cost. Existing solution have a running cost that you will have to pay monthly or annually.
Integration Project from scratch

Another way to approach an integration project is to build the integration from scratch. If you use NetSuite but do not have the expertise to build this integration, you can engage a NetSuite Customization/Integration expert to do the job for you.

Pros
  • More Control. Most of the scenarios you can think of, can be implemented one way or the other.
  • One Time Cost
  • Tailor made for your needs 
Cons
  • Takes time to implement. Basic things like converting date formats from one system to another have to be implemented. 
  • Requires technical knowledge of NetSuite Development Platform as well as the development platform of the other system.

Chapter 4: Phases and Estimation

ABC Co. sells furniture online using Magento as their eCommerce solution.They have recently opted for NetSuite but they would be retaining their Magento for taking online orders, which constitutes a majority of their business. ABC would like to use Magento for generating Customer and Order records, while NetSuite for rest of the Sales Cycle (delivery of furniture, invoicing etc), maintaining stock, managing furniture assembly process and etc. While the respective activities in both the systems can take place smoothly, both the systems are required to be in sync. For instance when an order is shipped, ABC would like their Magento to be updated so that the customer can see the updated order status when they log into his account online. Similarly when an order is cancelled by a customer, NetSuite needs to be updated immediately so that necessary steps can be taken to not ship the order. ABC desires to keep the stock count in two systems in sync so that the items are not oversold.

 

Since the events that would trigger the integration occur in both the systems, a clean approach would be to develop a two sided sync for this integration project. However ABC does not have the technical expertise to develop Magento side of code and are willing to compromise on the real time nature of the solution. As a result it is decided that all the  Integration logic will be inside NetSuite i.e. NetSuite will do the push when data needs to be sent to Magento and a pull when data needs to be received from Magento.

 

Inside NetSuite we would develop “Scheduled Scripts” that runs periodically and checks if a new customer or order has been created and brings those to NetSuite. For activities taking place in NetSuite such as furniture being shipped, we would develop “User Event Scripts” that execute as soon as the Fulfillment records are created and would notify Magento with relevant information about the order. To avoid selling more quantity than ABC has, we would also develop a Scheduled Script that runs nightly and syncs the latest inventory levels with Magento.

A typical list of phases along mandays effort for such a scenario is as under:



Chapter 5: Aspects of an Integration Project

Following are some aspects that need to be provisioned while creating a connector.

Sync Direction

Sometimes the clients want the data in both systems to be consistent. This means that any records in Shopify should be created in NetSuite and records created in NetSuite should be sent over to shopify too. In some cases clients do not opt for full two way sync but its a two way sync in the sense that some records are Shopify-to-NetSuite and others are NetSuite-to-Shopify.

Realtime vs Scheduled

Sync can be real time or scheduled. Real Time sync means the code is placed against an event. If there is a technical limitation on either platform, real time sync might not be possible. In such cases scheduled

Direct vs Middleware

Direct integration between two systems results in the most efficient system. These are the fastest and least complicated. Sometimes though, it is not possible to have direct integration because of customer requirements of technical limitations. In such cases middleware is created to fill the gap.

Integration using middleware increases network delays and sometimes might even cause network delays.

Push vs Pull

A Push approach can be either Real Time or scheduled while the Pull approach can only be scheduled/periodic. Please note that this concept is different from Sync Direction. For example an item record is supposed to be copied “from shopify” “to netsuite”. This defines the direction of data from is shopify to NetSuite. Even after deciding this, it is still to be decided whether Shopify sends the item data to NetSuite or NetSuite requests shopify and pulls the item data.

Single Records vs Bulk

In some cases it’s either desirable or technically feasible to import certain records/data in bulk. For instance, some clients opt to sync stock nightly in bulk.

Bulk sync might be more complicated(compared to single sync) than it seems on the surface.

Automatic vs On Demand

Whether the client wants/technology allows the integration to be automatic or is triggered on-demand.

Supervised Integration

In some cases the user wants an interface to manually check what records are being synced be approving the sync. The sync in this case might be both automatic or on-demand. An additional interface needs to be created in order to show the records to be synced.

API-based vs File Based

NetSuite offers two standard ways for the outside world to connect to it: SuiteTalk and RESTlets. Both of these are popular data exchange formats that suffice in most cases. However, sometimes the other system seeking a connection to NetSuite only has a file-based integration possible, either due to technical constraints or because of conforming to an existing integration infrastructure.

Error Handling

What happens when sync fails?

  • Should we retry? How many times to retry before we quit?
  • Should we send an error email to someone?
  • What happens if the record is synced twice? Are we supposed to have any duplicate detection and removal mechanisms built into the sync?
Customization

In some cases, additional business rules need to be applied before/after the records have been synchronized. This part is the most challenging part of the integration due to its ad hoc nature. The toughest part of customization is understanding its impact on the whole cycle. A lot of times there are a lot of changes in the requirements specified by customers and adjusting the solution design may cause unforeseen issues elsewhere in the integration or business cycle. It’s best to consider all stakeholders involved, discuss all possible scenarios upfront and freeze the scope of the project.

Chapter 6: Factors risking integration projects

Before starting an integration project it is important to watch out for certain common mistakes that normally occur in an integration project. Keeping an eye for such patterns can ensure a more mature project life cycle.

Lack of initial research

It is a common observation that organizations seeking integration with NetSuite create an integration with lots of limitations and bottlenecks. This is mostly because the integration team is using technologies they know instead of using the right technology for the given task. NetSuite provides a lot of options to do one thing and if on does not choose the right option, there are a ton of issues with scalability. Always do your research before investing in an integration project.

Technical Limitations

Sometimes deep into an integration project, technical limitations are encountered in systems that cause significant delays. Some of the limitations might even force the integration team make major changes to the integration architecture or worse choose an entirely different design for connecting the two systems. For instance mid way through the project, the team might realize the there are too many difficulties connecting the two systems directly and it is necessary to include a middleware in between.

Communication

Integration teams should give special care to their modes of communication. A lot of times requirements are lost in translation because of insufficient or improper documentation. Avoid documents with overlapping information or multiple versions of the same document floating around the project team. Misunderstandings are a great source of chaos in NetSuite Integration projects.
Multiple Parties

Integration means there are two systems involved. This often results in two technical sub teams working on the integration project – each expert on their respective system. Mostly these two teams belong to two different organizations, one from the Implementation Partner and the other from the organization getting NetSuite implemented for themselves. Since writing code for implementation is a complicated job and such expertise are not needed round the year, it is not uncommon for NetSuite using companies engaging professional services of a third organization to write the code for them. This makes the situation even worse with three parties being involved, several formalities, a number of documents circulating, dependence on each other and consequently blame games. With so many parties involved, each having their own culture, vision, goals and other responsibilities, it is difficult to get everybody on the same page.

Lack of availability of key players/Dependence on other tasks

NetSuite integrations are often done as a part of NetSuite implementation. Migrating from one system to another is already a daunting task. Businesses have their employees busy in operational activities. These people need to take out time from their daily operations. There are a ton of configurations, data exports and imports, customization and etc that make the implementation a very complicated project to take on. If integration is one of these, chances are that the team involved will be super busy with other tasks and will not be able to give time to the implementation or integration project. Sometimes there are dependent tasks like data import on which the integration is dependent.

Revisions / Unfrozen Requirements

When Integration projects are happening in parallel with implementation, often the delay involved with implementation causes the integration requirements to change. This often results in increased costs and effort. Sometimes it even causes the existing effort to be undone.

Chapter 7: How are NetSuite Integrations done technically?

NetSuite Integration Options
External Applications to NetSuite

Below is a simple diagram showing the approach NetSuite uses to provide and consume business data along with supporting business application process calls, and apply business logic beyond NetSuite boundaries.

SuiteTalk

SuiteTalk is a pre-existing Web Service feature provided by NetSuite. It allows the outside world to securely access NetSuite data and execute some business processes using SOAP (XML) architecture. NetSuite also provides a PHP ToolKit that behaves as a wrapper over SuiteTalk for client applications written in PHP.

RESTlets

RESTlets are relatively recent addition to NetSuite integration options. It is a type of NetSuite script (similar to JavaScript) that facilitates other applications (both external and internal to NetSuite) to communicate with NetSuite using RESTful design. A major difference between RESTlets and SuiteTalk is that SuiteTalk API comes out of the box with NetSuite while RESTlets need to be explicitly written/programmed as per integration requirements. The custom development in RESTlets provide more control, flexibility and possibilities over integration logic compared to SuiteTalk.

Suitelets

Suitelets are the most basic form of SuiteScript that allow developers to write bare HTTP Request/Response cycle logic in NetSuite. Originally intended to create User Interfaces that are hosted within the NetSuite framework, Suitelets can be made available without login to behave as an integration option. If you need complete flexibility in developing an application extension into NetSuite, this may be an option.

NetSuite to External Applications
User Event Scripts

NetSuite provides User Event Scripts to write code against important events such a Fulfilment record being saved. This is an ideal placeholder to place integration code that notifies other systems about events taking place inside NetSuite.

Scheduled Scripts

Sometimes the nature of operations in a business does not require certain integration points to be real-time and a period sync would suffice. NetSuite offers Scheduled Scripts for such cases. These can be scheduled to run in a variety of ways and can execute at regular intervals to communicate with external systems.

Which should you choose?

Below is a decision tree diagram guiding you with preliminary choices. Each integration should be looked at both autonomously and jointly. In many cases, well thought out integrations can be partially or fully reused by multiple applications/systems.

Choose SuiteTalk if:

Your technical team is not familiar with NetSuite Development platform.

Choose Suitelets if:

For more complex, broad, or custom solutions, we suggest using Suitelets to specifically match and meet your business and data requirements.

Choose RESTlets for all other cases

Apart from these options to write integrations with NetSuite from scratch, there are pre-existing solutions that can help you. These solutions are either in the form of libraries/wrappers over the above methods, or products that allow certain features for two way sync. It is worth exploring these options too before choosing a certain your preferred method to integrate with NetSuite.

Considerations when measuring business systems integration TCO

You may be a situation where you, and/or your team, need to provide the business case and TCO (total cost of ownership) for an integration project. Let’s discuss some of the key factors considered prior to deciding to move forward.

Note: There can be several 2nd level categories that can be investigated when measuring TCO. Below are a few common, and often missed considerations when calculating direct and indirect costs.

Impact of not doing an integration project

This is a great leading topic in your TCO conversation. If nothing changes with your business systems and they remain at steady state, can and will your business continue in an efficient and profitable manor? If the answer is anything less than 100% yes, you are a candidate for systems integration.

Lifespan

Are you integrating something new, such as an eCommerce website? If so, let’s take a most common example of
Calc: average labor rate x iterations of task per week x hours to complete task (fraction of an hour) = task cost per week
Example: take the sales from a new eCommerce website and move them into NetSuite
Assumptions: 250 orders/week, $15 hourly rate (scale as you see fit)

Tasks
  1. Validate existing or new customer 15 x 250 x .15 = $562.50/week
  2. Validate product is in stock 15 x 250 x .05 = $187.50/week
  3. Validate tax rules applied correctly/resolve 15 x 250 x .10 = $375.00/week
  4. Validate shipping is available to purchasing area 15 x 250 x .05 = $187.50/week
  5. Enter into NetSuite 15 x 250 x .15 = $562.50/week

This is a simple scenario by design. The deeper you look, the more factors you will find to support your business case. Often a business will roll several tasks under ‘just re-enter the order into NetSuite manually’ and not take the effort to disseminate the several underlying subtasks. The above example is not the definitive list for eCom sales. Even so, labor costs are collectively ~$2000 each week, and that does not take into consideration the potential of errors in data entry. This is only one process from one business system. Imagine recovering that labor time if all five tasks were 100% reliably automated. Costs for building integrations will vary. In many cases the investment towards automation through integration can be recovered with a fraction of ongoing labor costs.

New license, or removal of licensing with this project

Are you adding a newly hosted solution to your technology stack? If so don’t forget to include the basics:
Monthly cost of hosting (if applicable)
Monthly, or fixed, licensing costs
Maintenance of business solution (incremental upgrades, support, etc.)

Individual labor, activity, and resource (person or otherwise) costs
Change management and adjustments to current processes

With any change to business process, you may need to retrain staff:
Maintain integration and their configurations
Different duties due to automation of current workload
Integrations will often speed up tasks that included manual labor. Expect change to availability of data required to operate the business.

In house, partner lead, or outsourced

This is a major consideration for some companies. Their staff may or may not be up to the task of designing, building, and maintaining integrations. You should find a NetSuite integration partner that understands your business and can value add where needed. We invite you to review the eSided Playbook which walks you through in plain English how we will support your business every step of the way, making you successful in your integrations journey.

Fit for purpose, or plan for the future

Whether you decide to bring the work in-house, or source it to a trusted partner, you need to decide the investment in integration. Many companies make the investment to remove manual effort when and where possible. It allows that company to run lean on labor and greatly reduces the training costs of process. Other companies create specific point to point (P2P) integrations that remove specific troublesome processes. The great news is this is not one of the decisions you need to make up front. We encourage you to get some integration wins under your belt, then continue based on business priority.

Cost of an integration vs. labor costs

We touched on this in our example above in #2. Labor costs are usually a fixed cost. But as your business grows and complexities of current system upgrades having new features, new players in the marketplace, or desire for competitive advantage, it’s suggested you take the gains were you can find them. Well designed integrations with NetSuite will work for months and years to come.

These few paragraphs should guide the reader of how to measure TCO of an integration. It’s not just simply the cost of building the integration. It’s the lowered cost of maintenance, the potential for having fewer dev resources writing communication code, the potential for API reuse, maintenance of API code, and the flexibility of not needing to buy an all-in-one system. All factors need to be considered. If there is a possibility of creating an TCO calculator here, I would do it.

Chapter 8: Are you a Candidate?

Here are some common business cases that may be part of your current business challenges that may be solved with proper integration strategies.

  • Are some of your business applications (no matter how large or small) a mix of on premise and hosted in the cloud?
  • Are you migrating information between two systems, but need both of those systems to remain in place, even for just a while?
  • When moving data between two systems, do you need to manipulate or modify the data in some way prior to importing into the downstream system?

Continued discussion of API integrations usually provide the opportunity for removing technical debt, both data and application level.

Chapter 9: Upcoming Changes and NetSuite Integration Resources

Upcoming Changes

Starting with Release 2019.2, there will be another option for NetSuite Integration – REST Integrations (Beta Phase). REST Web Services will be a new lightweight API added to SuiteTalk along with the original SOAP Web Services. NetSuite already had RESTlets for creating REST-based interfaces but that needed writing scripts using SuiteScript. Unlike RESTlets, REST Webservices will be out of the box.

NetSuite Developer Resources

REST: The Modern Integration Platform You’ve Been Waiting For

SuiteCloud Platform Introduction

Introduction to RESTlets

SuiteScript 2.0 API Reference

SuiteCloud IDE for Eclipse Guide

SuiteCloud Development Framework

NetSuite Application Performance Management Guide

NetSuite Schema Browser

Are you considering integrating NetSuite with another application?

We have extensive experience in NetSuite Development and Integration projects. Please click on the link below to start the conversation. We will do the rest.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top