GURUS NetSuite Data Exporter User Guide & FAQ

Get in Touch With a NetSuite Professional

The GURUS NetSuite Data Exporter is a Google Sheet Add-on, created by GURUS Solutions, that helps companies automate the process of exporting NetSuite Saved Searches to Google Sheets. 

The Data Exporter allows you to connect to your NetSuite account with the provided credentials, run specified Saved Searches, and export the results into Google Sheets. It also supports additional filters on existing Saved Searches to further refine the results.

How do I Install the GURUS NetSuite Data Exporter?

 

You can start your free trial of the GURUS NetSuite Data exporter by downloading the tool from the Google Add-Ons store and applying for your activation through our website.

To download the add-on through your Google sheets:

  • Open a Google sheet and head to the Add-ons menu.
  • Click "Get Add-on" and search for NetSuite Data Exporter and install it from there.

To activate the tool once you’ve downloaded the add-on, click the link here and fill out the form. In order to begin using the Data Exporter, you need it to be activated in your NetSuite, or the tool will not work. Therefore, please wait for confirmation from a member of the GURUS Solutions team stating that your bundle has been activated.

If your bundle has not been activated, you’ll likely get the following error message:

Once you’ve filled out the form, and a GURUS employee has confirmed that your Data Exporter license has been activated. To help you get your Data Exporter up and running as fast as possible, our team put together a quick Installation Guide to help you install the tool for yourself.

Table of Acronyms

Acronyms Definition
TBA Token Based Authentication

 

Glossary

Terms Definition
Token Based Authentication Authentication method using generated tokens based on oAuth 1.0 used to connect to NetSuite.
Google Sheet Add-on Application installed inside a Google Sheet to offer additional features to the Sheet.
Google Workspace Marketplace The marketplace where we can find and install add-ons for Google Sheet and other Google products.
Google Workspace Google productivity environment for companies. Typically includes Gmail, Google Drive, Google Docs and Sheets, etc.
SuiteBundle Application installed inside a NetSuite Instance to provide extra features.
SuiteApp SuiteBundle found on the NetSuite SuiteApp marketplace.
Sandbox Testing environment provided by NetSuite to execute business processes without impacting the production environment.

 

Instructions for Using the GURUS NetSuite Data Exporter

Looking to get started with the GURUS NetSuite Data Exporter? Let’s go over some of the basics.

What’s New

In the December 2023 release of the Data Exporter, we added the following elements:

We now support the embedding of Looker Studio reports in NetSuite! The same way you would include the GoogleSheets, you can now have this with Looker Studio!

We added support for what was previously called a “standalone search”, or searches that refer to NetSuite data that are not standard records. A new field is added to the settings tab to allow selection of the new types.

Here is the list of the newly supported search types:

  • DeletedRecord
  • EndToEndTime
  • ExpenseAmortPlanAndSchedule
  • RevRecPlanAndSchedule
  • GlLinesAuditLog
  • BillingAccountBillCycle
  • BillingAccountBillRequest
  • BinItemBalance
  • PaymentEvent
  • Permission
  • GatewayNotification
  • TimeApproval
  • RecentRecord
  • Role
  • SavedSearch
  • ShoppingCart
  • SubscriptionRenewalHistory
  • SuiteScriptDetail
  • SupplyChainSnapshotDetails
  • SystemNote
  • TaxDetail
  • TimesheetApproval
  • Uber
  • ResAllocationTimeOffConflict
  • ComSearchOneWaySyn
  • ComSearchGroupSyn
  • Installment
  • InventoryBalance
  • InventoryNumberBin
  • InventoryNumberItem
  • InventoryStatusLocation
  • InvtNumberItemBalance
  • ItemBinNumber

How Do I Retrieve Saved Searches?

