Skip to content

HubSpot

HubSpot

HubSpot is an inbound marketing, sales, and customer service platform integrating CRM, email automation, and analytics to facilitate lead nurturing and seamless customer experiences. With the HubSpot integration in SquadOS, your agents can create and update contacts, deals, companies, and tickets, run advanced CRM searches, and automate workflows without any manual intervention.

This tool supports two authentication modes: OAuth 2.0 (OAUTH2) and API key (API_KEY). OAuth 2.0 is recommended for most use cases, as it does not require manual token generation.

In OAuth mode, you authorize access directly on the Composio connection page — no need to generate credentials manually.

You will need the following fields:

FieldRequiredDescription
api_keyYesYour HubSpot private API key. Go to Settings → Integrations → API Key in the HubSpot dashboard.

For detailed instructions on setting up OAuth credentials or an API key for HubSpot in Composio, see: composio.dev/auth/hubspot.

  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for HubSpot.
  3. Click the card to open the details modal and hit Connect.
  4. You’re taken to the secure connection page hosted by Composio, where you authorize access via OAuth 2.0 or enter the API key obtained above.
  5. Once done, you’re sent back to SquadOS with the account connected and the tool available to your agents. (Connection-flow details in Organization Tools.)

How do I set up custom OAuth credentials for HubSpot?

Section titled “How do I set up custom OAuth credentials for HubSpot?”

For a step-by-step guide on creating and configuring your own HubSpot OAuth credentials with Composio, see How to create OAuth credentials for HubSpot.

Why am I getting errors with limit on HubSpot contact searches?

Section titled “Why am I getting errors with limit on HubSpot contact searches?”

The HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA and HUBSPOT_LIST_CONTACTS_PAGE tools have a maximum limit of 100 results per request. Set limit to 100 or lower to avoid errors.

Why can’t I set up webhooks for HubSpot?

Section titled “Why can’t I set up webhooks for HubSpot?”

HubSpot webhooks require a public app with an App ID and Developer API Key. Private or internal apps cannot receive webhooks.

HUBSPOT_GET_ACCOUNT_INFO

Gets current HubSpot account info (email, hubId, user details) using access-token lookup.

NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_LIST_CONTACTS

Retrieves a paginated list of HubSpot contacts.

NameTypeRequiredDescription
afterstringNoPagination token from paging.next.after of a previous response, used to fetch the subsequent page. Omit for the first page.
limitintegerNoMaximum number of contacts to return per page (default: 10).
archivedbooleanNotrue returns only archived contacts; false (default) returns only active contacts.
propertiesarrayNoList of contact property internal names to include in the response.
associationsarrayNoList of object types (e.g., companies, deals) for which to retrieve associated IDs with each contact.
propertiesWithHistoryarrayNoList of property internal names for which to retrieve historical values.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA

Searches for HubSpot contacts using a text query, specific filter criteria (filters in a group are ANDed, groups are ORed), sorting, and pagination to retrieve selected properties.

NameTypeRequiredDescription
afterstringNoThe cursor token for pagination. Use the after value from paging.next of a previous response.
limitintegerNoThe maximum number of contacts to return. Maximum 100.
querystringNoA string to search across default searchable contact properties only: firstname, lastname, email, phone, company. Does NOT search custom properties — use filterGroups for that.
sortsarrayNoA list of sort criteria. Example: [{'propertyName': 'lastname', 'direction': 'ASCENDING'}].
propertiesarrayNoA list of contact property internal names to include in the response.
filterGroupsarrayNoA list of filter groups. Maximum 5 groups and 18 total filters. Filters within a group are ANDed; groups are ORed.
custom_propertiesarrayNoInternal names of custom properties to retrieve (convenience alias merged into properties).
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_READ_CONTACT

Retrieves a HubSpot contact by its ID.

NameTypeRequiredDescription
contactIdstringYesUnique internal HubSpot CRM object ID for the contact.
archivedbooleanNoSet to true to include only archived contacts; defaults to false (active contacts).
propertiesarrayNoContact property names to include in the response.
associationsarrayNoObject types (e.g., companies, deals) to include associated object IDs.
propertiesWithHistoryarrayNoProperty names for which to include historical values.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_CONTACT

Creates a new HubSpot contact.

NameTypeRequiredDescription
emailstringNoThe primary email address of the contact. This is a unique identifier for contacts in HubSpot.
firstnamestringNoThe contact’s first name.
lastnamestringNoThe contact’s last name.
phonestringNoThe contact’s primary phone number.
companystringNoThe name of the company the contact works for.
jobtitlestringNoThe contact’s job title.
websitestringNoThe URL of the contact’s personal or company website.
associationsarrayNoList of associations to create with other existing HubSpot objects (e.g., companies, deals).
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_UPDATE_CONTACT

