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.
A retired HubSpot workflow action that could sync, add, or remove associations across standard and custom CRM objects.

Built because…
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.
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.
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
Scope of work
No victory-lap math
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.
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.
In the playable workshop, Association Mirror lives in the Archive Yard as a two-sided archive marker. You can inspect it without unlocking anything.