Multi-ERP Account Synchronization for a manufacturer of custom electrical distribution equipment

Client Profile
A industrial manufacturer selling through Salesforce CPQ, with separate operating entities running Epicor and two independent NetSuite instances (“PwrQ” and “Vantran”) for order fulfillment, inventory, and invoicing — each onboarded as its own ERP tenant following a series of acquisitions.
The Challenge
Sales ran cleanly through a single Salesforce CPQ instance, but nothing downstream reflected that — each ERP kept its own disconnected, manually maintained view of who the customer was:
- Fragmented account creation – Converting a prospect to a customer in Salesforce CPQ required manually creating an account in up to three separate ERPs (Epicor, NetSuite PwrQ, NetSuite Vantran), depending on which entity fulfilled the order.
- No reliable ID reconciliation – Once an ERP created a customer record, its customer ID and number had to be copied back into Salesforce by hand, creating multi-day delays and frequent mismatches.
- Duplicate and orphaned records – Inconsistent manual entry produced duplicate customer records across ERPs, and Salesforce accounts with no corresponding ERP record — blocking order fulfillment and invoicing.
- No shared event backbone – Each ERP had its own point-to-point connection (or none at all), so there was no consistent way to know when an account had converted or when ERP-side account creation had actually completed.
The Approach
Kadel Labs partnered with the client to design and implement a MuleSoft-mediated, event-driven account synchronization layer connecting Salesforce CPQ to all three ERP systems:
- Platform Event Capture – Captured the native Salesforce CPQ platform event (/event/account_event__e) fired whenever an account converted from prospect to customer.
- Canonical Account Mapping – Mapped the platform event payload to an enterprise account canonical model and published it to a shared account topic via Service Bus, decoupling Salesforce from downstream ERP-specific logic.
- Per-ERP Integration Apps – Built dedicated MuleSoft integration apps (fs-sys-salesforce-account-app, fs-sys-epicor-account-app, fs-sys-pwrq-netsuite-account-app, fs-sys-vt-netsuite-account-app) to subscribe to the canonical account topic, translate it into each ERP’s account-creation format, and create the account.
- Synchronous + Asynchronous Hand-off – Combined a synchronous call to Epicor — to create the account and immediately capture the returned customer ID and number — with asynchronous Service Bus subscriptions for the two NetSuite instances, so a slower or unavailable ERP never blocked the rest of the flow.
- Update Propagation – Published an account-update event carrying the new ERP customer number and ID back onto Service Bus for internal consumers to subscribe to.
- Salesforce Upsert – Subscribed to the account-update event and upserted the originating Salesforce account record with the ERP customer ID and number, closing the loop back to the system sales reps work in every day.
Outcome
- Eliminated manual ERP account creation – Every prospect-to-customer conversion now automatically creates the correct ERP account(s) without sales or operations intervention.
- Reliable bi-directional reconciliation – ERP customer IDs and numbers are written back to Salesforce automatically, removing the multi-day manual copy-back step.
- Reduced duplicate and orphaned records – A single canonical account model and event-driven flow ensures every ERP account traces back to exactly one Salesforce account.
- Resilient to ERP downtime – The synchronous/asynchronous split means a slow or unavailable NetSuite instance no longer delays Epicor account creation or Salesforce updates.
- Reusable integration pattern – The same canonical-model-plus-Service-Bus approach can onboard additional ERPs or entities, such as future acquisitions, as a configuration exercise rather than custom development.
Why This Matters for Multi-Entity Organizations
Companies that grow through acquisition often end up with one CRM and several ERPs, each running its own logic and its own manual process for keeping customer records in sync. An event-driven integration layer built on a canonical account model turns that patchwork into a single reliable flow — every new entity or ERP becomes another subscriber on the same event backbone rather than another custom point-to-point integration, which is the core value Kadel Labs brings as a MuleSoft integration partner to multi-entity, multi-ERP organizations.