Home  /  Blog  /  Salesforce and NetSuite integration

NetSuite8 min readPublished November 2025Updated September 2026

Salesforce and NetSuite integration: the four routes, what syncs, and what breaks at month-end

Nare KhachatryanHead of Marketing, Hundred MS. Reviewed by Narek Abgaryan, CFA, FRM.
Illustration of a Salesforce NetSuite integration as two teal boxes joined by a yellow bridge with packets traveling both ways
The short answer

A Salesforce and NetSuite integration moves a short list of records: accounts to customers, closed-won opportunities to sales orders, items to products, contacts, and invoices and balances back to Salesforce as read-only financial records. You can build it four ways: Oracle's own NetSuite Connector for Salesforce, Celigo's prebuilt integration app, an integration platform such as Boomi or MuleSoft, or custom code on NetSuite's REST web services. Whichever you choose, decide first that NetSuite is the system of record for anything financial, map subsidiaries, currencies, price levels and tax before you sync a single order, and check the SOAP deadline: Oracle stops new SOAP integrations with release 2027.1 and switches SOAP off in 2028.2.

Key takeaways
  • The record map and its directions matter more than the tool. Agree it with sales and finance before anyone builds.
  • Anything with a dollar sign is owned by NetSuite and read-only in Salesforce. Both vendors say so.
  • Ask every vendor for its REST path: Oracle stops new SOAP integrations with release 2027.1 and switches SOAP off in 2028.2.

What the integration actually moves

Sales lives in Salesforce, money lives in NetSuite, and the integration is the handover between them. Every vendor documents roughly the same list, and the direction of each line matters more than the tool.

RecordDirectionWhat the documentation says
Account to customerBoth ways, with rulesOracle: "A Salesforce account is the equivalent of a customer record in NetSuite." Uniqueness is subsidiary plus customer name, and a customer created in NetSuite does not create a Salesforce account
Closed-won opportunity to sales orderSalesforce to NetSuiteThe trigger in both Oracle's and Celigo's tools is the opportunity reaching Closed Won; the subsidiary must be set or the order is rejected
Sales order and fulfillmentNetSuite to SalesforceOnly for orders that started as a Salesforce opportunity; orders keyed straight into NetSuite stay outside the sync
Items to productsNetSuite to SalesforceItem name and number becomes product code; Celigo runs this as a scheduled flow, Oracle on record events
ContactsBoth waysProvided the account already exists as a customer
Invoices, payments, balances, credit holdsNetSuite to Salesforce, one wayOracle: "NetSuite is the source of truth for all information related to invoices." The records are read-only in Salesforce
Exchange ratesNetSuite to SalesforceCeligo syncs them daily so opportunity amounts convert correctly

The four routes

  1. Oracle's own NetSuite Connector for Salesforce. Built on Oracle Integration Cloud, sold as an add-on module, and it requires a OneWorld account with at least one subsidiary. It syncs the whole list above, with configurable triggers (sync on record creation, on a flag, or on criteria), needs an API-only integration user in Salesforce that cannot log in to the screen, and shows the twenty most recent failed syncs on a portlet. Its troubleshooting page is a useful preview of what goes wrong everywhere: subsidiary mismatch between the account and the product, an unmapped currency, a price level pointed at the wrong price book, a missing tax schedule, an empty date field.
  2. Celigo's Salesforce and NetSuite integration app. A prebuilt set of flows: accounts, opportunities to sales orders, contacts, fulfilments and transaction financials in real time; items to products, customer financials and exchange rates on a schedule. It installs two SuiteApps in NetSuite and two packages in Salesforce, uses token authentication, works with Salesforce Professional Edition within that edition's API limits, and is priced "by endpoints and flows". The quickstart template is the do-it-yourself version, with documented gaps.
  3. An integration platform: Boomi or MuleSoft. You build the flows yourself on their connectors. Boomi's classic NetSuite connector uses NetSuite's SOAP web services with token authentication and has a newer REST connector with OAuth 2.0; it is licensed per unique connection per runtime, and a test copy of a process with its own connections counts too. MuleSoft, a Salesforce company, ships a NetSuite connector that its own documentation says "does not support REST-based operations" (SOAP only), a separate connector for SuiteScript RESTlets, and packages that start "at $2,000 per month, billed annually". Both suit companies that already run the platform for other integrations.
  4. Custom code on NetSuite's REST web services. Oracle's guidance is plain: "All newly built integrations should use REST web services with OAuth 2.0", with SuiteScript RESTlets where REST does not yet cover an object. Cheapest to license, most expensive to own, right only if you have developers who will still be there in three years.
