Here is a brief writeup of how the graphiteConnect integration works with NetSuite.
graphiteConnect / NetSuite synchronization
Data is synchronized between graphiteConnect and NetSuite via a NetSuite bundle. The bundle must be installed and configured on your NetSuite instance by your NetSuite administrator, after which graphiteConnect data on companies you are connected to will be synchronized into your NetSuite instance.
The bundle is configurable to allow each customer to control how data is synchronized between graphiteConnect and NetSuite. The bundle and supports NetSuite customizations. Additionally, since the NetSuite bundle is developed internally, the bundle can be updated to support new record types or data if required.
Any data stored in graphiteConnect can be synchronized into several different NetSuite record types. Generally, most company data is stored in the vendor record but other data may be synchronized to additional record types associated with the company's vendor record. Additional record types supported are:
- Contact records: Primarily hold email, name and phone numbers for sales, payment, ordering, and other contacts. All are associated back with the parent vendor record for easy reference.
- Address sub-records on the vendor record: These hold address data - the bundle can be configured to synchronize payment, ordering and/or all addresses associated with the company. Examples of additional addresses might include headquarters, sales locations, warehouses, etc.
- Banking records: Banking information is stored in Electronic Bank Payment (EBP) records. In order to synchronize banking information, graphiteConnect requires that the EBP bundle be installed so the appropriate custom record types are available in the NetSuite instance.
- US tax forms (files): W8s and W9s can be transferred to the NetSuite file cabinet and then associated with the appropriate vendor record.
Data for each record type is configured through data mapping records created in NetSuite. By using records to control synchronization in the bundle, administrators can quickly add new data to synchronize from graphiteConnect, and control which data is synchronized from graphiteConnect into NetSuite.
Controlling which connections synchronize in graphiteConnect
Data specific to your NetSuite implementation (categories, subsidiaries, payment terms, etc.) is displayed in graphiteConnect as a section for each connected company. Using this data, graphiteConnect users can provide NetSuite specific data as well as control if the company is synchronized. Users can also specify that graphiteConnect data should be synchronized into existing records by providing a NetSuite vendor record ID; or, if the record ID is left blank and synchronization is turned on, a new vendor record (and associated records) will be created.
As part of the graphiteConnect/Netsuite integration, some effort will be required to define the data mapping between graphiteConnect and your NetSuite instance. Depending on the number of data points you want to synchronize, and the complexity of your data, this can usually be finished in a week.
For each data point, a record is created that specifies which NetSuite record type and field the data should go into, which graphiteConnect question contains the data, and, if necessary, how to translate the data from a graphiteConnect format into a supported NetSuite format (e.g. "USD" in graphiteConnect into the internal ID for "USD" in your NetSuite instance).
Generally, this mapping development is done against a test instance of graphiteConnect against a sandbox NetSuite instance. For the quickest possible development time, granting the graphiteConnect team sandbox access has dramatically cut down implementation time with other customers.
Synchronization deployment and scheduling
The core of the graphiteConnect bundle is a scheduled script that loads the mapping records, and then makes REST API calls to graphiteConnect to fetch company data. Company data is fetched securely over HTTPS, and API access requires a secure graphiteConnect API token provided to your NetSuite administrator by the graphiteConnect operational team.
After installing the bundle, the NetSuite administrator will need to confirm the mapping record(s) are set properly, and create a master setting record which contains the graphiteConnect API key, URL, and other configuration options that control how data is synchronized.
After installation and configuration is set, a scheduled script deployment is created to run the synchronization on whatever schedule works for your organization. Most customers have the script run every 15 minutes.
General implementation schedule
The general approach has been to:
- Install the graphiteConnect bundle on sandbox.
- Develop mapping data.
- Test synchronization between sandbox and graphite test environment.
- Create a bundle on sandbox for production, which includes the "core" bundle plus all the mapping record(s) created on sandbox.
- Deploy the sandbox bundle on production and configure.
- Test production bundle.