*If you already see the NetSuite Data Exporter sidebar and Settings tab in your sheet, skip to Step 3. If you do not see the “Search Type” column, restart the extension and follow steps starting with Step 1.*

  • 1. Open a Google sheet that you want to have the search results saved. Navigate to Add-ons > NetSuite Data Exporter > Request Search Results


     
  • 2. The NetSuite Data Exporter sidebar appears to the right and a pop-up message displays to request your confirmation to add the Settings tab. Click Yes.


     
  • 3. The Setting tab is now created. Enter details for the searches that you want to retrieve.


     
    • 3.1. Search Type: Mandatory. Most standard records such as customers, vendors, transactions, accounts, etc. do not need to be specified and as such, you may use the option “None/Other”. However, if the search you wish to extract is part of a sublist or sub record such as GL Line Audit Logs,deleted records, inventory balance, etc , there is a high chance you will need to specify the type. In those cases, choose one of the choices of Search Type which will be compatible with your choice of the Search Id. If you do not find the search type in the list, you may select “None/Other”. The list contains the Search Type for which NetSuite requires the type to be specified in order for them to be extracted.

    • 3.2. Search Id: Mandatory. In NetSuite, you may obtain the Search Id of your saved search from its URL



      Or from the Saved Searches list view, once you have enabled the preference to Show Internal IDs



      You can also use the textual search id such as “customsearch_gs_bin_item_balance” or “customsearch_1234”

    • 3.3. Tab: Mandatory. Enter the name of the tab to place the search results in. If the specified tab does not exist, a new tab will be created. If the specified tab exists:

      • On scheduled mode: it will overwrite the data in that tab
      • On manual mode: it will ask you if you wish to overwrite the data, append or cancel the extract
       
    • 3.4. Skip: optional. Select Yes to skip this search from the next request. (ex: If you want to pull your list of customers once a month, but update your sales data weekly). Select No or leave it empty to include this search in the next request.
    • 3.4. Additional Filters: optional.
       
  • 4. In the NetSuite Data Exporter sidebar, enter required authentication credentials for your NetSuite instance. Enter your credentials created in section 5 of the Installation Guide and Account Number. If you are linking to a sandbox account, make sure to use “NSAccount_SB#” where # is the number of your sandbox. The URL of your NetSuite sandbox account uses a “-” and lowercase “sb” but our tool requires an “_” and capital letters for “SB”.

  • 5. Click Request
  • 6. Done! Search results are now exported to the specified tabs and a success message displays. If you entered an existing tab for your search, you will be prompted to confirm that the tab will be overwritten before the results are exported.

 

How Do I Retrieve Saved Searches? (Legacy)

*If you already see the NetSuite Data Exporter sidebar and Settings tab in your sheet, skip to Step 3.*

  • 1. Open a Google sheet that you want to have the search results saved. Navigate to Add-ons > NetSuite Data Exporter > Request Search Results


     
  • 2. The NetSuite Data Exporter sidebar appears to the right and a pop-up message displays to request your confirmation to add the Settings tab. Click Yes.


     
  • 3. The Settings tab is now created. Enter details for the searches that you want to retrieve.


     
    • 3.1. Search Id: mandatory. In NetSuite, you may obtain the Search Id of your saved search from its URL



      Or from the Saved Searches list view, once you have enabled the preference to Show Internal IDs

    • 3.2. Tab: mandatory. Enter the name of the tab to place the search results in. If the specified tab does not exist, a new tab will be created. If the specified tab exists, it will be overwritten by the search results.
    • 3.3. Skip: optional. Select Yes to skip this search from the next request. (ex: If you want to pull your list of customers once a month, but update your sales data weekly). Select No or leave it empty to include this search in the next request.
    • 3.4. Additional Filters: optional. Multiple filters may be applied as long as you enter the filters on new rows before the next saved search.

      Note: Filters only work without Filter Expressions, so will always have a "and" in between. Having filter expressions in the saved search itself can also cause issues when using additional filters within the Data Exporter.
      Note 2: If you are using date filters, the date format must follow the date format of the preferences of the user tied to the token.

      Example:
  • 4. In the NetSuite Data Exporter sidebar, enter required authentication credentials for your NetSuite instance. Enter your credentials created in section 5 of the Installation Guide and Account Number. If you are linking to a sandbox account, make sure to use “NSAccount_SB#” where # is the number of your sandbox. The URL of your NetSuite sandbox account uses a “-” and lowercase “sb” but our tool requires an “_” and capital letters for “SB”.

  • 5. Click Request
  • 6. Done! Search results are now exported to the specified tabs and a success message displays. If you entered an existing tab for your search, you will be prompted to confirm that the tab will be overwritten before the results are exported.

 

How Do I Schedule Searches?