A question for your current setup

Pick last month's ten biggest invoices in NetSuite. Do all ten show the same balance in Salesforce today? If any differ, the integration is not one way, or it is failing quietly.

The clock on SOAP

This decides more projects than any feature list. Oracle has scheduled the removal of SOAP web services: the 2025.2 endpoint is the last planned one, from release 2027.1 you cannot build new integrations on SOAP or token-based authentication, and with 2028.2 "SOAP will no longer be available in NetSuite and existing SOAP integrations with NetSuite will stop working". Boomi's classic NetSuite connector and MuleSoft's NetSuite connector are SOAP-based today, and Oracle's own connector setup still asks for SOAP to be enabled. Before you sign with any vendor, ask one question: what is your REST path, and when does my integration move to it?

What breaks at month-end

  • Subsidiary and currency. In OneWorld every customer belongs to a subsidiary and inherits its currency. An opportunity with no subsidiary, or a product under a different subsidiary from the account, fails; an unmapped currency code fails. Map them first, for every entity.
  • Duplicates. Two accounts with the same name in the same subsidiary collide with Oracle's uniqueness rule; Celigo warns that duplicate real-time sync records silently stop flows. Clean the customer list before the first sync, not after.
  • Limits that only show in production. Salesforce allows 1,000 API requests per user license per 24 hours on the main editions, but a sandbox defaults to 5,000,000, so a test that passes can fail on go-live. NetSuite governs concurrent requests per account: five on the Standard tier, ten more per SuiteCloud Plus license, shared by every integration you run. A month-end batch competes with the bank feed and the reporting tool.
  • Things outside the sync. Orders keyed straight into NetSuite, invoices for those orders, customers created in NetSuite: none of it reaches Salesforce in Oracle's connector. Sales will ask why. Tell them before go-live.
  • Custom fields. Add or rename one in NetSuite and Boomi's connector must re-import the record type or the flow breaks. Put "check the integrations" on the change checklist.
Decide the system of record before the mapping

Salesforce's own billing documentation says the design "upholds the ERP as the system of record for GL and financial reporting", and Oracle says NetSuite is the source of truth for invoices. Write it down: anything with a dollar sign is owned by NetSuite and is read-only in Salesforce. Most integration arguments end when that sentence is agreed.

