ProductRetiredRetired

Association Mirror

A retired HubSpot workflow action that could sync, add, or remove associations across standard and custom CRM objects.

Association Mirror archived project page
Current state
RetiredRetired
Jack’s role
Workflow design, CRM engineering, Operations
Find it in the workshop
Archive Yard · Two-sided archive marker

Built because…

The real build story.

The irritation

HubSpot teams often need the relationships on one object copied elsewhere—for example, carrying a company's contacts onto a new deal—but associations do not mirror themselves.

What I built

I built a public HubSpot app with a custom workflow action that could sync, add, or remove selected association types across contacts, companies, deals, tickets, and custom objects, plus accounts, portal connections, usage tracking, and Stripe plans.

The hard part

Association work is compute-heavy and has to reconcile object-specific relationship types under HubSpot rate limits. The workflow action queues execution, detects duplicate runs, and backs off and retries when the API throttles it.

Under the casing

Proof, not decoration.

Build evidence02 items
  1. A HubSpot custom workflow action for sync, add, and remove association operations
  2. Multi-portal accounts, execution tracking, queues, billing, and a documented sunset
  • HubSpot Workflows
  • Node.js
  • Express
  • PostgreSQL
  • BullMQ
  • Redis
  • Stripe
  • Heroku

Scope of work

What I owned.

  • Workflow design
  • CRM engineering
  • Operations

No victory-lap math

Outcome and lesson.

Where it landed

Association Mirror worked, but it did not attract enough customers to justify its operating and compute costs. I sunset the product when the economics proved unsustainable.

What stayed

Technical novelty does not rescue weak distribution or unit economics. The workflow saved manual work, but not for enough paying customers to support the system around it.

This project has a physical address.

In the playable workshop, Association Mirror lives in the Archive Yard as a two-sided archive marker. You can inspect it without unlocking anything.

Inspect the mirrored records