NetSuite guidesNetSuite integration guide

NetSuite + Salesforce integration: quote in one, invoice in the other

Salesforce runs the sales process and NetSuite runs the money. The integration is the handoff between them: a closed deal becomes a NetSuite customer and sales order, and invoices, payments and order status flow back so sales can see them without a NetSuite login.

Updated
October 5, 2026
Written by
Nitya Hoyos
Covers
Approach, cost, mapping
Questions
3 answered below

(01)The situation

The usual design is a one-time handoff, not a mirror. Sales works the account and opportunity in Salesforce; at closed-won, the integration creates or matches the NetSuite customer and creates a sales order from the opportunity products. From then on NetSuite owns the order, fulfillment, invoice and payment, and sends read-only summaries back to Salesforce. Teams that try to keep orders editable in both systems end up with two versions of every order and no way to tell which one shipped.

Accounts are where the trouble starts. Salesforce accounts are created freely by reps, often with slightly different names for the same company; NetSuite customers are created by finance with tax, terms and subsidiary set. Matching on name produces duplicates, so the integration needs a stable key: store the NetSuite internal ID on the Salesforce account once matched, and the Salesforce account ID on the NetSuite customer as an external ID. In NetSuite OneWorld accounts, every customer also needs a subsidiary, which Salesforce usually has no field for, so a rule has to choose it.

Products and prices are the second decision. If Salesforce price books are kept by hand, they drift from NetSuite price levels within months. Most teams make NetSuite the owner of items and list prices and push them one way into Salesforce products and price book entries, and let reps discount on the opportunity line. Whether that discount reaches NetSuite as a line rate or a separate discount item has to be decided before the first order syncs.

(02)What it costs

Cost and timeline by approach

Connector

$3,500–$9,500

35–77 hours · 2–3 weeks

Middleware

$7,000–$20,000

75–159 hours · 3–6 weeks

Custom code

$15,500–$43,500

165–347 hours · 6–12 weeks

For a two-way NetSuite–CRM (Salesforce, HubSpot) integration moving items & catalog, customers, sales orders, invoices & payments, at medium volume with hourly sync and some existing NetSuite customization. Hours are priced at $95–$125 an hour and include discovery and 15% for testing and cutover. Connector and middleware figures leave out license fees, which are paid to the vendor. These are estimates from the published method, not a quote.

(03)The options

Which approach fits

ApproachBest forTrade-off
Integration app (e.g. Celigo’s Salesforce–NetSuite app)Standard account, opportunity-to-order and invoice flows with modest customization.Annual license; custom objects and approval rules push against its templates.
General middlewareSeveral systems besides Salesforce, with a team that wants one place to watch every flow.Mappings and business rules live in a vendor tool rather than in code.
Custom (Salesforce Apex/Flows + NetSuite RESTlets or REST API)CPQ or custom objects, multi-subsidiary rules, or a portal reading both systems.You own the code, its monitoring and its tests.

(04)Field mapping

Mapping decisions that matter

SourceNetSuiteNote
Account.IdCustomer: external IDSet once on match; every later sync uses it, never the name.
Opportunity (Closed Won)Sales orderCreate once, with the opportunity ID as external ID so retries can’t duplicate it.
OpportunityLineItemSales order item lineMap Product2 to the NetSuite item by SKU or internal ID.
(no field)Customer: subsidiaryOneWorld needs one; define the rule (by country, by owner, by default).
Custom invoice objectInvoice: number, status, amount remainingOne-way from NetSuite, read-only in Salesforce.

(05)Where it goes wrong

The mistakes that cost the most

  1. 01
    Creating NetSuite customers for every Salesforce account, including prospects, fills NetSuite with records finance has to clean up. Create them at the first won deal.
  2. 02
    Two-way sync on account addresses and contacts lets an old value in one system overwrite a correction in the other. Pick one owner per field.
  3. 03
    Closed-won is not always final: a deal reopened after the order exists needs a defined path, or someone edits the opportunity and expects the order to change.
  4. 04
    Multi-currency opportunities must land in a NetSuite currency the customer record allows, or the sales order save fails.

(06)Before you build

When not to do this

If a handful of deals close each month, a rep or bookkeeper entering the order in NetSuite takes minutes and costs nothing to maintain. Integrate when volume or errors make that handoff the bottleneck, not because both systems have APIs.

(07)Questions

Does NetSuite have a native Salesforce integration?

Oracle does not ship a built-in Salesforce sync in NetSuite. Teams use an integration app or middleware (Celigo is common), or build a custom integration on the Salesforce APIs and NetSuite RESTlets or REST web services.

Should Salesforce or NetSuite own customer records?

Usually Salesforce owns prospects and the sales relationship, and NetSuite owns the customer once there is something to bill: terms, tax, subsidiary and credit. Each system stores the other’s ID so records match on IDs, never on names.

Can sales see invoices and payments in Salesforce?

Yes. A one-way sync from NetSuite can write invoice numbers, status, amount due and payment dates to a custom object or related list in Salesforce, so reps see whether a customer has paid without a NetSuite license.

Free checklist

(Next step)

Is NetSuite holding you back? Let’s fix it.

Start with a fixed-price integration audit: a written plan showing what’s broken, what will break next, and what to fix first.