HubSpot Extended Actions
This article covers HubSpot actions for association management, pipeline and deal inspection, lead creation, user and owner lookups, property management, engagement tracking, and sequence enrollment. For basic contact, company, and deal read/write/search operations, see the CRM read and search actions guide and the CRM write actions guide.
Before you begin
- Connect HubSpot at Settings > Integrations > HubSpot with a Private App access token. The token needs CRM scopes for contacts, companies, deals, engagements, and associations.
- Pipeline and stage IDs are internal HubSpot identifiers. Run Get All Pipelines first to retrieve valid IDs before using them in other actions.
- Association Type IDs follow HubSpot's standard numbering (1 = Contact to Company, 2 = Company to Contact, etc.). The full list is available in the Create CRM Association action's dropdown.
All actions in this article cost 0 credits per row.
Association Management
Create CRM Association
Returns: Single result
Link two CRM objects together in HubSpot, such as a contact to a company or a deal to a contact.
Inputs:
- From Object ID (Required): The ID of the record being associated (e.g., a Contact ID)
- To Object ID (Required): The ID of the record you are associating to (e.g., a Company ID)
- Association Type (Required): 24 options including Contact to Company (1), Deal to Contact (3), Deal to Company (5), Contact to Engagement (9), Contact to Ticket (15), Deal to Line Item (19), and more
#Use case:
- Agency: After creating a contact and a company in separate workflow steps, link them together automatically so the CRM relationship is complete.
Delete CRM Association
Returns: Single result
Remove an existing relationship between two CRM objects in HubSpot.
Inputs:
- From Object ID (Required): The ID of the primary object in the association
- To Object ID (Required): The ID of the object to unlink
- Association Type (Required): Same 24 types as Create CRM Association
#Use case:
- Agency: Unlink a contact from a company when they change employers, then re-associate them with the new company record.
Get Association Labels
Returns: Multiple results
Retrieve all labels that describe the relationships between two specified CRM object types using the v4 Associations API.
Inputs:
- From Object Type (Required): contact, companies, deals, tickets, line_items, quotes, calls, emails, meetings, notes, tasks
- To Object Type (Required): Same options as From Object Type
#Use case:
- Agency: Look up all available association labels between contacts and deals before building a multi-step linking workflow.
Get All Pipelines
Returns: Multiple results
Retrieve all pipelines for deals or tickets, including their stages, display orders, and probability metadata.
Inputs:
- Object Type (Required): Deals or Tickets
#Use case:
- Agency: Pull all deal pipelines for a client's HubSpot to map stage names before building automation rules.
Get Pipeline Stages
Returns: Multiple results
Retrieve all stages for a specific pipeline. Use this when you already know the pipeline ID and need its stage details.
Inputs:
- Object Type (Required): Deals or Tickets
- Pipeline ID (Required): The internal pipeline identifier
#Use case:
- Agency: Retrieve stage labels for a specific pipeline before building conditional routing rules in a workflow.
Get Deal by ID
Returns: Single result
Retrieve a single deal record by its internal ID with standard properties.
Inputs:
- Deal ID (Required): HubSpot internal deal ID
#Use case:
- Agency: Look up deal stage and amount before a client call to confirm pipeline status.
Get Deal Properties
Returns: Multiple results
Retrieve all deal properties from your HubSpot account, including internal names, labels, descriptions, and data types. No inputs required.
Inputs
None.
Outputs: Internal Name, Label, Description, Group Name, Data Type, Field Type, Is HubSpot Defined, Is Calculated, Is Hidden, Created At / Updated At
#Use case:
- Agency: Audit a client's custom deal properties before building a data migration template.
Create Lead
Returns: Single result
Create a new lead record in HubSpot and associate it with an existing contact or company.
Inputs
| Field | Type | Required | Notes |
|---|---|---|---|
| Lead Name | text | Yes | Display name for the lead (e.g., "Jane Doe") |
| Associated Object ID | text | Yes | The ID of the Contact or Company to associate this lead with |
| Association Type ID | number | Yes | Numeric ID of the association type (e.g., 2 for Contact) |
| Association Category | text | Yes | Default: HUBSPOT_DEFINED |
| Lead Type | text | No | e.g., NEW_BUSINESS. Default: NEW_BUSINESS |
| Lead Label | text | No | e.g., WARM, COLD, HOT. Default: WARM |
Outputs: Created Resource ID, Lead ID, Lead Name, Lead Type, Lead Label |
#Use case:
- Agency: Create HOT leads automatically when enrichment data shows a contact at a high-fit company with recent buying signals.
List Users
Returns: Multiple results
Retrieve a paginated list of HubSpot users with their email, role, team assignments, and admin status.
Inputs:
- After Cursor (Required): Pagination token for next page
- Limit (Required): Max 100 per page
#Use case:
- Agency: Pull all users from a client's portal to build a user-to-owner mapping before configuring lead routing.
Get Owners
Returns: Multiple results
Retrieve a paginated list of owners available in the HubSpot account. Owners are users who can be assigned to CRM records.
Inputs:
- Email Filter (Required): Filter results by a specific owner's email
- Limit (Required): Default: 100
- After (Pagination Cursor) (Required): Cursor for next page
- Return Archived Only (Required): Set to true to return only archived owners
#Use case:
- Agency: Retrieve all owners from a client's HubSpot to populate a dropdown for lead assignment rules.
Create Property
Returns: Single result
Create a new custom property for any CRM object type in HubSpot.
Inputs
| Field | Type | Required | Notes |
|---|---|---|---|
| Object Type | select | Yes | contact, companies, deals, tickets, line_items, quotes, calls, emails, meetings, notes, tasks |
| Internal Name | text | Yes | The API key for the property |
| Label | text | Yes | Human-readable name shown in HubSpot |
| Data Type | select | Yes | String, Number, Date, Date Time, Enumeration, Boolean, Phone Number |
| Field Type | select | Yes | Text, Textarea, Number, Select, Radio, Checkbox, Boolean Checkbox, Date, File, Phone Number, Calculation Equation, HTML |
| Group Name | text | Yes | Internal name of the property group (e.g., "contactinformation") |
| Description | text | No | Help text shown in HubSpot |
| Data Sensitivity | select | No | Non Sensitive, Sensitive, Highly Sensitive |
| Display Order | number | No | Sort position |
| Is Form Field | boolean | No | Whether the property can be used in forms |
| Has Unique Value | boolean | No | Enforce uniqueness (cannot be changed once set) |
| Hidden | boolean | No | Hide the property from the HubSpot UI |
| Options (JSON Array) | array | No | Required for Enumeration type properties |
| Calculation Formula | text | No | Formula for calculated properties |
| External Options | boolean | No | Set to true when using OWNER as referenced object type |
| Referenced Object Type | text | No | Set to OWNER when External Options is true |
Outputs: Property Name, Property Label, Data Type / Field Type, Group Name, Options (Raw Array), Has Unique Value / Is Hidden / Is Form Field, Display Order |
#Use case:
- Agency: Create custom contact properties for a client to store enrichment data from TexAu workflows, such as "enrichment_source" or "texau_score".
Get All Properties
Returns: Multiple results
Read all existing properties for a specified CRM object type.
Inputs:
- Object Type (Required): contact, companies, deals, tickets, line_items, quotes, calls, emails, meetings, notes, tasks
- Archived (Required): Return only archived properties
- Data Sensitivity (Required): Filter by sensitivity level
- Locale (Required): Language locale for property names
#Use case:
- Agency: Audit all contact properties in a client's HubSpot to find where enriched data should be stored.
Get All Property Groups
Returns: Multiple results
Retrieve all property groups for a specified object type. Use this to find valid group names before creating new properties.
Inputs:
- Object Type (Required): contact, companies, deals, tickets, line_items, quotes, calls, emails, meetings, notes, tasks
- Locale (Required): Language locale for group names
#Use case:
- Agency: Retrieve group names before running Create Property to place custom properties in the correct group.
Create Engagement
Returns: Single result
Create a new engagement record (email, call, meeting, note, or task) with optional associations to other CRM objects.
Inputs
| Field | Type | Required | Notes |
|---|---|---|---|
| Engagement Type | select | Yes | Emails, Calls, Meetings, Notes, Tasks, Communications, Postal Mail |
| Timestamp | text | No | UTC datetime when the engagement occurred |
| Owner ID | text | No | HubSpot user who owns the engagement |
| Email Subject (For Emails) | text | No | Subject line |
| Email Text Body (For Emails) | text | No | Plain text body |
| Email Direction (For Emails) | select | No | Inbound or Outbound |
| Note Body (For Notes) | text | No | HTML content |
| Task Subject (For Tasks) | text | No | Task title |
| Task Body (For Tasks) | text | No | Task description |
| Task Status (For Tasks) | select | No | NOT_STARTED, IN_PROGRESS, WAITING, COMPLETED, DEFERRED |
| Task Priority (For Tasks) | select | No | LOW, MEDIUM, HIGH |
| Call Title (For Calls) | text | No | Call title |
| Call Body (For Calls) | text | No | Call notes |
| Meeting Title (For Meetings) | text | No | Meeting title |
| Meeting Body (For Meetings) | text | No | Meeting agenda |
| Associations (JSON Array) | text | No | JSON array linking this engagement to contacts, deals, or other objects |
Outputs: Engagement ID, Field, ---, Engagement ID, Created At / Updated At, Is Archived, Properties (Raw JSON), Object Write Trace ID, HubSpot UI URL |
#Use case:
- Agency: Log call notes after discovery calls by creating Call engagements linked to the contact and deal.
Get Engagements
Returns: Multiple results
Retrieve a paginated list of engagements (emails, calls, meetings, notes, tasks) from HubSpot.
Inputs
| Field | Type | Required | Notes |
|---|---|---|---|
| Engagement Type | select | Yes | Emails, Calls, Meetings, Notes, Tasks, Communications, Postal Mail |
| Limit | number | No | Records per page. Default: 10 |
| After (Pagination Cursor) | text | No | Cursor for next page |
| Properties to Retrieve | text | No | Comma-separated list of properties |
| Associations | text | No | Comma-separated list of object types to return associated IDs for |
| Properties with History | text | No | Properties to return with their value history |
| Return Archived Only | boolean | No | Set to true for archived engagements only |
Outputs: Engagement IDs, Created At / Updated At, Is Archived, Properties (Raw JSON), Associations (Raw JSON), Properties With History, HubSpot UI URLs, Next Page Cursor / Next Page Link |
#Use case:
- Agency: Pull all Call engagements for the past week to build a client activity report.
Enrol Contact in Sequence
Returns: Single result
Enrol a contact into a specific HubSpot sales or marketing sequence.
Inputs
| Field | Type | Required | Notes |
|---|---|---|---|
| User ID | text | Yes | The ID of the HubSpot user enrolling the contact |
| Contact ID | text | Yes | The internal contact ID to enrol |
| Sender Email | Yes | Email address of the sender | |
| Sequence ID | text | Yes | The internal sequence identifier |
| Sender Alias Email | No | Alias email address for the sender | |
Outputs: Enrolled At, Enrollment ID, To Email, Updated At |
#Use case:
- Agency: After enriching and qualifying a batch of contacts, enrol the qualified ones into a client's HubSpot sequence automatically.
Troubleshooting
Create CRM Association returns an error Verify that both object IDs exist and that the Association Type matches the object pair. For example, use type 1 for Contact to Company, not Company to Contact (which is type 2).
Get All Pipelines returns empty results Confirm the Object Type is set correctly. HubSpot only supports pipelines for Deals and Tickets.
Create Lead fails with "association error" The Associated Object ID must be a valid Contact or Company ID. Run Get Contact or Search Contacts first to retrieve the correct ID. The Association Type ID must match the object type (e.g., 2 for Contact).
Create Engagement returns no engagement ID Check that the Engagement Type matches the property fields you populated. For example, if you set Engagement Type to "Emails" but only filled in Note Body, the engagement will not be created correctly.
Enrol Contact in Sequence fails with "user not found" The User ID must belong to a HubSpot user with sequence access. Run List Users to find valid user IDs. The Sequence ID must also be a valid, active sequence in the account.
Get Deal Properties returns a large result set This action returns all deal properties in the account, including HubSpot-defined and custom properties. Filter the output in your workflow by checking the Is HubSpot Defined or Group Name fields.