Updates properties for an existing HubSpot contact.

NameTypeRequiredDescription
contactIdstringYesUnique HubSpot identifier for the contact to be updated.
propertiesobjectNoStandard HubSpot contact properties to update.
custom_propertiesobjectNoCustom HubSpot properties to update. Keys must be the internal property names (e.g., my_custom_field).
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_MERGE_CONTACTS

Merges two HubSpot contacts into one.

NameTypeRequiredDescription
primaryObjectIdstringYesThe ID of the contact record that will remain after the merge and absorb the information from the other contact.
objectIdToMergestringYesThe ID of the contact record that will be merged into the primary contact and deleted after the merge.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_LIST_CONTACT_PROPERTIES

Lists all contact properties in your HubSpot account, including custom properties. Useful for discovering internal property names to use in filters and updates.

NameTypeRequiredDescription
archivedbooleanNoWhether to include archived properties.
custom_onlybooleanNoFilter to only return custom properties (excludes HubSpot default properties).
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_LIST_COMPANIES

Retrieves a paginated list of HubSpot companies.

NameTypeRequiredDescription
afterstringNoPagination token from a previous response to fetch the subsequent page.
limitintegerNoMaximum number of companies to return per page (default: 10).
archivedbooleanNotrue returns only archived companies; false (default) returns only active companies.
propertiesarrayNoList of company property internal names to include in the response.
associationsarrayNoList of object types for which to retrieve associated IDs with each company.
propertiesWithHistoryarrayNoList of property internal names for which to retrieve historical values.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_SEARCH_COMPANIES

Searches for HubSpot companies using flexible criteria and filters.

NameTypeRequiredDescription
afterstringNoPagination cursor; use paging.next.after from a previous response.
limitintegerNoMaximum number of company records to return.
querystringNoString to search across default text properties of company records.
sortsarrayNoList of sort objects to define the order of results. Maximum 1 sort allowed.
propertiesarrayNoHubSpot company property internal names to include in the response.
filterGroupsarrayNoList of filter groups; filters within a group are ANDed, and multiple groups are ORed.
custom_propertiesarrayNoCustom company property internal names to include in the response.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_GET_COMPANY

Retrieves a HubSpot company by its ID.

NameTypeRequiredDescription
companyIdstringYesUnique HubSpot identifier for the company to retrieve.
archivedbooleanNoSet to true to include only archived companies; defaults to false.
propertiesarrayNoCompany property names to include in the response. Use "all" to retrieve all properties.
associationsarrayNoObject types to include associated object IDs.
propertiesWithHistoryarrayNoProperty names for which to include historical values.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_COMPANY

Creates a new HubSpot company.

NameTypeRequiredDescription
namestringNoCompany name.
domainstringNoCompany’s primary domain name.
phonestringNoCompany’s primary phone number.
websitestringNoCompany’s website URL.
citystringNoCity where the company is located.
statestringNoState or region where the company is located.
countrystringNoCountry where the company is located.
industrystringNoThe type of business the company performs. Must be one of HubSpot’s predefined industry enum values in SCREAMING_SNAKE_CASE (e.g., COMPUTER_SOFTWARE, FINANCIAL_SERVICES).
descriptionstringNoBrief description of the company.
annualrevenuestringNoCompany’s annual revenue.
associationsarrayNoList of associations to create with other existing HubSpot objects.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_UPDATE_COMPANY

Updates properties for an existing HubSpot company.

NameTypeRequiredDescription
companyIdstringYesUnique HubSpot identifier for the company to be updated.
propertiesobjectYesCompany properties to update. Keys are internal HubSpot property names. Use an empty string to clear a property.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_LIST_DEALS

Retrieves a paginated list of HubSpot deals.

NameTypeRequiredDescription
afterstringNoPagination token from a previous response to fetch the subsequent page.
limitintegerNoMaximum number of deals to return per page (default: 10, maximum: 100).
archivedbooleanNoFilter by archived status: true for archived deals, false for active deals.
propertiesarrayNoList of deal property names to include in the response.
associationsarrayNoList of object types for which to retrieve associated IDs.
propertiesWithHistoryarrayNoList of property names for which to retrieve historical values.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_SEARCH_DEALS

Searches for HubSpot deals using flexible criteria and filters.

NameTypeRequiredDescription
afterstringNoPagination token from a previous response. HubSpot’s search API has a hard limit of 10,000 total results.
limitintegerNoMaximum number of deal records to return.
querystringNoString to search across default text properties in deals.
sortsarrayNoSort order for results.
propertiesarrayNoHubSpot deal property internal names to include in the response.
filterGroupsarrayNoFilter groups to apply to the search. Filters within a group are ANDed; groups are ORed.
custom_propertiesarrayNoUser-defined custom property internal names to include in the response.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_GET_DEAL

