Case study · Security camera distribution
Three systems, one set of data.
ERP, CRM and web store integration for a security camera distributor.
Free · 30 minutes · No pitch. Ask me about work like this.
- Re-keyedto20+ flows carrying customers, quotes, orders, stock and prices
- 3 systemsto1 record ERP, CRM and web store describe the same customer
- Out of steptoPolled stock by warehouse, about $15M of it, on the web store
- By handtoSynced about 3,000 products, with prices and attributes

The short version
ENS Security sells security cameras from 11 locations, on Acumatica, Salesforce and WooCommerce. Each system kept its own customers, products and prices, so I built the flows between them in Boomi. More than 20 flows now carry customers, quotes, orders, stock and product data between all three.
At a glance
What changed, line by line.
| Before | After | |
|---|---|---|
| Customers | Entered separately in each system | Created in Salesforce, approved by accounting in Acumatica, with fields pushing back once approved |
| Quotes and orders | Re-entered from the CRM into the ERP | Salesforce quote → Acumatica quote → sales order, tracked to charged, picked, shipped and complete |
| The customer portal | No self-service view of orders or invoices | WooCommerce accounts flagged from the ERP or CRM, with order numbers, line items and PDF invoices |
| Stock | Each system with its own figures | Polled from Acumatica by last-modified date: on hand, available and on PO, by warehouse |
| Pricing | Tiers and per-customer overrides, needed by every system that showed a price | The same tiered and per-customer price wherever a customer sees it |
| Product documents | Firmware and manuals held by the product team | Synchronized to the website and into Salesforce, so support answers from the customer’s files |
| Reporting | Performance assembled per request | Power BI dashboards for branch, sales team, individual, customer and product performance |
| The network | A domain controller in every office | pfSense at each site with site-to-site VPNs, UniFi VLANs and separate Wi-Fi SSIDs, NinjaOne on office PCs |
Three systems, three versions of a customer.
ENS Security distributes security cameras from 11 locations. They run about 180 users, roughly $15M of inventory and around 3,000 products.
Three systems held the business. Acumatica was the ERP, Salesforce was the CRM and the support desk, and WooCommerce was the customer portal. Each kept its own version of customers, products, prices and stock, and none of them agreed.
Keeping them in step meant re-entering data. Pricing was the harder problem: the business sold at tiered prices with per-customer, per-product overrides, and every system that showed a price needed them.
I was the IT director, so this sat alongside running day-to-day IT for all 180 users and all 11 locations.
The flows between them, built in Boomi.
I built the flows in Boomi, with custom API queries where a system had no usable endpoint and custom SQL where data needed reshaping first. More than 20 flows went into production.
Customers start in Salesforce. A create or update pushes into Acumatica, and a new customer waits there for accounting approval. Sales reps see some fields as editable, some as read-only and some not at all. Once the customer is approved, selected fields push back from Acumatica.
Quotes follow the same path. A Salesforce quote becomes an Acumatica quote, then a sales order. The order’s progress comes back as it is charged, picked, shipped and completed.
WooCommerce is the customer portal. An account is flagged for creation in Acumatica or Salesforce, created in WooCommerce, and its reference stored. A separate table tracks order numbers and sync status, and it later carried line items and more detail. WooCommerce sends the welcome email and builds the PDF invoice in the browser, so customers read their own invoices in the portal.
Product data flows out of Acumatica. One pair of processes polls by last-modified date for inventory by warehouse: on hand, available and on purchase order. Another pair carries product information and attributes into WooCommerce and Salesforce. Tiered prices and per-customer, per-product overrides move with them, so a logged-in customer sees their own price.
The product team’s firmware, manuals and technical documents synchronize to the website and into Salesforce. Support answers from the same files a customer can download.
I oversaw the creation of their Salesforce support portal and its main objects. I assisted with customer grading and support priority for incoming and aging tickets. I also oversaw the creation of their Power BI executive dashboards, covering branch, sales team, individual, customer and product performance.
The IT work ran alongside it. Every office had a pfSense router, and I built site-to-site VPNs as we centralized away from a domain controller in each office. VLANs and separate Wi-Fi SSIDs went in on UniFi, office PCs were managed with NinjaOne RMM, and I managed a $500k IT budget covering phones, SaaS, equipment and vendors.
Diagram · One set of data
Acumatica ERP
- Stock by warehouse: on hand, available, on PO
- Tiered and per-customer prices
- Product information and attributes
The source of truth for products, stock and price
Both ways
Boomi Middleware
- More than 20 flows between all three systems
- Custom API queries where a vendor had none
- SQL where data needed reshaping
Both ways
Salesforce and WooCommerce CRM · Web store
- Salesforce customers, quotes, support, product docs
- WooCommerce live stock, each customer’s price, invoices
Where reps quote and where customers buy
-
Stock Acumatica to Boomi to WooCommerce
Polled by last-modified date: on hand, available and on PO, by warehouse.
-
Prices Acumatica to Boomi to Salesforce · WooCommerce
Tiers plus per-customer overrides, so a signed-in customer sees their own price.
-
New products Acumatica to Boomi to Salesforce · WooCommerce
Attributes created automatically, with firmware and manuals following to both.
-
Customers Salesforce to Boomi to Acumatica
Reps create them, accounting approves in the ERP, and approved fields push back.
-
Quotes Salesforce to Boomi to Acumatica
A quote becomes a sales order, tracked to charged, picked, shipped and complete.
-
Orders and invoices Acumatica to Boomi to WooCommerce
Order numbers, line items and PDF invoices, in the customer’s portal account.
In the gaps Custom API endpoints where a vendor had none, and SQL where the data needed reshaping. Power BI reads the same records.
The result: one set of data, still running.
Acumatica, Salesforce and WooCommerce describe the same business, kept in step without re-keying.
Customers see their own price wherever they look, and their invoices in the portal. Support answers from the same firmware and manuals the website publishes. Executives read branch, team, customer and product performance from one set of dashboards.
More than two years on, ENS still runs on these flows. They recently brought me back to review them and to help plan a move from Salesforce to Odoo.
Keep reading
Next case study

Case study 03 / 03
4 sourcesto1 report monitoring, ticketing and SOC data
IT MSP · multi-customer
Senior systems administrator, on contract through an MSP
Four sources in, one report out, for every customer.
- Before
- On-call time tallied apart from the incidents, and customer reports assembled by hand from four sources.
- After
- Per-customer reports that build themselves and land in Teams and SharePoint.
