
Configuring NetSuite as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the NetSuite option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need your NetSuite API credentials for this connection. These can be obtained from your NetSuite account’s Setup > Integration > Manage Integrations section. Once you have them, add the following credentials:- Consumer Key: Your NetSuite consumer key for API authentication, obtained from a TBA integration record.
- Consumer Secret: Your NetSuite consumer secret for API authentication, obtained from a TBA integration record.
- Token ID: Your NetSuite token ID for API authentication, obtained when creating a TBA token associated with the integration record created above.
- Token Secret: Your NetSuite token secret for API authentication, obtained when creating a TBA token associated with the integration record created above.
- Account ID: Your NetSuite account ID. This can be extracted from your NetSuite URL. For example, if your URL is
https://123456.app.netsuite.com/your account ID will be123456. - Date Filter Format: The date format to use for incremental syncs. Choose from:
DD/MM/YYYY(Brazilian format),MM/DD/YYYY(US format),YYYY-MM-DD(ISO format). This must match your NetSuite account configuration. - Start Date: Records created or updated after this date will be extracted from the source.
This connector uses Token Based Authentication (TBA). Follow this tutorial to know more on how to create these credentials.
2. Select streams
Choose which data streams you want to sync - you can select all streams or pick specific ones that matter most to you. The available streams are:- Billing Schedule
- Customers
- Department
- Items
- Location
- Previous Transaction Line Link
- Term
- Transaction Lines
- Transactions
Tip: The stream can be found more easily by typing its name.Select the streams and click Next.
3. Configure data streams
Customize how you want your data to appear in your catalog. Select a name for each table (which will contain the fetched data) and the type of sync.- Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix and make this process faster!
- Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
- Incremental: every time the extraction happens, we’ll get only the new or modified data since the last sync - which is good for maintaining an efficient data pipeline.
- Full table: every time the extraction happens, we’ll get the current state of the data - which is good if you want to ensure complete data accuracy.
4. Configure data source
Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently your NetSuite data is updated and how current you need your analytics to be. Optionally, you can determine when to execute a full sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while. Once you are ready, click Next to finalize the setup.5. Check your new source
You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.Streams and Fields
Below you’ll find all available data streams from NetSuite and their corresponding fields:Billing Schedule
Billing Schedule
Stream for fetching billing schedule records from NetSuite. Billing schedules define the recurring billing terms for transactions.Key Fields:
id- Internal IDname- Name of the billing schedulelinks- Links associated with the billing scheduleapplytosubtotal- Indicates if the schedule applies to the subtotalbillforactuals- Specifies if only actual time should be invoicedfrequency- Frequency of the billing recurrenceinarrears- Specifies if billing is in arrearsinitialamount- The initial amount to be billedisinactive- Indicates if the billing schedule is inactiveispublic- Indicates if the billing schedule is publicnumberremaining- Number of recurrences remainingrepeatevery- Repeat every X period(s)scheduletype- Type of scheduletransaction- Transaction ID
Customers
Customers
Stream for fetching customer information from NetSuite.Identification:
id- The customer’s system IDentityid- Entity IDexternalid- External IDentitytitle- Entity titlelinks- Links associated with the customer
companyname- Company namefirstname- First namelastname- Last namefullname- Full namealtname- Alternative name for the customer
email- Email addressphone- Phone numberemailpreference- Email preference settingemailtransactions- Email transactions flagfaxtransactions- Fax transactions flagprinttransactions- Print transactions flagglobalsubscriptionstatus- Global subscription statusunsubscribe- Unsubscribe flag
defaultbillingaddress- Default billing address IDdefaultshippingaddress- Default shipping address IDshippingcarrier- Shipping carriershipcomplete- Ship complete flag
currency- Currency IDbalancesearch- Customer balancedepositbalancesearch- Deposit balanceoverduebalancesearch- Overdue balanceunbilledorderssearch- Unbilled orders amountdaysoverduesearch- Days overdueoncredithold- Credit hold flagcreditholdoverride- Credit hold override statusreceivablesaccount- Receivables account
entitystatus- Entity statusisinactive- Inactive flagisperson- Person flagisjob- Job flagisbudgetapproved- Budget approved flagisautogeneratedrepresentingentity- Auto-generated representing entity flagduplicate- Duplicate flagalcoholrecipienttype- Type of alcohol recipient
firstsaledate- Date of first salefirstsaleperiod- First sale periodlastsaledate- Date of last salelastsaleperiod- Last sale periodprobability- Probability valuesearchstage- Search stage
toplevelparent- Top level parent ID
datecreated- Date customer was createddateclosed- Date account was closedlastmodifieddate- Last modified date
language- Language codecustom_fields- Array of custom fields with name and value pairs
Department
Department
Stream for fetching department records from NetSuite. Departments are used to track transactions and organize your business structure.Key Fields:
id- Internal IDname- Department namefullname- Full name of the departmentparent- Parent department IDincludechildren- Indicates if department includes childrenisinactive- Indicates if the department is inactivesubsidiary- Subsidiary IDlastmodifieddate- Date the department was last modified
Items
Items
Stream for fetching item records from NetSuite.Identification:
id- The item’s system IDitemid- Item ID codeexternalid- External IDdisplayname- Display namefullname- Full namedescription- Item descriptionlinks- Links associated with the item
itemtype- Type of itemsubtype- Item subtypeclass- Classdepartment- Departmentsubsidiary- Subsidiaries
cost- Costaveragecost- Average costlastpurchaseprice- Last purchase pricecostestimatetype- Cost estimate typedeposit- Deposit flag
expenseaccount- Expense accountincomeaccount- Income accountintercoexpenseaccount- Intercompany expense accountintercoincomeaccount- Intercompany income account
purchaseunit- Purchase unitsaleunit- Sales unitunitstype- Units typeweightunits- Weight unitsminimumquantity- Minimum quantityenforceminqtyinternally- Enforce minimum quantity internally flag
isdropshipitem- Dropship item flagisfulfillable- Fulfillable flagisspecialorderitem- Special order flagshipindividually- Ship individually flagmatchbilltoreceipt- Match bill to receipt flag
isinactive- Inactive flagisonline- Online flagincludechildren- Include children flagcopydescription- Copy description flagprintitems- Print items flaggenerateaccruals- Generate accruals flagusemarginalrates- Use marginal rates flag
createddate- Creation datelastmodifieddate- Last modified date
custom_fields- Array of custom fields with name and value pairs
Location
Location
Stream for fetching location records from NetSuite. Locations represent physical or logical places where inventory is stored or business is conducted.Key Fields:
id- Internal IDname- Location namefullname- Full name of the locationlinks- Links associated with the locationmainaddress- Main address of the locationincludeincontroltower- Flag for inclusion in control towerisinactive- Indicates if the location is inactivemakeinventoryavailable- Flag indicating inventory availabilitysubsidiary- Subsidiary IDlastmodifieddate- Last modified date
Previous Transaction Line Link
Previous Transaction Line Link
Stream for fetching links between related transaction lines. This stream is essential for understanding document flow (e.g., linking sales orders to invoices, purchase orders to vendor bills).Link Information:
linktype- Link type
previousdoc- Transaction ID of previous documentpreviousline- Line ID of the previous document lineprevioustype- Previous document typepreviousdate- Date of previous transaction
nextdoc- Transaction ID of next documentnextline- Line ID of the next document linenexttype- Next document typenextdate- Date of next transaction
foreignamount- Foreign amountdiscount- Discount indicator
lastmodifieddate- Last modified date
Term
Term
Stream for fetching payment term records from NetSuite. Terms define payment conditions such as due dates and discounts.Key Fields:
id- Internal IDname- Term namedatedriven- Date driven flagdaysuntilexpiry- Days until discount expiresdaysuntilnetdue- Days until net duediscountpercent- Discount percentageinstallment- Installment flagisinactive- Indicates if the term is inactivepreferred- Preferred flaglastmodifieddate- Last modified date
Transaction Lines
Transaction Lines
Stream for fetching transaction line-level details from NetSuite. Each transaction can have multiple lines representing individual items, charges, or accounting entries.Identification:
id- The transaction line’s system IDuniquekey- Unique key for the transaction linetransaction- Transaction ID for this linelinesequencenumber- Line sequence numberdocumentnumber- Document number for the linern- Row number
item- Item associated with this lineitemtype- Type of itementity- Entity related to the transaction line
quantity- Quantityquantitybilled- Quantity billedquantityshiprecv- Quantity shipped/receivedquantityrejected- Quantity rejectedunits- Units
rate- Raterateamount- Rate amountratepercent- Rate percentprice- Price for this line
grossamt- Gross amountnetamount- Net amounttaxamount- Tax amountbasegrossamt- Base gross amountbasetaxamount- Base tax amountforeignamount- Foreign amountforeignamountpaid- Foreign amount paidforeignamountpaidnopost- Foreign amount paid (no post)foreignamountunpaid- Foreign amount unpaidcreditforeignamount- Credit foreign amountdebitforeignamount- Debit foreign amountamountpending- Amount pendingsettlementamount- Settlement amount for the lineforeignpaymentamountunused- Foreign payment amount unusedforeignpaymentamountused- Foreign payment amount usedfxamountlinked- FX amount linked
costestimate- Cost estimatecostestimatebase- Cost estimate basecostestimaterate- Cost estimate ratecostestimatetype- Cost estimate typeestgrossprofit- Estimated gross profitestgrossprofitpercent- Estimated gross profit percent
accountinglinetype- Accounting line type (e.g. ACCOUNTSRECEIVABLE)expenseaccount- Expense accountmainline- Main line flagtaxline- Tax line flagiscogs- Is cost of goods sold flagisfxvariance- Is FX variance flagiscustomglline- Is custom GL line flagisrevrectransaction- Is revenue recognition transaction flageliminate- Elimination flag
location- Locationdepartment- Departmentclass- Classsubsidiary- Subsidiary
isclosed- Is closed flagisinventoryaffecting- Is inventory affecting flagisbillable- Is billable flagisfullyshipped- Is fully shipped flagfulfillable- Whether the line is fulfillablehasfulfillableitems- Has fulfillable items flaghascostline- Has cost line flagcleared- Cleared flagperiodclosed- Period closed flagisitemvalueadjustment- Is item value adjustment flagprocessedbyrevcommit- Processed by revenue commit flag
dropship- Drop ship flagspecialorder- Special order flagkitcomponent- Kit component flagmatchbilltoreceipt- Match bill to receipt flagcommitmentfirm- Commitment firm flagoldcommitmentfirm- Old commitment firm flagexcludefromraterequest- Exclude from rate request flagtransactiondiscount- Transaction discount flag
donotdisplayline- Do not display line flagdonotprintline- Do not print line flag
linecreateddate- Line created datelinelastmodifieddate- Line last modified dateactualshipdate- Actual ship dateexpectedreceiptdate- Expected receipt dateduedate- Due dateclosedate- Close date
createdfrom- ID of the source transaction that created this linebillingschedule- Billing schedulememo- Memo text
cseg_nscs_aloca_rec- Custom segment NSCS Allocation Recordcseg_nscs_class_crd- Custom segment NSCS Class CRDcustcol_atlas_promise_date- Custom: Atlas Promise Datecustcol_fte_i_line_sequence- Custom: FTE I Line Sequencecustcol_ftebr_l_cfop_code- Custom: FTEBR L CFOP Codecustcol_nscs_item_code- Custom: NSCS Item Code
custom_fields- Array of custom fields with name and value pairs
Transactions
Transactions
Stream for fetching transaction records from NetSuite.Identification:
id- The transaction’s system IDtranid- Transaction IDtransactionnumber- Transaction numbernumber- Transaction numberexternalid- External IDtrandisplayname- Transaction display nametypebaseddocumentnumber- Type-based document numberlinks- Links associated with the transaction
type- Transaction typeabbrevtype- Abbreviated transaction typerecordtype- Record typestatus- Statusapprovalstatus- Approval statuscustomform- Custom form IDcustomtype- Custom type
entity- Entity IDemail- Email address
trandate- Transaction datecreateddate- Creation datelastmodifieddate- Last modified dateclosedate- Close dateduedate- Due datestartdate- Start dateenddate- End dateprevdate- Previous datetaxpointdate- Tax point dateshipdate- Ship date
foreigntotal- Total in foreign currencyforeignamountpaid- Foreign amount paidforeignamountpaidnopost- Foreign amount paid (no post)foreignamountunpaid- Foreign amount unpaidamountunbilled- Unbilled amounttotalaftertaxes- Total after taxesbasetotalaftertaxes- Base total after taxestotalcostestimate- Total cost estimateestgrossprofit- Estimated gross profitestgrossprofitpercent- Estimated gross profit percentage
taxtotal- Tax totalbasetaxtotal- Base tax totaltaxdetailsoverride- Tax details override flagtaxpointdateoverride- Tax point date override flagtaxregoverride- Tax registration override flaglegacytax- Legacy tax flagentitytaxregnum- Entity tax registration numbersubsidiarytaxregnum- Subsidiary tax registration numbernexus- Tax nexus
currency- Currency IDexchangerate- Exchange rate
billingaddress- Billing address IDbillingstatus- Billing statusterms- Payment termsneedsbill- Needs bill flagpaymenthold- Payment hold flagisfinchrg- Is finance charge flagbalsegstatus- Balance segment status
shipcarrier- Shipping carriershipcomplete- Ship complete flagshippingaddress- Shipping address IDordpicked- Order picked flagprintedpickingticket- Printed picking ticket flag
posting- Posting flagpostingperiod- Posting period IDisreversal- Is reversal flagvoid- Void flagvoided- Voided flagmemorized- Memorized flagincludeinforceast- Include in forecast flag
intercoadj- Intercompany adjustment flagintercostatus- Intercompany statusintercotransaction- Intercompany transaction ID
tobeemailed- To be emailed flagtobefaxed- To be faxed flagtobeprinted- To be printed flagvisibletocustomer- Visible to customer flag
daysopen- Days transaction has been opendaysoverduesearch- Days overdue searchsource- Source of the transactionotherrefnum- Other reference numbermemo- Memo textcreatedby- Created by user IDlastmodifiedby- Last modified by user ID
userevenuearrangement- Use revenue arrangement flag
custom_fields- Array of custom fields with name and value pairs
Data Model
The following diagram illustrates the relationships between the core data streams in NetSuite. The arrows indicate the join keys that link the different entities.Implementation Notes
Data Types
Data Types
Due to NetSuiteQL limitations, all field values are returned as strings. You’ll need to convert numeric and date fields to their appropriate types in your data pipeline or queries:
- Dates: Parse strings like
2024-01-15to date types - Numbers: Convert numeric strings to integers or decimals
- Booleans: Values typically come as
"T"(true) or"F"(false)
Custom Fields
Custom Fields
NetSuite supports extensive customization through custom fields. These are captured in the
custom_fields array for each record, containing objects with name and value properties.Custom field names typically start with prefixes like:custentity_- Custom entity fieldscustcol_- Custom column (line-level) fieldscustbody_- Custom body (transaction-level) fieldscseg_- Custom segment fields
Incremental Sync
Incremental Sync
Most streams support incremental sync using the
lastmodifieddate field as the replication key. This allows for efficient data extraction by only fetching records that have changed since the last sync.Streams with incremental sync:- Customers (
lastmodifieddate) - Department (
lastmodifieddate) - Items (
lastmodifieddate) - Location (
lastmodifieddate) - Previous Transaction Line Link (
lastmodifieddate) - Term (
lastmodifieddate) - Transaction Lines (
linelastmodifieddate) - Transactions (
lastmodifieddate)
- Billing Schedule (no replication key)
Document Flow Tracking
Document Flow Tracking
The Previous Transaction Line Link stream is particularly valuable for understanding document flow in NetSuite. It tracks relationships between:
- Sales Orders → Invoices
- Purchase Orders → Vendor Bills
- Quotes → Sales Orders
- Invoices → Payments
previousdoc/nextdoc and previousline/nextline to trace the complete lifecycle of a transaction.