Note: This feature is not available in the Netsuite Data Exporter Free Trial version. To learn more about this service, contact us at sales@gurussolutions.com

1. Make sure you check the “Remember me” box as the scheduler functionality will need your credentials to run asynchronously.

  • Note: This feature is only available with Token Based Authentication.

2. In the Scheduling section, select a frequency type from the dropdown button. You can choose between “Hours”, “Days”, “Weeks" or "Months".

3. You can then select the number of times per frequency type the request will execute. Ex: If you select Hour in the frequency type, and type “4” in the "Occurs every" field, the request will execute every 4 hours.

  • Note: Values for hours can be anything between 1 and 23 hours. 

4. Select the start date for the first execution.

  • Note: Only the hour will be taken into account. The minutes will be ignored. 

5. Click the “Set Schedule” button to confirm the schedule. 

6. You can update the schedule by changing the values and clicking “Schedule” again.

7. You can cancel the scheduled execution by clicking “Clear Schedule”.

8. You can consult the Request Logs tab to see the status of the requests.


Note: In scheduled mode, every request will override the content of the targeted Tab. Appending the results to the end of the sheet is currently not supported.

Important Note Regarding Concurrency with NetSuite:

  • A concurrency error may occur when multiple Google Sheets are scheduled within the same time
  • To avoid concurrency errors, schedule the searches to run at different times so there are no conflicts ie) one Google sheet may be scheduled at 2:10PM, and the second would be scheduled at 2:40PM 
  • The Concurrency is a limitation imposed by NetSuite

 

Limitations

Outside of the limitations of the NetSuite Data Exporter application, there are additional limits imposed by the Google Workplace Quotas and Limitations as well as the NetSuite Governance and Concurrency. Here are some data points to help you calculate the limits.

GURUS NetSuite Data Exporter Limitations

  • The Data Exporter only supports extracting Saved Searches.
    • It does not support extracting SuiteAnalytics Workbooks or SuiteQL Queries.
    • It does not support extracting Reports.
  • The Data Exporter does not support saved searches that "Use Expressions". "OR" operations are not supported
    • All custom filters added into the Settings sheet will be linked using an "AND" operation.
  • The Data Exporter only supports records that can be read through SuiteScript. A saved search based on a record that is not supported will return an error in the Data Exporter.
    • Refer to SuiteAnswers article 10242 for the list of supported records.
    • Custom Records are supported as long as the role associated with the Access Token has access to them.
  • The Free version of the Data Exporter does not support the Scheduling features
  • The Free version of the Data Exporter only allows to query two (2) saved searches per requests
  • The Free version of the Data Exporter only allows to perform ten (10) queries per day

Google Workplace Limitations

The Data Exporter is limited by the following limitations as documented by Google. They are different based on which Edition your company has. To know which Edition you have, please contact your Google Workplace Administrator.

https://developers.google.com/apps-script/guides/services/quotas

Here are the Features used by the Data Exporter. 

  • Triggers total runtime: This limitations affects the total processing time of the Data Exporter for the day
  • URL Fetch calls: Each request by the Data Exporter will perform 2 URL Fetch calls
  • Script runtime: This affects the processing time of the Data Exporter for each request. If you try to download 50 saved searches and each saved search takes 30 seconds to download, this will take approximately 25 minutes to run. If you have Workspace Basic, you will be limited to 6 minutes of execution. You will get an error message after 6 minutes.
  • Simultaneous executions: If multiple users use the Data Exporter at the same time.
  • URL Fetch response size: This is the maximum size of the response received by NetSuite. If the response size exceeds this limit, you will get an error message.
  • Properties read/write: This is the maximum number of properties that can be set or read everyday. 
  • Properties are used to save the credentials and are updated and read at each request.

Also not documented here, but there is a connection timeout that will occur if the request takes more than 60 seconds. 
This applies for each Saved Search individually. If you have 3 saved searches, and they each take 30 seconds, they will successfully execute.

There is also a limit in the total number of cells you can have in a Google Sheet. According to this support post, you can have a maximum of 5 millions cells and a maximum of 18 278 columns. This includes inside multiple tabs. Once this limit is reached, you will receive an error message:
https://support.google.com/drive/answer/37603

NetSuite Governance and Limitations

The Data Exporter is also limited to the governance imposed by SuiteScripts as well as the maximum number of concurrent connections allowed for RESTLets.

