CrestOps
Back to case studies
Case Study

Integrating Salesforce with NetSuite via Boomi

How CrestOps connected a firm's client-facing Salesforce org with their NetSuite financial system using Boomi — eliminating a manual weekly sync and giving leadership real-time revenue visibility.

The situation

Two systems, one business. The firm's client-facing teams lived in Salesforce (intake, engagements, client service). The finance team lived in NetSuite (invoicing, revenue, collections). Between them: a shared spreadsheet, updated manually every Friday afternoon by a single operations analyst.

The cost of the gap:

  • Leadership couldn't see revenue-per-client in real time — always a week stale.
  • Engagement close-out in Salesforce didn't trigger an invoice in NetSuite automatically; someone had to remember.
  • Collections in NetSuite weren't visible to the client service team, so they'd walk into renewal conversations blind.
  • When the analyst was out, the sync stopped.

The firm had licensed Boomi for another integration a year earlier but never extended it. That's where we started.

The design

We scoped the integration in two directions:

Salesforce → NetSuite (outbound)

  • When an Opportunity in Salesforce moves to Closed Won, Boomi creates a corresponding Sales Order in NetSuite with line items mapped from the Opportunity Products.
  • Client records flow Salesforce → NetSuite as Customer records on first engagement. Updates to the primary contact or billing address in Salesforce propagate automatically.
  • Failures (validation errors, duplicate detection, etc.) route to a shared Slack channel with a link back to the offending record, instead of failing silently.

NetSuite → Salesforce (inbound)

  • Invoice status (Open, Paid, Overdue) syncs back onto the Salesforce Account record on a 15-minute cadence.
  • Payment dates and amounts populate a read-only Payment History related list on the Account, so the client service team sees what finance sees.
  • Collections flags raise a warning banner on the Account page layout — client-facing users see "Account has overdue balance" without having to switch systems.

What we actually built

Concretely, the engagement involved:

  • 4 Boomi processes — 2 outbound (Opportunity → Sales Order, Account → Customer), 2 inbound (Invoice sync, Payment sync).
  • A mapping document translating Salesforce field definitions to NetSuite field definitions, including unit conversions, currency handling, and picklist normalization.
  • A retry and error-routing policy — transient failures retry up to 5 times with exponential backoff; permanent failures (validation, schema mismatch) raise a Slack alert and log a record in a dedicated Salesforce "Integration Exceptions" object.
  • Observability — a simple dashboard on the Salesforce side showing sync volume, error rate, and the most recent successful sync timestamp per direction.

Outcomes

  • Manual Friday sync: eliminated.
  • Time from Closed Won to invoice: 3–5 business days → under 15 minutes.
  • Revenue visibility for leadership: weekly stale spreadsheet → live on the Salesforce dashboard.
  • Client service team blind spots: gone. Account pages now show payment status inline.
  • Operations analyst time freed up: ~6 hours/week, redirected to higher-value work.

The real win

The integration didn't just eliminate a manual process — it changed what questions the business could ask. Leadership could now filter revenue by practice area, by engagement type, by client tenure, in real time, inside Salesforce. Conversations about which clients were most profitable stopped being quarterly and started being daily.

That's what "one system" actually means in practice.

Need to connect Salesforce to your ERP or financial system? Book a discovery call.

Ready to stop wrestling with Salesforce?

Book a free 30-minute discovery call. We’ll map out where your org is today and what a clean, fast path forward looks like.