· 13 min read

NetSuite Salesforce Integration: Options, Setup and Pitfalls

A NetSuite Salesforce integration lets sales close deals in Salesforce while NetSuite handles orders, invoices and cash, without anyone retyping a sales order. You can use Oracle’s own connector, a prebuilt integration app such as Celigo, an iPaaS or a custom build on NetSuite’s REST API. The tool matters less than three decisions: which system owns each record, how items and prices map, and what happens when an order changes after it syncs.
A CRM window and an ERP server stack connected by two-way arrows, with an order document and a coin moving between them
Connecting Salesforce and NetSuite?Send us your quote-to-cash flow. Our engineers can map it, build the integration and support it after launch.
Map my order flow

What a Salesforce NetSuite integration actually does

Salesforce is where deals happen. NetSuite is where orders are fulfilled, invoices go out and cash is recorded. Without an integration, someone copies every won deal into NetSuite by hand, and sales never knows whether the customer paid.

A good integration covers the full quote-to-cash loop:

  • Customers: a won account becomes a NetSuite customer, with the right subsidiary, currency and terms.
  • Items and prices: the NetSuite item catalog and price levels feed Salesforce products and price books, so reps quote what finance can bill.
  • Orders: a Closed Won opportunity (or an accepted quote) becomes a NetSuite sales order, or an estimate first if finance approves deals.
  • Status back to Salesforce: fulfillment, invoices, payments, open balance and credit limit show up on the account.
  • Subscriptions: for recurring revenue, contract dates and renewals line up with NetSuite billing (SuiteBilling, if you use it).

This guide covers that NetSuite flow in depth. If you connect Salesforce to a different ERP, the same logic applies; there are short notes on Business Central, Sage Intacct and Acumatica below and a separate Salesforce SAP integration guide. For the overall picture of Salesforce integrations, start with our Salesforce integration guide.

Quote-to-cash between Salesforce and NetSuite Salesforce (sales) NetSuite (finance, ops) Products, price books Account, opportunity, quote Order, invoice, payment status on the account Items, price levels Customer, sales order Fulfillment, invoice, payment 1. catalog and prices 2. won deal becomes an order 3. ship and bill 4. status flows back Every synced record stores the other system’s ID. Orange: the step where most integrations break (customer and order creation).
Data moves in a loop: catalog out of NetSuite, deals into NetSuite, status back to Salesforce. Each object has one owner.

Your integration options compared

There are four realistic routes. They differ less in what they can sync than in how much you can change and who maintains it.

1. Oracle’s NetSuite Connector for Salesforce

Oracle announced its own connector at SuiteWorld in September 2024, with North America first in line. According to the NetSuite help center, it now runs as the Salesforce Connector on NetSuite Connector Platform: you install the Connector Platform and Salesforce Connector SuiteApps in NetSuite, deploy a managed package in Salesforce, assign its permission set to an API-only integration user and configure page layouts. It requires a NetSuite OneWorld account. The prebuilt syncs cover accounts and customers, contacts, items and price books, opportunities to sales orders, and sales orders, fulfillments, invoices and payments back to Salesforce, along with balance and credit limit fields on the account. By default, an opportunity syncs to a sales order when it reaches Closed Won. Ask your Oracle account team about availability, licensing and price for your account; Oracle doesn’t publish a list price.

2. Prebuilt integration apps (Celigo and similar)

Celigo’s NetSuite–Salesforce integration app runs on its integrator.io platform and is one of the longest-established options for NetSuite customers. It ships with ready flows for accounts, contacts, items, opportunities to sales orders, fulfillments, and invoice and payment visibility in Salesforce (quotes go through an add-on), plus settings for common edge cases. Celigo’s release notes describe, for example, an “Allow Order updates to approved Sales Orders” setting that lets order updates reach a NetSuite sales order that is already past Pending Approval. Celigo doesn’t publish prices; it quotes them by edition and usage.

3. iPaaS or a Salesforce-native app

Boomi, Workato and MuleSoft all have NetSuite and Salesforce connectors and templates for opportunity-to-order flows. You build and own the recipes, which suits companies that also connect a billing system, a warehouse or an e-commerce store. Breadwinner takes a different angle: it is a Salesforce-native app on AppExchange that shows NetSuite invoices, orders and balances inside Salesforce and lets reps create NetSuite sales orders from an opportunity, without separate middleware.

4. Custom integration on NetSuite’s APIs

Your developers call SuiteTalk REST web services and RESTlets (server-side SuiteScript endpoints) on the NetSuite side and the Salesforce REST, Bulk or Platform Events APIs on the other. New builds should use REST with OAuth 2.0: according to NetSuite’s SOAP removal FAQ, SOAP can’t be used for new integrations from release 2027.1 and is planned to be removed with 2028.2.

