Business Operations and ERPs
NetSuite
21 min
with netsuite modules in make, you can watch, search, create or update, retrieve, and delete standard and custom records to use the netsuite app in make, you must have the make enterprise https //www make com/en/pricing plan all enterprise apps are currently labeled as premium tier 3 in make to use the netsuite modules, you must have a netsuite account you can create an account at netsuite com https //www netsuite com/portal/home shtml the account must have admin or system administration permissions the following steps are required before creating the connection in make netsuite /#enable token based authentication netsuite /#create consumer key and consumer secret credentials netsuite /#create and assign roles connect netsuite to make to establish the connection, you must netsuite /#enable token based authentication netsuite /#create consumer key and consumer secret credentials netsuite /#create and assign roles netsuite /#establish the connection with netsuite in make enable token based authentication to enable token based authentication and soap/rest webservice log in to your netsuite account as an admin click setup > company > enable features click suitecloud and select the following options suitescript client suitescript; server suitescript suitetalk (web services) soap web services rest web services manage authentication suitesignon; token based authentication click save create consumer key and consumer secret credentials you must create a new integration in netsuite to generate a consumer key and consumer secret values navigate to setup > integration > manage integrations > new enter a name for the integration, select enabled in the state field, select token based authentication and tba authorization flow , and paste the following in the callback url field https //www integromat com/oauth/cb/netsuite click save copy the consumer key and consumer secret and save them in a safe place you now have the consumer credentials to connect to make create and assign roles an admin must create roles and assign them to the users or employees to access the integration details to access the roles page, search for page\ roles click edit next to manage roles click new role enter the details as provided in the table and click save this creates a new role name enter a name for the role subsidiary restrictions select all permissions in the setup tab, add the following mandatory permissions custom body fields full access custom entity fields full access custom fields full access custom item fields full access custom lists full access custom record types full access custom segment full access note before granting access to custom segments, enable the feature to do it, go to settings > company > enable features on the suitecloud subtab, select custom segments, and then click save log in using access tokens full access records catalog view access rest web services full access set up company view access soap web services full access user access tokens full access in the lists tab, add the following mandatory permissions custom record entries full access item collection full access items full access in the reports tab, add the following mandatory permissions suiteanalytics workbook edit access in the transactions tab, add the following mandatory permissions find transactions full access other required permissions for your desired transaction type search for page\ employees to assign the role to a user to assign the role to existing employees click edit next to employees and select the employee to assign the role to to assign the role to a new employee click edit next to new employees to create a new employee add the employee details click access > roles , add the new role you have created, and click save you have successfully created and assigned the roles to access the integration details establish the connection with netsuite in make all users can create a connection, while only admin can obtain the consumer key and secret values and assign roles log in to your make account, add a netsuite module to your {{scenario singular lowercase}} , and click create a connection optional in the connection name field, enter a name for the connection in the consumer key and consumer secret fields, enter the credentials that you generated in netsuite click save if prompted, authenticate your account and confirm access you have successfully established the connection you can now edit your {{scenario singular lowercase}} and add more netsuite modules if your connection requires reauthorization at any point, follow the connection renewal steps here docid\ so88fm6pkt0g adkddfzz connections between netsuite and make use token based authentication with tokens that do not expire netsuite production connections if your connection breaks or expires, check your netsuite account to ensure your token has not been revoked for more information, you can check the integration record in netsuite by navigating to setup > integrations > manage integrations or the login audit trail by navigating to setup > users/roles > view login audit trail netsuite sandbox connections netsuite will regularly rollback sandbox environments to their original state when this happens, your connection in make may be broken make does not refresh the connection with netsuite make sure, your token and secret are valid if the token and secret are not valid, check if netsuite web ui revoked the token if you use netsuite sandbox, keep in mind, that the sandbox may be rolled back to its original state it breaks the connection learn more https //docs oracle com/en/cloud/saas/netsuite/ns online help/section 1534941538 html#subsect 1534941869 about checking if the token is valid standard record you can watch, search, create or update, retrieve, and delete records using the following modules some entity fields describing a record type are displayed with their internal api names instead of their netsuite labels for example, in account record types where the entity field is called parent , the internal id label refers to subaccount of for more information, refer to netsuite soap api documentation https //system netsuite com/help/helpcenter/en us/srbrowser/browser2022 1/schema/record/account html watch records trigger when a record is created or updated false falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type watch records (saved search) triggers when a record in a saved search is created false false 195false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type to search for sales transaction types (such as invoices, deposits, etc ), you must use a search filter for the transaction type's enum value \ follow these steps to create the filter in search record type , select transaction search under search filter , select type \[enum] select the enum (separated by,) operator in the field below, enter the enum value from the table below, depending on the transaction type true falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type search records retrieves a list of records filtered by a query false false 207false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type to search for sales transaction types (such as invoices, deposits, etc ), you must use a search filter for the transaction type's enum value follow these steps to create the filter in search record type , select transaction search under search filter , select type \[enum] select the enum (separated by,) operator in the field below, enter the enum value from the table below, depending on the transaction type true falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type search records (saved search) retrieves a list of records filtered by a saved search false false 202false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type to search for sales transaction types (such as invoices, deposits, etc ), you must use a search filter for the transaction type's enum value follow these steps to create the filter true falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type create or update a record creates or updates an existing record by its id false false 205false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type get a record retrieves the details of an existing record by its id false falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type delete a record removes a record by its type and id false false 204false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type custom record you can search, create, retrieve, update, and delete custom records using the following modules search custom records retrieves a list of custom records filtered by a query false false 193false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type bulk get custom records (advanced) retrieves multiple custom records by their ids false false 196false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type create a custom record creates a new custom record false false 204false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type get a custom record retrieves the details of the custom record by its id false false 201false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type update a custom record updates a custom record by its id false false 198false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type delete a custom record deletes a custom record by its id false false 210false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type files and folders you can upload, download, attach, detach files and create folders using the following modules upload a file uploads a file by an external url or binary data false false 204false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type download a file download an existing file by its internal id or external id false false 205false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type attach a file attaches a file to a record by its id and the record id false false 198false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type detach a file detaches a file from a record by its id and the record id false false 195false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type create or update a folder creates or updates a folder by its internal id or external id true false 199false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type other make a soap api call performs an arbitrary authorized api call false false 198false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type predefined namespaces for making a soap api request true falsefalse left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type example of use get records from saved search on custom record the following api call returns records from save search on custom record action search body \<platformmsgs\ search>\<platformmsgs\ searchrecord xsi\ type="setupcustom\ customrecordsearchadvanced" savedsearchid="1"/>\</platformmsgs\ search> the opening and closing tags should contain the action name in the example, the action is search the tags contain platformmsgs\ search example of use get all messages the following api call returns all the messages from your netsuite account action get all body \<platformmsgs\ getall>\<platformcore\ record recordtype="currency" />\</platformmsgs\ getall matches of the search can be found in the module's output under bundle in our example, 5 messages were returned make a rest api call performs an arbitrary authorized rest api call the beta endpoints https //system netsuite com/help/helpcenter/en us/apis/rest api browser/record/v1/2022 1/index html#tag account are available only if you are enrolled and have joined the oracle netsuite beta programs https //pdpm oracle com/pls/apex/f?p=102 300 false false 208false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type for more information, see the netsuite rest api documentation example of use get all customers the following api call returns all customers from your netsuite account url /record/v1/customer method get search results can be found in the module's output under bundle in our example, 313 customers were returned make a restlet api call performs an arbitrary authorized restlet api call before using a module, upload your script file to your file cabinet and create a script record and a script deployment record for it in your netsuite account read more here https //docs oracle com/en/cloud/saas/netsuite/ns online help/section 4618456517 html#related topics false false 195false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type run a suiteql query executes a suiteql query false false 198false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type false left unhandled content type example of use customer information the following suiteql query returns information for three customers from your netsuite account query select from customer limit 3 results can be found in the module's output under bundle in our example, 3 customers and their information were returned