Supported objects

Sequin supports all custom NetSuite objects, as well as all custom NetSuite fields. Sequin also supports the following standard NetSuite objects:

Communication Records

Collection NameReadWrite
Eventβœ…
Messageβœ…
Phone Callβœ…
Taskβœ…βœ…

Entity Records

Collection NameReadWrite
Contactβœ…βœ…
Contact Categoryβœ…βœ…
Contact Roleβœ…βœ…
Customerβœ…βœ…
Employeeβœ…βœ…
Vendor Categoryβœ…βœ…

List Records

Collection NameReadWrite
Binβœ…βœ…
Unit of Measureβœ…

ERP Records

Collection NameReadWrite
Accountβœ…βœ…
Accounting Periodβœ…
Advanced Intercompany Journal Entryβœ…βœ…
Bin Transferβœ…βœ…
Classβœ…
Cost Categoryβœ…
Customer Categoryβœ…βœ…
Customer Depositβœ…βœ…
Customer Paymentβœ…βœ…
Customer Refundβœ…βœ…
Customer Subsidiary Relationshipβœ…βœ…
Departmentβœ…βœ…
Depositβœ…
Deposit Applicationβœ…
Description Itemβœ…βœ…
Discount Itemβœ…βœ…
Expense Categoryβœ…βœ…
Expense Reportβœ…
Fulfillment Requestβœ…
Inbound Shipmentβœ…
Intercompany Journal Entryβœ…βœ…
Intercompany Transfer Orderβœ…βœ…
Inventory Adjustmentβœ…βœ…
Inventory Cost Revaluationβœ…βœ…
Inventory Countβœ…βœ…
Inventory Itemβœ…βœ…
Inventory Numberβœ…
Inventory Transferβœ…βœ…
Item Fulfillmentβœ…
Item Groupβœ…βœ…
Item Receiptβœ…
Jobβœ…βœ…
Job Statusβœ…
Job Typeβœ…βœ…
Journal Entryβœ…βœ…
Kit Itemβœ…βœ…
Locationβœ…βœ…
Nexusβœ…
Non-Inventory Purchase Itemsβœ…βœ…
Non-Inventory Sale Itemβœ…βœ…
Non-Inventory Resale Itemβœ…βœ…
Other Charge for Purchase Itemβœ…βœ…
Other Charge for Resale Itemβœ…βœ…
Other Nameβœ…βœ…
Other Name Categoryβœ…
Payment Itemβœ…βœ…
Project Taskβœ…βœ…
Purchase Orderβœ…βœ…
Requisitionβœ…βœ…
Sales Tax Itemβœ…βœ…
Service Purchase Itemβœ…βœ…
Service Resale Itemβœ…βœ…
Service Sale Itemβœ…βœ…
Ship Itemβœ…βœ…
Statistical Journal Entryβœ…
Subsidiaryβœ…βœ…
Subtotal Itemβœ…βœ…
Tax Typeβœ…
Time Bill (Track Time)βœ…βœ…
Transfer Orderβœ…βœ…
Vendorβœ…βœ…
Vendor Billβœ…βœ…
Vendor Creditβœ…βœ…
Vendor Prepaymentβœ…βœ…
Vendor Prepayment Applicationβœ…βœ…
Vendor Return Authorizationβœ…βœ…
Vendor Subsidiary Relationshipβœ…βœ…

Marketing Records

Collection NameReadWrite
Email Templateβœ…

SuiteBilling Records

Collection NameReadWrite
Assembly Itemβœ…βœ…
Billing Accountβœ…βœ…
Billing Scheduleβœ…βœ…
Change Orderβœ…βœ…
Chargeβœ…βœ…
Price Bookβœ…βœ…
Price Planβœ…βœ…
Pricing Groupβœ…βœ…
Subscriptionβœ…βœ…
Subscription Lineβœ…βœ…
Subscription Planβœ…βœ…
Subscription Termβœ…βœ…
Usageβœ…

Pricing Records

Collection NameReadWrite
Cash Refundβœ…βœ…
Cash Saleβœ…βœ…
Checkβœ…βœ…
Consolidated Exchange Rateβœ…
Credit Card Chargeβœ…βœ…
Credit Card Refundβœ…βœ…
Credit Memoβœ…βœ…
Currencyβœ…
Estimateβœ…βœ…
Invoiceβœ…βœ…
Markup Itemβœ…βœ…
Opportunityβœ…βœ…
Want a NetSuite object we’re not syncing? We can add it fast. Send us a note.

Setup & installation

Enable the OAuth 2.0 feature

