Can ChatGPT solve these 9 common NetSuite saved search mistakes and what can we learn from it?

Written by
Sonny Spencer, BFP, ACA
Director of Finance Operations
June 11, 2023
min read

Table of Contents

View all guides


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

This is some text inside of a div block.


Artificial Intelligence (AI) is dominating headlines right now, and for good reason. The power of engines like GPT-3.5 and GPT-4 are already changing the way we operate in our daily lives.

However, as powerful as these operating engines are, can they truly compete with savvy NetSuite Developers and Administrators? In this blog we are going to see how ChatGPT would solve a number of common NetSuite saved search mistakes. More specifically, we will look at both the prompts given to and responses produced by ChatGPT. We will then evaluate the results to see if ChatGPT will be able to replace NetSuite power users any time soon.

Experience the Ease & Confidence of NetSuite Customizations with Salto

Mistake 1 - Doing Manual Audit Sample Requests


When your company auditors request a sample of transactions to test, this is normally not a difficult task, especially when the sample size is small, say 5-10 transactions. If the same size increases to 100 transactions, how would you go about obtaining additional information on those selected transactions? What was first achievable with some manual effort will now take an hour or more to complete.

The Prompt

In the persona of a NetSuite Administrator, assume you have just received a list of 100 transaction internal IDs from your company auditors. Your company auditors have requested additional details about these transactions, such as who created them, who approved them, the accounting period they were posted to and more. Using NetSuite out of the box functionality, how would you go about providing the company auditors the requested information about these 100 transactions?

Mistake 1 - ChatGPT Prompt

The Response

Mistake 1 - ChatGPT Response


1 + 2 - This is not quite right. Certainly, there is a way to create a new transaction saved search via the “Transactions” center tab, but the correct menu path is: Transactions > Management > Search Transactions > Create Saved Search. Most NetSuite users will opt for the more “traditional” menu routing via the “Reports” center tab.

3 - This approach is definitely possible, if you have time to enter the 100 internal IDs one at a time. Copy/pasting does not work when populating this particular saved search filter. In short, ChatGPT has recommended a viable solution, but it is far from optimal.

4 - While this response appears solid on first glance, we need to remember that the prompt included the specification of “Using NetSuite out of the box functionality”. “Created By” is a valid column name; however, “Approved By” is not an out of the box field and “Accounting Period” is named “Period” unless referring to the fields available in the related tables section of the field drop down menu.

5 - Generic advice, but it makes perfect sense.

6 - The proposed saved search name is too generic and would get lost in the countless saved searches created during the audit period. Instead, name the saved search something very specific - include the date of the request, for example, to easily differentiate from other requests.

7 - This is definitely one way to locate your saved search after creating it. It will be more efficient to search for the name of the saved search using Global Search or viewing in the list of saved searches in the menu: Reports > Saved Searches, but this does require you to check the “Show in Menu” check box within the saved search header criteria before saving.

8 - You can indeed export the results to CSV or PDF, but ChatGPT has missed sharing the most common format request that is available - Excel.

Overall - Could a NetSuite user follow these instructions and obtain the required output for their company auditors? Most likely, but I think ChatGPT needs to remove the word “quickly” from its closing paragraph!

For an alternate solution, check out this blog post focused on saved search mistakes NetSuite Devs and Admins should avoid.

Mistake 2 - Not Knowing Your Consolidated Exchange Rates


The results of any transaction saved search will depend upon the “Consolidated Exchange Rate” field value for any NetSuite OneWorld customer. It is critical for any NetSuite user relying upon the results of such a saved search to understand the impact of consolidated exchange rates on those results. We can validate the behavior through some simple examples of transactions in subsidiaries that have different functional currencies to that of their parent company.

The Prompt

In the persona of a NetSuite Administrator, explain to me how the "Consolidated Exchange Rate" field value on a transaction saved search impacts the results of the saved search. In addition to a detailed explanation, provide an example where a parent company in the US that has a functional currency of USD, has two children, a UK company with functional currency GBP and an Irish company with functional currency EUR. In this example assume the UK company processes a vendor bill for USD 200.00 at a spot rate of 0.5 and the Irish company processes a vendor bill for GBP 100.00 at a spot rate of 1.5.

