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 a contact in HubSpot CRM using the batch API. Accepts individual fields for a clean form experience. Optionally associate the contact with another object on creation. 10 params

Create a contact in HubSpot CRM using the batch API. Accepts individual fields for a clean form experience. Optionally associate the contact with another object on creation.

Name Type Required Description
email string required Primary email address (required, unique identifier).
firstname string optional Contact's first name.
lastname string optional Contact's last name.
phone string optional Contact's phone number.
company string optional Company the contact works at.
jobtitle string optional Contact's job title.
website string optional Contact's website URL.
lifecyclestage string optional Lifecycle stage: `subscriber`, `lead`, `marketingqualifiedlead`, `salesqualifiedlead`, `opportunity`, `customer`, `evangelist`.
associate_to_id string optional ID of a company, deal, or ticket to associate with this contact on creation.
association_type_id number optional Association type ID. `279`=contact→company, `4`=contact→deal, `15`=contact→ticket. Required if `associate_to_id` is set.
hubspot_contacts_batch_update # Update a contact in HubSpot CRM using the batch API. Provide the contact ID and any fields to update. 10 params

Update a contact in HubSpot CRM using the batch API. Provide the contact ID and any fields to update.

Name Type Required Description
id string required HubSpot contact record ID. Get from `hubspot_contacts_search` or `hubspot_contact_get`.
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_batch_upsert # Create or update a contact in HubSpot CRM using the batch API. Uses email as the unique identifier — creates a new contact if not found, updates if found. 8 params

Create or update a contact in HubSpot CRM using the batch API. Uses email as the unique identifier — creates a new contact if not found, updates if found.

Name Type Required Description
email string required Primary email address used to look up or create the contact.
firstname string optional Contact's first name.
lastname string optional Contact's last name.
phone string optional Contact's phone number.
company string optional Company the contact works at.
jobtitle string optional Contact's job title.
website string optional Contact's website URL.
lifecyclestage string optional Lifecycle stage (e.g. `lead`, `customer`).
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.

Name Type Required Description
id string required HubSpot contact record ID. Get from `hubspot_contacts_search` or `hubspot_contact_get`.
properties array optional Array of property names to return (e.g. `["firstname","email","company"]`). Returns default properties if not specified.
hubspot_contacts_batch_archive # Archive (soft delete) a contact in HubSpot CRM using the batch archive API. Archived contacts 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 contacts are hidden from the UI but can be restored.

Name Type Required Description
id string required HubSpot contact record ID to archive. Get from `hubspot_contacts_search` or `hubspot_contact_get`.
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 a company in HubSpot CRM using the batch API. Accepts individual fields for a clean form experience. Optionally associate the company with another object on creation. 12 params

Create a company in HubSpot CRM using the batch API. Accepts individual fields for a clean form experience. Optionally associate the company with another object on creation.

Name Type Required Description
name string required Company name (required).
domain string optional Primary domain of the company (without `https://`).
phone string optional Main company phone number.
city string optional City of the company's primary office.
state string optional State or region.
country string optional Country of headquarters.
industry string optional Industry classification (e.g. `TECHNOLOGY`, `FINANCE`, `HEALTHCARE`).
numberofemployees number optional Total employee count.
annualrevenue string optional Annual revenue in USD.
hubspot_owner_id string optional Owner user ID. Get from `hubspot_owners_list`.
associate_to_id string optional ID of a contact or deal to associate with this company on creation.
association_type_id number optional Association type ID. `280`=company→contact, `6`=company→deal. Required if `associate_to_id` is set.
hubspot_companies_batch_update # Update a company in HubSpot CRM using the batch API. Provide the company ID and any fields to update. 11 params

Update a company in HubSpot CRM using the batch API. Provide the company ID and any fields to update.

