Blog

Real-Time NetSuite to Salesforce Integration: Your Ultimate Mini-Guide for Faster Quote-to-Cash

Author: Tim Sabat

With a dedicated Engineering Operations Team, we get requests to integrate NetSuite and Salesforce often. ERP to Salesforce integration is a key component when optimizing the quote-to-cash or order-to-invoice process, and helps resolve pain points like connecting disparate systems, eliminating the need for duplicate entry, and improving data accuracy. 

This type of integration involves connecting systems in a way that:

  • Sends Orders and their related Contacts and Accounts from Salesforce to NetSuite
  • Sends Invoices and RMAs (Return Merchandise Authorization) from NetSuite to Salesforce

Most Salesforce to Netsuite or ERP integrations keep data in sync via schedules, aka, not real-time — meaning data sits around and is only sent back and forth at specific times (e.g., every 30 minutes).

It gets the job done, but not very quickly, because it slows down the feedback loop and quote-to-cash or order-to-invoice processes.

Obligatory meme.
  • If Sales teams need to make an update to an order in Salesforce, Revenue teams must wait for the sync period
  • If Netsuite rejects an insert due to a sales-related problem that needs correcting in Salesforce, more time passes
  • When an order is approved/paid in NetSuite, even more time passes before user provisioning can happen; for example, when an overdue invoice is paid

Not great when every delay goes on to impact the customer experience.How do we fix this?We ended up looking beyond the traditional when one of our clients asked if we could make Salesforce CPQ (Configure, Price, Quote) orders in Salesforce sync to NetSuite in real time, for faster quote-to-cash processes. Cue our secret weapon to solve this problem: triggers and scripting, which we’ll walk you through below.

Real-Time Integration: Trigger Framework + Scripting

Those familiar with Salesforce Flows understand that automations can respond to data changes as they happen, based on set criteria known as a ‘trigger’.

  • Triggers can listen for events, like the creation/change of an Order
  • Invocable Apex (the language that lets your Salesforce system talk to other systems) can respond to triggers with custom logic to gather data about the trigger, for example, the Accounts and Contacts related to the order
  • Apex can then call out to 3rd party systems, like Netsuite, upserting records

NetSuite has a system that resembles Salesforce Flows called SuiteFlow, with a similar pattern:

  • Server Triggers can listen for events, like the creation/change of an invoice
  • SuiteScript is fired, and custom logic can be written to gather data related to the trigger
  • SuiteScript can call out to 3rd party systems, like Salesforce, upserting records

Because integrations rely on the trigger framework and scripting patterns in their systems, we can use them to speed up the feedback loop by allowing data to flow in real time between NetSuite and Salesforce:

  • If a salesperson updates an Order in Salesforce, the revenue team can see this change in near real time
  • If an invoice is paid in NetSuite, Salesforce can see this change and fire flows to act on this data

Additional NetSuite to Salesforce Integration Considerations

The integration method you select will always go on to impact what you can achieve, so if you’d like a real-time NetSuite to Salesforce integration it’s worth exploring options to find the best fit.

If you’re looking for examples, Kicksaw has used real-time patterns and a variety of different iPaaS (Integration Platform as a Service) solutions to integrate NetSuite and Salesforce, including:

You should also keep in mind that although a real-time pattern improves quote-to-cash/order-to-invoice functionality — like any other system, it needs support to function properly. 

We advise steps to diagnose/remediate problems are put in place by someone with both Salesforce and NetSuite experience, and always include:

  • Automatic retry mechanisms to support vendor outages
  • Configurable thresholds to prevent too many retries from burning through API limits
  • Error remediation alerts for Operations and Managers to ensure that message failures are appropriately handled
  • User-friendly remediation steps to allow teams to self-service error remediation
  • Manual retry mechanisms to allow those who self-service to attempt resend of messages

If this mini-guide left you wanting more information, be sure to contact us for support or answers to your questions.