Skip to content

Bulk Associate Records

What it does: Automatically creates associations between your enrolled record and multiple other records based on matching property values

When to use it: When you need to connect one record to many related records at once - like associating a company with all its employees, or linking deals to related contacts

Business value: Saves hours of manual association work and ensures your HubSpot data stays connected and organized automatically


  • HubSpot CRM permissions for the object types you want to associate
  • Properties set up on both object types with matching values
  • Understanding of which records should be connected
  1. Choose your Enrolled Object Type (the record that triggered the workflow)
  2. Select the Object Type to Associate (what you want to connect to)
  3. Pick the Association Condition (currently only “Matching Property Values”)
  4. Select properties on both objects that should match
  5. Optionally choose association labels for better organization

  • Type: Dropdown (dynamic)
  • Description: The type of record that’s enrolled in this workflow
  • Options: Contact, Company, Deal, Ticket, Custom Objects
  • Example: Company
  • Notes: This determines what properties are available for matching
  • Type: Dropdown
  • Description: The type of records you want to associate with the enrolled record
  • Options: Contact, Company, Deal, Ticket, Invoice
  • Example: Contact
  • Notes: You can associate different object types (e.g., Company to Contacts)
  • Type: Dropdown
  • Description: How to determine which records should be associated
  • Options: Matching Property Values
  • Example: Matching Property Values
  • Notes: Currently only supports property-based matching
  • Type: Dropdown (dynamic)
  • Description: The property on your enrolled record to use for matching
  • Example: Company Domain Name, Email Domain
  • Notes: Available properties depend on your Enrolled Object Type
  • Type: Dropdown (dynamic)
  • Description: The property on records you want to associate that should match
  • Example: Email, Company Domain Name
  • Notes: Available properties depend on your Object Type to Associate
  • Type: Dropdown (dynamic, appears based on object type)
  • Description: Specific labels to apply to the associations for better categorization
  • Example: Primary Company, Employee, Decision Maker
  • Notes: Different label options appear for each object type
  • Type: Checkbox
  • Description: Create the association but don’t apply the selected label
  • Default: Unchecked
  • Notes: Useful when you want the connection but not the specific categorization

Use Case 1: Associate Company with All Employees

Section titled “Use Case 1: Associate Company with All Employees”

Scenario: When a company is created, automatically associate it with all contacts who have matching email domains

Setup:

  • Enrolled Object Type: Company
  • Object Type to Associate: Contact
  • Association Condition: Matching Property Values
  • Enrolled Object Property: Company Domain Name
  • Associate Object Property: Email
  • Association Labels: Primary Company

Result: All contacts with email addresses matching the company domain get automatically associated with the company

Section titled “Use Case 2: Link Deals to Related Contacts”

Scenario: When a deal is created, associate it with all contacts from the same company

Setup:

  • Enrolled Object Type: Deal
  • Object Type to Associate: Contact
  • Association Condition: Matching Property Values
  • Enrolled Object Property: Associated Company ID
  • Associate Object Property: Associated Company ID
  • Association Labels: Deal Contact

Result: All contacts from the deal’s company get associated with the deal

Use Case 3: Connect Tickets to Company Contacts

Section titled “Use Case 3: Connect Tickets to Company Contacts”

Scenario: When a support ticket is created, associate it with all contacts from the customer’s company

Setup:

  • Enrolled Object Type: Ticket
  • Object Type to Associate: Contact
  • Association Condition: Matching Property Values
  • Enrolled Object Property: Company
  • Associate Object Property: Company
  • Association Labels: Support Contact

Result: All company contacts get visibility into the support ticket


  1. Property Value Extraction: Gets the value from your enrolled record’s specified property
  2. Search for Matches: Finds all records of the target type with matching property values
  3. Association Creation: Creates associations between your enrolled record and all matching records
  4. Label Application: Applies the specified association labels (if selected)
  5. Result Reporting: Returns the count of successful associations
  • Batch Processing: Large association jobs are processed in batches of 100 to prevent timeouts
  • Duplicate Prevention: If an association already exists, it won’t create a duplicate (but will apply new labels if specified)
  • Rate Limiting: The action respects HubSpot’s API rate limits and will retry if limits are hit
  • Transaction Safety: If any association fails, the others still succeed (partial success is possible)
  • Performance: Typical processing time is 1-3 seconds for up to 100 associations, longer for larger batches

Association labels help categorize relationships:

  • Primary Company - Main company association
  • Employee - Person works for company
  • Decision Maker - Key contact for deals
  • Support Contact - Person involved in tickets
  • Exact Match: Property values must match exactly (case-sensitive)
  • Empty Values: Records with empty matching properties are skipped
  • Multiple Matches: All matching records get associated
  • Partial Matching: For email domains, the system can match “company.com” in the enrolled record to “john@company.com” in the target record
  • Whitespace Handling: Leading and trailing spaces are automatically trimmed before matching
  • Null vs Empty: Both null values and empty strings are treated as “no value” and skipped

After execution, this action provides:

  • associations_created_count (number): How many associations were successfully created
  • status (text): Execution status - “SUCCESS”, “SUCCESS_NO_MATCHES”, or “ERROR”

Use these outputs to track performance and create conditional logic in your workflows.