NetSuite to Snowflake
Sync NetSuite transactions, accounts, customers, vendors and items into Snowflake, and keep them current with incremental syncs. Weld connects through NetSuite's REST web services with token-based authentication, and loads as many tables in parallel as your NetSuite concurrency limit allows.
Checked against Weld and vendor docs on
- transaction106 cols
- transactionline68 cols
- item34 cols
- entity33 cols
- transactionaccountingline16 cols
- deletedrecord12 cols
- Extract
- Load
- Keep in sync
- netsuite.transactionSynced
- netsuite.transactionlineSyncing
- netsuite.itemSynced
- netsuite.entitySynced
- netsuite.transactionaccountinglineSynced
- netsuite.deletedrecordSynced
- NetSuite tables
- 9
- fields, typed
- 291
- agent context included
- MCP
Trusted by data and AI teams
Three ways to get NetSuite data into Snowflake
Snowflake's Openflow connector list has no NetSuite connector, so there is no Snowflake managed path. NetSuite's own export route is SuiteAnalytics Connect, a read-only ODBC, JDBC and ADO.NET service that you still need something to load from.
SuiteAnalytics Connect plus your own loader
- Best for
- Teams that already use the Connect drivers for BI
- Effort
- High: enable the Connect Service, install drivers, build and schedule the load into Snowflake
- Freshness
- Whatever you schedule
- Good to know
- Read-only. Oracle says it suits static or rarely changing data, and the older NetSuite.com data source is no longer supported as of 2025.1, so new work targets NetSuite2.com.
Custom script on NetSuite's REST APIs
- Best for
- Teams with engineers to own a pipeline
- Effort
- High: token-based auth, pagination, concurrency limits, schema changes
- Freshness
- Whatever you schedule
- Good to know
- The concurrency limit on your integration record caps how many requests run at once, so the script has to queue its calls and track changes itself for incremental loads.
Weld
- Best for
- Finance and operations reporting on NetSuite next to your other sources
- Effort
- Medium: a NetSuite role and integration record, then authorise in Weld
- Freshness
- Incremental syncs on your schedule
- Good to know
- Token-based authentication with a dedicated role, incremental syncs, column hashing and blocking, and atomic full loads into Snowflake.
How to sync NetSuite to Snowflake with Weld.
In the app, with the API or an agent.
What lands in Snowflake
Every NetSuite table, keys intact.
NetSuite has no fixed table list in Weld: the tables on offer depend on your account and on the records the connecting role can see. Finance reporting usually starts from NetSuite's transaction records.
- transaction106 columns
- idPKstring
- recordtypestring
- typestring
- abbrevtypestring
- tranidstring
One row per transaction header: invoices, bills, journals, sales orders and payments, with type, date, status and entity.
- transaction lines
The lines on each transaction, with item, quantity and amounts. The level most revenue and margin reports work at.
- transaction accounting lines
The general ledger impact of each line: account, debit, credit and whether it posts. The base for a trial balance or P&L.
- account, entity and item
The chart of accounts, customers and vendors, and products and services that transactions point to.
- transaction
- transactionline
- item
- entity
- transactionaccountingline
- deletedrecord
- accounttype
- inventorynumberlocation
- accountingperiodfiscalcalendars
Posted amount per account per month.
In Snowflake SQL.
Illustrative, for Snowflake with Weld's default lower case quoted names in a schema named netsuite. It uses NetSuite's own record and field names (transaction, transactionaccountingline, trandate, account, amount, posting); check them against the tables in your sync and replace any that differ.
1select2 date_trunc('month', t."trandate") as month,3 tal."account",4 sum(tal."amount") as posted_amount5from "netsuite"."transactionaccountingline" as tal6join "netsuite"."transaction" as t7 on t."id" = tal."transaction"8where tal."posting" = true9group by 1, 210order by 1 desc, 2Ask your agent.
It queries Snowflake for you.
Connect Claude, Cursor, ChatGPT or your own agent to Weld over MCP. It reads the NetSuite context, finds the tables it needs and runs the query in Snowflake.
How many transaction rows do we have in Snowflake?
Reading the NetSuite context first, so the query uses the right tables and keys.
Things to know.
Before you sync NetSuite.
- Concurrency limits set the speed
- Weld syncs as many tables at once as the concurrency limit on its NetSuite integration record. Set it as high as your licence allows, match it in Weld, and expect the first sync of many tables to take a while.
- The role decides what you see
- Weld can only read records the connecting role has permission for. If a table is missing or empty, check the role's Transactions, Lists and Reports permissions before anything else.
- Access tokens are capped per user
- NetSuite allows 25 active token-based access tokens per user. Reconnecting repeatedly with the same user can hit that cap; revoke old tokens under Setup, Users/Roles, Access Tokens.
- Quote names, or turn on upper case
- Weld quotes every name it writes in Snowflake, so lower case tables must be queried with quotes. Turn on upper case names when you create the sync to query without quotes; it cannot be changed afterwards.
Keep reading.
Guides, docs and schema.
Common questions.
About NetSuite to Snowflake.
Start syncing NetSuite to Snowflake.
Set up your NetSuite data pipeline in minutes. No credit card required. Free for 14 days.