Hidden Custom Record

I have a NetSuite Custom record that is hidden in the UI:

However, I am unable to query this record in Celigo since I can't make a saved search for it.

As a workaround, I am enabling UI access and using permissions to restrict access to the record. I was just posting here to see if there was a better way to deal with this?

P.S. — Why is it set up like this? I set up Suitelets in NetSuite to provide UI interaction. Revoking UI access allows me to edit the record using these Suitelets run as the user (with edit permissions) while still preventing manual editing of the record. If I revoked their edit permissions directly, I would have to run the scripts as admin.

Hi Ezriah,

As of today, it is required to associate a saved search with an export in order to load and retrieve results. Currently, we do not support exports without a saved search—this is a mandatory field.

An alternative approach is to create an HTTP connection to NetSuite using the REST API or SuiteQL, which allows us to retrieve results without relying on a saved search.

Please refer to the following article for instructions on setting up an OAuth 1.0 HTTP connection to NetSuite:
Set up an OAuth 1.0 connection to NetSuite SuiteTalk APIs (including SuiteQL)

Once the connection is established, you can create an export following the example shown in the screenshot below.

In the Request body for SuiteQL, replace with your customRecord.

Thanks, @muneswarathotakura !

Hi @friendoftuesday,
Querying a record without a saved search is possible, to do this change to a Private search and set the search internal ID to -1. Then set any filtering you need using the Additional search criteria:

2 Likes

@basvanditzhuijzen does this just return all columns that exist on the record type?

Sorry I forgot to mention, by default it only returns the internal Id and recordtype fields.
(I mostly use this as a quick way to lookup an internal id to process further, in almost all cases its better to use a search)

It is possible to add columns on the fly, but not through the UI.
You would have to add them through the API or zangabox, adding a columns array just like when using a Celigo Javascript API virtual export:

  "netsuite": {
    "type": "restlet",
    "restlet": {
      "recordType": "customer",
      "searchId": "-1",
      "restletVersion": "suiteapp2.0",
      "criteria": [
        {
          "field": "internalid",
          "operator": "anyof",
          "searchValue": "6"
        }
      ],
      "columns": [
        { "name": "companyname" },
        { "name": "email" }
      ]
    }
  },