Name Type Required Description
id string required HubSpot company record ID. Get from `hubspot_companies_search` or `hubspot_company_get`.
name string optional Updated company name.
domain string optional Updated primary domain.
phone string optional Updated phone number.
city string optional Updated city.
state string optional Updated state or region.
country string optional Updated country.
industry string optional Updated industry classification.
numberofemployees number optional Updated employee count.
annualrevenue string optional Updated annual revenue in USD.
hubspot_owner_id string optional Updated owner user ID. Get from `hubspot_owners_list`.
hubspot_companies_batch_upsert # Create or update a company in HubSpot CRM using the batch API. Uses domain as the unique identifier — creates a new company if the domain is not found, updates if found. 10 params

Create or update a company in HubSpot CRM using the batch API. Uses domain as the unique identifier — creates a new company if the domain is not found, updates if found.

Name Type Required Description
domain string required Company domain used to look up or create the company (without `https://`). Must be unique in HubSpot.
name string optional Company name.
phone string optional Main phone number.
city string optional City.
state string optional State or region.
country string optional Country.
industry string optional Industry classification.
numberofemployees number optional Employee count.
annualrevenue string optional Annual revenue in USD.
hubspot_owner_id string optional Owner user ID. Get from `hubspot_owners_list`.
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.

Name Type Required Description
id string required HubSpot company record ID. Get from `hubspot_companies_search` or `hubspot_company_get`.
properties array optional Array of property names to return (e.g. `["name","domain","industry"]`). Returns default properties if not specified.
hubspot_companies_batch_archive # Archive (soft delete) a company in HubSpot CRM using the batch archive API. Archived companies 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 companies are hidden from the UI but can be restored.

Name Type Required Description
id string required HubSpot company record ID to archive. Get from `hubspot_companies_search` or `hubspot_company_get`.
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 a deal in HubSpot CRM using the batch API. Accepts individual fields for a clean form experience. Optionally associate the deal with a contact or company on creation. 8 params

Create a deal in HubSpot CRM using the batch API. Accepts individual fields for a clean form experience. Optionally associate the deal with a contact or company on creation.

Name Type Required Description
dealname string required Name of the deal (required).
dealstage string optional Deal stage ID (e.g. `appointmentscheduled`, `closedwon`). Get valid IDs from `hubspot_deal_pipelines_list`.
pipeline string optional Pipeline ID (default: `default`).
closedate string optional Expected close date in `YYYY-MM-DD` format.
amount string optional Monetary value of the deal (e.g. `10000`).
hubspot_owner_id string optional Owner user ID. Get from `hubspot_owners_list`.
associate_to_id string optional ID of a contact or company to associate with this deal on creation.
association_type_id number optional Association type ID. `3`=deal→contact, `5`=deal→company. Required if `associate_to_id` is set.
hubspot_deals_batch_update # Update a deal in HubSpot CRM using the batch API. Provide the deal ID and any fields to update. 7 params

Update a deal in HubSpot CRM using the batch API. Provide the deal ID and any fields to update.

Name Type Required Description
id string required HubSpot deal record ID. Get from `hubspot_deals_search` or `hubspot_deal_get`.
dealname string optional Updated deal name.
dealstage string optional Updated deal stage ID (e.g. `closedwon`).
pipeline string optional Updated pipeline ID.
closedate string optional Updated close date in `YYYY-MM-DD` format.
amount string optional Updated deal amount.
hubspot_owner_id string optional Updated owner user ID. Get from `hubspot_owners_list`.
hubspot_deals_batch_upsert # Create or update a deal in HubSpot CRM using the batch API. Uses deal name as the lookup identifier. Note: `dealname` must be configured as a unique property in your HubSpot portal for upsert to work correctly. 6 params

Create or update a deal in HubSpot CRM using the batch API. Uses deal name as the lookup identifier. Note: `dealname` must be configured as a unique property in your HubSpot portal for upsert to work correctly.

Name Type Required Description
dealname string required Deal name used to look up or create the deal. Must be unique in your HubSpot portal for upsert to work.
dealstage string optional Deal stage ID.
pipeline string optional Pipeline ID.
closedate string optional Close date in `YYYY-MM-DD` format.
amount string optional Deal amount.
hubspot_owner_id string optional Owner user ID. Get from `hubspot_owners_list`.
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.

