Skip to main content

NetSuite

With NetSuite modules in Make, you can watch, search, create or update, retrieve, and delete standard and custom records.

Note

To use the NetSuite app in Make, you must have the Make Enterprise 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. The account must have admin or system administration permissions..

The following steps are required before creating the connection in Make:

Connect NetSuite to Make

To establish the connection, you must:

  1. Enable token-based authentication.

  2. Create Consumer Key and Consumer Secret credentials.

  3. Create and assign roles.

  4. Establish the connection in Make.

Enable token-based authentication

To enable token-based authentication and SOAP/REST webservice:

  1. Log in to your NetSuite account as an admin.

  2. Click Setup > Company > Enable Features.

    Netsuite-7.png
  3. Click SuiteCloud and select the following options:

    Section

    Options

    SuiteScript

    CLIENT SUITESCRIPT; SERVER SUITESCRIPT

    SuiteTalk (Web Services)

    SOAP WEB SERVICES

    REST WEB SERVICES

    Manage Authentication

    SUITESIGNON; TOKEN-BASED AUTHENTICATION

  4. 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.

  1. Navigate to Setup > Integration > Manage Integrations > New.

    NetSuite_3.png
  2. 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.

  3. Click Save.

  4. Copy the Consumer Key and Consumer Secret and save them in a safe place.

    NetSuite_5.png

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.

  1. To access the roles page, search for Page:roles.

  2. Click Edit next to Manage Roles.

    Netsuite_9.png
  3. Click New Role.

  4. 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

    • 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.

  5. Search for Page:Employees to assign the role to a user.

    Netsuite-10.png
  6. 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.

  7. Click Access > Roles, add the new role you have created, and click Save.

    Screenshot_2023-01-23_at_6_57_54_PM.png

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.

  1. Log in to your Make account, add a NetSuite module to your scenario, and click Create a connection.

  2. Optional: In the Connection name field, enter a name for the connection.

  3. In the Consumer Key and Consumer Secret fields, enter the credentials that you generated in NetSuite.

  4. Click Save.

  5. If prompted, authenticate your account and confirm access.

You have successfully established the connection. You can now edit your scenario and add more NetSuite modules. If your connection requires reauthorization at any point, follow the connection renewal steps here.

NetSuite connections and token-based authentication

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.

Note

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 about checking if the token is valid.

Standard Record

You can watch, search, create or update, retrieve, and delete records using the following modules.

Note

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.

Triggers when a record is created or updated.

Connection

Establish a connection to your NetSuite account.

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.

Retrieves a list of records filtered by a query.

Connection

Establish a connection to your NetSuite account.

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:

  1. In Search Record Type, select Transaction Search.

  2. Under Search Filter, select Type [Enum].

  3. Select the Enum (separated by,) operator.

  4. 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

In the picture below, you see the example of filtering by the Sales Order type of transactions.

netsuite_enum_filter.png

Creates or updates an existing record by its ID.

Connection

Establish a connection to your NetSuite account.

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.

Retrieves the details of an existing record by its ID.

Connection

Establish a connection to your NetSuite account.

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.

Internal_ID.png

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.

Removes a record by its type and ID.

Connection

Establish a connection to your NetSuite account.

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.

Internal_ID.png

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.

Retrieves a list of custom records filtered by a query.

Connection

Establish a connection to your NetSuite account.

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.

Creates a new custom record.

Connection

Establish a connection to your NetSuite account.

Custom Record Type

Select the custom record type and enter details for the record you want to create.

Retrieves the details of the custom record by its ID.

Connection

Establish a connection to your NetSuite account.

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.

Internal_ID.png

Updates a custom record by its ID.

Connection

Establish a connection to your NetSuite account.

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.

Internal_ID.png

Deletes a custom record by its ID.

Connection

Establish a connection to your NetSuite account.

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.

Internal_ID.png

Other

Performs an arbitrary authorized API call.

Connection

Establish a connection to your NetSuite account.

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

For more information, see the NetSuite SOAP API Documentation.

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>

Note

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

NetSuite-14.png

Matches of the search can be found in the module's Output under Bundle. In our example, 5 messages were returned:

NetSuite-17.png

Performs an arbitrary authorized REST API call.

Note

The Beta endpoints are available only if you are enrolled and have joined the Oracle NetSuite Beta programs.

netsuite-19.png

Connection

Establish a connection to your NetSuite account.

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

Netsuite_REST_API_Call_entry.png

Search results can be found in the module's Output under Bundle. In our example, 313 customers were returned.

NetSuite_REST_API_Call_results.png

Performs an arbitrary authorized RESTlet API call.

Note

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.

Connection

Establish a connection to your NetSuite account.

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.

Executes a SuiteQL query.

Connection

Establish a connection to your NetSuite account.

Query

For more information on building a query, visit the NetSuite documentation.

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.

For more information, see the NetSuite SuiteQL documentation.

Example of Use - Customer Information

The following SuiteQL Query returns information for three customers from your NetSuite account.

Query: SELECT * FROM customer

Limit: 3

NetSuite_Query_1.png

Results can be found in the module's Output under Bundle. In our example, 3 customers and their information were returned.

NetSuite_Query_2_updated.png