Sharing data between NetSuite & Salesforce
To successfully integrate data between Salesforce and NetSuite, there are four key areas to consider. If you do not have a technical background, you will need to enlist either a technical consultant or internal resource to help you. This technical individual will need to have database background and be able to understand how data is structured in both Salesforce and in NetSuite. If you are in a leadership or administrative role, the following strategic-level points are important for you to understand so that you can work with your technical resource to share data between solutions.
Key topics to explore:
- Salesforce Platform instance/Configuration
- What data are you trying to share? Data Models and Field Mapping
- Accounting/Fundraising Database Strategy and Integration Directionality
- Integration: automation or manual
Salesforce. Platform Instance/Configuration
The first step in considering NetSuite data integration is to know which “version” of Salesforce your organization uses. Salesforce is highly customizable platform. The Salesforce Foundation and other vendors have created a variety of “managed packages” that once installed in your Salesforce instance affect how data are stored. Understanding the effect of managed packages and customization is critical to NetSuite integration. To determine which version of Salesforce and which managed packages have been installed in your instance of Salesforce, navigate to the Setup menu, and click “View Installed Packages” from the left side navigation under “App Setup. There are multiple options:
- NonProfit Starter Pack with multiple versions from 1.0 to 3
- NGO Connect a new set of manage packages
- Convio Common Ground (now Blackbaud)
- Convio Luminate (now Blackbaud)
- Salesforce Enterprise (no purchased manage packages)
- Affinaquest
Additionally, it may be possible that your organization has decided to use “Person Accounts” – this is less likely but if this is the case, your organization will need additional assistance as integration with Person Accounts is generally challenging.
Data Models and Field Mapping
Data models refer to how information is stored in a database. To be able to share data between Salesforce and NetSuite, you must understand in Salesforce how the Accounts (sometimes used as Household), Contacts, and Opportunities (transactions) have been modeled. Based on the platform instance that you have determined from above, that is where to begin field and object mapping. Field mapping determines which data will be integrated between NetSuite and Salesforce.
A primary consideration in Salesforce is the Account-Contact-Opportunity model where your organization may be using the “Bucket” model for the Account which maps all Contacts to one Account, or it is set to the standard 1 to 1 Account to Contact Model.
In NetSuite, it is important for you to understand the four standard object types:
- Entity: people and organizations with whom you interact. For example: leads, prospects, donors, contacts, employees
- Transaction: represent a monetary exchange, for example a donation
- Item: goods and services you buy and sell; line items on sales and purchase order forms
- Custom: addresses unique needs of your business – you may have custom objects to store program or other data
You and your technical resource will need to determine which objects in Salesforce will map to which objects in NetSuite. If you are only integrating people and organizations (not any monetary transactions), your field mapping will be relatively straightforward. If you are integrating financial data (such as donations), your task will be more complex as the way in which transaction data is stored in NetSuite has a different logic based on how it maps transactions to organizations and individuals. Last, although most nonprofit organizations have not done this, if you use the products feature of Salesforce which allows you to map items to opportunities, you will need to consider a more complex field mapping endeavor.
Accounting/Fundraising Database Strategy and Integration Directionality
Do you use Salesforce as your fundraising and marketing database? If so, you are likely using the Campaign object of Salesforce with a third party email tool such as Vertical Response. You may also be capturing online donations through forms that map into Salesforce. Conversely you may plan to use NetSuite to sell items and manage inventory, in which case the transaction data is set up to be pushed directly into NetSuite. The use of Salesforce and NetSuite for business processes points to the WHY. WHY must be determined before HOW.
Key integration decisions address the issue of WHY you are using Salesforce and WHY you are using NetSuite leading to which solution is going to have the primary transaction detail for what reason. Generally speaking, Salesforce is used to manage fundraising and marketing efforts and NetSuite is used to account for and manage financial operations.
You will need to work with your technical resource to determine if you will be pushing data from Salesforce to NetSuite or NetSuite to Salesforce (uni-directional) or both (bi-directional). If you plan to integrate bi-directionality a challenging set of integration issues are introduced – how will you uniquely identify an existing contact? What happens when one contact has two email addresses or changes their address? How do you plan to keep data synchronized?
Since an integration between two solutions introduces complexity and potential data redundancy, it will be very important to bring in stakeholders from all internal teams such as IT, Development, Marketing, and Finance to determine the optimal way to share data.
Integration – Automation or Manual?
If you have relatively simple data to import, such as Contacts or transactions without multiple line items, it’s possible to import using a .csv file. However, even in this scenario, you will need to use what’s called a primary key structure (external Id) to share data between solutions. Say a contact named Joe Smith gave a donation of $50 on April 1, 2015. A primary key uniquely identifies a contact (Such as Joe Smith) with unique alphanumeric combination and his donation with another unique alphanumeric combination. When sharing data, each system must be able to recognize Joe Smith as that specific Joe Smith and the $50 transaction on 4/15/15 as unique to Joe Smith. This is accomplished through primary keys and external ids.
To successfully import .csv files you will need to determine how you will relate those primary keys in both systems (a custom field with the identical alphanumeric key), and the method by which you will be introducing data, i.e. which data source comes first – will you be exporting form Salesforce into NetSuite or vice-versa? You can find more information in SuiteAnswers and the NetSuite Help documentation by typing in “CSV Import” in the search field.
Automating an integration between NetSuite and Salesforce is possible through web services, and you can use integration solutions and partners to assist you with the automation. Check out partner details. A short list of integrators is below:
- Actian
- Boomi AtomSphere
- Cast Iron Systems
- Celigo
- Mulesoft
- Jitterbit
It goes without saying that before you choose an integration method, you must determine WHY you are storing data in what system, and directionality of data.
So remember...
- What data are you trying to share?
- What level of sharing are you seeking? Completely automatic - Daily batch -
- What level of investment makes sense?
Once this works, you could look at a SuiteVolunteer project to automate that process (we usually only offer scripting one quarter per year).
You can also hire a person to automate this once the import export method is working for you – it limits the costs and ensures your project will work.
Summary of Best practices
- Documentation is important however ownership and accountability is even more important. An internal resource or an external consultant to own the process.
- Understand the WHY before the HOW: Why do you use Salesforce and NetSuite?
- Level of investment: For most small organizations, uploading and downloading a csv file weekly might the most cost effective approach.
- Database skill sets: we can’t emphasis enough how important it is to have the right skill sets. If there is no database administrator within your organization and you can’t get external support, we do not recommend to attempt an automated integration.
Other related articles:
if you have any feedback on this document, please send an email to your account manager.