Name Type Required Description
id string required HubSpot deal record ID. Get from `hubspot_deals_search` or `hubspot_deal_get`.
properties array optional Array of property names to return (e.g. `["dealname","amount","dealstage"]`). Returns default properties if not specified.
hubspot_deals_batch_archive # Archive (soft delete) a deal in HubSpot CRM using the batch archive API. Archived deals 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 deals are hidden from the UI but can be restored.

Name Type Required Description
id string required HubSpot deal record ID to archive. Get from `hubspot_deals_search` or `hubspot_deal_get`.
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 a support ticket in HubSpot CRM using the batch API. Accepts individual fields for a clean form experience. Optionally associate the ticket with a contact or company on creation. 8 params

Create a support ticket in HubSpot CRM using the batch API. Accepts individual fields for a clean form experience. Optionally associate the ticket with a contact or company on creation.

Name Type Required Description
subject string required Short description of the support issue (required).
hs_pipeline_stage string required Pipeline stage ID: `1`=New, `2`=Waiting on contact, `3`=Waiting on us, `4`=Closed. Get from `hubspot_deal_pipelines_list`.
hs_pipeline string optional Pipeline ID. Defaults to `'0'` (default support pipeline).
hs_ticket_priority string optional Priority: `LOW`, `MEDIUM`, or `HIGH`.
content string optional Detailed description of the support issue.
hubspot_owner_id string optional Owner user ID. Get from `hubspot_owners_list`.
associate_to_id string optional ID of a contact or company to associate with this ticket on creation.
association_type_id number optional Association type ID. `16`=ticket→contact, `340`=ticket→company. Required if `associate_to_id` is set.
hubspot_tickets_batch_update # Update a support ticket in HubSpot CRM using the batch API. Provide the ticket ID and any fields to update. 7 params

Update a support ticket in HubSpot CRM using the batch API. Provide the ticket ID and any fields to update.

Name Type Required Description
id string required HubSpot ticket record ID. Get from `hubspot_tickets_search` or `hubspot_ticket_get`.
subject string optional Updated ticket subject.
hs_pipeline string optional Updated pipeline ID.
hs_pipeline_stage string optional Updated pipeline stage ID.
hs_ticket_priority string optional Updated priority: `LOW`, `MEDIUM`, or `HIGH`.
content string optional Updated ticket description.
hubspot_owner_id string optional Updated owner user ID. Get from `hubspot_owners_list`.
hubspot_tickets_batch_upsert # Create or update a support ticket in HubSpot CRM using the batch API. Uses subject as the lookup identifier. Note: `subject` must be configured as a unique property in your HubSpot portal for upsert to work correctly. 6 params

Create or update a support ticket in HubSpot CRM using the batch API. Uses subject as the lookup identifier. Note: `subject` must be configured as a unique property in your HubSpot portal for upsert to work correctly.

Name Type Required Description
subject string required Ticket subject used to look up or create the ticket. Must be unique in your HubSpot portal for upsert to work.
hs_pipeline_stage string required Pipeline stage ID: `1`=New, `2`=Waiting on contact, `3`=Waiting on us, `4`=Closed.
hs_pipeline string optional Pipeline ID (default: `0`).
hs_ticket_priority string optional Priority: `LOW`, `MEDIUM`, or `HIGH`.
content string optional Ticket description.
hubspot_owner_id string optional Owner user ID. Get from `hubspot_owners_list`.
hubspot_tickets_batch_read # Retrieve a support ticket record from HubSpot CRM using the batch read API. Returns the specified properties for the record. 2 params

Retrieve a support ticket record from HubSpot CRM using the batch read API. Returns the specified properties for the record.

