An integrator.io export queries or copies data from an application or system. You also have options for mapping and transforming the data as it is extracted from the source application. Within NetSuite integrations, several built-in features help you accomplish common tasks encountered when exporting records.
- Create an export
- Scheduled exports
- Near real-time exports
- NetSuite export video
To begin exporting data from NetSuite, choose one of the following options:
- Form the Tools & resources menu, select Exports. In the resulting Exports page, click + New export. For the application type, select NetSuite. Establish the connection to NetSuite and name the export.
– or –
- Form the Tools & resources menu, select Flow builder. For the Source application, select NetSuite. Select your Destination application, and then click Save & continue in the upper right. After establishing the connections, click Launch flow builder. Click the NetSuite source in Flow builder to Create...export.
There are two categories of Execution type available: scheduled and real-time. (These options are available only when initially creating the export flow. The Execution type is no longer exposed after you save the export.) Using a combination of scheduled and real-time exports in different flows is also very common. For example, you might enable a real-time export to send item pricing updates to your website and then use a nightly scheduled export to send inventory updates.
Scheduled exports run at specific intervals of time and group the data page by page.
In scheduled exports, the API Type becomes available, offering you the choice for the type of calls made to NetSuite:
- RESTlet – When you select the recommended RESTlet option, the Celigo RESTlet communicates with NetSuite, simplifying integration while providing NetSuite services such as SuiteScript hooks and data transformations.
- Web services – This NetSuite API is a good fit when you’ve purchased a NetSuite SuiteCloud Plus license and you also need to export very large amounts of data. The Web Services API is the only option available if you cannot install the integrator.io bundle in your NetSuite account.
Tip: To maximize the amount of data that can be exported from a single NetSuite license, consider a combination of both RESTlet and Web Services API exports.
When extracting data from NetSuite in a scheduled export, integrator.io queries saved searches. To set up a new saved search in NetSuite, complete the following steps:
- Log into the NetSuite account that you are exporting data from.
- From the Lists menu, select Searches > Saved searches > New.
- Enter a Search title with a name that is meaningful for the export.
- Click the Public checkbox to set the access to “public,” leave it blank to create a “private” search. (Public NetSuite searches allow you to select the search from a drop-down list in integrator.io. For private NetSuite searches, you must enter the search ID.)
- Add criteria based on the data you want to extract from NetSuite. For example, to create an auto-billing flow for sales orders, you would add criteria for Type: is Sales Order, Status: is Pending Billing, and so on.
- On the saved search Results tab, set Sort by to Internal ID.
- Then, in the Columns section, choose the fields that you need data from.
Tip: Adding a Custom label for the fields will make it easier for mapping on the import part of the flow. It is also simpler if you need to use formulas in the results.
When exporting data from NetSuite, integrator.io provides four options for the Export type.
- All – Export all data returned in the search each time the export is run
- Delta – Export all data with a date/time value for the selected field that is greater than the last time the data flow was run
- Once – Export any data that has not been exported already and will also automatically update records to mark them as exported
- Test – Export only one record by default; used for testing, to avoid syncing lots of data
Grouping is a feature that allows you to choose whether or not data exported from NetSuite should be returned together, according to the internal ID. If your NetSuite saved search is outputting multiple rows for each record, then check this box to tell integrator.io to group rows accordingly.
In certain cases, this default grouping may not be intended. Simply leave the box unchecked to turn off the default grouping (as well as the validation that required the NetSuite saved search to be sorted by internal ID).
Note: When Group rows is not checked, then all search rows will be exported as individual records. If any type of grouping is needed later, that can be implemented via a custom hook or in a wrapper using the integrator.io extension framework.
This field provides a sample, containing the first row of the NetSuite saved search results in JSON format.
The custom labels provided in the saved search results are the JSON properties/names, and they are paired with the data for the corresponding NetSuite field. The data is grouped depending on whether Group rows is set. When it is set, the data will be in the form of an array of JSON objects.
If Group rows is not set, the data will be single JSON objects.
Real-time exports run on individual records that meet your criteria.
When configuring a near real-time export to extract data from NetSuite, integrator.io allows you to specify the Record type, Execution context, Execution type, Sublists to include, and Field-specific qualification criteria.
- Record type – Select which NetSuite record type you want to export. You can choose any standard record type (customer, sales order, journal entry) or any custom record type that has been defined in your NetSuite account. The list of record types is dependent on the permissions associated with the connection provided for this export. Also, if you add any new custom record types to your NetSuite account, or if there are any changes to the permissions associated with the connection selected above, click the refresh icon to regenerate the list.
- Execution context – Specify the exact execution context values for which a record should be exported in real time. For example, it is very common for a real-time export to run only for User interface and Web store changes. These values represent end users manually submitting changes to NetSuite (like a user editing a customer record in the browser or a shopper submitting an order via the web store), and these manual data changes are normally small and also important to propagate quickly to other applications. For example, new web orders probably need to get sent to the shipping API asap. Execution context values like CSV import are risky to enable because 1) you will slow down your mass update due to the overhead of sending data to an external system one record at a time, and 2) you may inadvertently flood your integration with way too many individual records that don’t need to be synced right away. If periodic updating is sufficient, a scheduled data flow would be a better fit.
- Execution type – This is a required field to specify the exact execution type values for which a record should be exported in real-time. It is very common for a real-time export to include Create to export new records when they are first submitted to NetSuite, and then also to include both Edit and Inline edit to export records that have been changed. Some of the other values available in this field are more advanced; consult NetSuite help guides or contact NetSuite support for more info on different execution types. To provide at least one example for an advanced option, you might want to enable a real-time export on the Sales order record type in NetSuite, but you want the sales order to be exported only when company personnel click the Approve button for the order (or via a mass approval action). A possible use case for this export would be to route a simple message into a Slack or HipChat type application to broadcast via chat that an order needs approval.
- Sublists to include – In order to keep the time it takes to save a record in NetSuite lightning fast, the default behavior for a real-time export is to include only body level fields (like name, phone and email for a customer record). If you do need to export sublist data (like the addresses for a customer, the line items in a sales order, or basically any data displayed in the NetSuite UI as a list), then you must explicitly specify it in Sublists to include. Also, when including sublist data, keep in mind that each sublist typically requires an extra query to NetSuite to get the extra data. While individual queries run relatively fast, if you are exporting lots of different sublists it can slow down the time it takes so save a record in NetSuite. In other words, when you click Save for a record that has a real-time export deployed along with lots of different sublists, it might take a little longer for the save to complete due to the extra queries.
- Field-specific qualification criteria – Further refine which records you would like to export based on fields and their values. These criteria look at the record before it is exported and evaluate simple conditional expressions to filter the record – that is, to decide whether the record should be exported or discarded. For example, if you are exporting customer records, you can use this field to only export customers that belong to a specific subsidiary. Or, if you are exporting sales orders, you can use this field to export only those sales orders that exceed a certain amount. You can also perform more complex expressions using AND and OR operators. For example, you can use this field to export only items belonging to a specific vendor and only items that are displayed in your web store.
- Define qualification criteria – Click to open a dialog where you can visually select the Field-specific qualification criteria for the real-time export, similar to setting the criteria in a NetSuite saved search. You can choose from the available fields, operators, and values (if applicable). Add another criterion by clicking , or remove one by clicking .
When a real-time export from NetSuite is saved, integrator.io will create a deployment of the “Celigo Async Realtime Export Runner” for the NetSuite record type selected in the export’s configuration. NetSuite will then run this script during the “after submit” event while saving the record, thus invoking integrator.io to determine whether the export will run or not.
|0:20||Selecting a NetSuite connection|
|1:00||NetSuite real-time exports|
|4:20||NetSuite scheduled exports|
|6:00||Scheduled export types|