Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

HubSpot connector

OAuth 2.0 crmsales

Connect to HubSpot CRM. Manage contacts, deals, companies, and marketing automation

HubSpot connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. 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>
  3. 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:

    1. 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.

        Copy redirect URI from Scalekit dashboard

      • Log in to your HubSpot developer dashboard, click Manage apps, click Create app, and select Public app. Do not select Private app; Private Apps use static API tokens and do not support OAuth redirect flows, so they do not show the Redirect URL field Scalekit needs. If you already have a HubSpot Public App, open that app instead.

      • Go to Auth > Auth settings > Redirect URL, paste the redirect URI from Scalekit, and click Save.

        Adding redirect URL to HubSpot

      • Under Auth > Auth settings > Scopes, select the required scopes for your application. The scopes you select here must match exactly what you configure in Scalekit. For a read-only CRM enrichment flow that looks up contacts, companies, and deals, use:

        crm.objects.contacts.read
        crm.objects.companies.read
        crm.objects.deals.read
    2. Get client credentials

      • In your HubSpot app, go to Auth > Auth settings.

      • Copy your Client ID and Client Secret.

    3. 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)

        Add credentials in Scalekit dashboard

      • Click Save.

  4. 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.actions
    const connector = 'hubspot'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { 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 owners
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'hubspot_owners_list',
    toolInput: {},
    })
    console.log('HubSpot owners:', result)

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
Proxy API call
const result = await actions.request({
connectionName: 'hubspot',
identifier: 'user_123',
path: '/crm/v3/owners',
method: 'GET',
});
console.log(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);
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);
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);
Create and associate a ticket
// Create the ticket
const 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 contact
await 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);

Most HubSpot batch and update tools require record IDs. Always fetch IDs from the API — never guess or hard-code them.

ResourceTool to get IDField in response
Contact IDhubspot_contacts_search or hubspot_contacts_listresults[].id
Company IDhubspot_companies_searchresults[].id
Deal IDhubspot_deals_searchresults[].id
Ticket IDhubspot_tickets_searchresults[].id
Line Item IDhubspot_deal_line_items_getresults[].id
Product IDhubspot_products_listresults[].id
Owner IDhubspot_owners_listresults[].id
Pipeline IDhubspot_deal_pipelines_listresults[].id
Pipeline Stage IDhubspot_deal_pipelines_listresults[].stages[].id
Custom Object Type IDhubspot_schemas_listresults[].objectTypeId
Custom Object Record IDhubspot_custom_object_records_searchresults[].id
Quote IDhubspot_quote_getid

Association type IDs

When linking records, use the correct association_type_id for the object pair:

From → ToAssociation Type ID
Contact → Company (primary)1
Contact → Company279
Contact → Deal4
Contact → Ticket15
Deal → Contact3
Deal → Company5
Ticket → Contact16
Ticket → Company340
Line Item → Deal20
Company → Contact280
Company → Deal6

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_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 Type Required Description
name string required Company name (required, serves as primary identifier).
domain string optional Company website domain (e.g. `example.com`).
phone string optional Primary phone number for the company.
industry string optional Industry type of the company.
description string optional Company description or overview.
city string optional City where the company is located.
state string optional State or region where the company is located.
country string optional Country where the company is located.
annualrevenue number optional Annual revenue of the company in dollars.
numberofemployees number optional Number of employees at the company.
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.

Name Type Required Description
company_id string required The unique identifier of the company in HubSpot.
properties string optional Comma-separated list of properties to include in the response (e.g. `name,domain,industry,phone`).
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.

Name Type Required Description
company_id string required The unique identifier of the company in HubSpot.
name string optional Updated name of the company.
domain string optional Updated company website domain.
phone string optional Updated primary phone number.
city string optional Updated city.
state string optional Updated state or region.
country string optional Updated country.
industry string optional Updated industry.
description string optional Updated company description.
website string optional Full URL of the company website.
annualrevenue number optional Updated annual revenue.
numberofemployees number optional Updated number of employees.
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.