All NetSuite instances are limited to the number of concurrent connections external applications can perform. This depends on your NetSuite Tier and the number of SuiteCloud Plus Licenses. If no connection is available for the Data Exporter, you will receive an error message. Here is the SuiteAnswers Article explaining the concurrency limits:
https://netsuite.custhelp.com/app/answers/detail/a_id/65791

The Data Exporter relies on a RESTLet installed on your instance to perform the search. RESTLets have a maximum governance of 5000 units and each batch of 1000 lines of results of the search will cost 10 units. So there is a hard limit of 500 000 lines of results per saved search. 

Take note though that a search with 500 000 lines of results will most likely time out on the Google Side before the results can be returned. 

RESTLets also have a data size limit of 10 MB, so the total size of each search must be under 10 MBs, including the content of all the fields from the search.

 

The NetSuite Data Exporter uses SuiteCloud technology to execute the saved searches within NetSuite and the data is then downloaded in your Google Sheet. The following section will describe a few troubleshooting tips that will help you find potential issues if the Data Exporter returns you errors while trying to synchronize your data. Refer to our FAQ section to know more about some common error messages.

Roles and Permissions

You will be using an Access Token to connect to NetSuite from the NetSuite Data Exporter. This access token will be associated to:

  • A specific NetSuite User
  • A specific NetSuite Role

The NetSuite role will define what records and functions of NetSuite the Data Exporter will be allowed to use. To make sure your role has enough permissions to run your saved search, we recommend that you ask your NetSuite Administrator to give to your user the same role as the Access Token. Then, using the drop down menu at the very top right of your NetSuite screen, where your name is, select the role provided for the Data Exporter and try viewing and modifying the saved search you want to pull using the Data Exporter.

If the saved search runs perfectly in the user interface of NetSuite, while using the same role as the Data Exporter, and provides you with all the columns and all the data that you are looking for, chances are it will be working as well in the Data Exporter.

If it does NOT work within the NetSuite's User Interface, it will also NOT work in the Data Exporter. If this is the case, we suggest you work with your NetSuite Administrator to adjust the role or the saved search until it works within the NetSuite user interface.

It could happen that you can View the search in the User Interface but you get a permission error when editing it or trying to edit a copy of it. This indicates that a custom field referred by the saved search is set for "Search/Reporting" to "Run" and not "Edit". The Data Exporter needs the Edit permission to work.

Also make sure your saved search is shared with the role or the user attached with the Access Token (from the Audience tab).

Refer to section 5 of the Installation Guide to learn more on how to configure Access Tokens and Roles.

You can refer to our FAQ section to get more information on common error messages.

If you have errors when adding custom filters set in the Settings sheet, try your search again without the filters to make sure it functions properly. If your search does not work, refer to the previous section to troubleshoot why your saved search does not work.

If it works without filters, the problem is probably in the syntax of your filter. Make sure you use an operator that is valid for the type of fields

(ex: date fields have different operators than List/Records or Free-form-Text).

Refer to SuiteAnswers article 10565 to know more about the search operators.

As mentioned in the note 2 in section 2.1, you must also ensure that you are using the date format of the user to which the token is tied to. In order to see this preference, log into the user to which the token is tied to and go to the Home button > Set Preferences

And then look in the “General” tab in the “Formatting” section you will see the preference for the dates. You have to use that particular format in order for the date filters to function properly.

Frequently Asked Questions & Errors

Q: I get an error saying that my email/password is invalid or "Invalid Login attempt". But I’m able to log in to NetSuite with the exact same credentials. Why?

A: This message also can mean multiple things:

  • That could mean that you have the wrong Token information
  • This could mean the role attached to your Token does not have the permission allowing Login using Access Tokens.
  • It could mean the Account Number is incorrect.
    • Account numbers are case sensitive. If you are trying to reach a sandbox, the format must be your account number followed by underscore followed by SB1 all in capital: Ex: 12345_SB1
  • This could mean you try to access an account no longer active (ex: an expired Sandbox or demo account)

 

Q. I get the following error message. Why?

A: The search id entered does not exist in the NetSuite instance. Verify the search id in the specified row. This error can also occur if the user and role attached to your credential do not have access to the search.

 

Q: I get the following error message. Why?

