Case Study: Heritage Fabrics (Ästhetik)
How Studio B deployed AcuOps for a mid-market textile company, eliminating manual ERP management and building a fully automated integration platform.
Client Profile
- Industry: Textile distribution and manufacturing
- ERP: Acumatica Cloud (24.2)
- CRM: HubSpot Enterprise
- Challenge: Manual customization deploys, no CI/CD, broken integrations, no monitoring
What We Built
Phase 1: Foundation
- GitHub organization with 12 repositories
- Railway infrastructure (10 active services)
- 5 custom MCP servers (Acumatica, DevOps, GoDaddy, Zoom, Microsoft)
- CI/CD pipelines for all services
Phase 2: Intelligence
- AI customer support agent with knowledge base
- Sales intelligence dashboard with deal risk scoring
- 66-test QA automation suite
- Schema drift detection
- Employee provisioning automation (8 systems)
Phase 3: Operations
- Bi-directional HubSpot/Acumatica sync (orders, customers, products, cases, contacts, line items)
- HubSpot ID write-back to Acumatica attributes
- Alert routing and monitoring hardening
- Customization CI/CD pipeline
Phase 4: Scale
- Multi-tenant monitoring dashboard
- Client template repository (55 files, NetSuite support)
- Employee onboarding workflows (HubSpot → Provisioning Agent)
Key Metrics
| Metric | Before | After |
|---|---|---|
| Customization deploy time | 30-60 min (manual) | 5 min (automated) |
| Deploy failures caught pre-production | 0% | 95%+ |
| Sync paths automated | 0 | 7 |
| Health probes | 0 | 12 |
| Test coverage | 0 | 66 tests |
| Infrastructure services | 16 | 10 (consolidated) |
| Monthly infrastructure savings | — | ~$315/mo |
Technology Stack
Acumatica Cloud (ERP)
↕ REST API + Customization API
AcuOps (CI/CD + Monitoring)
↕ BullMQ Workers
HubSpot Enterprise (CRM)
↕ REST API + Webhooks
Railway (Infrastructure)
↕ Redis + PostgreSQL
GitHub Actions (CI/CD)
Lessons Learned
The Heritage Fabrics deployment generated 200+ documented technical lessons, now available as the Acumatica Cookbook. Key findings:
- Acumatica REST API uses PUT for both create and update (upsert pattern)
<Table>elements in customization XML always cause NullReferenceException on cloud- CRM DACs are incompatible with non-CRM graphs (screen crashes at runtime)
- Session gate pattern is essential for multi-service Acumatica access