Name Type Required Description
email string required Primary email address (required, must be unique in HubSpot).
firstname string optional Contact's first name.
lastname string optional Contact's last name.
phone string optional Contact's primary phone number.
company string optional Company name where the contact works.
jobtitle string optional Contact's job title or role.
website string optional Personal or company website URL.
lifecyclestage string optional Lifecycle stage: `subscriber`, `lead`, `marketingqualifiedlead`, `salesqualifiedlead`, `opportunity`, `customer`, `evangelist`, or `other`.
hs_lead_status string optional Lead status: `NEW`, `OPEN`, `IN_PROGRESS`, `OPEN_DEAL`, `UNQUALIFIED`, `ATTEMPTED_TO_CONTACT`, `CONNECTED`, or `BAD_TIMING`.
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.

Name Type Required Description
contact_id string required The unique identifier of the contact in HubSpot.
properties string optional Comma-separated list of properties to include (e.g. `firstname,lastname,email,company`).
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.

Name Type Required Description
contact_id string required The unique identifier of the contact in HubSpot.
email string optional Updated email address (must be unique in HubSpot).
firstname string optional Updated first name.
lastname string optional Updated last name.
phone string optional Updated phone number.
company string optional Updated company name.
jobtitle string optional Updated job title.
website string optional Updated website URL.
lifecyclestage string optional Updated lifecycle stage (e.g. `lead`, `customer`).
hs_lead_status string optional Updated lead status (e.g. `IN_PROGRESS`, `CONNECTED`).
hubspot_contacts_list # Retrieve a list of contacts from HubSpot with filtering and pagination. Returns contact properties and supports cursor-based navigation. 4 params

Retrieve a list of contacts from HubSpot with filtering and pagination. Returns contact properties and supports cursor-based navigation.

Name Type Required Description
properties string optional Comma-separated list of properties to return.
limit number optional Number of contacts to return per page (max 100).
after string optional Cursor value from previous response to get next page.
archived boolean optional Include archived contacts (default: false).
hubspot_contacts_batch_create # Create multiple contacts in HubSpot CRM in a single batch API call. Pass a JSON array of contact objects — each with a `properties` map and an optional `associations` array. 1 param

Create multiple contacts in HubSpot CRM in a single batch API call. Pass a JSON array of contact objects — each with a `properties` map and an optional `associations` array.

Name Type Required Description
inputs string required JSON array of contact objects to create. Each item has a `properties` object with contact fields and an optional `associations` array to link records on creation. Example: `[{"properties":{"email":"jane@example.com","firstname":"Jane","lastname":"Smith"},"associations":[{"to":{"id":"201"},"types":[{"associationCategory":"HUBSPOT_DEFINED","associationTypeId":279}]}]}]`
hubspot_contacts_batch_update # Update multiple contacts in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map. 1 param

Update multiple contacts in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map.

Name Type Required Description
inputs string required JSON array of contact update objects. Each item has an `id` (HubSpot record ID) and a `properties` object with fields to update. Example: `[{"id":"12345","properties":{"jobtitle":"VP of Engineering","lifecyclestage":"customer"}}]`
hubspot_contacts_batch_upsert # Create or update multiple contacts in HubSpot CRM in a single batch API call. Uses `idProperty` for lookup — creates if not found, updates if found. 1 param

Create or update multiple contacts in HubSpot CRM in a single batch API call. Uses `idProperty` for lookup — creates if not found, updates if found.

Name Type Required Description
inputs string required JSON array of contact upsert objects. Each item has an `idProperty` (unique field name, e.g. `"email"`), `id` (value of that field), and `properties` map. Example: `[{"idProperty":"email","id":"jane@example.com","properties":{"firstname":"Jane","lifecyclestage":"lead"}}]`
hubspot_contacts_batch_read # Read multiple contact records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs. 2 params

Read multiple contact records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs.

Name Type Required Description
inputs string required JSON array of contact record IDs to fetch. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
properties string optional JSON array of property names to return (e.g. `["firstname","email","company"]`). Returns default properties if omitted.
hubspot_contacts_batch_archive # Archive multiple contacts in HubSpot CRM in a single batch API call. Archived contacts are hidden from the UI but can be restored. 1 param

Archive multiple contacts in HubSpot CRM in a single batch API call. Archived contacts are hidden from the UI but can be restored.

Name Type Required Description
inputs string required JSON array of contact record IDs to archive. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
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.

Name Type Required Description
contact_id string required The unique identifier of the contact in HubSpot.
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.

