This version of NetSuite reached end of life on August 15, 2019 and is no longer functioning.
Upgrade to the latest version (v2) to continue replicating data.
NetSuite integration summary
Stitch’s NetSuite integration replicates data using the NetSuite SuiteTalk API (v2015_1). Refer to the Schema section for a list of objects available for replication.
NetSuite feature snapshot
A high-level look at Stitch's NetSuite (v10-15-2015) integration, including release status, useful links, and the features supported in Stitch.
STITCH | |||
Release status |
Sunset on August 15, 2019 |
Supported by | |
Stitch plan |
Standard |
API availability |
Not available |
Singer GitHub repository |
Not applicable |
||
REPLICATION SETTINGS | |||
Anchor Scheduling |
Supported |
Advanced Scheduling |
Unsupported |
Table-level reset |
Unsupported |
Configurable Replication Methods |
Unsupported |
DATA SELECTION | |||
Table selection |
Supported |
Column selection |
Unsupported |
Select all |
Supported |
||
TRANSPARENCY | |||
Extraction Logs |
Unsupported |
Loading Reports |
Supported |
NetSuite table reference
Schemas and versioning
Schemas and naming conventions can change from version to version, so we recommend verifying your integration’s version before continuing.
The schema and info displayed below is for version 10-15-2015 of this integration.
Deleted records
Stitch’s NetSuite integration includes a table called netsuite_deleted
; this table contains a row for every deleted record that supports deletes. Accounting for deleted records is especially important if you’re performing any sort of aggregate function - for example, totaling invoices or balancing your books.
For this reason, we recommend setting this table to replicate.
netsuite_deleted Table Schema
The attributes of the netsuite_deleted
table include:
- type: This indicates the type of record. For example: invoice.
- name: This is the name of the record. For example:
Invoice #INV197
- deletedDate: The date the record was deleted.
- customRecord: This indicates if the record was a custom record.
- internalId: This is the numerical ID of the record.
Custom records will look a little different than other records. In this case, you’ll see the following:
- type: This column will contain a numerical ID.
- name and internalId: The
internalId
of the record will display in both columns. - customRecord: This column will contain a
true
value.
For example: The first two records in this table are “normal” records, while the third is a custom record:
type | internalId | name | customRecord | deletedDate |
---|---|---|---|---|
invoice | 124831 | Invoice #INV197 | false | 2016-08-02T09:33:07.000-07:00 |
journalEntry | 111366 | Journal #JV13526 | false | 2016-08-04T12:01:22.000-07:00 |
19 | 128 | 128 | true | 2016-07-21T12:05:26.000-07:00 |
Accounting for deleted records
To account for deleted records, you can use a LEFT JOIN
to tie deleted records back to the appropriate table.
For example: The following query would return all invoice records that exist in the netsuite_transaction
and netsuite_deleted
tables:
SELECT *
FROM netsuite_transactions tran
LEFT JOIN netsuite_deleted del
ON tran.internalId = del.internalId
AND tran.type = 'invoice'
AND del.type = 'invoice'
If you’re using a data warehouse that is case-insensitive (like Redshift), some queries may result in errors. If this occurs, try using LOWER
to resolve the issue:
SELECT *
FROM netsuite_transactions tran
LEFT JOIN netsuite_deleted del
ON tran.internalId = del.internalId
AND LOWER(tran.type) = LOWER(del.type)
To filter out deleted records from other data, you can run a query like this one:
SELECT *
FROM netsuite_transactions tran
LEFT JOIN netsuite_deleted del
ON tran.internalId = del.internalId
AND LOWER(tran.type) = LOWER(del.type)
WHERE del.deletedDate is null;
Supported transaction types
The following table contains the transaction types Stitch’s NetSuite integration currently supports.
Table and column names in your destination
Depending on your destination, table and column names may not appear as they are outlined below.
For example: Object names are lowercased in Redshift (CusTomERs
> customers
), while case is maintained in PostgreSQL destinations (CusTomERs
> CusTomERs
). Refer to the Loading Guide for your destination for more info.
Related | Troubleshooting |
Questions? Feedback?
Did this article help? If you have questions or feedback, feel free to submit a pull request with your suggestions, open an issue on GitHub, or reach out to us.