An ERP built on HubSpot, replacing a system with no API

A multi-location retailer replaced Epicor Eclipse with HubSpot as the system of record, Postgres for pricing and n8n moving inventory.

Industry: Luxury home fixtures retail

5custom objects
81custom properties
4deal pipelines
11n8n workflows

The situation

A luxury home fixtures retailer with two showrooms and a warehouse needed to replace Epicor Eclipse. Eclipse exposes no API, so nothing could be integrated with it directly and the replacement had to be built from scratch.

What I built

  • An architecture with HubSpot as the system of record and sales interface, Postgres holding pricing rules, and n8n as the automation layer and the single writer of inventory.
  • The data model: 5 custom objects (PO Line, PO Receipt, Inventory Movement, Branch and Cycle Count Line), 81 custom properties across standard objects, 4 deal pipelines, and the associations tying them together.
  • Idempotent provisioning, so the entire portal build re-runs cleanly instead of being clicked together by hand.
  • Live inventory balances per branch on each product record, with every movement written to an append-only ledger object for audit.
  • A Postgres pricing schema and resolver, unit tested.
  • 11 n8n workflows, with the single-writer inventory flow and the pricing resolver complete and unit tested.
  • A reservation state machine with reversal handling, specified and added to the architecture document.

Why a single writer

Inventory across several locations is the hardest thing to get right in a CRM, because concurrent writes corrupt a balance. Routing every change through one n8n process, and logging each movement to a ledger, keeps the number correct and checkable.

Stack

HubSpot custom objectsHubSpot CRM APIPostgresn8nJSON

Related service: HubSpot Integrations.

Have a system that needs to talk to HubSpot?

Book a free 30-minute call. Bring the messy version and I’ll help you work out what to fix first.

Book a call