A: Verify the following:: 

  1. The role associated with your Token does not have access to the saved search you specified. If this is the case, make sure you set the search as public or that your role or employee record is part of the Audience of the search.
  2. The role associated with your Token does not have access to the record type of the saved search you specified. If that is the case, make sure your role has access to the specified record type.
  3. Refer to SuiteAnswers Article 9921 to learn more about NetSuite permissions

 

Q: I get the following error message. Why?

A: The filter criteria added to the search is invalid. Refer to the NetSuite Record browser to know which fields are available for your search.Look at the Search Filter section of your record in the record browser. https://netsuite.custhelp.com/app/answers/detail/a_id/74610/

 

Q: I get the following error message. Why?

A: This could mean the following:

  1. The required SuiteBundle has not been installed in the NetSuite instance. See section 4 in the Installation Guide for guidance.
  2. If you cannot install the bundle (you cannot find it or the Install button is not enabled or get the error message below), please contact GURUS Solution and ask that the bundle be shared with you. Make sure you have your NetSuite Account number as it will be necessary for this step.

 

Q: I get the following error message. Why?

A: You are currently using NetSuite Data Exporter Free Trial. This free version only allows you to request 2 saved searches at a time. You may easily exclude the extra searches from the list by selecting “yes” in the Skip column. To remove those limitations, you can upgrade to the full NetSuite Data Exporter application. Contact us at sales@gurussolutions.com to learn more about it.

 

Q: I get the following error message. Why?

A: You are currently using NetSuite Data Exporter Free Trial which allows 10 requests per day. You may continue using it on the following day. To remove those limitations, you can upgrade to the full NetSuite Data Exporter application. Contact us at sales@gurussolutions.com to learn more about it.

 

Q: Is there a way to schedule and automate the extraction of the saved searches?

A: This functionality is only available with the full NetSuite Data Exporter application and is not available with the Free Trial. Contact us at sales@gurussolutions.com to learn more about it.

 

Q: I received an error message saying the company ID is invalid. What do I need to do?

A: This message indicates that the NetSuite Account number specified is invalid. This happens mostly when trying to use the Data Exporter with a Sandbox account. Make sure your account number is in the format: XXXXXX_SB1 (with an underscore). 

 

Q: I received a message indicating that the app is not available in my country when installing the Data Exporter Add-on.

A: The NetSuite Data Exporter is currently only available for customers in the United States and Canada.

 

Q: I am encountering issues with my custom segments.

A: If you are using custom segments, make sure your role has the “Search/Reporting” permission set to “Edit” and not “View”. Refer to SuiteAnswers Article 9921 to learn more about NetSuite permissions

 

Q: I am getting an error of type "An error occurred at row 3 with search 2817 : Cannot find function split in object 44229.". What can I do?

A: An error of this type usually means that your filters are not in the correct format. Try changing the filter’s format. Filters are to be written with the same syntax as they would be in SuiteScript 1.0.

 

Q: Can I access the Data Exporter using my email and password?

A: Starting with NetSuite release 2021.1, NetSuite has deprecated the username/password classic authentication. So starting that point, the Data Exporter only supports using Token Based Authentication with predefined consumer and token information.

 

Q: I am getting the following error message. What does it mean?

A: This means that the role associated with your access tokens does not have access to the record type associated with this saved search. Make sure the role has access to this record type at least in View. Refer to SuiteAnswers Article 9921 to learn more about NetSuite permissions

 

Q: I am getting the message indicating "Your search contains a reference to join for which you do not have permission: <record name>". What does it mean?

A: This means that your saved search joins another record for which the role attached to your Access Tokens does not have access. You need to provide access to this other record with at least "View" to your role. Refer to SuiteAnswers Article 9921 to learn more about NetSuite permissions

 

Q: I am getting an unexpected error when requesting search results. What does it mean?

A: The error is not an error that the system knows. Here are some elements to validate:

  • Using valid tokens: Attempt to erase them and enter them again

  • Using valid searches: If your search is not functioning properly in NetSuite, it will cause the export to fail. You can validate this by either running each search individually in your NetSuite instance, or by trying each one of your searches one by one in the Data Exporter. 

 

Q: I pressed on the “Request” button, but nothing is happening