First, you must ensure that OAuth 2.0 is enabled for your NetSuite account:
  1. Go to Setup > Company > Enable Features.
  2. Click the SuiteCloud sub-tab.
  3. In the SuiteScript section, check both Client SuiteScript and Server SuiteScript.
  4. In the Manage Authentication section, check the OAuth 2.0 box.
  5. Click Save.

Setup OAuth 2.0 roles

Next, you’ll need to setup a NetSuite user with OAuth 2.0 permissions. This will be the OAuth user that you use when connecting Sequin to your NetSuite account. First, create or customize a role with OAuth 2.0 permissions:
  1. Go to Setup > Users/Roles > Manage Roles.
  2. Select a role to customize and add OAuth 2.0 permissions.
Only administrators can create new roles or modify existing ones to add OAuth 2.0 permissions.
Then, assign the role to a user:
  1. Go to the user entity record (Lists > Employees > Employees for employees; List > Relationships for customers, partners, or vendors).
  2. Edit the user and go to the Access tab.
  3. On the Roles sub-tab, select the role you previously assigned OAuth 2.0 permissions and click Add.
  4. Click Save.

Create an integration record for the Sequin application

Next, you’ll need to create an integration record for Sequin:
  1. Go to Setup > Integration > New.
  2. Name the application β€œSequin.”
  3. Select β€œEnabled” in the State field.
  4. Under the Authentication tab, check the necessary OAuth 2.0 options (Authorization Code Grant, Client Credentials Grant, etc.).
  5. For the redirect URI, use https://api.sequin.io/api/oauth2/callback/netsuite.
  6. Click Save.
With OAuth 2.0 setup on your NetSuite instance, you’ll now be able to connect Sequin to your NetSuite account. Over on Sequin, add NetSuite as a source and follow the setup flow.

The syncing process

We first backfill your database with all your NetSuite data. The duration of the backfill depends on the size of your NetSuite account. NetSuite accounts with millions of records can take a couple hours to complete. Smaller accounts are typically completed in just a few minutes. We’ll email you when your backfill is complete and Sequin has loaded all your data into your database. After the initial backfill, Sequin will monitor NetSuite for changes. Changes are detected within seconds of occurring on NetSuite. Learn more about our syncing process.

Read and write NetSuite data using SQL

You’ll connect to your database via Sequin’s Postgres Proxy, which lets you read from your synced tables as well as write to them. You can use any SQL client that works with Postgres. Here’s an example of what your NetSuite tables might look like in your database:
db7nea89oah3tas=> \dt

                   List of relations
 Schema |           Name            | Type  |  Owner
--------+---------------------------+-------+----------
 public | _sync_cdc                 | table | sequin
 public | customer                  | table | sequin
 public | employee                  | table | sequin
 public | sales_order               | table | sequin
 public | item_fulfillment          | table | sequin
 public | invoice                   | table | sequin
(6 rows)

You’ll see all the NetSuite objects you selected when setting up your sync are now tables in your database. You’ll also see a _sync_cdc table which Sequin uses to manage your sync. Here’s what it looks like to query the customer table:
select
    entity_id,
    company_name,
    email,
    phone,
    date_created,
    last_order_date,
    sales_rep,
    balance,
    credit_limit
from
    customer
where
    entity_id = 'duke-leto|123456';

Which returns a row that looks like:
-[ RECORD 1 ]----+--------------------------------
entity_id        | duke-leto|123456
company_name     | House Atreides
email            | leto.atreides@dune.com
phone            | +199923456789
date_created     | 2023-11-10T08:00:00.000Z
last_order_date  | 2023-11-10T09:30:00.000Z
sales_rep        | Jessica Atreides
balance          | 50000.00
credit_limit     | 100000.00

Writing back to NetSuite is as simple as writing a SQL query. For example, you can update a customer’s credit limit like this:
update customer
set credit_limit = 150000.00
where entity_id = 'duke-leto|123456';

Sequin will write this change to both NetSuite and your database at the same time. If a write to NetSuite fails, Sequin will roll back the write to your database. For example, if you try to update a customer’s balance to an invalid amount, you’ll receive a Postgres error:
update customer
set balance = 'invalid-amount'
where entity_id = 'duke-leto|123456';

ERROR: [NetSuite] invalid input syntax for type numeric: "invalid-amount"

Next steps

Your NetSuite tables are now available as fully readable and writeable tables in your database. You can query for all your data using SQL, and mutate data thanks to Sequin’s Postgres Proxy. To build on this foundation, here are some next steps:
  • Setup your ORM to work with your synced tables.
  • Edit the NetSuite objects and properties you’re syncing at any time.
  • Create views on your NetSuite data to tailor your schema to your needs.
  • Invite your team to your Sequin account and start building!
If you need assistance setting up your sync, just send us a note. We’re around and eager to help.