Business Operations and ERPs
NetSuite
21min
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 docid\ zjdyh3cmlfgrysiqsaays netsuite docid\ zjdyh3cmlfgrysiqsaays netsuite docid\ zjdyh3cmlfgrysiqsaays connect netsuite to make to establish the connection, you must netsuite docid\ zjdyh3cmlfgrysiqsaays netsuite docid\ zjdyh3cmlfgrysiqsaays netsuite docid\ zjdyh3cmlfgrysiqsaays netsuite docid\ zjdyh3cmlfgrysiqsaays 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 connection netsuite docid\ zjdyh3cmlfgrysiqsaays search record type select or map the record type of the records you want to watch trigger by select the type of field you want the module to be triggered by record field select the exact date field to be triggered by custom field select the exact date custom field to be triggered by entity custom fields select the custom fields to be listed for mapping if you want to list all the fields then you can leave this empty limit set the maximum number of records make will return during one execution cycle the default value is 2 watch records (saved search) triggers when a record in a saved search is created connection netsuite docid\ zjdyh3cmlfgrysiqsaays search record type select or map the record type of the records you want to watch saved search select the saved search that must include internal id trigger by select the type of field you want the module to be triggered by record field select the date field to trigger the search for newly created records custom field select the date type custom field to be triggered by search filter specify the filter conditions and operators to search for sales transaction types, see the information below this table regarding how to set up the search filter enable custom field filter select whether to enable the custom field filter for additional filtering options custom field filter specify the custom fields to add additional filters to trigger your search for newly created records limit set the maximum number of records make will return during one execution cycle the default value is 2 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 transaction type enum value assembly build assemblybuild assembly unbuild assemblyunbuild bin transfer bintransfer bin worksheet binworksheet cash refund cashrefund cash sale cashsale check check credit memo creditmemo custom purchase custompurchase custom sale customsale customer deposit customerdeposit customer payment customerpayment customer refund customerrefund deposit deposit deposit application depositapplication estimate estimate expense report expensereport inventory adjustment inventoryadjustment inventory cost revaluation inventorycostrevaluation inventory transfer inventorytransfer invoice invoice item fulfillment itemfulfillment item receipt itemreceipt journal entry journal opportunity opportunity paycheck journal paycheckjournal purchase order purchaseorder return authorization returnauthorization sales order salesorder transfer order transferorder vendor bill vendorbill vendor credit vendorcredit vendor payment vendorpayment vendor return authorization vendorreturnauthorization work order workorder work order close workorderclose work order completion workordercompletion work order issue workorderissue search records retrieves a list of records filtered by a query connection netsuite docid\ zjdyh3cmlfgrysiqsaays search record type select the record type and add filters to search the record search filter specify the filter conditions and operators to search for sales transaction types, see the information below this table regarding how to set up the search filter limit set the maximum number of records make will return during one execution cycle the default value is 10 entity custom fields select the fields to be listed for mapping or leave the field blank to list records for all the available entity custom fields 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 transaction type enum value assembly build assemblybuild assembly unbuild assemblyunbuild bin transfer bintransfer bin worksheet binworksheet cash refund cashrefund cash sale cashsale check check credit memo creditmemo custom purchase custompurchase custom sale customsale customer deposit customerdeposit customer payment customerpayment customer refund customerrefund deposit deposit deposit application depositapplication estimate estimate expense report expensereport inventory adjustment inventoryadjustment inventory cost revaluation inventorycostrevaluation inventory transfer inventorytransfer invoice invoice item fulfillment itemfulfillment item receipt itemreceipt journal entry journal opportunity opportunity paycheck journal paycheckjournal purchase order purchaseorder return authorization returnauthorization sales order salesorder transfer order transferorder vendor bill vendorbill vendor credit vendorcredit vendor payment vendorpayment vendor return authorization vendorreturnauthorization work order workorder work order close workorderclose work order completion workordercompletion work order issue workorderissue search records (saved search) retrieves a list of records filtered by a saved search connection netsuite docid\ zjdyh3cmlfgrysiqsaays search record type select the record type and add filters to search the record saved search select the saved search that you want to use for filtering records search filter specify the filter conditions and operators to search for sales transaction types, see the information below this table regarding how to set up the search filter enable custom field filter select whether to enable the custom field filter for additional filtering options limit set the maximum number of records make will return during one execution cycle the default value is 10 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 transaction type enum value assembly build assemblybuild assembly unbuild assemblyunbuild bin transfer bintransfer bin worksheet binworksheet cash refund cashrefund cash sale cashsale check check credit memo creditmemo custom purchase custompurchase custom sale customsale customer deposit customerdeposit customer payment customerpayment customer refund customerrefund deposit deposit deposit application depositapplication estimate estimate expense report expensereport inventory adjustment inventoryadjustment inventory cost revaluation inventorycostrevaluation inventory transfer inventorytransfer invoice invoice item fulfillment itemfulfillment item receipt itemreceipt journal entry journal opportunity opportunity paycheck journal paycheckjournal purchase order purchaseorder return authorization returnauthorization sales order salesorder transfer order transferorder vendor bill vendorbill vendor credit vendorcredit vendor payment vendorpayment vendor return authorization vendorreturnauthorization work order workorder work order close workorderclose work order completion workordercompletion work order issue workorderissue create or update a record creates or updates an existing record by its id connection netsuite docid\ zjdyh3cmlfgrysiqsaays action select the action you want to perform for example, create a record and get an internal id record type select the record type and enter the details of the record you want to create entity custom fields select the custom fields you want to add to this record once you select the custom field, an option to enter or map a value will be provided get a record retrieves the details of an existing record by its id connection netsuite docid\ zjdyh3cmlfgrysiqsaays record type select or map the record type of the details you want to retrieve internal id enter the internal id of the record whose details you want to retrieve ensure that in the preference section, you have selected the show internal id checkbox to display the internal id column in the records page external id enter the external id of the record whose details you want to retrieve entity custom fields select the fields to be listed for mapping or leave this field blank to list all available entity custom fields delete a record removes a record by its type and id connection netsuite docid\ zjdyh3cmlfgrysiqsaays record type select or map the record type of the record you want to delete internal id enter the internal id of the record you want to delete ensure that in the preference section, you have selected the show internal id checkbox to display the internal id column in the records page external id enter the external id of the record you want to delete reason code id enter the reason code id applicable to the record you want to delete you can find the id at netsuite setup > accounting > accounting lists and filter by transaction deletion reason to get the reason id reason memo enter a memo with the reason to delete the record 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 connection netsuite docid\ zjdyh3cmlfgrysiqsaays custom record type select the custom record type and add filters to search for the custom records limit set the maximum number of records make will work with during one execution cycle it must be a number between 1 and 3200 the default value is 10 offset enter the number of results to be skipped, it must be divisible by the page limit 100 use this field with a repeater module only if you want to get more than 3200 results bulk get custom records (advanced) retrieves multiple custom records by their ids connection netsuite docid\ zjdyh3cmlfgrysiqsaays custom record type select the custom record type details you want to retrieve record ids enter the internal ids of the custom records you want to retrieve ensure that in the preference section, you have selected the show internal id checkbox to display the internal id column in the records page create a custom record creates a new custom record connection netsuite docid\ zjdyh3cmlfgrysiqsaays custom record type select the custom record type and enter details for the record you want to create get a custom record retrieves the details of the custom record by its id connection netsuite docid\ zjdyh3cmlfgrysiqsaays custom record type select the custom record type of the details you want to retrieve id enter either the internal or external id of the custom record you want to retrieve details for if using an external id, add the prefix eid for example, eid\ make 123 to use internal ids, ensure that in the preference section you have selected the show internal id checkbox to display the internal id column in the records page update a custom record updates a custom record by its id connection netsuite docid\ zjdyh3cmlfgrysiqsaays custom record type select the custom record type of the record you want to update and enter the details you want to update id enter either the internal or external id of the custom record you want to update if using an external id, add the prefix eid for example, eid\ make 123 to use internal ids, ensure that in the preference section you have selected the show internal id checkbox to display the internal id column in the records page delete a custom record deletes a custom record by its id connection netsuite docid\ zjdyh3cmlfgrysiqsaays custom record type select the custom record type of the record you want to delete id enter either the internal or external id of the custom record you want to delete if using an external id, add the prefix eid for example, eid\ make 123 to use internal ids, ensure that in the preference section you have selected the show internal id checkbox to display the internal id column in the records page 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 connection netsuite docid\ zjdyh3cmlfgrysiqsaays upload by select or map the upload type url binary data folder either interal id or external id must be provided if both are provided, the internal id is used file type select the type of file you want to upload description enter a description for the file is online select if the file is accessible externally is private select if the file is visible only by you download a file download an existing file by its internal id or external id connection netsuite docid\ zjdyh3cmlfgrysiqsaays internal id enter the internal id of the file you want to download external id enter the external id of the file you want to download attach a file attaches a file to a record by its id and the record id connection netsuite docid\ zjdyh3cmlfgrysiqsaays file either internal id or external id must be provided if both are provided, the internal id is used record type select the type of record to which you want to attach a file internal id enter the internal id of the file you want to attach external id enter the external id of the file you want to attach detach a file detaches a file from a record by its id and the record id connection netsuite docid\ zjdyh3cmlfgrysiqsaays file either internal id or external id must be provided if both are provided, the internal id is used record type select the type of record from which you want to detach a file internal id enter the internal id of the record you want to detach external id enter the external id of the record you want to detach create or update a folder creates or updates a folder by its internal id or external id connection netsuite docid\ zjdyh3cmlfgrysiqsaays action select the action you want to take create a folder internal id update a folder internal id create or update a folder external id description enter a description for the folder folder type select the type of folder parent provide the internal id or external id of the parent folder if both are provided, the internal id is used is online select if you want this folder accessible externally is private select if you want the folder to be visible only by you is inactive select if you want to inactivate this folder other make a soap api call performs an arbitrary authorized api call connection netsuite docid\ zjdyh3cmlfgrysiqsaays action select or map an action for the call for example, search body enter the body content for your api call for example, \<platformmsgs\ getall>\<platformcore\ record recordtype="currency" />\</platformmsgs\ getall> header enter the desired request headers you don't have to add authorization headers; we've already added those for you soap version enter a valid soap version to apply for the call for example, netsuiteport 2022 1 predefined namespaces for making a soap api request namespace target platformcore /xsd/platform/v2022 1 0/core xsd platformcoretyp /xsd/platform/v2022 1 0/coretypes xsd platformmsgs /xsd/platform/v2022 1 0/messages xsd platformcommon /xsd/platform/v2022 1 0/common xsd platformcommontyp /xsd/platform/v2022 1 0/commontypes xsd actsched /xsd/activities/v2022 1 0/scheduling xsd actschedtyp /xsd/activities/v2022 1 0/schedulingtypes xsd demandplanning /xsd/transactions/v2022 1 0/demandplanning xsd demandplanningtyp /xsd/transactions/v2022 1 0/demandplanningtypes xsd docfilecab /xsd/documents/v2022 1 0/filecabinet xsd docfilecabtyp /xsd/documents/v2022 1 0/filecabinettypes xsd generalcomm /xsd/general/v2022 1 0/communication xsd generalcommtyp /xsd/general/v2022 1 0/communicationtypes xsd listacct /xsd/lists/v2022 1 0/accounting xsd listaccttyp /xsd/lists/v2022 1 0/accountingtypes xsd listemp /xsd/lists/v2022 1 0/employees xsd listemptyp /xsd/lists/v2022 1 0/employeetypes xsd listmkt /xsd/lists/v2022 1 0/marketing xsd listmkttyp /xsd/lists/v2022 1 0/marketingtypes xsd listrel /xsd/lists/v2022 1 0/relationships xsd listreltyp /xsd/lists/v2022 1 0/relationshiptypes xsd listscm /xsd/lists/v2022 1 0/supplychain xsd listscmtyp /xsd/lists/v2022 1 0/supplychaintypes xsd listsupport /xsd/lists/v2022 1 0/support xsd listsupporttyp /xsd/lists/v2022 1 0/supporttypes xsd listsite /xsd/lists/v2022 1 0/website xsd listsitetyp /xsd/lists/v2022 1 0/websitetypes xsd setupcustom /xsd/setup/v2022 1 0/customization xsd setupcustomtyp /xsd/setup/v2022 1 0/customizationtypes xsd tranbank /xsd/transactions/v2022 1 0/bank xsd tranbanktyp /xsd/transactions/v2022 1 0/banktypes xsd trancust /xsd/transactions/v2022 1 0/customers xsd trancusttyp /xsd/transactions/v2022 1 0/customertypes xsd traninvt /xsd/transactions/v2022 1 0/inventory xsd traninvttyp /xsd/transactions/v2022 1 0/inventorytypes xsd tranemp /xsd/transactions/v2022 1 0/employees xsd tranemptyp /xsd/transactions/v2022 1 0/employeetypes xsd tranfin /xsd/transactions/v2022 1 0/financial xsd tranfintyp /xsd/transactions/v2022 1 0/financialtypes xsd trangeneral /xsd/transactions/v2022 1 0/general xsd tranpurch /xsd/transactions/v2022 1 0/purchases xsd tranpurchtyp /xsd/transactions/v2022 1 0/purchasetypes xsd transales /xsd/transactions/v2022 1 0/sales xsd transalestyp /xsd/transactions/v2022 1 0/saletypes xsd 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 connection netsuite docid\ zjdyh3cmlfgrysiqsaays url enter a path relative to https //{accountid} suitetalk api netsuite com/services/rest for example, /record/v1/customer method select the http method you want to use get to retrieve information for an entry post to create a new entry put to update/replace an existing entry patch to make a partial entry update delete to delete an entry options to identify allowed request methods headers you don't have to add authorization headers and content type as they are already added for you query string enter the request query string body enter the body content for your api call it must be a valid json string 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 connection netsuite docid\ zjdyh3cmlfgrysiqsaays script id enter the script record’s id deploy id enter the deployment record’s id method select the http method you want to use get to retrieve information for an entry post to create a new entry put to update/replace an existing entry delete to delete an entry header you don't have to add authorization headers and content type as they are already added for you query string enter the request query string body enter the body content for your api call it must be a valid json string run a suiteql query executes a suiteql query connection netsuite docid\ zjdyh3cmlfgrysiqsaays query for more information on building a query, visit the netsuite documentation https //docs oracle com/en/cloud/saas/netsuite/ns online help/section 156257799794 html limit the maximum number of results to be worked with during one execution cycle the number must be between 1 and 3200 offset the number of results to be skipped, it must be divisible by the page limit 100 use this field with a repeater module only if you want to get more than 3200 results 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