HubSpot connector
OAuth 2.0 CRM & SalesConnect to HubSpot CRM. Manage contacts, deals, companies, and marketing automation
HubSpot connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Set up the connector
Section titled “Set up the connector”Register your HubSpot credentials with Scalekit so it handles the token lifecycle. You do this once per environment.
Dashboard setup steps
Register your Scalekit environment with the HubSpot connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:
-
Set up auth redirects
-
In Scalekit dashboard, go to AgentKit > Connections > Create Connection. Find HubSpot and click Create. Copy the redirect URI. It looks like
https://<SCALEKIT_ENVIRONMENT_URL>/sso/v1/oauth/<CONNECTION_ID>/callback.
-
Log in to your HubSpot developer dashboard, click Manage apps, click Create app, and select Public app. If you already have an existing HubSpot app, open that app instead — see the Choosing a HubSpot app type section above for guidance on Public, Private, and legacy apps.
-
Go to Auth > Auth settings > Redirect URL, paste the redirect URI from Scalekit, and click Save.

-
Under Auth > Auth settings > Scopes, select the scopes your application needs. The scopes you select here must match exactly what you configure in Scalekit. For a read-only CRM enrichment flow, start with:
crm.objects.contacts.readcrm.objects.companies.readcrm.objects.deals.readThese assume a modern Public app with dotted scope names. For legacy apps or the full scope reference, see the Required and optional scopes section on this page.
-
-
Get client credentials
-
In your HubSpot app, go to Auth > Auth settings.
-
Copy your Client ID and Client Secret.
-
-
Add credentials in Scalekit
-
In Scalekit dashboard, go to AgentKit > Connections and open the connection you created.
-
Enter your credentials:
- Client ID (from your HubSpot app)
- Client Secret (from your HubSpot app)
- Permissions (OAuth scope strings such as
crm.objects.contacts.read, entered exactly as configured in the HubSpot app). For a full list of available scopes and guidance on optional scopes, see the Required and optional scopes section on this page.