A: If nothing seems to happen, you have no error message and no logs, here are some elements to validate:

  • Is the Data Exporter working in other Browsers? Try to run the Data Exporter in a different browser.

  • Is your browser allowing javascript to run? In Chrome, you can see these settings by following these steps:

    • Go in your settings and select Privacy and Security

 

  • Go in the Site Settings

  • Verify that Javascript is enabled in the content section.

  • If Javascript is not enabled, enable it and retry to use the Data Exporter.
  • If you are using Chrome, are you able to use the Data Exporter using a different Chrome profile? If yes, then it means that your other profile is preventing the Data Exporter from working.

 

Q: I got a message that I must upgrade my licence. What does it mean?

A: It means that if you want to do more searches or use the Data Exporter for a longer period of time you must upgrade your licence to Premium. The Premium licences are annual licences. Once upgraded to premium, you will not have limits on the number of requests per day they can make and can use the Data Exporter all year long until renewal of the licence.

 

Q: I clicked on “Reset Credentials and Scheduling” but my credentials are not reset properly.

A: Make sure that you do not have any other Data Exporter tabs open while you are attempting to reset your credentials. If you have other Data Exporters open at the same time, it may not be able to properly do the reset. 

 

Q: I followed the steps to install the data exporter, but the Access Token sub menu does not show under Setup.

A: You must ensure that you have the Token-Based Authentication feature enabled. In order to validate if you have this feature enabled, you must follow the following steps:

  • Setup 

  • Enables Features 

  • SuiteCloud 

  • Manage Authentication 

  • Token-Based Authentication

 

Q: My document is in a different regional parameter than English. Why is it not working?

A: The Data Exporter currently uses colons, which does not work in documents created in a different language than english that uses a different character. The reason behind this is formulas. An example is that formula ranges in the language “French Canada” are created using A;A, a semi-colon, whereas the code of the Data Exporter uses colons.
 

Q: I entered filters in the setting page but the data exporter is returning the unfiltered search results.Why are my results not filtered the way I want to?

A: Validate that your filters are valid in NetSuite. When filters are not valid, the script may return the entirety of the search results instead of returning an error message.
 

Q: How long does it take after updating my sheet for me to see the update in the portlet in NetSuite?

A: Once you are done doing updates to your GoogleSheet, it should take about 5 minutes to update in NetSuite. Make sure you refresh the portlet and not just the page.
 

Q: I cannot find the permission setting of “Login using access token” in the list of available permissions in the role configuration. How do I create tokens then?

A: If you cannot find the permission or any of the related features in order to create the token based authentication, ensure that the feature is enabled in your instance. You will be able to find the steps to do so in this article.

 

Q: I received the error message saying "Your search contains a reference to join for which you do not have permission". What does it mean?

A: This means your saved search contains a join to another record that the role attached to your Data Exporter credentials does not have access to. You can identify the joins in your saved search when the name of the field contains a colon " : ". A common example, if your role does not allow access to an employee record but you are trying to get the email of your sales rep on a Transaction search, this would likely return this error. you would see "Sales Rep : Email" as a column in your saved search.

 

Q: There is a column in my saved search that is not returned when exporting to the Data Exporter. Why would this happen?

A: This likely means that the field you are trying to export is not accessible to the role attached to your Data Exporter credentials. Ask your NetSuite administrator to make sure the data exporter role has the "Run" permission for Level for Search/Reporting under the Access tab of the custom field as in the example below:

 

Q: There is a column where the values in Google Sheet says ERROR: Field Not Found but in NetSuite, the search shows the value properly. What does this mean?

A: This likely means that the field you are trying to export is a formula field and part of it is not accessible to the role attached to your Data Exporter credentials. Ask your NetSuite administrator to make sure the data exporter role has the "Run" permission for Level for Search/Reporting under the Access tab of the custom field as in the example below:

 

Q: I am getting the following error message. What does it mean?

A: This means that the Search Type is not matching with the Search Id. 

  • If you have in the Search Id the Internal Id you don’t have to put anything in the Search Type.
  • Make sure when you have in the Search Id the Id only, it will match with the choice of the Search Type

 

Q: I don’t see the “Search Type” column. How do I specify my search type?

A: You need to re-open the extension. When you click on Extension > GURUS Netsuite Data Exporter it will create the missing column.

Get in Touch With a NetSuite Professional