Pull from NetSuite
The Pull from NetSuite integration enables users to connect to any NetSuite account and pull in saved search results that have been built in the NetSuite UI. Multiple saved searches, across varying search types, can be configured in a single flow.
This step is currently offered to users on our Advanced Plan. Check out the Pricing Page for additional information.
The following document outlines the configuration requirements in NetSuite for creating the integration credentials, defining relevant role permissions, and running the integration in Parabola.
NetSuite configuration process
The following configuration steps are required in NetSuite prior to leveraging the Parabola integration:
- Create or select a web services only role that can be used by Parabola
- Create or select a user that will be used for the integration in NetSuite. Ensure the role from the step above is applied to this user record
- Create a new integration in Netsuite
- This will result in the creation of your consumer key and consumer secret
- Create a new set of access tokens that reference the user, role, and integration specified above
- This will result in the creation of your token id and token secret
Once complete, you will enter the unique credentials generated in the steps above into the Pull from NetSuite step in Parabola. This will also require your account id, which is obtained from your NetSuite account’s url. Ex: https://ACCOUNTID.app.netsuite.com/
The following document will review how to create each of the items above.
Creating a NetSuite role
The permissions specified on the role applied to your integration will determine which saved searches, transactions, lists, and results you’ll be able to access in Parabola. It is important for you to confirm that the role you plan to use has access to all of the relevant objects as required.
The following permissions are recommended, in addition to any specific transaction/list/report specific you may require.
Transactions
- Any specific transaction types required: sales orders, purchase orders, transfer orders, etc.
- Find transaction
Reports
- Any specific report types required
Lists
- Any specific lists required: items, locations, companies, customers, etc.
- Perform search, persist search, and publish search
Setup
- Log in using Access Tokens
- SOAP Web Services
Custom Records:
- Any specific custom record objects required
Ensure the checkbox for the web services only role is selected.
Creating a NetSuite integration
Video walk-though of the setup process:
Follow the path below in the NetSuite UI to create a new integration record.
- Setup > Integration > Manage Integrations > New
- Specify an integration name, ensure the status is set to active, and select the token-based authentication option.
- Uncheck the TBA: Authorization Role and Authorization Code Grant checkboxes.
- Save the record.
A consumer key and consumer secret will be generated upon saving the record. Record these items, as they will disappear once you leave this page.
Creating a new access token
Once the role, user, and integration have been created, you’ll need to generate the tokens which are required for authentication in Parabola.
Follow the path below in the NetSuite UI to create a new token record.
- Setup > Users/Roles > Access Tokens > New Access Tokens
- Specify the integration created previously, the desired user, and role, and click save.
- The newly created token id and token secret will appear at the bottom of the page. Record these credentials, as they will disappear once you leave this page.
Configure your settings in Parabola
- Gather the credentials created from each step earlier in the process and navigate to the Pull from NetSuite step in Parabola.
- Open the Pull from NetSuite step and click Authorize or Edit Accounts
- Enter each applicable token and consumer key/secret and click authorize.
Once authorized, you’ll be prompted to select a search type and specific saved search to run. Click refresh and observe your results!
The Return only columns specified in the search checkbox enables a user to determine if all available columns, or only the columns included in the original search, should be returned. This setting is helpful if you’d like to return additional data elements for filtered records without having to update your search in NetSuite.
Helpful Tips
- The Pull from NetSuite step integrates directly with the saved search function. Based on permissions, users have the ability to access all saved searches from the NetSuite UI within Parabola.
- If no saved search options are returned for a specific transaction type, please validate your user and role have access to the specific object you’re attempting to access.
- Users will need permissions within NetSuite to create new integrations, manage access tokens, edit roles, etc. in order to generate the credentials required for this integration
- Formula fields within saved searches will not be returned
- Saved searches which include summary results are not supported
- Ensure the user/role configured for the integration has sufficient permissions to access all necessary saved searches and results
By default, the NetSuite API will only return the full data results from the underlying search record type (item, customer, transaction, etc) and only the internal ids of related record types (vendors, locations, etc) in a search.
For example, running the following search in Parabola would return all of the information as expected from the base record type (item in this scenario), and the internal id of the related object (vendor).
The best way to return additional details from related objects (vendor in this scenario) is by adding joined fields within the search. Multiple joined fields can be added to a single search to return data as necessary.
Alternatively, another solution would be running separate searches and joining the results by using a Combine Tables step within the flow. This is demonstrated below.
Usage notes
- Users will need permissions within NetSuite to create new integrations, manage access tokens, edit roles, etc. in order to generate the credentials required for this integration
- Formula fields within saved searches will not be returned
- Saved searches which include summary results are not supported
- Ensure the user/role configured for the integration has sufficient permissions to access all necessary saved searches and results
Query and Update data from NetSuite
The NetSuite REST Web Services API is used to interact programmatically with NetSuite data, allowing developers to manage, retrieve, and manipulate data and execute business operations directly in NetSuite. SuiteQL is a query language to provide advanced query capabilities to access your NetSuite records and data.
Use Cases
🤝 NetSuite | Integration configuration
📖 NetSuite API Reference docs:
https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_1540811107.html
🔎 NetSuite SuiteQL Example docs:
🔐 NetSuite Authentication docs:
https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_158074210415.html
Instructions
- Ensure appropriate features are enabled
- Navigate to Setup > Company > Enable features > SuiteCloud tab.
- Enable the following features:
- Select SuiteTalk > Rest Web Services.
- Select Manage Authentication > OAuth 2.0.
- Enable the following features:
- Navigate to Setup > Company > Enable features > SuiteCloud tab.
- Ensure the role assigned to the user that will be leveraged for the integration has the following permissions:
- Enable permissions for your role: Setup > Users/Roles > Manage roles >
Name of your role
> Edit. - Enable the following permissions:
- Select Permissions > Setup > Log in using OAuth 2.0 Access Tokens(Full), OAuth 2.0 Authorize Applications Management(Full) and REST Web Services(Full).
- Enable permissions for your role: Setup > Users/Roles > Manage roles >
- Create OAuth 2.0 Client for NetSuite
- Navigate to Setup > Integrations > Manage Integrations > New
- Give it a name Parabola OAuth 2.0
- Uncheck all items under token-based authentication
- Under OAuth2.0
- Check Authorization Code Grant
- Check Rest Web service' under Scopes
- Add
https://parabola.io/api/steps/generic_api/callback
within the Redirect URI field - Click save
- Copy the following values that are generated:
- Application ID
- Client ID
- Client Secret
🔐 Parabola | Authentication configuration
- Add a Pull from API step to your canvas.
- Click into the step to configure your authentication.
- Under the Authentication Type, select OAuth 2.0 before selecting Configure Auth.
- Toggle on Switch to custom settings
Auth name
Give your authorization account an identifiable name.
Authorization Request URL (GET)
https://<account-id>.app.netsuite.com/app/login/oauth2/authorize.nl
💡 Tip: Swap in your account-id into the Authorization Request URL.
URL Parameters
Access Token Request URL (POST)
https://<account-id>.suitetalk.api.netsuite.com/services/rest/auth/oauth2/v1/token
💡 Tip: Swap in your account-id into the Authorization Request URL.
Request Body
Refresh Token Request URL (POST)
https://<account-id>.suitetalk.api.netsuite.com/services/rest/auth/oauth2/v1/token
💡 Tip: Swap in your account-id into the Authorization Request URL.
Request Body
Example Screenshot
🌐 NetSuite | Sample API Requests
Query NetSuite data with SuiteQL
Run a SuiteQL query to retrieve data from a record. Get started with this template.
- Add a Query NetSuite Data with SuiteQL step to your Flow.
- Click into the Pull from API: SuiteQL step.
- Under Authentication Type, select OAuth 2.0 to use your authentication credentials.
- Click into the Request Settings to configure your request using the format below:
API Endpoint URL
Request Body
Pagination Style
- Select Offset and Limit
- Set the Offset key field .
- Set the Starting value field to 0.
- Set the Increment by field to 100.
- Set the Limit key field to limit.
- Set the Limit value field to 100.
- Enter the number of pages to return using Pages to fetch while editing and Pages to fetch while running fields. Each page returns 100 orders.
- Click Refresh data to display the results.
- Use an Expand JSON step to parse nested JSON objects into a tabular structure.
- Finish off Flow by exporting you date using a Send to Parabola Table step.
Example Screenshots
Update Sales Order Line Items
Update the properties of your sales orders by making API requests to NetSuite’s SuiteTalk REST web services. Get started with this template
- Use a Pull from NetSuite step to pull in a saved Transaction search with applicable order details.
- Connect it to a Send to API: Update NetSuite SO Line Items step to your Flow.
- Under Authentication Type, select OAuth 2.0 to use your authentication credentials.
- Click into the Request Settings to configure your request using the format below:
API Endpoint URL
⚠️ Note: An Internal Id associated with the sales order must be provided.
Request Body
⚠️ Note: Depending on the property, custom fields can accept string values or Internal Ids. If a property is configured to accept an Id, using the property’s literal string value will throw an error.