Name Type Required Description
email string required The contact's email address.
eventType string optional Filter by event type: `OPEN`, `CLICK`, `BOUNCE`, or `UNSUBSCRIBE`.
limit number optional Number of events to return per page (default: 100).
hubspot_companies_batch_create # Create multiple companies in HubSpot CRM in a single batch API call. Pass a JSON array of company objects — each with a `properties` map and an optional `associations` array. 1 param

Create multiple companies in HubSpot CRM in a single batch API call. Pass a JSON array of company objects — each with a `properties` map and an optional `associations` array.

Name Type Required Description
inputs string required JSON array of company objects to create. Each item has a `properties` object with company fields and an optional `associations` array. Example: `[{"properties":{"name":"Acme Corp","domain":"acme.com","industry":"TECHNOLOGY"},"associations":[{"to":{"id":"101"},"types":[{"associationCategory":"HUBSPOT_DEFINED","associationTypeId":280}]}]}]`
hubspot_companies_batch_update # Update multiple companies in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map. 1 param

Update multiple companies in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map.

Name Type Required Description
inputs string required JSON array of company update objects. Each item has an `id` (HubSpot record ID) and a `properties` object with fields to update. Example: `[{"id":"12345","properties":{"numberofemployees":500,"annualrevenue":"5000000"}}]`
hubspot_companies_batch_upsert # Create or update multiple companies in HubSpot CRM in a single batch API call. Specify a unique property via `idProperty` to match records — omitting `idProperty` defaults to matching by record ID. 1 param

Create or update multiple companies in HubSpot CRM in a single batch API call. Specify a unique property via `idProperty` to match records — omitting `idProperty` defaults to matching by record ID.

Name Type Required Description
inputs string required JSON array of company upsert objects. Each item has an `idProperty` (unique field name, e.g. `"domain"`), `id` (value of that field), and `properties` map. Example: `[{"idProperty":"domain","id":"acme.com","properties":{"name":"Acme Corp","industry":"TECHNOLOGY"}}]`
hubspot_companies_batch_read # Read multiple company records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs. 2 params

Read multiple company records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs.

Name Type Required Description
inputs string required JSON array of company record IDs to fetch. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
properties string optional JSON array of property names to return (e.g. `["name","domain","industry"]`). Returns default properties if omitted.
hubspot_companies_batch_archive # Archive multiple companies in HubSpot CRM in a single batch API call. Archived companies are hidden from the UI but can be restored. 1 param

Archive multiple companies in HubSpot CRM in a single batch API call. Archived companies are hidden from the UI but can be restored.

Name Type Required Description
inputs string required JSON array of company record IDs to archive. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
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.

Name Type Required Description
dealname string required Name of the deal.
dealstage string required Current stage of the deal (e.g. `qualifiedtobuy`, `closedwon`).
amount number optional Monetary value of the deal.
closedate string optional Expected close date in `YYYY-MM-DD` format.
pipeline string optional The pipeline this deal belongs to (e.g. `default`).
dealtype string optional Classification of the deal type (e.g. `newbusiness`, `existingbusiness`).
description string optional Additional details about the deal.
hs_priority string optional Deal priority: `high`, `medium`, or `low`.
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.

Name Type Required Description
deal_id string required The unique identifier of the deal in HubSpot.
properties string optional Comma-separated list of properties to return (e.g. `dealname,amount,dealstage,closedate`).
associations string optional Comma-separated object types to retrieve associations for (e.g. `contacts,companies,line_items`).
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.

Name Type Required Description
deal_id string required The unique identifier of the deal in HubSpot.
dealname string optional Updated name of the deal.
dealstage string optional Updated pipeline stage (e.g. `closedwon`).
amount number optional Updated monetary value of the deal.
closedate string optional Updated expected close date in `YYYY-MM-DD` format.
pipeline string optional Updated pipeline.
dealtype string optional Updated deal type.
description string optional Updated deal description.
hs_priority string optional Updated priority: `high`, `medium`, or `low`.
hubspot_deal_pipelines_list # Retrieve all pipelines for a HubSpot CRM object type (e.g. `deals` or `tickets`), including pipeline stages. Use this to get valid pipeline IDs and stage IDs for creating or updating deals and tickets. 1 param

Retrieve all pipelines for a HubSpot CRM object type (e.g. `deals` or `tickets`), including pipeline stages. Use this to get valid pipeline IDs and stage IDs for creating or updating deals and tickets.

