When data travels through your organization, you need to extract valuable insights from it as well as keep the data updated and available at all times. This way you can make better-informed business decisions at a faster pace. The NetSuite Salesforce Integration supports you in achieving the desired Data Management by connecting the NetSuite ERP with the Salesforce CRM.

This article will provide an overview of Salesforce and NetSuite along with their key features. It will further explain the step-by-step process of setting up the NetSuite Salesforce Integration. Read along to understand how you can implement this integration for your business and the benefits that it will add to your company!

Prerequisites

To set up the NetSuite Salesforce Integration, you must have the following:

  • A Salesforce account.
  • A NetSuite account.
  • Working understanding of Salesforce and NetSuite.

Introduction to NetSuite

NetSuite CRM is an easy-to-use Cloud-based software that offers Customer Management and ERP services. It provides you a real-time view of your customers and assists you in managing their entire lifecycle. NetSuite’s CRM system includes features such as Marketing Automation, Campaign Tracking, Customer Service Management, Order Management, Forecasting, and fully integrated E-commerce. 

NetSuite’s ERP system manages key functions related to finance, inventory, orders, and other major business aspects. It enables you to plan and track projects using its CRM features for both online and in-store products. All modules of NetSuite share a common central Database through which, information from the entire system is updated in real-time and is made accessible to authorized users across all business functions. 

Key Features of NetSuite

The NetSuite platforms offer the following unique features:

  • Forecasting: Sales Forecasts are essential to capitalize on opportunities, and NetSuite CRM provides accurate real-time data needed to forecast Sales. The full suite of forecasting tools includes a system of checks and balances that regulates Sales Forecasts and enables you to gain key insights into Sales opportunities and their potential impact on your overall goals. 
  • Targeted Emails: NetSuite CRM allows you to manage your Email Campaigns and the same system is a huge advantage. Moreover, you can create highly engaging campaigns with updated content and even target certain sections of your audience to maximize conversion rates. The Emails you send to your contacts, along with their interactions, are stored in that person’s registry in the NetSuite for future use.
  • Engaging Dashboards: Real-time Dashboards are a popular feature of NetSuite. Using them, your Customer Service, Sales, and Marketing Teams can identify key metrics such as the number of calls resolved, call volume, open opportunities, etc.
  • Reliable Updates: Since NetSuite uses Cloud software, it can be accessed and updated from anywhere. This implies that your data is always up to date. Dashboards can also be personalized for each employee so that they can choose to see their data.

Learn more about NetSuite.

Introduction to Salesforce

NetSuite Salesforce Integration: Salesforce Logo

Salesforce is popular for providing Customer Relationship Management (CRM) Software as a Service (SaaS). It offers various software solutions and a common platform for users to develop and deploy custom software. In this tool, several customers share common technology and they all run on the latest version of the Cloud. Moreover, it can transparently manage your Sales data and also allows you to collaborate with your Sales and Marketing Teams. Salesforce also provides automatic updates to applications or infrastructure. This allows your business to focus on innovation rather than managing technology.

Key Features of Salesforce

The following features make Salesforce a reliable and efficient tool:

  • Quick Setup: Salesforce can be fully set up in a few weeks, unlike many other CRMs on the market, which take an average of a year to build from scratch. 
  • Convenient: Salesforce uses an intuitive user interface and an engaging workflow. Therefore, employees do not need any prior training to use this tool. 
  • Personalization: Salesforce allows companies to change some of their features. Therefore, companies can customize this tool according to their needs. 
  • Invoice Planning: Salesforce provides enough information about your customers to your Sales Team to develop intuitive strategies for their prospects. It can also help you build customer loyalty and increase your success rate. 
  • Availability: Cloud technology allows Salesforce users to access their accounts from any remote location. In addition, Salesforce has a powerful mobile application that is popular with its users. 

Learn more about Salesforce CRM.

Steps to Set Up the NetSuite Salesforce Integration

In the NetSuite Salesforce Integration, you need to write separate Java Scripts for individual objects. The goal here is to create a customer record in NetSuite using Restlet corresponding to an existing account in Salesforce. The following steps can be used to automate the integration of the Salesforce and NetSuite Contact Field and Event Field:

Step 1: Generate and Add Restlet Scripts on the NetSuite platform

The NetSuite Salesforce Integration initiates by adding a JS script to NetSuite for creating new fields. The below code is required to create a new contact (as you must add a new script file for each new object that you want to synchronize between NetSuite and Salesforce).