Mistake 2 - ChatGPT Prompt

The Response

Mistake 2 - ChatGPT Response (part 1)

Mistake 2 - ChatGPT Response (part 2)


1st Paragraph - This generally makes sense, although including the field in a transaction saved search is not quite correct. This is not a field you can include or exclude, but instead a mandatory criteria that must be set according to your reporting needed. Note that “None” is an available option and possibly what ChatGPT is referencing here.

2nd / 3rd Paragraphs - This is a replay of the request example. No issues here.

4th Paragraph - “Without using the Consolidated Exchange Rate field”. Let’s assume that this is referring to setting the “Consolidated Exchange Rate” field value to “None”. When doing so, the “Amount” field value in the saved search results will not display the transactional currency amount, but instead will show the functional currency equivalent.

ChatGPT confirms that the saved search results would display USD 200.00 for the UK company, but this is only true when selecting the column “Amount (Foreign Currency)”. If “Amount” is selected (most common), NetSuite will translate the USD 200.00 to GBP using the spot rate on the date of the transaction. As a result, this ChatGPT response is misleading.

5th Paragraph - Let’s assume that this is referring to setting the “Consolidated Exchange Rate” field value to “Per-Account”. When doing so, the “Amount” field value in the saved search results would indeed convert the amounts into the parent company’s currency of USD. So far, so good. ChatGPT goes on to use different exchange rates, but the results hold true.

There is one caveat here, though. ChatGPT is assuming that NetSuite will apply a single consolidated exchange rate to the transaction. This is the case when “Main Line” = True, but when looking at the line level detail, NetSuite will apply the appropriate consolidated exchange rate “Per-Account”—like we told it to. The prompt we gave to ChatGPT did not specify whether we were looking for header or line level transactional data, so it is a reasonable assumption to make that we were only looking at the header level data. After all, humans make that assumption all the time!

Final Paragraph - Generic advice, but it makes perfect sense.

Mistake 3 - Not Utilizing Reminders/Dashboards


NetSuite reminders can give a NetSuite user key information in a simple, concise manner. Instead of reviewing larger volumes of data, users can leverage reminders to manage by exception. Exceptions can be flagged through effective saved search criteria and then presented as a reminder by checking the appropriate setting on the saved search header.

The Prompt

In the persona of a NetSuite Administrator, explain to me how you can establish reminders within NetSuite to flag workflow modifications that have been made in the last 24 hours, as well as script modifications in the same timeframe. Can you also confirm whether NetSuite reminders are effective when referencing a saved search with summary results?

Mistake 3 - ChatGPT Prompt

The Response

Mistake 3 - ChatGPT Response


ChatGPT is way off here, which is a little surprising given the previous responses we have seen thus far. Unfortunately the navigation paths proposed are non-existent and additional steps are needed to modify the available filters in a list view of any NetSuite record (starting with editing the list view).

The idea of having a separate reminders menu under setup makes a lot of sense, however this is not something available in NetSuite today, as reminders are managed through the reminders portlet on each user’s dashboard.

The response to the second request is also incorrect. One of the limitations of working with NetSuite reminders is that saved searches with summarized results will always show 0 results, when in fact the saved search will have more than 0 results.

It is certainly possible the prompt was not descriptive or direct enough for ChatGPT to respond with more accurate suggestions. Let’s look at some additional use cases to see if this was a one-off.

Mistake 4 - Not Restricting Item Dropdowns


It is commonplace for companies to have multiple streams of revenue and often these are managed separately from a billing and revenue recognition perspective. A great way to bifurcate two different sets of product offerings is to restrict the items that are available for selection on NetSuite transactions (think sales order, invoice, etc.) This can be achieved with simple custom transaction forms that reference a NetSuite saved search (that must be “public”), filtered to a particular subset of items. 

The Prompt

