Use Case: Build app-to-app integration with NetSuite REST Snaps

Overview

This use case demonstrates how you can seamlessly integrate the ERP and CRM applications, with their specific business needs and different data maintenance formats. The main focus is to overcome the challenges of these integrations.

Problem

In a real business case scenario, to synchronize the data between an ERP system (for example, NetSuite) and a CRM application (for example, Salesforce) can be a challenge because they might have different data structures and formats:

  • Both systems might vary in quality standards for handling duplicates, incomplete records, or conflicting information, which can complicate the integration process.
  • The integration of ERP and CRM systems can be resource-intensive, both in terms of time and budget.
  • The source that is the ERP system is subject to updates, patches, and changes. To ensure that the integration remains functional after updates requires ongoing maintenance.
  • ERP and CRM systems might have different workflows and business processes. To train the common users to align these processes to work together seamlessly can be a complex task.

Solution

Using the NetSuite REST Snap Pack, you can automate the process of reading the data from the NetSuite application and leverage the Salesforce Snap Pack to write the data in the destination, which is the Salesforce CRM application. This pipeline demonstrates how the synchronization can be done when the data is in different formats and structures.


NetSuite REST Use Case Pipeline

Download this pipeline.

Understanding the Solution

The NetSuite application fetches the most recently added or updated customer records in the past 24 hours, which are then seamlessly transferred to the Salesforce CRM application. This gathered information serves the crucial purpose of ensuring that customers' contact details remain current, meticulously tracking every interaction they engage in with your business, and effectively managing their accounts. You can schedule the pipeline execution every 24 hours to keep the CRM application updated. This task ensures that the integration remains streamlined after any transformations in the source.

  1. Configure the NetSuite REST SuiteQL Snap with this SuiteQL Query to retrieve information about active customers and their associated shipping addresses for the customers whose records have been updated or created in the past 24 hours.
    This query contains JOIN operation with WHERE clause.

    "SELECT Customer.id, Customer.phone, Customer.LastName, Customer.FirstName, Customer.altname, Customer.Email, EntityAddress.Addr1, EntityAddress.City, EntityAddress.State, EntityAddress.Country, EntityAddress.Zip FROM Customer JOIN EntityAddress ON Customer.DefaultShippingAddress = EntityAddress.nKey WHERE Customer.IsInactive = 'F' AND Customer.lastmodifieddate <= '" + Date.now().minusDays(1).toLocaleDateString({"format":"MM/dd/yyyy"})+"'"

  2. Configure the Pagination parameters as follows:
    • Pages with 0 to read all pages from the NetSuite Server.
    • Pages size with 1000 to retrieve 1000 records per page.

    NetSuite REST SuiteQL Snap Configuration

  3. Configure the Mapper Snap to retrieve the customer information such as address, ID, status, and so on.
    The ID of the customer in the NetSuite application is stored in the $ExternalFiledTest__c field in the Salesforce application as shown below:
    Mapper Snap Configuration

  4. Configure the Salesforce Upsert Snap to insert a new record if the $ExternalFiledTest__c does not exist for a particular customer and update the record if the customer record already exists.

    Salesforce Upsert Snap Configuration

    This step ensures that customers' contact details remain current and also helps in tracking every interaction and managing the customers' accounts.
To successfully reuse pipelines:
  1. Download and import the pipeline into SnapLogic.
  2. Configure Snap accounts as applicable.
  3. Provide pipeline parameters as applicable.