Skip to main content

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

MetricBeforeAfter
Customization deploy time30-60 min (manual)5 min (automated)
Deploy failures caught pre-production0%95%+
Sync paths automated07
Health probes012
Test coverage066 tests
Infrastructure services1610 (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