In the persona of a NetSuite Administrator, how can you restrict the list of items available for selection on a given transaction record? For the purposes of this example, assume that the transaction record is a sales order record. In your response, confirm which objects and records would need to be created in order to achieve the desired outcome of restricting the list of items to a subset of all items available.

Mistake 4 - ChatGPT Prompt

The Response

Mistake 4 - ChatGPT Response


Again, we see ChatGPT proposing NetSuite menu paths that do not exist. Further, it is proposing a new object type, “Item Group”. that is not intended to be used in the proposed manner. Item groups are used to bundle a number of individual items that can then be sold as a single bundle, as opposed to grouping items for the purposes of filtering on a sales order record.

The proposed solution of grouping items (correctly), adding a custom field to the sales order record and creating a SuiteScript could work, in theory, but this is far from being an optimal solution. Having the script run in “beforeLoad” will inevitably have some performance impact to the system when loading a new sales order record. This would be minimal, but these add up quickly if your sales order record is heavily customized.

Check out the blog post I mentioned earlier for an optimized solution that requires zero SuiteScript capabilities and leverages NetSuite out of the box functionality.

Mistake 5 - Not Using Hyperlinks


Adding hyperlinks to your saved searches allows you to easily drill down to the underlying NetSuite records without drilling down to multiple screens, in the case of summarized saved search results. This can be achieved with a custom formula (text) field with the appropriate hyperlink structure.

The Prompt

In the persona of a NetSuite Administrator, how would I go about modifying a summarized transaction saved search in order to allow me to drill down to the underlying transaction with a single click? For the purposes of this example, assume that the transaction record is a sales order record. In your response, confirm any appropriate formula examples that could be used in the summarized transaction saved search to achieve the desired outcome.

Mistake 5 - ChatGPT Prompt

The Response

Mistake 5 - ChatGPT Response


This might be the closest to a complete solution yet.

Steps 1 - 3 are spot on. We need to navigate to an existing transaction saved search that has been summarized.

Steps 4 - 5 are not quite right. We cannot add a formula to an existing field, e.g. Transaction Number. Instead we need to add a custom formula (text) field to which we can add a custom formula.

Step 6 is definitely on the right track, but the proposed formula is missing some key elements, such as the reference to the NetSuite account number. When trying to use the proposed formula we receive an error message “ERROR: Invalid Expression”. The same is true even after updating the URL reference to include the specific NetSuite account number.

Instead you should use the following formula and ensure the summary type is set to “Maximum”.

‘<a href="'||{internalid}||'&submitter=Submit">VIEW RECORD</a>’

Saved search results extract with above formula results on the left and ChatGPT results on the right

Mistake 6 - Hardcoding In SuiteScript


When NetSuite Developers create a new SuiteScript, it is often quicker and easier to hardcode references to NetSuite saved searches directly within the script itself instead of leveraging script parameters to reference the respective saved search IDs.

As a result, if changes are needed to the saved search criteria in future, the SuiteScript needs to be modified, resulting in cumbersome change management requirements. If a script parameter was leveraged instead, the underlying saved search criteria could be updated directly without a need to modify any of the script logic. While you should still employ change management best practices, this modification is less of a burden.

The Prompt

In the persona of a NetSuite Administrator, how would you recommend structuring a NetSuite SuiteScript that references the results of a saved search where the criteria of said saved search needs to be modified frequently in the future? Specifically, what options are available to manage these saved search criteria modifications and which of these options will be the most efficient?

Mistake 6 - ChatGPT Prompt

The Response

Mistake 6 - ChatGPT Response


1 - This is a solid recommendation from ChatGPT. Leveraging script parameters is certainly an efficient way to go about managing saved search criteria that need to be modified frequently, without directly modifying the underlying code. This option assumes the saved search is generated within the SuiteScript itself vs a reference to a separate saved search record, which many NetSuite Developers will opt for.

2 - This is another great recommendation, especially when working with a larger volume of criteria values that can change frequently. The other benefit is that user access to NetSuite custom records can be defined at the custom record and user role level, giving greater flexibility to control who can modify the underlying criteria for the saved search when compared to SuiteScript parameters.

