A mid-market textile distributor.
Heritage Fabrics sells decorator fabric by the yard. Master rolls arrive from mills, get cut to customer order — sometimes a 6-yard piece for a designer, sometimes a 60-yard piece for a retail upholsterer — and ship LTL on pallets to addresses across the U.S.
Heritage runs on Acumatica Cloud for ERP and HubSpot Enterprise for CRM. Their catalog spans thousands of SKUs across dozens of fabric collections. Every roll carries a dye lot, and customer reorders frequently specify the same lot so the second cushion matches the first. Get that wrong, it comes back.
Knowledge that walked out at 5pm.
Before Bolt, Heritage's warehouse operation ran on a fifteen-year-old desktop WMS that couldn't run on mobile, a spreadsheet that tracked which rolls were partial, an allocation whiteboard in the supervisor's office, and an institutional memory of who-knows-what lived in the heads of the three longest-tenured warehouse staff.
Allocation was a whiteboard. Customer service agents called the warehouse to check availability. Warehouse checked the spreadsheet. By the time the agent confirmed, the inventory might already be committed.
Allocation happens automatically. A sales order enters Acumatica, Bolt assigns specific rolls based on availability and dye-lot match, CS agents see real-time availability in their HubSpot-embedded order entry portal.
No mobile workflow. Receiving, putaway, picking happened on paper tickets that walked between the office and the warehouse floor. Data entry happened after the fact, sometimes hours later.
Every event is live. Keyence scanners update inventory in real time on every scan. Works offline, auto-syncs when connectivity returns.
Dye-lot matching was manual. Matching a customer's reorder to the same dye lot meant digging through filing cabinets of receiving records. Mismatches led to returns.
Dye-lot match is automatic. Every roll carries lot identity through every subdivision. Allocation picks from the same lot when available, flags when it isn't.
The whiteboard is gone.
Heritage used to do "Sunday afternoon allocation" — the warehouse supervisor came in on a Sunday, pulled up Monday's open orders, walked the floor, and hand-assigned rolls to orders on a whiteboard. Monday's pick lists were generated from the whiteboard. Wednesday, the whiteboard got re-walked.
With Bolt, allocation runs every time an order enters Acumatica. The auto-allocation engine evaluates available rolls by SKU, dye lot, warehouse location, and remainder size, then assigns specific rolls to the order. Customer service agents see real-time availability in the Bolt Order Entry portal — which is embedded directly in HubSpot, so they never leave the CRM to check stock.
What actually changed on the floor
The Sunday afternoon session stopped. The supervisor got his weekends back. Monday mornings start with the pick list already built. New orders entered at 10am are ready to pick by 10:02.
Paper tickets, retired.
Heritage issues Keyence BT-A700 scanners — ruggedized Android devices with a physical barcode trigger — to every warehouse staff member. The Bolt mobile app runs twelve screens covering receiving, putaway, picking, packing, inspection, and cycle counting.
The app is offline-first. Heritage's warehouse has a handful of dead spots where the wifi drops out — between certain high aisles, next to the receiving dock door. The app records every transaction locally and auto-syncs when connectivity returns. Nobody has to remember to "come back up front" to update a ticket.
Receiving in thirty seconds.
One scan pulls PO details, SKU, dye lot, and expected quantity. Confirm, and the roll is in inventory — allocated automatically if a waiting order matches.
Twelve screens, same pattern. Receiving, putaway, cut, pick, pack, ship, inspect, count. English and Spanish. Works when the wifi doesn't.
Lot identity through every transaction.
Every roll in Bolt carries its dye lot, mill lot, receipt date, and warehouse location. A cut-to-order operation on a 60-yard roll that takes 15 yards automatically creates a 45-yard remainder with the same dye lot, the same receipt date, the same location. The remainder is a first-class inventory record — on the next pick list, visible to allocation, available to CS agents.
Dye-lot matching during allocation is automatic. If a customer is reordering HR-DRP-BRN-60 and we have lot DL-4471 in stock — the same lot as their first order — Bolt allocates from DL-4471. If we don't, Bolt flags it before the order ships so the CS agent can call the customer before the second cushion arrives in the wrong shade.
We tracked partial rolls with sticky notes for fifteen years. Bolt gave us real-time visibility into every foot of inventory on every roll in every warehouse.
Eight carriers, one screen.
Heritage ships LTL daily. Before Bolt, carrier selection was a separate browser tab — usually whichever carrier the shipping clerk had used yesterday — and BOL generation happened in a third system. Rate shopping was a thing people said they were going to do and then didn't.
Bolt integrates eight LTL carriers with real-time rate quotes returned at the point of shipment. Freight class is calculated from product dimensions and weight. The shipping team selects the best rate, generates the BOL, prints the label, and confirms the shipment — one workflow, one screen.
| Carrier | Service | Transit | Rate |
|---|---|---|---|
| TForce Freight | LTL Standard | 3 days | $412.80 |
| Saia | LTL Standard | 3 days | $389.50 |
| Southeastern Freight | LTL Standard | 2 days | $367.25 selected |
| Averitt Express | LTL Standard | 3 days | $398.10 |
| Estes | LTL Standard | 4 days | $421.95 |
| ODFL | LTL Standard | 3 days | $405.30 |
| XPO Logistics | LTL Standard | 3 days | $418.40 |
| FedEx Freight | LTL Priority | 2 days | $445.70 |
Reorder signals, not gut calls.
Bolt's Intelligence module classifies Heritage's entire catalog using ABC analysis, learns lead times from the actual receipt dates on historical POs (not the promised dates), calculates safety stock levels from seasonal demand patterns, and surfaces reorder signals weeks before stockout.
The daily DRP dashboard replaced what used to be a monthly "let's count everything" inventory review. Heritage's buying team now reorders from a ranked list of items approaching reorder point, not from their memory of what seemed to be selling lately.
The signal above isn't a hypothetical. It's the kind of item that used to stock out at Heritage because the 30-day vendor lead time was what the PO form said, not what the mill actually delivered. Bolt learned the real number from Heritage's own PO history and now triggers reorders seventeen days earlier than the old rule would.
Cloud, independent, Acumatica-native.
Bolt runs as an independent cloud application on Railway, syncing bidirectionally with Heritage's Acumatica instance via the REST API. No middleware. No iPaaS. No separate integration platform to manage.
Stack
Mobile: Android app on Keyence BT-A700 scanners, with OTA updates delivered from Bolt's Mission Control.
Web: React dashboard for warehouse supervisors, CS agents, and buyers.
ERP sync: Acumatica REST API. Customers, products, SKUs, POs, shipments, receipts, allocations. Webhook + 15-minute cron. Max sync latency: 15 minutes.
CRM sync: HubSpot bidirectional via BullMQ workers. Contacts, companies, orders, tickets.
Printing: Cloud printing to Zebra label printers and a Konica multifunction via firewall-forwarded ports.
DAC extensions: Delivered as Acumatica Customization Projects via AcuOps CI/CD. Zero manual publish steps.
Uptime independence
Bolt is independent of Acumatica's uptime. If Heritage's Acumatica instance goes into maintenance, Bolt stays running — warehouse can keep receiving, picking, shipping — and the sync ledger catches up when Acumatica is back. The warehouse never stops because the ERP is down.
What's in production today.
| SKUs under management | 1,700+ |
| Warehouse staff on the mobile app | Every role in the warehouse |
| Mobile screens in production | 12 |
| LTL carriers with live rate shopping | 8 |
| Acumatica sync frequency | Real-time (webhook + 15-min cron) |
| Max Acumatica sync latency | 15 minutes |
| Uptime architecture | Independent of Acumatica |
| Deployment model | Cloud (Railway) |
| Time from contract to first scan | Weeks, not months |
| Acumatica customization deploys (all automatic via AcuOps) | CI/CD |
Heritage has been running on Bolt end-to-end since late 2025. Every cut, every receipt, every shipment goes through the system. The spreadsheet is archived. The whiteboard is a whiteboard again.