// Create a standard NetSuite record
function createRecord(datain)
{
var err = new Object();
// Validate if mandatory record type is set in the request
if (!datain.recordtype)
{
err.status = “failed”;
err.message= “missing recordtype”;
return err;
}
var record = nlapiCreateRecord(datain.recordtype);

for (var fieldname in datain)
{
if (datain.hasOwnProperty(fieldname))
{
if (fieldname != ‘recordtype’ && fieldname != ‘id’)
{
var value = datain[fieldname];
if (value && typeof value != ‘object’) // ignore other type of parameters
{
record.setFieldValue(fieldname, value);
}
}
}
}
nlapiLogExecution(‘DEBUG’,’zip=’+datain.zip);
record.selectNewLineItem(‘addressbook’);
record.setCurrentLineItemValue(‘addressbook’,’city’, datain.city);
record.setCurrentLineItemValue(‘addressbook’,’zip’, datain.zip);
record.setCurrentLineItemValue(‘addressbook’, ‘country’, ‘US’);
record.setCurrentLineItemValue(‘addressbook’,’label’,’billing address’);
record.commitLineItem(‘addressbook’);

record.selectNewLineItem(‘contact’);
record.setCurrentLineItemValue(‘contact’,’contactrole’,’-10′);
record.setCurrentLineItemValue(‘contact’, ‘firstname’, datain.firstname);
record.commitLineItem(‘contact’);

var recordId = nlapiSubmitRecord(record);
nlapiLogExecution(‘DEBUG’,’id=’+recordId);

var nlobj = nlapiLoadRecord(datain.recordtype,recordId);
return nlobj;
}

Step 2: Authenticate NetSuite Account in Salesforce

Any kind of data transfer requires authentication. The below code shows a sample script required to authenticate the NetSuite account for Salesforce. In most cases of NetSuite Salesforce Integration, it is preferred to perform the authentication calls for NetSuite credentials and use Salesforce to retrieve data from NetSuite or send the data to NetSuite. However, vice-versa is also possible.

public static void createNSCustomerRecord(account acc){
HttpRequest req = new HttpRequest();
HttpResponse res = new HttpResponse();
String endpoint = currNetSuiteSettings.NSEndpointCreateCustomer__c;
req.setEndpoint(endpoint);
string custId;
//Set Method and Endpoint and Body
req.setMethod(‘POST’);
req.setTimeout(119990);
Http http = new Http();
String responseBody;
req.setHeader(‘Content-Type’,’application/json’);

string NetSuiteProductionAccount = currNetSuiteSettings.NetSuiteProductionAccount__c;
string NetSuiteProductionUserName = currNetSuiteSettings.NetSuiteProductionUserName__c;
string NetSuiteProductionPassword = currNetSuiteSettings.NetSuiteProductionPassword__c;
String authorizationheader = ‘NLAuth nlauth_account=’+NetSuiteProductionAccount+’,
nlauth_email=’+NetSuiteProductionUserName+’,nlauth_signature=’;
nlauth_email= nlauth_email+NetSuiteProductionPassword;

//Construct Authorization and Content header
req.setHeader(‘Authorization’, authorizationHeader);

string recordType = ‘customer’;

string accountId = ”;
accountId = acc.Id;
system.debug(‘accountId===>’+accountId);
//you need the minimum field pattern for whatever entity you are posting, refer to their API guide
req.setBody
(‘{“recordtype”:”‘+recordType+'”,”entityid”:”‘+acc.name+'”,”accountId”:”‘+accountId+'”);
system.debug(‘setBody’+req);

try {
res = http.send(req);
responseBody = res.getBody();
system.debug(‘responseBody’+responseBody
JSONParser parser = JSON.createParser(responseBody );
while (parser.nextToken() != null) {
System.debug(‘Current token: ‘ + parser.getCurrentToken());
// Advance to the next value.
parser.nextValue();
// Get the field name for the current value.
String fieldName = parser.getCurrentName();
if(fieldName == ‘id’)
{
// Get the textual representation of the value.
System.debug(‘fieldName ==id’);
custId = parser.getText();
system.debug(‘custId====>’+custId);
break;
}
}

try {
List <account> acc1 = [select NetSuiteCustomerId__c from account where id= :acc.id];

if(acc1.isEmpty() == false) {
acc1[0].NetSuiteCustomerId__c = custId;
update acc1;
}
} catch(System.CalloutException e) {
System.debug(‘Callout error: ‘+ e);
}

} catch(System.CalloutException e) {System.debug(res.toString());}

}

Note: The code “endPoint” at the beginning of the code given above takes advantage of the NetSuite URL slug that is associated with the particular object that you wish to retrieve. This signifies the fact that in the NetSuite Salesforce Integration, for different objects this code will be different.

Step 3: Run Batches of Classes between Salesforce and NetSuite

The whole sync process can be done in real-time, but the best option is to run it in batches. The following code can be used to create and run these batches.

global class NetSuiteBatchApexWebCalloutClass Implements Database.Batchable<account>, Database.AllowsCallouts{global List<account> accountsToTarget;
private NetSuiteBatchApexWebCalloutClass(){}
Global NetSuiteBatchApexWebCalloutClass(Set<String> accRecIds)
{
accountsToTarget = [SELECT Id, Name,owner.Name,NetSuiteCustomerId__c FROM Account where Id IN : accRecIds];
}global Iterable<account> start(database.batchablecontext BC){
return (accountsToTarget);
}
global void execute(Database.BatchableContext BC, List<account> scope){
for(Account a : scope){
NetSuiteWebserviceCallout.createNSCustomerRecord(a);
}
}
global void finish(Database.BatchableContext info){ }//global void finish loop
}

That’s it! The NetSuite Salesforce Integration is ready.

Learn more about NetSuite to Redshift integration.

Benefits of NetSuite Salesforce Integration

The NetSuite Salesforce Integration is so popular in today’s market due to the following benefits that it adds to your business:

1 ) Reliable Data Updation

Your business proceedings require and generate vast amounts of data daily. Every piece of this data should be monitored and updated immediately for better accessibility and better decision-making. Now, the traditional data entry operations prove inefficient in this Data Updation task. Moreover, the manual data entry process is error-prone and can hamper the progress of all business operations. Companies, thus prefer the NetSuite Salesforce Integration to keep their data up to date. This method is reliable as it automates the Data Integration and Data Updation process and avoids any errors. The NetSuite Salesforce Integration combines the power of ERP with CRM and thus streamlines your Data Management process.

2 ) Enhanced Customer Experience

The main objective of your Sales and Marketing Teams is to generate Leads and retain customers. No customer wants to wait long on the phone to get the information they ask for. If so, you will have to deal with customer resentment. With the simplified and automated process of NetSuite Salesforce Integration, your business can provide an enhanced customer experience. 

NetSuite Salesforce Integration minimizes the time required by the Customer Service Teams to acknowledge clients’ issues. Moreover, If a query from a customer arises, the Support Team does not need to search through multiple systems for information. The NetSuite Salesforce Integration ensures that required data is at their disposal thus making these Teams more effective.

3 ) Alignment of Sales and Finance Teams