-
Click Save.
-
-
-
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'hubspot'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize HubSpot:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first call — list CRM ownersconst result = await actions.executeTool({connector,identifier,toolName: 'hubspot_owners_list',toolInput: {},})console.log('HubSpot owners:', result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "hubspot"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize HubSpot:", link_response.link)input("Press Enter after authorizing...")# Make your first call — list CRM ownersresult = actions.execute_tool(tool_input={},tool_name="hubspot_owners_list",connection_name=connection_name,identifier=identifier,)print("HubSpot owners:", result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Manage contacts — create, update, search, and list contacts; batch create, update, upsert, read, and archive
- Manage companies and deals — create and update company records and deals; batch create, update, upsert, read, and archive
- Manage tickets and tasks — create and update support tickets; create tasks with due dates and priorities
- Batch operations with inline associations — create contacts, companies, deals, or tickets and link them to related records in a single call
- Log engagements — record calls, meetings, notes, and emails against any CRM record
- Search, associate, and extend — full-text search across all CRM objects, batch-manage associations, list owners, discover properties, and work with custom objects
Choosing a HubSpot app type
Section titled “Choosing a HubSpot app type”HubSpot has three app shapes. The shape you choose determines which OAuth flow, scope format, and Scalekit configuration apply.
| App type | OAuth redirect | Scope format | Use with Scalekit |
|---|---|---|---|
| Public app | Supported | Modern (crm.objects.contacts.read) | Recommended |
| Private app | Not supported | N/A — static API token only | Not supported |
| Legacy / developer-account app | Supported | Bare strings (contacts, automation) | Supported — enter bare strings in Permissions |
Public apps are the standard choice for production integrations. They support the OAuth redirect flow that Scalekit manages, and they use the modern dotted scope format.
Private apps issue static API tokens and have no OAuth redirect endpoint. Scalekit’s HubSpot connector requires an OAuth flow, so Private apps are not compatible.
Legacy apps (older apps created in HubSpot developer test accounts before the current console) still support OAuth but use an older scope vocabulary. If you already have a legacy app, you can connect it — you just need to enter the older bare scope strings exactly as HubSpot lists them in that app’s Auth > Scopes page.
Common workflows
Section titled “Common workflows”Proxy API call
const result = await actions.request({ connectionName: 'hubspot', identifier: 'user_123', path: '/crm/v3/owners', method: 'GET',});console.log(result);result = actions.request( connection_name='hubspot', identifier='user_123', path="/crm/v3/owners", method="GET")print(result)Create a contact
const contact = await actions.executeTool({ connector: 'hubspot', identifier: 'user_123', toolName: 'hubspot_contact_create', toolInput: { email: 'jane.smith@acme.com', firstname: 'Jane', lastname: 'Smith', jobtitle: 'VP of Engineering', company: 'Acme Corp', lifecyclestage: 'lead', },});console.log('Created contact ID:', contact.id);contact = actions.execute_tool( connection_name='hubspot', identifier='user_123', tool_name="hubspot_contact_create", tool_input={ "email": "jane.smith@acme.com", "firstname": "Jane", "lastname": "Smith", "jobtitle": "VP of Engineering", "company": "Acme Corp", "lifecyclestage": "lead", },)print("Created contact ID:", contact["id"])Search deals
const deals = await actions.executeTool({ connector: 'hubspot', identifier: 'user_123', toolName: 'hubspot_deals_search', toolInput: { query: 'enterprise', filterGroups: JSON.stringify([{ filters: [{ propertyName: 'dealstage', operator: 'EQ', value: 'qualifiedtobuy' }] }]), properties: 'dealname,amount,dealstage,closedate', limit: 10, },});console.log('Found deals:', deals.results);import json
deals = actions.execute_tool( connection_name='hubspot', identifier='user_123', tool_name="hubspot_deals_search", tool_input={ "query": "enterprise", "filterGroups": json.dumps([{ "filters": [{"propertyName": "dealstage", "operator": "EQ", "value": "qualifiedtobuy"}] }]), "properties": "dealname,amount,dealstage,closedate", "limit": 10, },)print("Found deals:", deals["results"])Log a call
const call = await actions.executeTool({ connector: 'hubspot', identifier: 'user_123', toolName: 'hubspot_call_log', toolInput: { hs_call_title: 'Q4 Renewal Discussion', hs_timestamp: new Date().toISOString(), hs_call_body: 'Discussed renewal terms. Customer is interested in the enterprise plan.', hs_call_direction: 'OUTBOUND', hs_call_duration: 900000, // 15 minutes in ms hs_call_status: 'COMPLETED', },});console.log('Logged call ID:', call.id);from datetime import datetime, timezone
call = actions.execute_tool( connection_name='hubspot', identifier='user_123', tool_name="hubspot_call_log", tool_input={ "hs_call_title": "Q4 Renewal Discussion", "hs_timestamp": datetime.now(timezone.utc).isoformat(), "hs_call_body": "Discussed renewal terms. Customer is interested in the enterprise plan.", "hs_call_direction": "OUTBOUND", "hs_call_duration": 900000, # 15 minutes in ms "hs_call_status": "COMPLETED", },)print("Logged call ID:", call["id"])Create and associate a ticket
// Create the ticketconst ticket = await actions.executeTool({ connector: 'hubspot', identifier: 'user_123', toolName: 'hubspot_ticket_create', toolInput: { subject: 'Cannot export data to CSV', hs_pipeline_stage: '1', // "New" stage content: 'Customer reports that the CSV export button is unresponsive on the Reports page.', hs_ticket_priority: 'HIGH', },});
// Associate with a contactawait actions.executeTool({ connector: 'hubspot', identifier: 'user_123', toolName: 'hubspot_association_create', toolInput: { from_object_type: 'tickets', from_object_id: ticket.id, to_object_type: 'contacts', to_object_id: '12345', },});console.log('Ticket created and associated:', ticket.id);# Create the ticketticket = actions.execute_tool( connection_name='hubspot', identifier='user_123', tool_name="hubspot_ticket_create", tool_input={ "subject": "Cannot export data to CSV", "hs_pipeline_stage": "1", # "New" stage "content": "Customer reports that the CSV export button is unresponsive on the Reports page.", "hs_ticket_priority": "HIGH", },)
# Associate with a contactactions.execute_tool( connection_name='hubspot', identifier='user_123', tool_name="hubspot_association_create", tool_input={ "from_object_type": "tickets", "from_object_id": ticket["id"], "to_object_type": "contacts", "to_object_id": "12345", },)print("Ticket created and associated:", ticket["id"])Required and optional scopes
Section titled “Required and optional scopes”HubSpot’s OAuth connection requires one scope and supports up to 23 optional scopes. Grant only the scopes your tools actually need — a smaller scope set means a simpler consent screen and a faster app review for public listings.
Required scope
oauth — included automatically on every HubSpot connection. You do not need to add it manually.
Optional scopes
Add scopes that match the tools you plan to call. Common choices:
| Scope | Enables |
|---|---|
crm.objects.contacts.read | Read contacts |
crm.objects.contacts.write | Create and update contacts |
crm.objects.companies.read | Read companies |
crm.objects.companies.write | Create and update companies |
crm.objects.deals.read | Read deals |
crm.objects.deals.write | Create and update deals |
crm.objects.line_items.read | Read line items |
crm.objects.line_items.write | Create and update line items |
crm.objects.quotes.read | Read quotes |
crm.lists.read | Read contact lists |
crm.lists.write | Create and manage contact lists |
tickets | Read and write support tickets |
forms | Read forms and form submissions |
automation | Read and trigger workflows and engagements |
e-commerce | Products and orders |
See HubSpot’s scope reference for the full list.
Configure optional scopes in your HubSpot app
In your HubSpot app, go to Auth > Auth settings > Scopes. You’ll see three categories: Required scopes (always requested), Conditionally required scopes, and Optional scopes (requested only when the user’s account has access to them).

Click Add new scope and select the optional scopes your app needs. Optional scopes let users without access to a feature still install your app — HubSpot simply skips those scopes at consent time.
Enable the same optional scopes in Scalekit
- Open the connection in AgentKit > Connections.
- In the Permissions field, enter the scopes you need, space-separated. Example for a read-only CRM flow:
crm.objects.contacts.read crm.objects.companies.read crm.objects.deals.read. - Make sure the scope set here matches exactly what you’ve configured in your HubSpot app. A mismatch causes an
invalid_scopeerror when the user authorizes.
Getting resource IDs
Section titled “Getting resource IDs”Most HubSpot batch and update tools require record IDs. Always fetch IDs from the API — never guess or hard-code them.
| Resource | Tool to get ID | Field in response |
|---|---|---|
| Contact ID | hubspot_contacts_search or hubspot_contacts_list | results[].id |
| Company ID | hubspot_companies_search | results[].id |
| Deal ID | hubspot_deals_search | results[].id |
| Ticket ID | hubspot_tickets_search | results[].id |
| Line Item ID | hubspot_deal_line_items_get | results[].id |
| Product ID | hubspot_products_list | results[].id |
| Owner ID | hubspot_owners_list | results[].id |
| Pipeline ID | hubspot_deal_pipelines_list | results[].id |
| Pipeline Stage ID | hubspot_deal_pipelines_list | results[].stages[].id |
| Custom Object Type ID | hubspot_schemas_list | results[].objectTypeId |
| Custom Object Record ID | hubspot_custom_object_records_search | results[].id |
| Quote ID | hubspot_quote_get | id |
Association type IDs
When linking records, use the correct association_type_id for the object pair:
| From → To | Association Type ID |
|---|---|
| Contact → Company (primary) | 1 |
| Contact → Company | 279 |
| Contact → Deal | 4 |
| Contact → Ticket | 15 |
| Deal → Contact | 3 |
| Deal → Company | 5 |
| Ticket → Contact | 16 |
| Ticket → Company | 340 |
| Line Item → Deal | 20 |
| Company → Contact | 280 |
| Company → Deal | 6 |
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
hubspot_association_create
#
Create a default association between two HubSpot CRM objects. For example, associate a contact with a deal, or a company with a ticket. 4 params
Create a default association between two HubSpot CRM objects. For example, associate a contact with a deal, or a company with a ticket.
from_object_id string required ID of the source object from_object_type string required Type of the source object (e.g. contacts, companies, deals, tickets) to_object_id string required ID of the target object to_object_type string required Type of the target object (e.g. contacts, companies, deals, tickets) hubspot_associations_batch_archive
#
Remove an association between two HubSpot CRM objects using the v4 associations API. 3 params
Remove an association between two HubSpot CRM objects using the v4 associations API.
from_object_type string required The type of the source object inputs string required JSON array of associations to archive in HubSpot v4 format. to_object_type string required The type of the target object hubspot_associations_batch_create
#
Create one or more associations between HubSpot records using the batch API. Pass arrays of IDs — up to 100 pairs per call. 3 params
Create one or more associations between HubSpot records using the batch API. Pass arrays of IDs — up to 100 pairs per call.
from_object_type string required Object type of the source records (e.g. contacts, deals, companies, tickets) inputs string required JSON array of association objects in HubSpot v4 format. to_object_type string required Object type of the target records (e.g. deals, companies, contacts, tickets) hubspot_call_log
#
Log a call engagement in HubSpot CRM. Records details of a phone call including title, duration, notes, status, and direction. 6 params
Log a call engagement in HubSpot CRM. Records details of a phone call including title, duration, notes, status, and direction.
hs_call_title string required Title or subject of the call hs_timestamp string required Date and time when the call took place (ISO 8601 format) hs_call_body string optional Notes or transcript from the call hs_call_direction string optional Direction of the call hs_call_duration number optional Duration of the call in milliseconds hs_call_status string optional Outcome status of the call hubspot_call_update
#
Update an existing call engagement in HubSpot CRM by call ID. Provide any fields to update — only the fields you include will be changed. 11 params
Update an existing call engagement in HubSpot CRM by call ID. Provide any fields to update — only the fields you include will be changed.
call_id string required ID of the call to update hs_call_body string optional Notes or transcript from the call hs_call_direction string optional Direction of the call hs_call_duration number optional Duration of the call in milliseconds hs_call_from_number string optional Phone number the call originated from hs_call_recording_url string optional HTTPS URL pointing to the call recording (.mp3 or .wav) hs_call_status string optional Outcome status of the call hs_call_title string optional Title or subject of the call hs_call_to_number string optional Phone number that received the call hs_timestamp string optional Date and time when the call took place hubspot_owner_id string optional ID of the HubSpot owner associated with the call hubspot_calls_search
#
Search HubSpot call engagements using filters and full-text search. Returns logged calls with their properties. 5 params
Search HubSpot call engagements using filters and full-text search. Returns logged calls with their properties.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties string optional Comma-separated list of properties to include in the response query string optional Full-text search term across call properties hubspot_campaign_get
#
Retrieve details of a specific HubSpot marketing campaign by campaign ID. 1 param
Retrieve details of a specific HubSpot marketing campaign by campaign ID.
campaign_id string required ID of the campaign to retrieve hubspot_campaigns_list
#
List all HubSpot marketing campaigns with pagination support. 2 params
List all HubSpot marketing campaigns with pagination support.
after string optional Pagination cursor for the next page of results limit number optional Number of campaigns to return per page hubspot_companies_batch_archive
#
Archive (soft delete) a company in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored. 1 param
Archive (soft delete) a company in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored.
inputs string required JSON array of record IDs to archive. Each item has an 'id' field. hubspot_companies_batch_create
#
Create one or more companys in HubSpot using the batch API. Pass a list of records — up to 100 per call. 1 param
Create one or more companys in HubSpot using the batch API. Pass a list of records — up to 100 per call.
inputs string required JSON array of objects to create in HubSpot batch format. hubspot_companies_batch_read
#
Retrieve a company record from HubSpot CRM using the batch read API. Returns the specified properties for the record. 2 params
Retrieve a company record from HubSpot CRM using the batch read API. Returns the specified properties for the record.
inputs string required JSON array of record IDs to read. Each item has an 'id' field. properties string optional JSON array of property names to return. Omit to get default properties. hubspot_companies_batch_update
#
Update one or more companys in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call. 1 param
Update one or more companys in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.
inputs string required JSON array of objects to update in HubSpot batch format. hubspot_companies_batch_upsert
#
Upsert one or more companys in HubSpot using the batch API. Pass a list of records — up to 100 per call. 1 param
Upsert one or more companys in HubSpot using the batch API. Pass a list of records — up to 100 per call.
inputs string required JSON array of objects to upsert in HubSpot batch format. hubspot_companies_search
#
Search HubSpot companies using full-text search and pagination. Returns matching companies with specified properties. 5 params
Search HubSpot companies using full-text search and pagination. Returns matching companies with specified properties.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties array optional List of properties to include in the response query string optional Search term for full-text search across company properties hubspot_company_create
#
Create a new company in HubSpot CRM. Requires a company name as the unique identifier. Supports additional properties like domain, industry, phone, location, and revenue information. 10 params
Create a new company in HubSpot CRM. Requires a company name as the unique identifier. Supports additional properties like domain, industry, phone, location, and revenue information.
name string required Company name (required, serves as primary identifier) annualrevenue number optional Annual revenue of the company city string optional Company city location country string optional Company country location description string optional Company description or overview domain string optional Company website domain industry string optional Industry type of the company numberofemployees number optional Number of employees at the company phone string optional Company phone number state string optional Company state or region hubspot_company_get
#
Retrieve details of a specific company from HubSpot by company ID. Returns company properties and associated data. 2 params
Retrieve details of a specific company from HubSpot by company ID. Returns company properties and associated data.
company_id string required ID of the company to retrieve properties string optional Comma-separated list of properties to include in the response hubspot_company_update
#
Update an existing company in HubSpot CRM by company ID. Provide any fields to update. 12 params
Update an existing company in HubSpot CRM by company ID. Provide any fields to update.
company_id string required ID of the company to update annualrevenue string optional Annual revenue of the company city string optional City where the company is located country string optional Country where the company is located description string optional Description of the company domain string optional Company website domain industry string optional Industry the company operates in name string optional Name of the company numberofemployees number optional Number of employees at the company phone string optional Company phone number state string optional State or region where the company is located website string optional Company website URL hubspot_contact_create
#
Create a new contact in HubSpot CRM. Requires an email address as the unique identifier. Supports additional properties like name, company, phone, and lifecycle stage. 9 params
Create a new contact in HubSpot CRM. Requires an email address as the unique identifier. Supports additional properties like name, company, phone, and lifecycle stage.
email string required Primary email address for the contact (required, serves as unique identifier) company string optional Company name where the contact works firstname string optional First name of the contact hs_lead_status string optional Lead status of the contact jobtitle string optional Job title of the contact lastname string optional Last name of the contact lifecyclestage string optional Lifecycle stage of the contact phone string optional Phone number of the contact website string optional Personal or company website URL hubspot_contact_email_events_get
#
Retrieve marketing email events for a specific contact by their email address. Returns open, click, bounce, and unsubscribe events. 3 params
Retrieve marketing email events for a specific contact by their email address. Returns open, click, bounce, and unsubscribe events.
email string required Email address of the contact to retrieve events for eventType string optional Filter by event type (e.g., OPEN, CLICK, BOUNCE, UNSUBSCRIBE) limit number optional Number of events to return per page hubspot_contact_get
#
Retrieve details of a specific contact from HubSpot by contact ID. Returns contact properties and associated data. 2 params
Retrieve details of a specific contact from HubSpot by contact ID. Returns contact properties and associated data.
contact_id string required ID of the contact to retrieve properties string optional Comma-separated list of properties to include in the response hubspot_contact_list_membership_get
#
Retrieve all HubSpot lists that a specific contact belongs to, identified by contact ID. 1 param
Retrieve all HubSpot lists that a specific contact belongs to, identified by contact ID.
contact_id string required ID of the contact to retrieve list memberships for hubspot_contact_sequence_enrollments_get
#
Retrieve all sequence enrollments for a specific contact, showing which sequences they are currently enrolled in. 1 param
Retrieve all sequence enrollments for a specific contact, showing which sequences they are currently enrolled in.
contact_id string required The ID of the contact whose sequence enrollments to retrieve. hubspot_contact_update
#
Update an existing contact in HubSpot CRM by contact ID. Provide any fields to update. 10 params
Update an existing contact in HubSpot CRM by contact ID. Provide any fields to update.
contact_id string required ID of the contact to update company string optional Company name where the contact works email string optional Primary email address of the contact firstname string optional First name of the contact hs_lead_status string optional Lead status of the contact jobtitle string optional Job title of the contact lastname string optional Last name of the contact lifecyclestage string optional Lifecycle stage of the contact phone string optional Phone number of the contact website string optional Website URL of the contact hubspot_contacts_batch_archive
#
Archive (soft delete) a contact in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored. 1 param
Archive (soft delete) a contact in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored.
inputs string required JSON array of record IDs to archive. Each item has an 'id' field. hubspot_contacts_batch_create
#
Create one or more contacts in HubSpot using the batch API. Pass the inputs array in native HubSpot format — up to 100 records per call. 1 param
Create one or more contacts in HubSpot using the batch API. Pass the inputs array in native HubSpot format — up to 100 records per call.
inputs string required JSON array of contact objects in HubSpot batch format. Each item has a 'properties' object and optional 'associations' array. hubspot_contacts_batch_read
#
Retrieve a contact record from HubSpot CRM using the batch read API. Returns the specified properties for the record. 2 params
Retrieve a contact record from HubSpot CRM using the batch read API. Returns the specified properties for the record.
inputs string required JSON array of record IDs to read. Each item has an 'id' field. properties string optional JSON array of property names to return. Omit to get default properties. hubspot_contacts_batch_update
#
Update one or more contacts in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call. 1 param
Update one or more contacts in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.
inputs string required JSON array of objects to update in HubSpot batch format. hubspot_contacts_batch_upsert
#
Upsert one or more contacts in HubSpot using the batch API. Pass a list of records — up to 100 per call. 1 param
Upsert one or more contacts in HubSpot using the batch API. Pass a list of records — up to 100 per call.
inputs string required JSON array of objects to upsert in HubSpot batch format. hubspot_contacts_list
#
Retrieve a list of contacts from HubSpot with filtering and pagination. Returns contact properties and supports pagination through cursor-based navigation. 4 params
Retrieve a list of contacts from HubSpot with filtering and pagination. Returns contact properties and supports pagination through cursor-based navigation.
after string optional Pagination cursor to get the next set of results archived boolean optional Whether to include archived contacts in the results limit number optional Number of results to return per page (max 100) properties string optional Comma-separated list of properties to include in the response hubspot_contacts_search
#
Search HubSpot contacts using full-text search and pagination. Returns matching contacts with specified properties. 5 params
Search HubSpot contacts using full-text search and pagination. Returns matching contacts with specified properties.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties array optional List of properties to include in the response query string optional Search term for full-text search across contact properties hubspot_custom_object_record_create
#
Create a new record for a HubSpot custom object type. 2 params
Create a new record for a HubSpot custom object type.
object_type_id string required The object type ID of the custom object (e.g., contacts) properties string required JSON object containing the properties for the new record hubspot_custom_object_record_get
#
Retrieve a specific record of a HubSpot custom object by object type ID and record ID. 3 params
Retrieve a specific record of a HubSpot custom object by object type ID and record ID.
object_type_id string required The object type ID of the custom object (e.g., contacts) record_id string required ID of the record to retrieve properties string optional Comma-separated list of properties to include in the response hubspot_custom_object_record_update
#
Update an existing record of a HubSpot custom object by object type ID and record ID. Use hubspot_schemas_list to discover available object type IDs and their properties. 3 params
Update an existing record of a HubSpot custom object by object type ID and record ID. Use hubspot_schemas_list to discover available object type IDs and their properties.
object_type_id string required The object type ID of the custom object (e.g., contacts) properties object required Key-value pairs of custom object properties to update record_id string required ID of the record to update hubspot_custom_object_records_search
#
Search records of a HubSpot custom object by object type ID. Use hubspot_schemas_list to find the objectTypeId for your custom object. 6 params
Search records of a HubSpot custom object by object type ID. Use hubspot_schemas_list to find the objectTypeId for your custom object.
object_type_id string required The object type ID of the custom object (e.g., contacts) after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties string optional Comma-separated list of properties to include in the response query string optional Full-text search term across record properties hubspot_deal_create
#
Create a new deal in HubSpot CRM. Requires dealname and dealstage. Supports additional properties like amount, pipeline, close date, and deal type. 8 params
Create a new deal in HubSpot CRM. Requires dealname and dealstage. Supports additional properties like amount, pipeline, close date, and deal type.
dealname string required Name of the deal (required) dealstage string required Current stage of the deal (required) amount number optional Deal amount/value closedate string optional Expected close date (YYYY-MM-DD format) dealtype string optional Type of deal description string optional Deal description hs_priority string optional Deal priority (high, medium, low) pipeline string optional Deal pipeline hubspot_deal_get
#
Retrieve details of a specific deal from HubSpot by deal ID. Returns deal properties and associated data. 3 params
Retrieve details of a specific deal from HubSpot by deal ID. Returns deal properties and associated data.
deal_id string required ID of the deal to retrieve associations string optional Comma-separated list of object types to retrieve associations for properties string optional Comma-separated list of properties to include in the response hubspot_deal_line_items_get
#
Retrieve all line items associated with a specific HubSpot deal. 1 param
Retrieve all line items associated with a specific HubSpot deal.
deal_id string required ID of the deal to retrieve line items for hubspot_deal_pipelines_list
#
Retrieve all deal pipelines in HubSpot, including pipeline stages. Use this to get valid pipeline IDs and stage IDs for creating or updating deals. 1 param
Retrieve all deal pipelines in HubSpot, including pipeline stages. Use this to get valid pipeline IDs and stage IDs for creating or updating deals.
archived string optional Include archived pipelines in the response hubspot_deal_update
#
Update an existing deal in HubSpot CRM by deal ID. Provide any fields to update. 9 params
Update an existing deal in HubSpot CRM by deal ID. Provide any fields to update.
deal_id string required ID of the deal to update amount number optional Updated deal amount/value closedate string optional Updated expected close date (YYYY-MM-DD format) dealname string optional Updated name of the deal dealstage string optional Updated stage of the deal dealtype string optional Updated type of deal description string optional Updated deal description hs_priority string optional Updated deal priority pipeline string optional Updated deal pipeline hubspot_deals_batch_archive
#
Archive (soft delete) a deal in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored. 1 param
Archive (soft delete) a deal in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored.
inputs string required JSON array of record IDs to archive. Each item has an 'id' field. hubspot_deals_batch_create
#
Create one or more deals in HubSpot using the batch API. Pass a list of records — up to 100 per call. 1 param
Create one or more deals in HubSpot using the batch API. Pass a list of records — up to 100 per call.
inputs string required JSON array of objects to create in HubSpot batch format. hubspot_deals_batch_read
#
Retrieve a deal record from HubSpot CRM using the batch read API. Returns the specified properties for the record. 2 params
Retrieve a deal record from HubSpot CRM using the batch read API. Returns the specified properties for the record.
inputs string required JSON array of record IDs to read. Each item has an 'id' field. properties string optional JSON array of property names to return. Omit to get default properties. hubspot_deals_batch_update
#
Update one or more deals in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call. 1 param
Update one or more deals in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.
inputs string required JSON array of objects to update in HubSpot batch format. hubspot_deals_batch_upsert
#
Upsert one or more deals in HubSpot using the batch API. Pass a list of records — up to 100 per call. 1 param
Upsert one or more deals in HubSpot using the batch API. Pass a list of records — up to 100 per call.
inputs string required JSON array of objects to upsert in HubSpot batch format. hubspot_deals_search
#
Search HubSpot deals using full-text search and pagination. Returns matching deals with specified properties. 5 params
Search HubSpot deals using full-text search and pagination. Returns matching deals with specified properties.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties array optional List of properties to include in the response query string optional Search term for full-text search across deal properties hubspot_email_create
#
Create an email engagement in HubSpot CRM to log an email interaction on a record's timeline. Use this to record sent, received, or forwarded emails against contacts, companies, or deals. 8 params
Create an email engagement in HubSpot CRM to log an email interaction on a record's timeline. Use this to record sent, received, or forwarded emails against contacts, companies, or deals.
hs_email_direction string required Direction the email was sent hs_timestamp string required Date and time of the email hs_email_headers string optional Email headers as a JSON-escaped string containing sender and recipient details hs_email_html string optional HTML body of the email hs_email_status string optional Send status of the email hs_email_subject string optional Subject line of the email hs_email_text string optional Plain-text body of the email hubspot_owner_id string optional ID of the HubSpot owner associated with the email hubspot_email_statistics_histogram
#
Retrieve a time-series histogram of marketing email statistics (opens, clicks, deliveries, etc.) bucketed by a specified interval over a time range. 5 params
Retrieve a time-series histogram of marketing email statistics (opens, clicks, deliveries, etc.) bucketed by a specified interval over a time range.
endTimestamp string required End of the time range for the histogram in ISO 8601 date-time format interval string required Time bucket interval for grouping histogram data startTimestamp string required Start of the time range for the histogram in ISO 8601 date-time format after string optional Pagination cursor to get the next set of results emailIds array optional List of marketing email IDs to filter histogram data by hubspot_email_statistics_list
#
Retrieve aggregated send, open, click, and other statistics for marketing emails over a specified time range. Optionally filter by specific email IDs. 4 params
Retrieve aggregated send, open, click, and other statistics for marketing emails over a specified time range. Optionally filter by specific email IDs.
endTimestamp string required End of the time range for statistics in ISO 8601 date-time format startTimestamp string required Start of the time range for statistics in ISO 8601 date-time format emailIds array optional List of marketing email IDs to filter statistics by property string optional Comma-separated list of metric properties to include in the response hubspot_email_update
#
Update an existing email engagement in HubSpot CRM by email ID. Provide any fields to update — only the fields you include will be changed. 9 params
Update an existing email engagement in HubSpot CRM by email ID. Provide any fields to update — only the fields you include will be changed.
email_id string required ID of the email engagement to update hs_email_direction string optional Direction the email was sent hs_email_headers string optional Email headers as a JSON-escaped string containing sender and recipient details hs_email_html string optional HTML body of the email hs_email_status string optional Send status of the email hs_email_subject string optional Subject line of the email hs_email_text string optional Plain-text body of the email hs_timestamp string optional Date and time of the email hubspot_owner_id string optional ID of the HubSpot owner associated with the email hubspot_emails_search
#
Search HubSpot email engagements (logged emails) using filters and full-text search. Returns logged email records with their properties. 5 params
Search HubSpot email engagements (logged emails) using filters and full-text search. Returns logged email records with their properties.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties string optional Comma-separated list of properties to include in the response query string optional Full-text search term across email properties hubspot_engagements_list
#
List engagements (notes, tasks, calls, emails, meetings) from HubSpot CRM. Supports filtering by engagement type and pagination. 3 params
List engagements (notes, tasks, calls, emails, meetings) from HubSpot CRM. Supports filtering by engagement type and pagination.
engagement_type string required Type of engagement to list after string optional Pagination cursor to get the next page of results limit integer optional Number of results to return (max 100) hubspot_form_submissions_get
#
Retrieve all submissions for a specific HubSpot form. Returns submitted field values and submission timestamps. 3 params
Retrieve all submissions for a specific HubSpot form. Returns submitted field values and submission timestamps.
form_id string required ID of the form to retrieve submissions for after string optional Pagination offset token for the next page limit number optional Number of submissions to return per page hubspot_forms_list
#
List all HubSpot marketing forms. Returns form IDs, names, and field definitions. 3 params
List all HubSpot marketing forms. Returns form IDs, names, and field definitions.
after string optional Pagination cursor for the next page of results formTypes string optional Comma-separated list of form types to filter by (e.g., hubspot,captured,flow) limit number optional Number of forms to return per page (max 50) hubspot_line_item_create
#
Create a new line item in HubSpot. Line items represent individual products or services in a deal. 5 params
Create a new line item in HubSpot. Line items represent individual products or services in a deal.
name string required Name of the line item deal_id string optional ID of the deal to associate this line item with hs_product_id string optional ID of the associated product from HubSpot product library price string optional Unit price of the line item quantity string optional Quantity of the line item hubspot_line_items_batch_archive
#
Archive (soft delete) a line item in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored. 1 param
Archive (soft delete) a line item in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored.
inputs string required JSON array of record IDs to archive. Each item has an 'id' field. hubspot_line_items_batch_create
#
Create one or more line items in HubSpot using the batch API. Pass a list of records — up to 100 per call. 1 param
Create one or more line items in HubSpot using the batch API. Pass a list of records — up to 100 per call.
inputs string required JSON array of objects to create in HubSpot batch format. hubspot_line_items_batch_read
#
Retrieve a line item record from HubSpot CRM using the batch read API. Returns the specified properties for the record. 2 params
Retrieve a line item record from HubSpot CRM using the batch read API. Returns the specified properties for the record.
inputs string required JSON array of record IDs to read. Each item has an 'id' field. properties string optional JSON array of property names to return. Omit to get default properties. hubspot_line_items_batch_update
#
Update one or more line items in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call. 1 param
Update one or more line items in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.
inputs string required JSON array of objects to update in HubSpot batch format. hubspot_list_create
#
Create a new HubSpot CRM list for contacts, companies, or deals. Supports static (MANUAL), one-time snapshot (SNAPSHOT), and auto-updating dynamic (DYNAMIC) lists. 8 params
Create a new HubSpot CRM list for contacts, companies, or deals. Supports static (MANUAL), one-time snapshot (SNAPSHOT), and auto-updating dynamic (DYNAMIC) lists.
name string required Display name of the list. Must be unique across all public lists in the portal. objectTypeId string required Object type the list will contain. Use 0-1 for contacts, 0-2 for companies, 0-3 for deals. processingType string required How list membership is determined. MANUAL for static lists, SNAPSHOT for a one-time filter run, DYNAMIC for continuously updated lists. customProperties string optional Custom key-value metadata to attach to the list. filterBranch string optional Nested filter tree defining membership criteria for DYNAMIC or SNAPSHOT lists. listFolderId integer optional ID of the folder to place this list in. Defaults to the root folder if omitted. listPermissions string optional Teams and users that should have edit access to this list, identified by their numeric HubSpot IDs. membershipSettings string optional Controls whether unassigned records are included in the list and which team owns the membership. hubspot_list_delete
#
Permanently delete a HubSpot CRM list by its list ID. This removes the list definition but does not delete the records it contains. 1 param
Permanently delete a HubSpot CRM list by its list ID. This removes the list definition but does not delete the records it contains.
listId string required The ID of the list to delete. hubspot_list_filters_update
#
Replace the filter branch of a DYNAMIC HubSpot list. The new filterBranch fully replaces the existing definition — include any filters you want to keep. The list immediately begins reprocessing its membership after the update. 2 params
Replace the filter branch of a DYNAMIC HubSpot list. The new filterBranch fully replaces the existing definition — include any filters you want to keep. The list immediately begins reprocessing its membership after the update.
filterBranch string required The new filter branch definition that replaces the existing one. Must be a complete OR root branch with nested AND branches. listId string required The ID of the list whose filters should be updated. hubspot_list_memberships_add
#
Add one or more records to a MANUAL HubSpot list by their record IDs. 2 params
Add one or more records to a MANUAL HubSpot list by their record IDs.
listId string required ID of the list to add contacts to. recordIds string required JSON array of contact record IDs to add to the list. hubspot_list_memberships_remove
#
Remove one or more records from a MANUAL HubSpot list by their record IDs. 2 params
Remove one or more records from a MANUAL HubSpot list by their record IDs.
listId string required ID of the list to remove contacts from. recordIds string required JSON array of contact record IDs to remove from the list. hubspot_list_name_update
#
Rename a HubSpot CRM list. The new name must be unique across all public lists in the portal. Optionally return filter definitions in the response by setting includeFilters to true. 3 params
Rename a HubSpot CRM list. The new name must be unique across all public lists in the portal. Optionally return filter definitions in the response by setting includeFilters to true.
listId string required The ID of the list to update. listName string required The new name for the list. includeFilters boolean optional Whether to include filter branch definitions in the response. hubspot_marketing_email_get
#
Retrieve a single marketing email by its ID, including subject, body, send configuration, and metadata. 7 params
Retrieve a single marketing email by its ID, including subject, body, send configuration, and metadata.
emailId string required The ID of the marketing email to retrieve archived boolean optional Whether to return the email even if it has been archived includedProperties string optional Comma-separated list of property names to include in the response, limiting which fields are returned includeStats boolean optional Whether to include send, open, click, and other statistics in the response marketingCampaignNames boolean optional Whether to include the names of marketing campaigns associated with the email variantStats boolean optional Whether to include statistics broken down by A/B test variant workflowNames boolean optional Whether to include the names of workflows in which this email is used hubspot_meeting_log
#
Log a meeting engagement in HubSpot CRM. Records details of a meeting including title, start/end time, description, and outcome. 6 params
Log a meeting engagement in HubSpot CRM. Records details of a meeting including title, start/end time, description, and outcome.
hs_meeting_end_time string required End time of the meeting (ISO 8601 format) hs_meeting_start_time string required Start time of the meeting (ISO 8601 format) hs_meeting_title string required Title of the meeting hs_timestamp string required Timestamp for the meeting (ISO 8601 format) hs_meeting_body string optional Description or agenda for the meeting hs_meeting_outcome string optional Outcome of the meeting hubspot_meeting_update
#
Update an existing meeting engagement in HubSpot CRM by meeting ID. Provide any fields to update — only the fields you include will be changed. 10 params
Update an existing meeting engagement in HubSpot CRM by meeting ID. Provide any fields to update — only the fields you include will be changed.
meeting_id string required ID of the meeting to update hs_internal_meeting_notes string optional Internal notes not shared with attendees hs_meeting_body string optional Description or agenda for the meeting hs_meeting_end_time string optional End time of the meeting (ISO 8601 format) hs_meeting_location string optional Location of the meeting hs_meeting_outcome string optional Outcome of the meeting hs_meeting_start_time string optional Start time of the meeting (ISO 8601 format) hs_meeting_title string optional Title of the meeting hs_timestamp string optional Timestamp for the meeting (ISO 8601 format) hubspot_owner_id string optional ID of the HubSpot owner associated with the meeting hubspot_meetings_search
#
Search HubSpot meeting engagements using filters and full-text search. Returns logged meetings with their properties. 5 params
Search HubSpot meeting engagements using filters and full-text search. Returns logged meetings with their properties.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties string optional Comma-separated list of properties to include in the response query string optional Full-text search term across meeting properties hubspot_note_create
#
Create a note in HubSpot CRM to log interactions, meeting summaries, or important information. Notes can be associated with contacts, companies, or deals. 1 param
Create a note in HubSpot CRM to log interactions, meeting summaries, or important information. Notes can be associated with contacts, companies, or deals.
props object required Note properties. hs_note_body (required) is the note content. hs_timestamp (required) is Unix ms timestamp e.g. 1700000000000. hubspot_note_log
#
Log a note engagement in HubSpot CRM. Creates a text note that can be associated with contacts, companies, or deals. 2 params
Log a note engagement in HubSpot CRM. Creates a text note that can be associated with contacts, companies, or deals.
hs_note_body string required Content of the note hs_timestamp string required Timestamp for the note (ISO 8601 format) hubspot_note_update
#
Update an existing note in HubSpot CRM by note ID. Provide any fields to update — only the fields you include will be changed. 4 params
Update an existing note in HubSpot CRM by note ID. Provide any fields to update — only the fields you include will be changed.
note_id string required ID of the note to update hs_note_body string optional Text content of the note hs_timestamp string optional Date and time of the note hubspot_owner_id string optional ID of the HubSpot owner associated with the note hubspot_notes_search
#
Search HubSpot note engagements using filters and full-text search. Returns logged notes with their content and timestamps. 5 params
Search HubSpot note engagements using filters and full-text search. Returns logged notes with their content and timestamps.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties string optional Comma-separated list of properties to include in the response query string optional Full-text search term across note content hubspot_object_properties_list
#
Retrieve all properties defined for a HubSpot CRM object type (contacts, companies, deals, tickets, etc.). 2 params
Retrieve all properties defined for a HubSpot CRM object type (contacts, companies, deals, tickets, etc.).
object_type string required The CRM object type to list properties for archived string optional Include archived properties in the response hubspot_owners_list
#
List all HubSpot owners (users). Use this to find owner IDs for assigning contacts, deals, tickets, and other CRM records. 3 params
List all HubSpot owners (users). Use this to find owner IDs for assigning contacts, deals, tickets, and other CRM records.
after string optional Pagination cursor for the next page of results email string optional Filter owners by email address limit number optional Number of owners to return per page (max 500) hubspot_product_create
#
Create a new product in the HubSpot product library. 4 params
Create a new product in the HubSpot product library.
name string required Name of the product description string optional Description of the product hs_sku string optional Stock keeping unit (SKU) identifier for the product price string optional Price of the product hubspot_product_update
#
Update an existing product in the HubSpot product library by its product ID. 9 params
Update an existing product in the HubSpot product library by its product ID.
product_id string required The ID of the product to update. description string optional New description of the product. hs_cost_of_goods_sold string optional Cost of goods sold for the product. hs_recurring_billing_period string optional Billing period for recurring products (e.g. P1M for monthly, P1Y for annual). hs_sku string optional New stock keeping unit (SKU) identifier for the product. idProperty string optional The name of a unique property to use as the identifier instead of the default productId. name string optional New name of the product. price string optional New unit price of the product. properties string optional Arbitrary key-value pairs of any HubSpot product properties to update. hubspot_products_batch_archive
#
Archive (soft delete) a product in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored. 1 param
Archive (soft delete) a product in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored.
inputs string required JSON array of record IDs to archive. Each item has an 'id' field. hubspot_products_batch_read
#
Retrieve a product record from HubSpot CRM using the batch read API. Returns the specified properties for the record. 2 params
Retrieve a product record from HubSpot CRM using the batch read API. Returns the specified properties for the record.
inputs string required JSON array of record IDs to read. Each item has an 'id' field. properties string optional JSON array of property names to return. Omit to get default properties. hubspot_products_list
#
Retrieve a list of products from the HubSpot product library. 3 params
Retrieve a list of products from the HubSpot product library.
after string optional Pagination cursor for the next page of results limit number optional Number of products to return per page (max 100) properties string optional Comma-separated list of product properties to include in response hubspot_quote_create
#
Create a new quote in HubSpot. Requires a title and language. Optionally associate with a deal and set expiration date, currency, status, and additional properties. Returns the created quote ID. 8 params
Create a new quote in HubSpot. Requires a title and language. Optionally associate with a deal and set expiration date, currency, status, and additional properties. Returns the created quote ID.
hs_expiration_date string required Expiration date of the quote (YYYY-MM-DD format) hs_language string required Language of the quote (ISO 639-1 code, e.g. en, de, fr, es) hs_title string required Title of the quote deal_id string optional ID of the deal to associate this quote with hs_currency string optional Currency code for the quote (e.g. USD, EUR). hs_sender_company_name string optional Sender company name shown on the quote. hs_status string optional Status of the quote (DRAFT, PENDING_APPROVAL, APPROVED, REJECTED) properties object optional Additional HubSpot quote properties as a JSON object. hubspot_quote_get
#
Retrieve a specific HubSpot quote by its ID. 2 params
Retrieve a specific HubSpot quote by its ID.
quote_id string required ID of the quote to retrieve properties string optional Comma-separated list of quote properties to include in response hubspot_quote_update
#
Update an existing quote in HubSpot by its quote ID. Use this to change the title, status, expiration date, or currency of a quote. 8 params
Update an existing quote in HubSpot by its quote ID. Use this to change the title, status, expiration date, or currency of a quote.
quote_id string required The ID of the quote to update. hs_currency string optional Currency code for the quote (ISO 4217). hs_expiration_date string optional New expiration date for the quote (YYYY-MM-DD). hs_language string optional Language of the quote (ISO 639-1 code). hs_status string optional New status of the quote. hs_title string optional New title of the quote. idProperty string optional The name of a unique property to use as the identifier instead of the default quoteId. properties string optional Arbitrary key-value pairs of any HubSpot quote properties to update. hubspot_schemas_list
#
List all custom object schemas defined in HubSpot. Returns object type IDs, labels, and property definitions needed to work with custom objects. 1 param
List all custom object schemas defined in HubSpot. Returns object type IDs, labels, and property definitions needed to work with custom objects.
archived string optional Include archived schemas in the response hubspot_sequence_enroll
#
Enroll a contact into a HubSpot sequence. Requires the sequence ID, contact ID, sender email, and the enrolling user's ID. 5 params
Enroll a contact into a HubSpot sequence. Requires the sequence ID, contact ID, sender email, and the enrolling user's ID.
contact_id string required The ID of the contact to enroll in the sequence. sender_email string required The email address of the sender enrolling the contact. sequence_id string required The ID of the sequence to enroll the contact in. user_id string required The ID of the HubSpot user enrolling the contact. sender_alias_address string optional An alias email address used by the sender when enrolling the contact. hubspot_sequence_get
#
Retrieve details of a specific sequence by ID, including its steps, status, and settings. 2 params
Retrieve details of a specific sequence by ID, including its steps, status, and settings.
sequence_id string required The ID of the sequence to retrieve. user_id string required The ID of the HubSpot user associated with the sequence. hubspot_sequences_list
#
List all sequences in HubSpot. Returns a paginated list of sequences with their IDs, names, and status. 4 params
List all sequences in HubSpot. Returns a paginated list of sequences with their IDs, names, and status.
user_id string required The ID of the HubSpot user whose sequences to list. after string optional Cursor token for the next page of results. limit integer optional Maximum number of sequences to return per page. name string optional Filter sequences by name. hubspot_task_complete
#
Mark a HubSpot task as completed or update its status. Use the task ID from hubspot_tasks_search or hubspot_task_create. 3 params
Mark a HubSpot task as completed or update its status. Use the task ID from hubspot_tasks_search or hubspot_task_create.
task_id string required ID of the task to update hs_task_body string optional Updated notes for the task hs_task_status string optional New status to set for the task hubspot_task_create
#
Create a new task in HubSpot CRM. Tasks can be assigned to owners and associated with contacts, companies, or deals. 6 params
Create a new task in HubSpot CRM. Tasks can be assigned to owners and associated with contacts, companies, or deals.
hs_task_subject string required Subject or title of the task hs_timestamp string required Due date and time for the task (ISO 8601 format) hs_task_body string optional Notes or description for the task hs_task_priority string optional Priority level of the task hs_task_status string optional Status of the task hs_task_type string optional Type of task hubspot_tasks_search
#
Search HubSpot tasks using filters and full-text search. Returns tasks with their subject, status, due date, and priority. 5 params
Search HubSpot tasks using filters and full-text search. Returns tasks with their subject, status, due date, and priority.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties string optional Comma-separated list of properties to include in the response query string optional Full-text search term across task properties hubspot_ticket_create
#
Create a new support ticket in HubSpot. Use hubspot_deal_pipelines_list with object type 'tickets' to find valid pipeline and stage IDs. 5 params
Create a new support ticket in HubSpot. Use hubspot_deal_pipelines_list with object type 'tickets' to find valid pipeline and stage IDs.
hs_pipeline_stage string required Pipeline stage ID for the ticket subject string required Subject of the ticket content string optional Detailed description of the support issue hs_pipeline string optional Pipeline ID for the ticket (defaults to '0' for the default pipeline) hs_ticket_priority string optional Priority level of the ticket hubspot_ticket_get
#
Retrieve details of a specific HubSpot support ticket by ticket ID. 2 params
Retrieve details of a specific HubSpot support ticket by ticket ID.
ticket_id string required ID of the ticket to retrieve properties string optional Comma-separated list of properties to include in the response hubspot_ticket_update
#
Update an existing HubSpot support ticket by ticket ID. Provide any fields to update. 6 params
Update an existing HubSpot support ticket by ticket ID. Provide any fields to update.
ticket_id string required ID of the ticket to update content string optional Updated description of the support issue hs_pipeline string optional Updated pipeline ID for the ticket hs_pipeline_stage string optional Updated pipeline stage ID for the ticket hs_ticket_priority string optional Updated priority level of the ticket subject string optional Updated subject of the ticket hubspot_tickets_batch_archive
#
Archive (soft delete) a ticket in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored. 1 param
Archive (soft delete) a ticket in HubSpot CRM using the batch archive API. Archived records are hidden from the UI but can be restored.
inputs string required JSON array of record IDs to archive. Each item has an 'id' field. hubspot_tickets_batch_create
#
Create one or more tickets in HubSpot using the batch API. Pass a list of records — up to 100 per call. 1 param
Create one or more tickets in HubSpot using the batch API. Pass a list of records — up to 100 per call.
inputs string required JSON array of objects to create in HubSpot batch format. hubspot_tickets_batch_read
#
Retrieve a ticket record from HubSpot CRM using the batch read API. Returns the specified properties for the record. 2 params
Retrieve a ticket record from HubSpot CRM using the batch read API. Returns the specified properties for the record.
inputs string required JSON array of record IDs to read. Each item has an 'id' field. properties string optional JSON array of property names to return. Omit to get default properties. hubspot_tickets_batch_update
#
Update one or more tickets in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call. 1 param
Update one or more tickets in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.
inputs string required JSON array of objects to update in HubSpot batch format. hubspot_tickets_batch_upsert
#
Upsert one or more tickets in HubSpot using the batch API. Pass a list of records — up to 100 per call. 1 param
Upsert one or more tickets in HubSpot using the batch API. Pass a list of records — up to 100 per call.
inputs string required JSON array of objects to upsert in HubSpot batch format. hubspot_tickets_search
#
Search HubSpot support tickets using filters and full-text search. Returns matching tickets with their properties. 5 params
Search HubSpot support tickets using filters and full-text search. Returns matching tickets with their properties.
after string optional Pagination offset to get results starting from a specific position filterGroups string optional JSON string containing filter groups for advanced filtering limit number optional Number of results to return per page (max 100) properties string optional Comma-separated list of properties to include in the response query string optional Full-text search term across ticket properties hubspot_workflow_create
#
Create a new automation workflow in HubSpot. Use type CONTACT_FLOW for contact-based workflows. The workflow starts disabled by default unless isEnabled is set to true. 21 params
Create a new automation workflow in HubSpot. Use type CONTACT_FLOW for contact-based workflows. The workflow starts disabled by default unless isEnabled is set to true.
name string required Display name of the workflow. objectTypeId string required Object type the workflow operates on. type string required Workflow type. Use CONTACT_FLOW for contact-based workflows. actions string optional Array of action steps in the workflow. Each action type can be STATIC_BRANCH, LIST_BRANCH, AB_TEST_BRANCH, CUSTOM_CODE, WEBHOOK, or SINGLE_CONNECTION. blockedDates string optional Dates on which workflow actions are suppressed. canEnrollFromSalesforce boolean optional Whether contacts can be enrolled from Salesforce. Only applicable for CONTACT_FLOW type. customProperties string optional Custom metadata key-value pairs attached to the workflow. dataSources string optional Data sources the workflow can reference, such as associated objects. description string optional Optional description of the workflow's purpose. enrollmentCriteria string optional Criteria for enrolling contacts into the workflow. enrollmentSchedule string optional Schedule for re-enrollment checks. eventAnchor string optional The anchor point for date-based workflows, referencing a contact property or a static date. flowType string optional Flow sub-type. Use WORKFLOW for standard automation or ACTION_SET for action-only flows. goalFilterBranch string optional Filter branch defining the goal criteria that unenrolls contacts when met. Only for CONTACT_FLOW. isEnabled boolean optional Whether the workflow is active immediately after creation. Defaults to false. startActionId string optional The ID of the first action to execute in the workflow. suppressionFilterBranch string optional Filter branch defining contacts to exclude from enrollment. Only for PLATFORM_FLOW type. suppressionListIds string optional Array of list IDs whose members are excluded from workflow enrollment. timeWindows string optional Time windows that restrict when workflow actions can execute. unEnrollmentSetting string optional Controls when and how contacts are unenrolled. Only for CONTACT_FLOW. uuid string optional Optional stable identifier for the workflow, preserved across revisions. hubspot_workflow_delete
#
Permanently delete a HubSpot workflow by its workflow ID. This action cannot be undone. 1 param
Permanently delete a HubSpot workflow by its workflow ID. This action cannot be undone.
flow_id string required The ID of the workflow to delete. hubspot_workflow_email_campaigns_get
#
Retrieve email campaigns associated with one or more HubSpot workflows. Filter by flow IDs to see which email campaigns a specific workflow sends. 4 params
Retrieve email campaigns associated with one or more HubSpot workflows. Filter by flow IDs to see which email campaigns a specific workflow sends.
flowId string required Comma-separated list of flow IDs to filter email campaigns by specific workflows. after string optional Pagination cursor from the previous response to fetch the next page. before string optional Pagination cursor from the previous response to fetch the previous page. limit integer optional Maximum number of results to return per page. hubspot_workflow_enroll
#
Enroll a contact into a HubSpot workflow by workflow ID and the contact's email address. 2 params
Enroll a contact into a HubSpot workflow by workflow ID and the contact's email address.
email string required The email address of the contact to enroll in the workflow. workflow_id string required The ID of the workflow to enroll the contact into. hubspot_workflow_get
#
Retrieve details of a specific automation workflow by flow ID, including its trigger, actions, and enrollment criteria. 1 param
Retrieve details of a specific automation workflow by flow ID, including its trigger, actions, and enrollment criteria.
flow_id string required The ID of the workflow to retrieve. hubspot_workflow_get_v3
#
Retrieve metadata for a specific v3 workflow by its v3 workflow ID, including name, type, enabled status, and optionally validation errors and statistics. 3 params
Retrieve metadata for a specific v3 workflow by its v3 workflow ID, including name, type, enabled status, and optionally validation errors and statistics.
workflow_id string required The ID of the v3 workflow to retrieve. errors boolean optional Whether to include validation errors and warnings in the response. stats boolean optional Whether to include workflow statistics in the response. hubspot_workflow_unenroll
#
Remove a contact from a HubSpot workflow by workflow ID and the contact's email address. 2 params
Remove a contact from a HubSpot workflow by workflow ID and the contact's email address.
email string required The email address of the contact to unenroll from the workflow. workflow_id string required The ID of the workflow to unenroll the contact from. hubspot_workflow_update
#
Replace a HubSpot workflow's full definition by flow ID. Requires the current revisionId for optimistic locking — fetch it first with Get Workflow. Provide all required fields (actions, blockedDates, customProperties, timeWindows, type, isEnabled) plus the revisionId. 19 params
Replace a HubSpot workflow's full definition by flow ID. Requires the current revisionId for optimistic locking — fetch it first with Get Workflow. Provide all required fields (actions, blockedDates, customProperties, timeWindows, type, isEnabled) plus the revisionId.
flow_id string required The ID of the workflow to update. isEnabled boolean required Whether the workflow should be active after the update. revisionId string required The current revision ID of the workflow, used for optimistic locking to prevent concurrent overwrites. type string required Workflow type. Must match the existing workflow type. actions string optional Array of action steps in the workflow. Replaces the existing actions. Each action type can be STATIC_BRANCH, LIST_BRANCH, AB_TEST_BRANCH, CUSTOM_CODE, WEBHOOK, or SINGLE_CONNECTION. blockedDates string optional Array of date ranges during which the workflow will not send actions. canEnrollFromSalesforce boolean optional Whether contacts can be enrolled from Salesforce. Only applicable for CONTACT_FLOW type. customProperties string optional Custom metadata key-value pairs attached to the workflow. description string optional Updated description of the workflow's purpose. enrollmentCriteria string optional How contacts are enrolled into the workflow. enrollmentSchedule string optional Schedule for re-enrollment checks. goalFilterBranch string optional Filter branch defining the goal criteria that unenrolls contacts when met. Only for CONTACT_FLOW workflows. name string optional New display name for the workflow. startActionId string optional The ID of the first action to execute in the workflow. suppressionFilterBranch string optional Filter branch defining contacts to exclude from enrollment. Only for PLATFORM_FLOW workflows. suppressionListIds string optional Array of list IDs whose members are excluded from workflow enrollment. timeWindows string optional Time windows that restrict when workflow actions can execute. unEnrollmentSetting string optional Controls when and how contacts are unenrolled from the workflow. Only for CONTACT_FLOW workflows. uuid string optional Optional stable identifier for the workflow, useful for tracking across revisions. hubspot_workflows_list
#
List all automation workflows in HubSpot. Returns workflow IDs, names, types, and enabled status. 2 params
List all automation workflows in HubSpot. Returns workflow IDs, names, types, and enabled status.
after string optional Cursor token for the next page of results. limit integer optional Maximum number of workflows to return per page. hubspot_workflows_list_v3
#
List all v3 (v2) automation workflows in HubSpot. Returns the workflow IDs required by the Enroll in Workflow and Unenroll from Workflow tools. Use this instead of List Workflows when you need to enroll or unenroll a contact. 0 params
List all v3 (v2) automation workflows in HubSpot. Returns the workflow IDs required by the Enroll in Workflow and Unenroll from Workflow tools. Use this instead of List Workflows when you need to enroll or unenroll a contact.