NetSuite channel

Prev Next

Beta feature

This is a beta feature, which means we're still developing it. Some functionality may change.

Go to the Channels page to learn more about what plans have access to this channel. Sign into Quickbase, and then go to Pipelines > Channels.

NetSuite is a cloud-based business management platform that provides ERP, CRM, and e-commerce capabilities in a single system. It helps organizations manage financials, operations, and customer data in one place.

How to connect

  1. On the My pipelines page, select Create Pipeline.

  2. Search for or select a step, and then select it to add it to the pipeline.
    When you add a step to a pipeline, it is added to the canvas of the pipeline designer.

  3. Expand the Connection section of the step, and add the required information.

Connect to NetSuite

NetSuite connections require Token-Based Authentication.

Before you connect to NetSuite:

  1. Go to NetSuite and configure a role with the necessary permissions

  2. Assign the role to an entity

  3. Create an Integration Record with Token-Based Authentication enabled

  4. Generate an Access Token for that integration, role and user

Learn more in the NetSuite Help Center: Getting Started with Token-based Authentication, Manage TBA Tokens in the NetSuite UI

To connect to the NetSuite channel in Pipelines:

  1. Enter your Account ID and select Connect.
    To find your Account ID, log in to NetSuite and look at the URL in your browser. The Account ID appears as the subdomain, for example: https://{accountID}.app.netsuite.com

  2. Enter your Client ID, Client Secret, Token ID, and Token Secret
    The Client ID and Client Secret are only displayed once when you create an Integration Record. Similarly, the Token ID and Token Secret are only displayed once when you create an Access Token.

  3. Select Connect.

You've successfully connected your channel and can start using it.

How to reconnect

You may need to reconnect your account to a channel. Reasons may be (but not limited to):

  • If you need to connect a different account.

  • Authorization updates, such as a changed password.

  • Editing the access rights that Pipelines has to the channel.

To reconnect:

  1. Select a pipeline that already has this channel in it.

  2. Open a step that contains this channel.

  3. Under account, select Connect (or reconnect) and follow the process above, How to connect.

Steps

The steps you can use with NetSuite are grouped into a single category: NetSuite Record.

Note

You cannot use jinja expressions in trigger conditions unless explicitly specified as possible.

Type

Name

Description

NetSuite Record

 

 

Trigger

Record Created

Triggers when a new record is created within an account and is a specific record type.

Trigger

Record Updated

Triggers the pipeline when a specific record type in a particular account is updated.

Action

Create a Record

Creates a new record in an account of a particular record type. The payload size limit is 100MB.

Action

Update a Record

Updates a record found with a particular record type and subject. The payload size limit is 100MB.

Action

Delete a Record

Deletes a record found with a particular record type and subject.

Query

Generic SuiteQL Query

Executes SuiteQL Query.

Action

Look Up a Record

Looks for and returns a list of records based on search criteria.

Limits

  • Due to a NetSuite limitation, updates made to a record within the first minute after its created are not detected. This means that Record Updated triggers will not fire for changes made during that initial 1-minute period.

  • For certain NetSuite record types that don’t have a created_at field (for example, Location), Quickbase cannot distinguish between created and updated events. As a result, creating one of these records triggers the Record Updated trigger as well upon creation.

  • Some NetSuite fields are entity fields, meaning they must reference an existing entity record (such as a Customer, Vendor, Partner, Employee, or Contact). When populating an entity field in a NetSuite pipeline step, you must provide the internal ID of the entity you want to associate.

  • Some read-only fields appear in the channel’s steps as input fields. Any value entered in these fields is ignored.

  • NetSuite has a limit of 25 active Token-Based Authentication (TBA) Access Tokens per user. If the limit has been reached, you must revoke an existing token to generate a new one.

Troubleshooting

Remote API returned authentication error

When running a pipeline, if a step fails with the error Remote API returned authorization error: Permission violation, the NetSuite role associated with the connection does not have permission to access the selected record type or one or more of its related records.

The error message usually specifies which permission is missing (for example, Lists → Contacts). Update the integration role in NetSuite to grant the required access level and rerun the pipeline.

Error message indicating permission violation for accessing contact lists in the application.

Examples

Create a new NetSuite invoice from a Quickbase record

Set up your Quickbase app

Create a NetSuite app in Quickbase with these tables:

  • NS Customers to avoid manually entering Customer IDs

  • NS Locations to avoid manually entering Location IDs

  • NS Items to avoid manually entering Item IDs

  • NS Line Items to store items in each invoice

  • NS Invoices to store invoices before sending them to NetSuite

Create table-to-table relationships, so the app supports invoice creation:

  • Each NS Customer has many NS Invoices

  • Each NS Location has many NS Invoices

  • Each NS Item has many NS Line Items

  • Each NS Invoice has many NS Line Items

The final structure of the NetSuite app should match this setup:

Build supporting pipelines

You need a few pipelines to supply data, keep records current, and create invoices.

Get schema samples—Create a pipeline that retrieves a sample schema for each record type. The pipeline parses the json sample and creates a best-guess structured schema of the expected response. Even if a field is not present in the resulting schema, or has a different type, the pipeline continues to work.

To do so:

  • Create a pipeline with a GenericSuiteQL Query step for each table used in your invoice. In this example, we use customers, locations, and items.

  • In the Query field of the Generic SuiteQL Query step, enter a query that meets your needs.

    For example, to work with id and companyname in Customer records, enter the field value in the first pipeline step as: SELECT TOP 1 id, companyname FROM customer WHERE companyname IS NOT NULL

    For the Location and Item record types, use the id and fullname properties.

Run this pipeline one time in the beginning of your setup, and use the resulting json samples as input values for the Schema Sample fields of the respective downstream Generic SuiteQL Query steps.

Sync NetSuite data to Quickbase—Create pipelines to sync customers, locations, and items on a daily basis. The scheduling of the pipeline depends on your needs.

Each pipeline should:

  • Clear the related table in Quickbase

  • Pull the latest records from NetSuite

To do so, create a pipeline with these steps:

  • Remove Record(s)

  • Prepare Bulk Record Upsert

  • Generic SuiteQL Query

  • Loop for each Generic SuiteQL Query

  • Add a Bulk Upsert Row

  • Commit Upsert

This example shows updating the NS Locations table. Repeat for NS Customers and NS Items:

Pipeline diagram illustrating bulk record upsert process in NetSuite with various actions.

Create invoices in NetSuite—Create a pipeline that runs when a record in the NS Invoices table is updated and the send to NS checkbox is selected. Then, create an invoice in NetSuite.

To do so, create a pipeline with these steps:

  • When Record Updated

  • Search Records

  • Create a Record

Pipeline for updating records in NetSuite with filters and actions outlined clearly.

For the top-level fields in the Create a Record step, reference values from the Record Updated step.

For the item fields in the Create a Record step, reference the Search Records query step, as there may be more than one line item in an invoice:

Once everything is connected:

  • The reference tables stay up-to-date with NetSuite

  • Checking send to NS for an invoice record in Quickbase triggers automatic invoice creation in NetSuite

  • All line items transfer correctly

  • Your Quickbase app provides a simple, efficient way for users to create invoices that flow seamlessly into NetSuite