Name Type Required Description
archived boolean optional Set to `true` to include archived pipelines.
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.

Name Type Required Description
deal_id string required The HubSpot ID of the deal.
hubspot_deals_batch_create # Create multiple deals in HubSpot CRM in a single batch API call. Pass a JSON array of deal objects — each with a `properties` map and an optional `associations` array. 1 param

Create multiple deals in HubSpot CRM in a single batch API call. Pass a JSON array of deal objects — each with a `properties` map and an optional `associations` array.

Name Type Required Description
inputs string required JSON array of deal objects to create. Each item has a `properties` object with deal fields and an optional `associations` array. Example: `[{"properties":{"dealname":"Enterprise Q4","amount":"50000","dealstage":"qualifiedtobuy","closedate":"2025-12-31"},"associations":[{"to":{"id":"101"},"types":[{"associationCategory":"HUBSPOT_DEFINED","associationTypeId":3}]}]}]`
hubspot_deals_batch_update # Update multiple deals in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map. 1 param

Update multiple deals in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map.

Name Type Required Description
inputs string required JSON array of deal update objects. Each item has an `id` (HubSpot record ID) and a `properties` object with fields to update. Example: `[{"id":"12345","properties":{"dealstage":"closedwon","amount":"75000"}}]`
hubspot_deals_batch_upsert # Create or update multiple deals in HubSpot CRM in a single batch API call. Uses a unique property for lookup — the property must be configured as unique in your HubSpot portal. 1 param

Create or update multiple deals in HubSpot CRM in a single batch API call. Uses a unique property for lookup — the property must be configured as unique in your HubSpot portal.

Name Type Required Description
inputs string required JSON array of deal upsert objects. Each item has an `idProperty` (unique field name), `id` (value of that field), and `properties` map. Example: `[{"idProperty":"dealname","id":"Enterprise Q4","properties":{"amount":"50000","dealstage":"qualifiedtobuy"}}]`
hubspot_deals_batch_read # Read multiple deal records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs. 2 params

Read multiple deal records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs.

Name Type Required Description
inputs string required JSON array of deal record IDs to fetch. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
properties string optional JSON array of property names to return (e.g. `["dealname","amount","dealstage"]`). Returns default properties if omitted.
hubspot_deals_batch_archive # Archive multiple deals in HubSpot CRM in a single batch API call. Archived deals are hidden from the UI but can be restored. 1 param

Archive multiple deals in HubSpot CRM in a single batch API call. Archived deals are hidden from the UI but can be restored.

Name Type Required Description
inputs string required JSON array of deal record IDs to archive. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
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.

Name Type Required Description
subject string required A short descriptive title for the support ticket.
hs_pipeline_stage string required Pipeline stage ID for the ticket (e.g. `1` for New).
content string optional Detailed description of the support issue.
hs_pipeline string optional Pipeline ID (use `'0'` for the default Support Pipeline).
hs_ticket_priority string optional Priority level: `HIGH`, `MEDIUM`, or `LOW`.
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.

Name Type Required Description
ticket_id string required The unique identifier of the ticket in HubSpot.
properties string optional Comma-separated list of properties to return.
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.

Name Type Required Description
ticket_id string required The unique identifier of the ticket in HubSpot.
subject string optional Updated subject of the ticket.
content string optional Updated description of the support issue.
hs_pipeline_stage string optional Updated pipeline stage ID.
hs_pipeline string optional Updated pipeline ID.
hs_ticket_priority string optional Updated priority: `HIGH`, `MEDIUM`, or `LOW`.
hubspot_tickets_batch_create # Create multiple support tickets in HubSpot CRM in a single batch API call. Pass a JSON array of ticket objects — each with a `properties` map and an optional `associations` array. 1 param

Create multiple support tickets in HubSpot CRM in a single batch API call. Pass a JSON array of ticket objects — each with a `properties` map and an optional `associations` array.

Name Type Required Description
inputs string required JSON array of ticket objects to create. Each item has a `properties` object with ticket fields and an optional `associations` array. Example: `[{"properties":{"subject":"Login issue","hs_pipeline_stage":"1","hs_ticket_priority":"HIGH"},"associations":[{"to":{"id":"101"},"types":[{"associationCategory":"HUBSPOT_DEFINED","associationTypeId":16}]}]}]`
hubspot_tickets_batch_update # Update multiple support tickets in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map. 1 param