OptionWhat syncs out of the boxDirectionCost levelEffort to launchMain limits
NetSuite Connector for SalesforceCustomers, contacts, items, pricing, opportunity to sales order, fulfillment, invoices, paymentsTwo-wayQuoted by OracleLow to mediumStandard records first; deep custom logic needs extra tooling; check regional availability
Celigo integration appAccounts, contacts, items, opportunity to order (quotes via an add-on), fulfillments, invoices, paymentsTwo-way$$ subscriptionLow to medium (weeks)Works best close to its built-in flows; heavy customizations add cost
iPaaS (Boomi, Workato, MuleSoft)Whatever you build; templates helpAny$$–$$$ subscription plus buildMedium to highYou own design, error handling and maintenance
Breadwinner (Salesforce-native)NetSuite customers, orders, invoices and payments in Salesforce; create orders from SalesforceTwo-way$$ subscriptionLowCentered on the Salesforce user experience; complex multi-system flows need more
Custom (SuiteTalk REST, RESTlets)Anything, including custom records and logicAny$$$ build plus upkeepHigh (months)Your team maintains it through every NetSuite and Salesforce release

Cost levels are relative. Connector and iPaaS vendors quote individually based on volume, flows and editions, so ask for a written quote that names the records and the volume you plan to sync.

Which option fits you

Five questions, about a minute. The result points to a starting option, not a final architecture.

Which Salesforce NetSuite integration fits you?

Object and field mapping

Agree on this table with sales ops and finance before anyone configures a tool. The "system of record" column decides which side wins when both change.

SalesforceNetSuiteDirectionSystem of recordNotes
AccountCustomer (created on first won deal)SF → NS, then status backSalesforce for sales fields, NetSuite for billing fieldsSubsidiary, currency, terms and tax settings live in NetSuite
ContactContactTwo-waySalesforceSync billing contacts only, not every lead
Product, price book entryItem, price levelNS → SFNetSuiteOne price book per currency or price level
Opportunity or QuoteEstimate or sales orderSF → NSSalesforce until syncedTrigger on Closed Won or quote acceptance, not on every save
Order (or custom object)Sales orderNS → SFNetSuite after syncStatus, ship date, order number for reps
Fulfillment (custom object)Item fulfillmentNS → SFNetSuiteTracking numbers, partial shipments
Invoice, payment (custom objects or live view)Invoice, customer payment, credit memoNS → SFNetSuiteRead-only in Salesforce
Account fieldsBalance, overdue balance, credit limitNS → SFNetSuiteUseful for renewals and credit holds
Contract, subscriptionSubscription (SuiteBilling) or recurring orderSF → NSDepends on where billing runsAgree who owns renewals and price changes

Two fields on every pair: the NetSuite internal ID on the Salesforce record and the Salesforce ID on the NetSuite record. They are how the integration finds a match instead of creating a duplicate.

How to set up the integration, step by step

These steps follow the most common path, a prebuilt connector or integration app. A custom build follows the same order with code in place of configuration.

  1. Write down the flow and the ownersOne page: which event creates the customer, which event creates the order (Closed Won, signed quote, approved estimate), what flows back, and who owns each object. Get sign-off from sales ops and the controller.
  2. Prepare sandboxes on both sidesA NetSuite sandbox account and a Salesforce full or partial-copy sandbox with realistic items, customers and price books. Never build the first version against production.
  3. Create dedicated integration usersIn NetSuite, a separate user with a custom role that grants only the records and permissions the integration needs, authenticated with OAuth 2.0 (according to NetSuite’s documentation, new integrations can’t use token-based authentication from release 2027.1). In Salesforce, an API-only integration user with a permission set limited to the synced objects. Enterprise, Unlimited and Performance editions include Salesforce Integration user licenses for this by default, and more can be purchased. Don't use a person’s login: syncs break when that person leaves.
  4. Install and connect the toolInstall the connector SuiteApp, the integration app or the managed package, and authorize both connections with the integration users. Add the connector’s fields and layouts to the account and opportunity pages.
  5. Map subsidiaries, currencies and tax firstDecide how a Salesforce account picks its NetSuite subsidiary and currency, and where tax is calculated. If these are blank or wrong, orders fail to post, so set defaults and validation rules in Salesforce.
  6. Sync items and prices, then customersRun the item and price sync from NetSuite and check that every active item has a Salesforce product and price book entry. Then match existing customers to accounts by ID or a clean key, and fix duplicates before turning on automatic creation.
  7. Turn on the order flow and test the full loopClose a test opportunity and follow it: sales order created, approved, fulfilled, invoiced, paid, and each status visible back in Salesforce. Test discounts, multi-currency deals, partial shipments, cancellations and an edit after sync.
  8. Set up error alerts and an ownerRoute failed records to a named person by email or Slack, with the reason. Decide how errors are fixed and retried, and who checks the error queue every day.
  9. Load history and go live in a quiet windowDecide how much history to bring over (often open orders and 12–24 months of invoices). Go live outside month-end close, and watch the first week of orders daily.

