Salesforce and NetSuite: the integration is never just the connector
by Green Dolphin Software, Integration practice
If you spend any time in the NetSuite or Salesforce communities, you will see the same question over and over: how do I get these two to talk to each other? The native Salesforce-to-NetSuite connector handles simple syncs, but teams hit a wall the moment they go past basic objects. The honest answer is that the connector was never the hard part. Reconciling two very different data models is.
Here is a composite of a project we see constantly — details changed, but the shape is real.

The setup everyone recognizes
A B2B company runs sales in Salesforce and finance in NetSuite. When a deal closes, the Opportunity needs to become a Sales Order in NetSuite so finance can invoice and recognize revenue. Simple on a whiteboard. Then the details show up:
- Customer matching. The same account exists in both systems with different names, and NetSuite already has duplicate customer records from years of manual entry. Push blindly and you create a fourth copy.
- Product and SKU mapping. Salesforce sells "seats" and "plans." NetSuite invoices against item records with their own internal IDs. Nothing lines up one-to-one.
- Multi-currency and tax. The deal closed in EUR; NetSuite books in USD with a subsidiary-specific tax treatment. Someone has to decide the rate and the timing.
- Revenue timing. A closed-won Opportunity is not the same event as a recognizable sale. Fire the sync on the wrong field and finance's numbers drift.
- Errors and retries. When a sync fails at 2am, who finds out, and does the order silently disappear or safely queue for retry?
None of these are API problems. They are business-logic problems wearing a technical costume — which is exactly why generic connectors and DIY scripts get 80% of the way and then stall for a quarter.
Why "just buy a connector" under-delivers
Off-the-shelf iPaaS tools (and the native connector) assume your two systems already agree on what a customer, a product, and a sale are. They never do. So the real work — the customer-matching rules, the SKU crosswalk, the currency and rev-rec timing, the error handling — lands back on your team to design, build, and maintain forever. The license is the cheap part. The ongoing ownership is the real cost, and it is the part nobody scoped.
How we run it
We treat the data model as the project, not an afterthought:
- Map it once, on paper, with an architect. Before any code, we agree the field-by-field mapping, the customer-matching strategy, the SKU crosswalk, and exactly which event triggers a sync. You approve it in plain language.
- Build the reconciliation, not just the pipe. Dedupe-aware customer matching, typed transforms for currency and tax, and idempotent writes so a retry never double-books an order.
- Run it and watch it. It lives in our cloud with monitoring and alerting, so a failed sync pages us, not your finance team at month-end close.
- One fixed price, scope locked. You get the number up front and pay on milestones. We eat the overruns — which is only possible because we map the hard parts before we quote.
The result is the boring outcome you actually want: a closed deal in Salesforce becomes the right Sales Order in NetSuite, every time, without anyone re-keying or reconciling spreadsheets at quarter-end.
If this sounds like your stack
Salesforce-to-NetSuite is one of the most common — and most under-estimated — integrations there is. If you are staring at the native connector wondering why it only half-works, that is the normal place to be. The fix is to scope the reconciliation first.
You can describe your project in plain language through our guided intake and we will come back with a real, fixed-bid estimate. No discovery-call runaround, no open-ended hourly.