3 - For certain situations, the “User Interface” recommendation might even be the best approach to take. For example, if users are required to follow a certain process every week/month/quarter in NetSuite and each time the user must first update the criteria for that process, then the creation of a custom Suitelet will be the most user friendly. The downside is that the creation of a Suitelet is more involved on the developer side compared to options 1 and 2 above, so you will need to find the right balance between ease of use on the front end and complexity on the back end.

4 - Although more of a niche use case, this is a valid recommendation from ChatGPT. If the criteria modifications are on a predefined schedule you could leverage a scheduled SuiteScript to update the values automatically vs having end users modify the criteria manually. You could possibly look to combine this recommendation with 1 or 2 for a more complete solution, where the criteria changes are known in advance (which is unfortunately not always the case).

The final paragraph is a great summary and I agree that the most efficient approach will largely depend on the specific requirements. Great job, ChatGPT!

Mistake 7 - Not Summarizing Scheduled Emails


When emailing saved search results directly from NetSuite, users must ensure the appropriate email notification settings are selected, otherwise they run the risk of receiving a large volume of unwanted emails. For example, if a saved search has 10,000 results and a user unchecks the “Summarize Scheduled Emails” check box (which is checked by default), they should expect to receive 10,000 emails, one for each result.

The Prompt

In the persona of a NetSuite Administrator, when creating a saved search with 10,000 results, how should the saved search email settings be configured to ensure that the recipient of the email only receives a single summarized email as opposed to 10,000 individual emails? Further, if a user inadvertently triggered 10,000 individual emails, how would they go about stopping them from sending once the process has kicked off?

Mistake 7 - ChatGPT Prompt

The Response

Mistake 7 - ChatGPT Response


1 - After a great response to Mistake 6, ChatGPT has unfortunately reverted back to some less than ideal results. We start off on the right foot by navigating to the “Email” subtab within the saved search, but after that the instructions are vague and/or non-existent.

The correct check box to check is the “Summarize Scheduled Emails”. There is no “Send Email As” or ability to select “List” or “Grouped”. The most important thing is to check the “Summarize Scheduled Emails” check box and this advice was missed.

2 - Unfortunately, this response is incorrect. As much as I wish there was an “Email Queue Manager” for scheduled emails to resolve situations like this, it does not exist. I suspect ChatGPT is confusing some of the functionality available with the NetSuite Dunning process. To be clear, there is no way to pause or stop the emails being sent—the best thing to do is recommend that the end users impacted go ahead and set up an email rule to take care of the unwanted emails until the NetSuite process has run its course.

Mistake 8 - Not Grouping System Notes


For anyone looking to report on more detailed audit trail information for NetSuite records, system notes are a great source of truth. One of the challenges is that system notes are logged for many of the most minor record changes. As a result, when running a saved search that includes system notes results they will often include hundreds of rows of data when the user may be focused on a very specific record modification. 

One of the easiest ways to reduce the system notes data set is to group them by utilizing the “summary type” functionality in the saved search results tab.

The Prompt

In the persona of a NetSuite Administrator, how would you go about obtaining a list of NetSuite journal entries that had been approved and then subsequently unapproved in the UI? Assume the expected output is in the form of a NetSuite saved search, where there is a single result for each journal entry as opposed to multiple rows for the same journal entry.

Mistake 8 - ChatGPT Prompt

The Response

Mistake 8 - ChatGPT Response


1 - 2 - The vast majority of NetSuite users will know the steps to creating a new transaction saved search, so I am a little surprised to see ChatGPT give incorrect steps on how to do this. Specifically, 2b is inaccurate, as the user needs to add the “Type” criteria and select “Journal”.

3 - The defined criteria are not accurate. As we are looking for journals that have been approved and subsequently unapproved, we are looking for any records where the “New Value” is set to “Pending Approval”. ChatGPT is on the right lines by referring to  a system notes filter, however it is missing some key details in order for someone to follow the steps and produce the required results. 