Retrieves a HubSpot deal by its ID.

NameTypeRequiredDescription
dealIdstringYesUnique HubSpot identifier for the deal to retrieve.
archivedbooleanNoSet to true to include only archived deals; defaults to false.
propertiesarrayNoDeal property names to include in the response.
associationsarrayNoObject types for which to retrieve associated IDs.
propertiesWithHistoryarrayNoProperty names for which to include historical values.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_DEAL

Creates a new HubSpot deal.

NameTypeRequiredDescription
dealnamestringNoDescriptive name or title of the deal.
amountstringNoTotal monetary value of the deal.
pipelinestringNoID of the sales pipeline for this deal (required in practice).
dealstagestringNoValid pipeline stage ID. Stage IDs must be actual values from your HubSpot pipeline configuration.
closedatestringNoDate (YYYY-MM-DD) or datetime (ISO 8601) when the deal closed or is expected to close.
dealtypestringNoType of deal (e.g., newbusiness, existingbusiness).
descriptionstringNoDetailed text description of the deal.
associationsarrayNoAssociations to create between the new deal and other CRM objects.
hubspot_owner_idstringNoID of the HubSpot user owning the deal.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_UPDATE_DEAL

Updates properties for an existing HubSpot deal.

NameTypeRequiredDescription
dealIdstringYesUnique HubSpot identifier for the deal to be updated.
propertiesobjectYesDeal properties to update. Must contain at least one property. Keys are internal HubSpot property names.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_LIST_TICKETS

Retrieves a paginated list of HubSpot support tickets.

NameTypeRequiredDescription
afterstringNoPagination token to fetch the next page.
limitintegerNoMaximum number of tickets to return per page.
archivedbooleanNotrue for archived tickets; false (default) for active tickets.
propertiesarrayNoTicket property names to include in the response.
associationsarrayNoObject types for which to retrieve associated IDs.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_SEARCH_TICKETS

Searches for HubSpot tickets using flexible criteria and filters.

NameTypeRequiredDescription
afterstringNoCursor token for pagination to get the next page of results.
limitintegerNoMaximum number of tickets to return in the response.
querystringNoText search query to find tickets by content or subject.
sortsarrayNoList of sort criteria for ordering the results.
propertiesarrayNoTicket properties to include in the response. Supports both standard and custom properties.
filterGroupsarrayNoGroups of filters to apply to the ticket search.
custom_propertiesarrayNoList of custom property names to include in the response.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_GET_TICKET

Retrieves a HubSpot ticket by its ID.

NameTypeRequiredDescription
ticketIdstringYesUnique HubSpot identifier for the ticket to retrieve.
archivedbooleanNoFilter by archived status.
propertiesarrayNoTicket property names to include in the response.
associationsarrayNoObject types for which to retrieve associated IDs.
propertiesWithHistoryarrayNoProperty names for which to include historical values.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_TICKET

Creates a new HubSpot support ticket.

NameTypeRequiredDescription
subjectstringNoSubject line or title of the ticket; typically a required field in practice.
contentstringNoMain body or description of the ticket, detailing the issue or request.
hs_pipelinestringNoID of the pipeline this ticket belongs to; often a required field.
hs_pipeline_stagestringNoID of the current stage of the ticket within its pipeline.
hs_ticket_prioritystringNoPriority of the ticket: HIGH, MEDIUM, or LOW.
hs_ticket_categorystringNoCategory of the ticket: PRODUCT_ISSUE, BILLING_ISSUE, FEATURE_REQUEST, or GENERAL_INQUIRY.
source_typestringNoSource channel through which the ticket was created: CHAT, EMAIL, FORM, or PHONE.
hubspot_owner_idstringNoID of the HubSpot user who owns this ticket.
associationsarrayNoList defining associations between this new ticket and other existing HubSpot objects.
custom_propertiesobjectNoDictionary of custom properties for the ticket.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_UPDATE_TICKET

Updates properties for an existing HubSpot ticket.

NameTypeRequiredDescription
ticketIdstringYesUnique HubSpot identifier for the ticket to be updated.
propertiesobjectYesTicket properties to update. Keys are internal HubSpot property names.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_NOTE

Creates a new HubSpot CRM note. Use when you need to add a timestamped note with optional attachments and associations to contacts, companies, deals, or tickets.