Name Type Required Description
id string required HubSpot ticket record ID. Get from `hubspot_tickets_search` or `hubspot_ticket_get`.
properties array optional Array of property names to return (e.g. `["subject","hs_ticket_priority","hs_pipeline_stage"]`). Returns default properties if not specified.
hubspot_tickets_batch_archive # Archive (soft delete) a support ticket in HubSpot CRM using the batch archive API. Archived tickets are hidden from the UI but can be restored. 1 param

Archive (soft delete) a support ticket in HubSpot CRM using the batch archive API. Archived tickets are hidden from the UI but can be restored.

Name Type Required Description
id string required HubSpot ticket record ID to archive. Get from `hubspot_tickets_search` or `hubspot_ticket_get`.
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 an association between two HubSpot CRM objects using the v4 associations API. Specify the object types, the record IDs, and the association type. 5 params

Create an association between two HubSpot CRM objects using the v4 associations API. Specify the object types, the record IDs, and the association type.

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`.
from_id string required HubSpot record ID of the source object.
to_id string required HubSpot record ID of the target object.
association_type_id number required HubSpot association type ID. Common values: `1`=contact→company (primary), `279`=contact→company, `3`=deal→contact, `5`=deal→company, `16`=ticket→contact, `340`=ticket→company, `20`=line-item→deal.
hubspot_associations_batch_archive # Remove an association between two HubSpot CRM objects using the v4 associations API. 4 params

Remove an association between two HubSpot CRM objects 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`.
from_id string required HubSpot record ID of the source object.
to_id string required HubSpot record ID of the target object.
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 a line item (product on a deal) in HubSpot CRM using the batch API. Optionally associate the line item with a deal on creation. 8 params

Create a line item (product on a deal) in HubSpot CRM using the batch API. Optionally associate the line item with a deal on creation.

Name Type Required Description
name string required Name of the product or service for this line item (required).
quantity string required Number of units (required).
hs_product_id string optional ID of the product from your HubSpot product catalog. Links this line item to that product.
price string optional Price per unit (e.g. `299.99`). Required if not linked to a product.
hs_sku string optional SKU or product code.
description string optional Additional details about this line item.
discount string optional Discount value applied to this line item.
associate_to_id string optional Deal ID to link this line item to. This is the standard way to add a line item to a deal.
hubspot_line_items_batch_update # Update a line item in HubSpot CRM using the batch API. Provide the line item ID and any fields to update. 7 params

Update a line item in HubSpot CRM using the batch API. Provide the line item ID and any fields to update.

Name Type Required Description
id string required HubSpot line item record ID. Get from `hubspot_deal_line_items_get`.
name string optional Updated name of the product or service.
quantity string optional Updated number of units.
price string optional Updated price per unit.
hs_sku string optional Updated SKU or product code.
description string optional Updated description.
discount string optional Updated discount value.
hubspot_line_items_batch_read # Retrieve a line item record from HubSpot CRM using the batch read API. 2 params

Retrieve a line item record from HubSpot CRM using the batch read API.

Name Type Required Description
id string required HubSpot line item record ID. Get from `hubspot_deal_line_items_get`.
properties array optional Array of property names to return (e.g. `["name","quantity","price"]`).
hubspot_line_items_batch_archive # Archive (soft delete) a line item in HubSpot CRM using the batch archive API. 1 param

Archive (soft delete) a line item in HubSpot CRM using the batch archive API.

Name Type Required Description
id string required HubSpot line item record ID to archive. Get from `hubspot_deal_line_items_get`.
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 # Retrieve a product record from the HubSpot product library using the batch read API. 2 params

Retrieve a product record from the HubSpot product library using the batch read API.

Name Type Required Description
id string required HubSpot product record ID. Get from `hubspot_products_list`.
properties array optional Array of property names to return (e.g. `["name","price","hs_sku"]`).
hubspot_products_batch_archive # Archive (soft delete) a product from the HubSpot product library using the batch archive API. 1 param

Archive (soft delete) a product from the HubSpot product library using the batch archive API.

Name Type Required Description
id string required HubSpot product record ID to archive. Get from `hubspot_products_list`.
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.