Bulk Associate Records
Overview
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
Quick Setup
Prerequisites
Basic Configuration
- Choose your Enrolled Object Type (the record that triggered the workflow)
- Select the Object Type to Associate (what you want to connect to)
- Pick the Association Condition (currently only "Matching Property Values")
- Select properties on both objects that should match
- Optionally choose association labels for better organization
Input Fields
Required Fields
Enrolled Object Type Required
- 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
Object Type to Associate Required
- 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)
Association Condition Required
- 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
Enrolled Object Property Required
- 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
Associate Object Property Required
- 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
Optional Fields
Association Labels Optional
- 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
Create Association Without Label Optional
- 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
Common Use Cases
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
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
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
How It Works
- Property Value Extraction: Gets the value from your enrolled record's specified property
- Search for Matches: Finds all records of the target type with matching property values
- Association Creation: Creates associations between your enrolled record and all matching records
- Label Application: Applies the specified association labels (if selected)
- Result Reporting: Returns the count of successful associations
Processing Details
- 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
Advanced Configuration
Association Labels
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
Matching Logic
- 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
Output Fields
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.
Last updated: November 23, 2025