For businesses to thrive, the alignment of your Sales and Finance Teams is essential. For example, the Sales Team may want to access invoice status when making an informed decision about opportunities or accounts. Likewise, the finance team may want to reduce the number of requests made by the Sales Team regarding updates on Sales invoices and orders. If this data is readily available in Salesforce, the Sales Team can instantly save time accessing the data, without having to log in to NetSuite or ask the Finance team. 

The NetSuite Salesforce Integration allows data to flow back and forth, between these 2 teams. The modifications in Salesforce will be reflected in the NetSuite ERP and vice versa. Moreover, this reduces the amount of manual work required when it comes to updating information. Thus the NetSuite Salesforce Integration provides a common platform for your Sales and Finance Teams to collaborate.

4 ) Faster and Accurate Reports Generation

Traditional methods used by the Finance Teams require exporting data from various sources using Excel Spreadsheets for Forecasting and Data Tracking. This approach is error-prone and takes up a lot of time. The NetSuite Salesforce Integration improves your productivity by automating the data collection task and ultimately producing useful financial. Moreover, the powerful native reporting capability of Salesforce, allows you to create data reports and dashboards and deliver valuable insights in real-time. 

Conclusion

The article introduced Salesforce and NetSuite applications and described their key features. It also provided a step-by-step guide using which you can set up your NetSuite Salesforce Integration. Furthermore, the article discussed the numerous benefits of integrating your NetSuite and Salesforce accounts. 

Now, managing your data and providing great customer service will no longer be a time-consuming and expensive task. The NetSuite Salesforce Integration automates most of these tasks and enhances your customer’s journey, making them loyal to you in the long run.

Share your understanding of Integration in the comments below!

Abhinav Chola
Research Analyst, Hevo Data

Abhinav Chola, a data science enthusiast, is dedicated to empowering data practitioners. After completing his Master’s degree in Computer Science from NITJ, he joined Hevo as a Research Analyst and works towards solving real-world challenges in data integration and infrastructure. His research skills and ability to explain complex technical concepts allow him to analyze complex data sets, identify trends, and translate his insights into clear and engaging articles.

No Code Data Pipeline For Your Data Warehouse