Update multiple support tickets in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map.

Name Type Required Description
inputs string required JSON array of ticket update objects. Each item has an `id` (HubSpot record ID) and a `properties` object with fields to update. Example: `[{"id":"12345","properties":{"hs_pipeline_stage":"4","hs_ticket_priority":"LOW"}}]`
hubspot_tickets_batch_upsert # Create or update multiple support tickets in HubSpot CRM in a single batch API call. Uses a unique property for lookup — the property must be configured as unique in your HubSpot portal. 1 param

Create or update multiple support tickets in HubSpot CRM in a single batch API call. Uses a unique property for lookup — the property must be configured as unique in your HubSpot portal.

Name Type Required Description
inputs string required JSON array of ticket upsert objects. Each item has an `idProperty` (unique field name), `id` (value of that field), and `properties` map. Example: `[{"idProperty":"subject","id":"Login issue","properties":{"hs_pipeline_stage":"1","hs_ticket_priority":"HIGH"}}]`
hubspot_tickets_batch_read # Read multiple support ticket records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs. 2 params

Read multiple support ticket records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs.

Name Type Required Description
inputs string required JSON array of ticket record IDs to fetch. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
properties string optional JSON array of property names to return (e.g. `["subject","hs_ticket_priority","hs_pipeline_stage"]`). Returns default properties if omitted.
hubspot_tickets_batch_archive # Archive multiple support tickets in HubSpot CRM in a single batch API call. Archived tickets are hidden from the UI but can be restored. 1 param

Archive multiple support tickets in HubSpot CRM in a single batch API call. Archived tickets are hidden from the UI but can be restored.

Name Type Required Description
inputs string required JSON array of ticket record IDs to archive. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
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.