Built by Gilzor

Results we’ve shipped

70+products launched
98%delivered on time
85%clients come back
Art Scherbakov, Co-FounderAndrew Laminsky, CTOYuri Rudenya, Head of Mobile Development at GilzorAlena Timofeeva, Product Marketing Lead

Talk to the people who build it. Tell us about your project and get a free estimate of scope, timeline and cost.

See how we’d approach yours

Common pitfalls and how to fix them

PitfallWhat happensFix
Nobody decided who creates the customerDuplicates in NetSuite, prospects cluttering finance, orders on the wrong customerCreate the NetSuite customer only on the first won deal; match by stored IDs, never by name
Subsidiaries and currenciesOrders fail to post or land in the wrong subsidiary; prices in the wrong currencyRequired subsidiary and currency fields on the account; one price book per currency; test each subsidiary
Item mapping gapsReps sell products NetSuite doesn’t know; kits, bundles and discounts break ordersNetSuite owns the catalog; sync items to Salesforce, map bundles and discount items explicitly
Tax calculated in two placesTotals in Salesforce don’t match the invoiceCalculate tax in NetSuite (or your tax engine) and show the result in Salesforce, not the other way round
Edits after the order syncsA rep changes the opportunity and overwrites a fulfilled order, or changes are silently ignoredLock synced fields in Salesforce after the order is approved; send changes as a change request to finance
NetSuite concurrency limitsCalls rejected at peak times, partial syncs, failed batchesQueue and throttle requests, retry with backoff, schedule bulk jobs off-hours; check your limit on NetSuite’s Integration Governance page
Sync loopsAn update in one system triggers an update back, and records bounce foreverSkip changes made by the integration user; sync only fields that actually changed
Too much data syncedAPI usage climbs and Salesforce storage fills with invoice lines nobody readsSync invoice headers and status, show details live or on demand, leave GL data in NetSuite

Concurrency deserves a closer look. According to NetSuite’s documentation, every account has a concurrency limit shared by its web services and RESTlet integrations. The base limit depends on your service tier (for contracts since June 2020, from 5 on Standard to 15 on Premium and 20 on Enterprise and Ultimate), and each SuiteCloud Plus license adds 10. You can see your account’s limit on the Integration Governance page. Requests over the limit are rejected, so if Celigo, your e-commerce connector and a warehouse app all hit NetSuite at once, they compete for the same slots. Salesforce has its own rolling 24-hour API request allocation, which depends on your edition and licenses.

Salesforce ERP integration beyond NetSuite

The same quote-to-cash map works for any Salesforce ERP integration. What changes is the tooling available:

  • Microsoft Dynamics 365 Business Central. Microsoft’s built-in CRM integration targets Dynamics 365 Sales through Dataverse, not Salesforce. For a Salesforce Business Central integration you use a third-party connector from Microsoft AppSource, an iPaaS such as MuleSoft or Boomi, or a custom build on Business Central’s REST and OData APIs.
  • Sage Intacct. Sage offers its own Salesforce integration, the Sage Intacct Advanced CRM Integration, installed as a managed package. According to Sage’s documentation, it syncs accounts and contacts, products and price books, and order entry transactions such as sales quotes, sales orders, invoices and credit memos. Third-party connectors exist for flows it doesn’t cover.
  • Acumatica. Expect a partner connector or an iPaaS (Celigo has Salesforce–Acumatica templates), or a custom build on Acumatica’s REST API.
  • SAP and Oracle ERP. Enterprise ERPs usually connect through MuleSoft, SAP Integration Suite or Oracle Integration Cloud. See our Salesforce SAP integration guide for that path.

Whatever the ERP, the system-of-record table and the pitfalls above apply unchanged.

When a custom integration makes sense

Prebuilt tools handle the standard loop well. A custom build, or custom logic on top of an iPaaS, is worth it when:

  • Pricing is calculated outside both systems or depends on contract terms a connector can’t read.
  • You rely on NetSuite custom records or custom transaction types that the connector doesn’t support.
  • Several systems share the order: CPQ, billing, a customer portal, a warehouse, a data warehouse.
  • Volume is high enough that per-record or per-flow pricing costs more than owning the code.