NameTypeRequiredDescription
hs_timestampstringYesCreation time of the note. Either an ISO 8601 UTC timestamp (e.g., 2021-11-12T15:48:22Z) or Unix milliseconds since epoch.
hs_note_bodystringNoText content of the note (up to 65,536 characters).
hubspot_owner_idstringNoHubSpot user ID to assign as the creator/owner of this note.
associationsarrayNoList of associations to link with the note (e.g., contacts, deals, companies).
hs_attachment_idsstringNoSemicolon-separated list of file attachment IDs.
custom_propertiesobjectNoA dictionary of custom properties.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_TASK

Creates a new CRM task record. Use when adding a task with properties and optional associations.

NameTypeRequiredDescription
hs_timestampstringYesTask due date in ISO 8601 format or Unix milliseconds.
hs_task_subjectstringNoTitle or subject line of the task.
hs_task_bodystringNoNotes or body text of the task.
hs_task_typestringNoType of the task: CALL, EMAIL, or TODO. Defaults to TODO.
hs_task_statusstringNoCurrent status of the task: NOT_STARTED or COMPLETED. Defaults to NOT_STARTED.
hs_task_prioritystringNoPriority level: LOW, MEDIUM, HIGH, or NONE.
hubspot_owner_idstringNoID of the HubSpot owner to assign this task to. Use HUBSPOT_RETRIEVE_OWNERS to obtain valid owner IDs.
associationsarrayNoOptional list of associations to link this task with existing CRM records.
custom_propertiesobjectNoA dictionary of custom properties.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_LINE_ITEM

Creates a new HubSpot line item. Use to connect product information to a deal or quote via hs_product_id.

NameTypeRequiredDescription
propertiesobjectYesLine item properties to set. Keys are HubSpot internal property names.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_PRODUCT

Creates a new HubSpot product. Note: Products are catalog items and cannot be directly associated with deals, contacts, or companies. To connect product information to a deal or quote, create a line item using HUBSPOT_CREATE_LINE_ITEM that references this product’s ID via hs_product_id.

NameTypeRequiredDescription
namestringNoThe official name of the product.
pricenumberNoThe selling price of the product in the default currency of the HubSpot account.
hs_skustringNoThe Stock Keeping Unit (SKU) for the product.
descriptionstringNoA detailed description of the product, its features, and benefits.
hs_urlstringNoA direct URL link to the product’s page on an e-commerce website.
hs_activebooleanNoIndicates if the product is currently active and available for sale.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_LIST_PRODUCTS

Retrieves a paginated list of HubSpot catalog products.

NameTypeRequiredDescription
afterstringNoPagination token from a previous response.
limitintegerNoMaximum number of products to return per page.
archivedbooleanNoFilter by archived status.
propertiesarrayNoList of product property names to include in the response.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_RETRIEVE_OWNERS

Retrieves a list of all owners in the HubSpot CRM, including their ID, first name, last name, email, and user ID.

NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

Retrieve all pipelines for specified object type

Section titled “Retrieve all pipelines for specified object type”

HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE

Retrieves all pipelines in HubSpot for a specified CRM object type, such as deals or tickets.

NameTypeRequiredDescription
objectTypestringYesThe case-sensitive CRM object type (e.g., deals, tickets) for which to retrieve pipelines.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_CREATE_OBJECT_ASSOCIATION

Creates or labels an association between two CRM records using HubSpot Associations v4 API. Use when you need to link records (e.g., contact to company, deal to contact) with explicit association labels.

NameTypeRequiredDescription
objectTypestringYesThe type of the source object (e.g., contacts, companies, deals, tickets).
objectIdstringYesThe unique ID of the source CRM record.
toObjectTypestringYesThe type of the target object to associate with.
toObjectIdstringYesThe unique ID of the target CRM record to associate with.
labelsarrayYesArray of association label descriptors defining the type(s) of relationship. Each label includes associationCategory and associationTypeId.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not

HUBSPOT_SEARCH_CRM_OBJECTS_BY_CRITERIA

Searches HubSpot CRM objects (e.g., contacts, companies) by objectType using complex criteria including filters, sorting, and pagination.

NameTypeRequiredDescription
objectTypestringYesThe type of CRM object to search. Valid values: contacts, companies, deals, tickets, tasks, line_items, products, quotes, calls, emails, meetings, notes, or custom object IDs like 2-1234567.
afterstringNoCursor for pagination. HubSpot’s search API has a hard limit of 10,000 total results.
limitintegerNoMax results per page (default 10, max 100).
querystringNoA string for a broad search across multiple fields on the object.
sortsarrayNoList of sort rules. Only one sorting rule can be applied to any search.
propertiesarrayNoList of property names to include in the response.
filterGroupsarrayNoList of filter groups (AND within, OR between). Maximum of 5 groups with up to 6 filters each (18 total).
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful or not