Name Type Required Description
hs_task_subject string required A descriptive subject for the task.
hs_timestamp string required Due date and time for the task in ISO 8601 format (e.g. `2024-01-20T10:00:00Z`).
hs_task_status string optional Status: `NOT_STARTED`, `IN_PROGRESS`, `COMPLETED`, `DEFERRED`, or `WAITING`.
hs_task_priority string optional Priority: `HIGH`, `MEDIUM`, or `LOW`.
hs_task_type string optional Type of task: `EMAIL`, `CALL`, or `TODO`.
hs_task_body string optional Additional notes or context for the task.
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`.

Name Type Required Description
task_id string required The unique identifier of the task in HubSpot.
hs_task_status string optional New status: `NOT_STARTED`, `IN_PROGRESS`, `COMPLETED`, `DEFERRED`, or `WAITING`.
hs_task_body string optional Updated notes when completing the task.
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.

Name Type Required Description
hs_meeting_title string required A descriptive title for the meeting.
hs_meeting_start_time string required Start time of the meeting in ISO 8601 format (e.g. `2024-01-15T14:00:00Z`).
hs_meeting_end_time string required End time of the meeting in ISO 8601 format.
hs_timestamp string required Timestamp when the meeting was logged in ISO 8601 format.
hs_meeting_body string optional Notes, agenda, or description of the meeting.
hs_meeting_outcome string optional Outcome of the meeting: `SCHEDULED`, `COMPLETED`, `NO_SHOW`, or `CANCELED`.
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.

Name Type Required Description
hs_call_title string required A descriptive title for the call.
hs_timestamp string required Date and time when the call took place in ISO 8601 format.
hs_call_body string optional Notes or transcript from the call.
hs_call_direction string optional Direction of the call: `INBOUND` or `OUTBOUND`.
hs_call_duration number optional Duration of the call in milliseconds (e.g. `300000` = 5 minutes).
hs_call_status string optional Outcome status: `COMPLETED`, `BUSY`, `FAILED`, `NO_ANSWER`, `CANCELED`, `QUEUED`, or `IN_PROGRESS`.
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. 2 params

Create a note in HubSpot CRM to log interactions, meeting summaries, or important information. Notes can be associated with contacts, companies, or deals.

Name Type Required Description
hs_note_body string required Content of the note. Supports HTML.
hs_timestamp string required Timestamp for the note in ISO 8601 format (e.g. `2024-01-15T10:30:00Z`).
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.

Name Type Required Description
hs_note_body string required Content of the note. Supports HTML.
hs_timestamp string required Timestamp for the note in ISO 8601 format (e.g. `2024-01-15T10:30:00Z`).
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.

Name Type Required Description
engagement_type string required Type of engagement to list: `notes`, `tasks`, `calls`, `emails`, or `meetings`.
limit number optional Number of engagements to return per page (max 100).
after string optional Cursor from previous response to fetch next page.
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.

Name Type Required Description
email string optional Filter owners by email address.
limit number optional Number of owners to return per page (max 500).
after string optional Pagination cursor from previous response.
hubspot_associations_batch_create # Create associations between two HubSpot CRM object types in a single batch API call using the v4 associations API. 3 params

Create associations between two HubSpot CRM object types in a single batch API call using the v4 associations API.

Name Type Required Description
from_object_type string required Source object type: `contacts`, `companies`, `deals`, `tickets`, `line_items`, `products`.
to_object_type string required Target object type: `contacts`, `companies`, `deals`, `tickets`, `line_items`, `products`.
inputs string required JSON array of association objects in HubSpot v4 format. Each item has `_from` (with `id`), `to` (with `id`), and `types` (array with `associationCategory` and `associationTypeId`). Common type IDs: `279`=contact→company, `4`=contact→deal, `15`=contact→ticket, `3`=deal→contact, `5`=deal→company, `16`=ticket→contact. Example: `[{"_from":{"id":"101"},"to":{"id":"201"},"types":[{"associationCategory":"HUBSPOT_DEFINED","associationTypeId":279}]}]`
hubspot_associations_batch_archive # Remove associations between two HubSpot CRM object types in a single batch API call using the v4 associations API. 3 params

Remove associations between two HubSpot CRM object types in a single batch API call using the v4 associations API.

Name Type Required Description
from_object_type string required Source object type: `contacts`, `companies`, `deals`, `tickets`, `line_items`, `products`.
to_object_type string required Target object type: `contacts`, `companies`, `deals`, `tickets`, `line_items`, `products`.
inputs string required JSON array of association pairs to remove. Each item has `_from` (with `id`) and `to` (with `id`). Example: `[{"_from":{"id":"101"},"to":{"id":"201"}}]`
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.

Name Type Required Description
from_object_type string required Type of the source object (e.g. `contacts`, `companies`, `deals`, `tickets`).
from_object_id string required HubSpot ID of the source record.
to_object_type string required Type of the target object (e.g. `contacts`, `deals`).
to_object_id string required HubSpot ID of the target record.
hubspot_campaigns_list # List all HubSpot marketing campaigns with pagination support. 2 params

List all HubSpot marketing campaigns with pagination support.

Name Type Required Description
limit number optional Number of campaigns to return per page (default: 20).
after string optional Pagination cursor from previous response.
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.

Name Type Required Description
campaign_id string required The unique identifier of the campaign in HubSpot.
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.

Name Type Required Description
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).
after string optional Pagination cursor from previous response.
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.

Name Type Required Description
form_id string required The unique identifier of the HubSpot form. Get it from `hubspot_forms_list`.
limit number optional Number of submissions to return per page (default: 20).
after string optional Pagination offset token for the next page.
hubspot_product_create # Create a new product in the HubSpot product library. 4 params

Create a new product in the HubSpot product library.

Name Type Required Description
name string required The product name as it will appear in HubSpot.
description string optional A description of the product or service.
hs_sku string optional Unique product SKU or identifier.
price string optional Unit price of the product (e.g. `999.00`).
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.

Name Type Required Description
properties string optional Comma-separated list of product properties to include (e.g. `name,price,description`).
limit number optional Number of products to return per page (max 100).
after string optional Pagination cursor from previous response.
hubspot_line_items_batch_create # Create multiple line items in HubSpot CRM in a single batch API call. Pass a JSON array of line item objects — each with a `properties` map and an optional `associations` array. 1 param

Create multiple line items in HubSpot CRM in a single batch API call. Pass a JSON array of line item objects — each with a `properties` map and an optional `associations` array.

Name Type Required Description
inputs string required JSON array of line item objects to create. Each item has a `properties` object and an optional `associations` array to link to a deal. Example: `[{"properties":{"name":"Enterprise License","quantity":"1","price":"999.00"},"associations":[{"to":{"id":"DEAL_ID"},"types":[{"associationCategory":"HUBSPOT_DEFINED","associationTypeId":20}]}]}]`
hubspot_line_items_batch_update # Update multiple line items in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map. 1 param

Update multiple line items in HubSpot CRM in a single batch API call. Pass a JSON array of objects — each with an `id` and a `properties` map.

Name Type Required Description
inputs string required JSON array of line item update objects. Each item has an `id` (HubSpot record ID) and a `properties` object with fields to update. Example: `[{"id":"12345","properties":{"quantity":"5","price":"799.00"}}]`
hubspot_line_items_batch_read # Read multiple line item records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs. 2 params

Read multiple line item records from HubSpot CRM in a single batch API call. Pass a JSON array of record IDs.

Name Type Required Description
inputs string required JSON array of line item record IDs to fetch. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
properties string optional JSON array of property names to return (e.g. `["name","quantity","price"]`). Returns default properties if omitted.
hubspot_line_items_batch_archive # Archive multiple line items in HubSpot CRM in a single batch API call. Archived line items are removed from their associated deals. 1 param

Archive multiple line items in HubSpot CRM in a single batch API call. Archived line items are removed from their associated deals.

Name Type Required Description
inputs string required JSON array of line item record IDs to archive. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
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 Type Required Description
name string required The name of the product or service for this line item.
hs_product_id string optional Link this line item to a product in the HubSpot product library.
price string optional The price per unit for this line item.
quantity string optional Number of units for this line item.
deal_id string optional The HubSpot deal ID to associate this line item with.
hubspot_products_batch_read # Read multiple product records from the HubSpot product library in a single batch API call. Pass a JSON array of record IDs. 2 params

Read multiple product records from the HubSpot product library in a single batch API call. Pass a JSON array of record IDs.

Name Type Required Description
inputs string required JSON array of product record IDs to fetch. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
properties string optional JSON array of property names to return (e.g. `["name","price","hs_sku"]`). Returns default properties if omitted.
hubspot_products_batch_archive # Archive multiple products from the HubSpot product library in a single batch API call. 1 param

Archive multiple products from the HubSpot product library in a single batch API call.

Name Type Required Description
inputs string required JSON array of product record IDs to archive. Each item has an `id` field. Example: `[{"id":"12345"},{"id":"67890"}]`
hubspot_quote_create # Create a new quote in HubSpot for a deal. 5 params

Create a new quote in HubSpot for a deal.

Name Type Required Description
hs_title string required The display title for the quote.
hs_language string required Language of the quote as an ISO 639-1 code (e.g. `en`, `de`, `fr`). Required by HubSpot.
deal_id string optional The HubSpot deal ID to link this quote to.
hs_expiration_date string optional Expiration date of the quote in `YYYY-MM-DD` format.
hs_status string optional Status of the quote: `DRAFT`, `PENDING_APPROVAL`, `APPROVED`, or `REJECTED`.
hubspot_quote_get # Retrieve a specific HubSpot quote by its ID. 2 params

Retrieve a specific HubSpot quote by its ID.

Name Type Required Description
quote_id string required The HubSpot ID of the quote.
properties string optional Comma-separated list of quote properties to include (e.g. `hs_title,hs_status,hs_expiration_date`).
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.

Name Type Required Description
archived boolean optional Set to `true` to include archived custom object schemas.
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.

Name Type Required Description
object_type_id string required The custom object type ID (e.g. `2-1234567`). Get it from `hubspot_schemas_list`.
properties object required Key-value pairs for the new record (e.g. `{"name": "Example Record"}`). Use `hubspot_schemas_list` to discover valid property names.
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.

Name Type Required Description
object_type_id string required The custom object type ID (e.g. `2-1234567`).
record_id string required The HubSpot ID of the specific record.
properties string optional Comma-separated list of properties to return.
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.

Name Type Required Description
object_type_id string required The custom object type ID (e.g. `2-1234567`). Get it from `hubspot_schemas_list`.
record_id string required The HubSpot ID of the record to update. Get it from `hubspot_custom_object_records_search`.
properties object required JSON object of property names and updated values (e.g. `{"name": "Updated Name", "status": "active"}`). Use `hubspot_schemas_list` to discover valid property names.
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.).

Name Type Required Description
object_type string required CRM object type to list properties for (e.g. `contacts`, `companies`, `deals`, `tickets`, `products`, or a custom object type ID).
archived boolean optional Set to `true` to include archived properties.