How to run the project so the books still tie

  1. List every record and its direction in one table, like the one above, and get sales and finance to sign it.
  2. Clean customers and items in both systems first. Duplicates do not merge in transit; they multiply.
  3. Map subsidiaries, currencies, price levels and tax schedules for every entity before the first test order.
  4. Build in sandboxes on both sides (NetSuite's is bought separately), and test with production-sized volumes, because the limits differ.
  5. Go live at a month end, and tie out the first month: every synced order against its invoice, every invoice balance in Salesforce against NetSuite.
  6. Give someone the failed-sync log as a daily task. An unnoticed failure in week one is a reconciliation problem in week five.

Where AI helps, and where it does not

AI is good at the mapping work: reading both field lists, proposing the match, spotting the customer duplicates and the currency codes that do not exist on the other side. It is also how we tie out a first month of synced orders in hours instead of days. It does not decide who owns the record, whether an opportunity is really an order, or what the subsidiary should be. Those are decisions for finance, made once, in writing.

Where we stand

We are accountants and NetSuite people, not middleware developers, and we do not resell any of these tools. Where we help is the part the integration vendors leave to you: the design of the record map, the subsidiary and currency rules, the clean-up before go-live and the tie-out after it, and the month-end close that has to work on the result. That is NetSuite consulting, and the first call is free.

Where this goes wrong

The problemWhat it costs youThe fix
The sync goes live before subsidiaries, currencies and price levels are mappedOrders fail one by one and sales blames financeMap every entity first and test with a real order from each
Testing only in sandboxesThe Salesforce sandbox allows millions of API calls; production allows about 1,000 per user license a dayTest at production volumes and read both limits before go-live
Nobody owns the failed-sync logA failure in week one becomes a reconciliation gap in week fiveA named person checks the log every morning
How we know

We design the record map, the subsidiary and currency rules and the tie-out for NetSuite clients who run Salesforce, and we close their books on the result. We build no middleware and resell no tool.

Sources we opened and checked for this guide:

First published 2025. Rewritten and checked in September 2026. If something here is out of date, tell us and we will fix it.

Want a second pair of eyes on this?

Bring the question to a free 30-minute call. You talk to the founder, and we tell you honestly whether we can help.

I have never seen another company solve such complicated issues in such a sophisticated way, coupled with such great NetSuite knowledge. They are real game changers.
Kevin WalkerKevin WalkerCFO, LIT

Salesforce and NetSuite integration: common questions.

1Does NetSuite have a native Salesforce integration?

Yes. Oracle sells the NetSuite Connector for Salesforce as an add-on module, built on Oracle Integration Cloud. It requires a OneWorld account with at least one subsidiary and a Salesforce edition with API access, and it syncs subsidiaries, items and products, accounts and customers, contacts, closed-won opportunities to sales orders, and invoices, payments and cash sales back to Salesforce as read-only records.

2Boomi or MuleSoft for a Salesforce and NetSuite integration?

Both are integration platforms you build on, and the honest answer is the one your company already runs, or will run for other integrations too. Boomi licenses per unique connection per runtime and has both SOAP and REST NetSuite connectors; MuleSoft is a Salesforce company, its NetSuite connector is SOAP only, and its packages start at $2,000 per month billed annually. For a plain Salesforce to NetSuite flow with no other systems, Oracle's connector or Celigo's app is usually the shorter road.

3Will my Salesforce integration stop working when NetSuite retires SOAP?

If it runs on SOAP web services, yes, unless it is moved. Oracle's schedule: 2025.2 is the last planned SOAP endpoint, no new SOAP or token-based integrations can be built from release 2027.1, and with release 2028.2 existing SOAP integrations stop working. Oracle says it will provide REST versions of its own applications and tells customers of partner tools to ask the partner for a REST-based version. Ask now.

4What data should live only in NetSuite?

Anything financial: invoices, payments, credit memos, balances, credit limits and revenue. Both vendors say so in their own words, and every serious integration sends those records to Salesforce one way and read-only. Sales data, pipeline and activities live in Salesforce. Customers, contacts and products are shared, with one system nominated as the master for each.

Bring us one number you don’t trust.

A 30-minute discovery call. No slides, no pitch. We look at one real problem in your books and tell you honestly whether we can fix it, and what it would cost.

  1. 1
    Pick a slotOne question on the form: your accounting system. Add a note about the number if you like.
  2. 2
    30 minutes with the founderWe look at the problem live, in your numbers.
  3. 3
    A written scope and quote within 2 daysTake it or leave it. Either way you understand your problem better.
Narek Abgaryan
You’ll talk to Narek AbgaryanCo-Founder & CEO · CFA, FRM

If we don’t think we can help, we say so on the call and point you somewhere better. We only take on work we can tie to the penny.

Not ready for a call? Email me the number instead.

narek.abgaryan@hundredms.com 727 625 4373 Hundred MS LLC · 7901 4th Street North, Ste 300, St. Petersburg, FL 33702 · we reply within one business day.
Book your discovery callFree · 30 min · no obligation
Illustration of a magnifying glass over a ledger with one line highlighted
Pick a time that suits you
  • 30 minutes
  • Free, no obligation
  • With the founder
See available times

or call 727 625 4373

Nothing is sold on the call.Open the calendar in a new tab →