The Workflow Library

Library / Data quality / data-quality-030

Association hygiene: prevent duplicate association labels on the same record pair

Data qualityDealData Hub ProfessionalIntermediate~35 min to buildalso needs Marketing Hub ProfessionalFull spec

This spec is filed under Data Hub Professional, and one of its steps belongs to another subscription: add to static list needs Marketing Hub Professional. Both are required to build it as written.

Outcome. Deals that end up associated to the same contact under a repeated or conflicting association label get flagged for cleanup, instead of quietly confusing reports that count associations by label.

Workflow map Enrollment, branches and actions at a glance data-quality-030
flowchart TD
    A[Weekly scheduled sweep of active-pipeline deals] --> B[Custom code: read labeled contact associations]
    B --> C{Same label repeated on a pair?}
    C -->|yes| D[Status: Duplicate label found]
    D --> E[Add to review list + create task]
    C -->|no| F[Status: Clean]
action or delay branch public on every spec, paid or not

When to use it, when not to

  • UseUse it on portals using custom association labels between deals and contacts, for example "Decision maker", "Champion", "Billing contact", where an import or an integration can attach a label to the same record pair more than once through a path that bypasses HubSpot's own UI guardrails.
  • UseUse it where association labels genuinely drive downstream logic, a report counting decision makers per deal, a workflow branching on a specific label; if labels are cosmetic only in your portal, this cleanup matters less.
  • SkipDo not use it expecting a real-time trigger the moment an association label changes. HubSpot's workflow re-enrollment options are built around property and list changes, not association-label events directly (check in your portal: confirm whether your portal exposes a native "association changed" enrollment trigger for deal-to-contact associations, or whether this needs to run on a schedule instead, as built below).
  • SkipDo not use it to remove or fix the duplicate labels automatically. Changing a labeled association from a workflow is a data decision with side effects a human should confirm first.
The preview ends here. Six sections are in the library. counted, not blurred
PrerequisitesEvery property with its label, internal name, type and options, plus the assets the workflow needs before you start.4 items
EnrollmentThe trigger, the criteria exactly as they are ticked in the UI, the re-enrollment rule and the suppression list.4 parts
StepsEach action in order with its parameters, its branches and its delays, written as you tick them.6 numbered actions
Known pitfallsTraps seen in production, each with what breaks and what to do instead.4 pitfalls
Test plan, variants and build specHow to prove it works in a test portal, where to look when it does not, the variants for other objects or tiers, and the YAML build spec.3 variants, 3 sections
FilesThe properties JSON creates the fields in one API call, the workflow JSON documents the build, and the custom coded action ships as a ready-to-paste .js file.PDF, Markdown, JSON, code
Install1 click. The installer creates the properties this spec declares and the workflow itself, switched off, then opens a task for the prerequisites that are assets rather than properties, such as a team, a static list or a marketing email. What it created is listed on the install page.1 click, switched off
Unlock the full library, 149 EUR

or the data quality pack, 39 EUR

One-time, excl. VAT. 30-day refund, no questions asked. Founding prices until 31 October, then 199 and 59 EUR. Includes every spec added later, up to the full 500, and the one-click installer on the full library. Building on client portals? The agency licence at 449 EUR covers unlimited client portals.