4 -5 - The recommendation to remove duplicate transactions in the saved search results might work for other saved searches, but for a saved search that references system notes, it is important to leverage the “Summary Type” column in the “Results” tab to group the data accordingly. Grouping on “Internal ID” and “Transaction Number” would work if there are no other columns being reported, so ChatGPT was close—just not close enough.

Mistake 9 - Migrating Manually


Saved searches can be particularly challenging to migrate from one NetSuite environment (say, Sandbox) to another (Production). One of the primary reasons for this is due to record and field dependencies created in one environment that are not apparent in the other environment.

As a result, it is common to see NetSuite Administrators migrating saved searches manually (yes, physically copying line by line) to avoid any record dependencies pulling through to the target NetSuite environment. There are alternative solutions to consider, such as Salto, that will manage the migration process for your saved searches seamlessly. Doing so reduces time, risk and ultimately frees up the NetSuite Admin to focus on value-add initiatives.

The Prompt

In the persona of a NetSuite Administrator, what are some of the best tools available for migrating NetSuite saved searches from one environment (source environment) to another (target environment)? Your response need not solely focus on NetSuite out of the box functionality but can explore alternative solutions within the larger NetSuite ecosystem. Of these options, which are the most efficient and effective for ensuring that inadvertent record dependencies are not migrated to the target environment? 

Mistake 9 - ChatGPT Prompt

The Response

Mistake 9 - ChatGPT Response (part 1)

Mistake 9 - ChatGPT Response (part 2)


1-2 - ChatGPT identifies two of the common methods for deploying NetSuite configuration changes from one environment to another in paragraphs 1 and 2. No surprises there. At first, I was surprised that “Copy to Account” was not listed as one of the available tools, however it is certainly possible the ChatGPT database cutoff (September 2021) does not have a reference to “Copy to Account” with it being a newer feature in NetSuite. From my recollection, this feature was available prior to September 2021, so this is possibly an oversight from ChatGPT.

3 - Even if it were possible to develop custom SuiteScript solutions to migrate saved searches from one NetSuite environment to another, this would not be the recommended approach. To build, manage and maintain such a solution would be extremely costly, especially when there are out of the box options and purpose-built third party tools that can manage this process seamlessly.

4 - While tools like Boomi, Celigo and Jitterbit are great for data mapping and transformation (the “T” in “ETL”), they are not typically used for the migration of NetSuite configuration from one NetSuite environment to another. I was genuinely surprised not to see Salto listed as one of the viable third party tools given their expertise in this space. In any case, I would strongly recommend NetSuite Administrators explore all potential solutions prior to developing custom SuiteScript to facilitate the migration of NetSuite saved searches from Sandbox (or Development) to Production.

Final thoughts

It is clear to me that ChatGPT knows its stuff; however, it is still quite a bit behind the knowledge of an experienced NetSuite Administrator and Developer. Going through this exercise helped solidify in my mind that ChatGPT can be a valuable resource to anyone using NetSuite, but users should be skeptical of the results and validate them before relying upon the output. As we saw above when reviewing the output from ChatGPT, some of the responses were highly accurate, whereas others were nothing short of inaccurate and misleading.

ChatGPT should be considered another tool in the kit and used alongside (but not as a replacement for) resources such as SuiteAnswers, NetSuiteProfessionals and other knowledge sharing forums. As the technology evolves, we should expect to see more accurate, value-add responses from tools like ChatGPT. This is just the beginning.

If you would like to learn more about some of the specific use cases NetSuite Administrators are leveraging ChatGPT to solve, check out this blog post from Avishai Asaf.

Written by
Sonny Spencer, BFP, ACA

Sonny is a seasoned NetSuite veteran, with more than 7 years experience implementing NetSuite and architecting NetSuite solutions for a wide variety of public and private companies, on a global scale. He leverages his background both as a Chartered Accountant and Certified NetSuite Administrator to design and build NetSuite solutions that solve real world problems. Sonny is an active member of the NetSuite community, participating in local NetSuite meetups, NetSuite forums and groups focused on financial system optimization.

Written by