A typical custom build has a small integration service with a queue, OAuth 2.0 clients for SuiteTalk REST and Salesforce, RESTlets for logic that is easier to run inside NetSuite, idempotent writes keyed on the stored IDs, a retry and error dashboard, and automated tests for each flow.

$40–120kTypical custom ERP integration build in 2026 (orders, inventory, finance)
2–4 monthsTypical build for a custom quote-to-cash integration
15–25%Of the build per year for maintenance and release updates

Our API integration cost guide breaks down where that money goes, and the NetSuite implementation cost guide shows how integrations fit into the overall NetSuite budget.

Go-live checklist

Tick what is already done. It shows how ready your integration is for real orders.

Salesforce NetSuite go-live readiness

FAQ

Does NetSuite have a native Salesforce integration?
Yes. Oracle announced the NetSuite Connector for Salesforce at SuiteWorld 2024, and the NetSuite help center now documents it as the Salesforce Connector on NetSuite Connector Platform: a SuiteApp in NetSuite plus a managed package in Salesforce. It syncs accounts and customers, contacts, items and price books, turns Closed Won opportunities into sales orders and sends order, fulfillment, invoice and payment data back to Salesforce. It requires a NetSuite OneWorld account. Check availability for your region, licensing and price with your Oracle account team.
How do I integrate Salesforce with NetSuite?
Decide the system of record for each object first: usually NetSuite for items, prices, orders, invoices and payments, Salesforce for leads, opportunities and quotes. Then pick a tool (the NetSuite connector, Celigo, an iPaaS such as Boomi or Workato, or a custom build), create dedicated integration users in both systems, map customers, items and orders in a NetSuite sandbox and a Salesforce sandbox, test the full order-to-cash cycle and migrate existing records before go-live.
How much does a Salesforce NetSuite integration cost?
Prebuilt connectors and integration apps carry an annual subscription that vendors quote individually, plus implementation work that usually takes weeks, not months, for a standard setup. A custom or heavily tailored ERP integration typically costs $40,000–120,000 to build in 2026, plus ongoing maintenance. Our API integration cost guide breaks this down.
Should the customer be created in Salesforce or NetSuite?
Most companies create prospects in Salesforce and create the NetSuite customer only when the first deal is won, so finance does not collect thousands of prospects. After that, NetSuite usually owns billing fields such as terms, credit limit, subsidiary and currency, while Salesforce owns sales fields. Store each system’s record ID in the other to prevent duplicates.
Can Salesforce users see NetSuite invoices and payments?
Yes, and it is one of the main reasons to integrate. Prebuilt connectors and Salesforce-native apps can show open invoices, payment status, balances and credit limits on the account or opportunity, either by syncing the records into Salesforce or by reading them live from NetSuite. Sales reps then see who has paid before they discount a renewal.
Is NetSuite SOAP web services still an option for a new integration?
Not for new builds. According to NetSuite’s SOAP removal FAQ, new integrations should use REST web services with OAuth 2.0, SOAP can no longer be used for new integrations from the 2027.1 release, and SOAP is planned to be removed entirely with 2028.2. If an older connector still relies on SOAP, ask the vendor for its migration plan.

Where Gilzor fits

Gilzor’s engineers can map your Salesforce and NetSuite data flow, build the integration on a connector, an iPaaS or NetSuite’s REST APIs, and support it after launch. See Gilzor’s Salesforce integration services, or send us your order-to-cash flow and the fields that matter.

No sales pitch

Get a straight answer for your project

Tell us what you’re building. We’ll reply with options, a rough cost and timeline. If we’re not the right fit, we’ll say so.

Next, a few optional questions so the first call is useful. We use your details only to reply to your request. Privacy Policy

Yuri Rudenya
Written byYuri Rudenya

Head of Mobile Development at Gilzor. Leads iOS and Android delivery and the mobile app audits, from release process to architecture.

LinkedIn →

Gilzor · Web Development partner

Need a team for your web product?

95%referred by business partners
70+successful launches
85%repeat business
98%delivered on time

The team behind them

Art Scherbakov
Art ScherbakovCo-Founder
Andrew Laminsky
Andrew LaminskyCTOLinkedIn
Yuri Rudenya
Yuri RudenyaHead of Mobile Development at GilzorLinkedIn
Alena Timofeeva
Alena TimofeevaProduct Marketing LeadLinkedIn
Tell us what you’re buildingOptions, a rough cost and timeline for your project. No commitment.

More insights