> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `claude plugin marketplace add scalekit-inc/claude-code-authstack && claude plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agentkit`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# HubSpot connector

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

**Authentication:** OAuth 2.0
**Categories:** CRM & Sales
1. ### Install the SDK

   
     ### Node.js

```bash frame="terminal"
npm install @scalekit-sdk/node
```

     ### Python

```bash frame="terminal"
pip install scalekit
```

   

   Full SDK reference: [Node.js](/agentkit/sdks/node/) | [Python](/agentkit/sdks/python/)

2. ### Set your credentials

   Add your Scalekit credentials to your `.env` file. Find values in **[app.scalekit.com](https://app.scalekit.com)** > **Developers** > **API Credentials**.

```sh showLineNumbers=false title=".env"
SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
SCALEKIT_CLIENT_ID=<your-client-id>
SCALEKIT_CLIENT_SECRET=<your-client-secret>
```

3. ### Set up the connector

   Register your HubSpot credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

   ## Dashboard setup steps

Register your Scalekit environment with the HubSpot connector so Scalekit handles the authentication flow and token lifecycle for you. The connection name you create will be used to identify and invoke the connection programmatically. Then complete the configuration in your application as follows:

1. ### Set up auth redirects

    - In [Scalekit dashboard](https://app.scalekit.com), go to **AgentKit** > **Connections** > **Create Connection**. Find **HubSpot** and click **Create**. Copy the redirect URI. It looks like `https:///sso/v1/oauth//callback`.

      > Image: Copy redirect URI from Scalekit dashboard

    - Log in to your [HubSpot developer dashboard](https://developers.hubspot.com/), click **Manage apps**, click **Create app**, and select **Public app**. If you already have an existing HubSpot app, open that app instead — see the **Choosing a HubSpot app type** section above for guidance on Public, Private, and legacy apps.

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

      > Image: Adding redirect URL to HubSpot

    - Under **Auth** > **Auth settings** > **Scopes**, select the scopes your application needs. The scopes you select here must match exactly what you configure in Scalekit. For a read-only CRM enrichment flow, start with:

      ```text
      crm.objects.contacts.read
      crm.objects.companies.read
      crm.objects.deals.read
      ```

      These assume a modern Public app with dotted scope names. For legacy apps or the full scope reference, see the **Required and optional scopes** section on this page.

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](https://app.scalekit.com), go to **AgentKit** > **Connections** and open the connection you created.

    - Enter your credentials:
      - **Client ID** (from your HubSpot app)
      - **Client Secret** (from your HubSpot app)
      - **Permissions** (OAuth scope strings such as `crm.objects.contacts.read`, entered exactly as configured in the HubSpot app). For a full list of available scopes and guidance on optional scopes, see the **Required and optional scopes** section on this page.

      > Image: Add credentials in Scalekit dashboard

    - Click **Save**.

4. ### Authorize and make your first call

   ### Node.js

```typescript title="quickstart.ts"

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)
```

  ### Python

```python title="quickstart.py"

from scalekit.client import ScalekitClient
from dotenv import load_dotenv
load_dotenv()

scalekit_client = ScalekitClient(
    env_url=os.getenv("SCALEKIT_ENV_URL"),
    client_id=os.getenv("SCALEKIT_CLIENT_ID"),
    client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),
)
actions = scalekit_client.actions

connection_name = "hubspot"
identifier = "user_123"

# Generate an authorization link for the user
link_response = actions.get_authorization_link(
    connection_name=connection_name,
    identifier=identifier,
)
print("Authorize HubSpot:", link_response.link)
input("Press Enter after authorizing...")

# Make your first call — list CRM owners
result = actions.execute_tool(
    tool_input={},
    tool_name="hubspot_owners_list",
    connection_name=connection_name,
    identifier=identifier,
)
print("HubSpot owners:", result)
```

## What you can do

Connect this agent connector to let your agent:

- **Manage contacts** — create, update, search, and list contacts; batch create, update, upsert, read, and archive
- **Manage companies and deals** — create and update company records and deals; batch create, update, upsert, read, and archive
- **Manage tickets and tasks** — create and update support tickets; create tasks with due dates and priorities
- **Batch operations with inline associations** — create contacts, companies, deals, or tickets and link them to related records in a single call
- **Log engagements** — record calls, meetings, notes, and emails against any CRM record
- **Search, associate, and extend** — full-text search across all CRM objects, batch-manage associations, list owners, discover properties, and work with custom objects

## Choosing a HubSpot app type

export const sectionTitle = 'Choosing a HubSpot app type'

HubSpot has three app shapes. The shape you choose determines which OAuth flow, scope format, and Scalekit configuration apply.

| App type | OAuth redirect | Scope format | Use with Scalekit |
| --- | --- | --- | --- |
| Public app | Supported | Modern (`crm.objects.contacts.read`) | Recommended |
| Private app | Not supported | N/A — static API token only | Not supported |
| Legacy / developer-account app | Supported | Bare strings (`contacts`, `automation`) | Supported — enter bare strings in **Permissions** |

**Public apps** are the standard choice for production integrations. They support the OAuth redirect flow that Scalekit manages, and they use the modern dotted scope format.

**Private apps** issue static API tokens and have no OAuth redirect endpoint. Scalekit's HubSpot connector requires an OAuth flow, so Private apps are not compatible.

**Legacy apps** (older apps created in HubSpot developer test accounts before the current console) still support OAuth but use an older scope vocabulary. If you already have a legacy app, you can connect it — you just need to enter the older bare scope strings exactly as HubSpot lists them in that app's **Auth** > **Scopes** page.

> caution: Legacy app scope strings
>
> Legacy HubSpot apps reject the modern `crm.objects.*` format. Copy scope strings from your app's **Auth** > **Scopes** screen in HubSpot and paste them into Scalekit's **Permissions** field as-is.

## Common workflows

export const sectionTitle = 'Common workflows'

## Proxy API call

  ### Node.js

```typescript
const result = await actions.request({
  connectionName: 'hubspot',
  identifier: 'user_123',
  path: '/crm/v3/owners',
  method: 'GET',
});
console.log(result);
```

  ### Python

```python
result = actions.request(
    connection_name='hubspot',
    identifier='user_123',
    path="/crm/v3/owners",
    method="GET"
)
print(result)
```

## Create a contact

  ### Node.js

```typescript
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);
```

  ### Python

```python
contact = actions.execute_tool(
    connection_name='hubspot',
    identifier='user_123',
    tool_name="hubspot_contact_create",
    tool_input={
        "email": "jane.smith@acme.com",
        "firstname": "Jane",
        "lastname": "Smith",
        "jobtitle": "VP of Engineering",
        "company": "Acme Corp",
        "lifecyclestage": "lead",
    },
)
print("Created contact ID:", contact["id"])
```

## Search deals

  ### Node.js

```typescript
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);
```

  ### Python

```python

deals = actions.execute_tool(
    connection_name='hubspot',
    identifier='user_123',
    tool_name="hubspot_deals_search",
    tool_input={
        "query": "enterprise",
        "filterGroups": json.dumps([{
            "filters": [{"propertyName": "dealstage", "operator": "EQ", "value": "qualifiedtobuy"}]
        }]),
        "properties": "dealname,amount,dealstage,closedate",
        "limit": 10,
    },
)
print("Found deals:", deals["results"])
```

## Log a call

  ### Node.js

```typescript
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);
```

  ### Python

```python
from datetime import datetime, timezone

call = actions.execute_tool(
    connection_name='hubspot',
    identifier='user_123',
    tool_name="hubspot_call_log",
    tool_input={
        "hs_call_title": "Q4 Renewal Discussion",
        "hs_timestamp": datetime.now(timezone.utc).isoformat(),
        "hs_call_body": "Discussed renewal terms. Customer is interested in the enterprise plan.",
        "hs_call_direction": "OUTBOUND",
        "hs_call_duration": 900000,  # 15 minutes in ms
        "hs_call_status": "COMPLETED",
    },
)
print("Logged call ID:", call["id"])
```

## Create and associate a ticket

  ### Node.js

```typescript
// 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);
```

  ### Python

```python
# Create the ticket
ticket = actions.execute_tool(
    connection_name='hubspot',
    identifier='user_123',
    tool_name="hubspot_ticket_create",
    tool_input={
        "subject": "Cannot export data to CSV",
        "hs_pipeline_stage": "1",  # "New" stage
        "content": "Customer reports that the CSV export button is unresponsive on the Reports page.",
        "hs_ticket_priority": "HIGH",
    },
)

# Associate with a contact
actions.execute_tool(
    connection_name='hubspot',
    identifier='user_123',
    tool_name="hubspot_association_create",
    tool_input={
        "from_object_type": "tickets",
        "from_object_id": ticket["id"],
        "to_object_type": "contacts",
        "to_object_id": "12345",
    },
)
print("Ticket created and associated:", ticket["id"])
```

## Required and optional scopes

export const sectionTitle = 'Required and optional scopes'

HubSpot's OAuth connection requires one scope and supports up to 23 optional scopes. Grant only the scopes your tools actually need — a smaller scope set means a simpler consent screen and a faster app review for public listings.

### Required scope

`oauth` — included automatically on every HubSpot connection. You do not need to add it manually.

### Optional scopes

Add scopes that match the tools you plan to call. Common choices:

| Scope | Enables |
| --- | --- |
| `crm.objects.contacts.read` | Read contacts |
| `crm.objects.contacts.write` | Create and update contacts |
| `crm.objects.companies.read` | Read companies |
| `crm.objects.companies.write` | Create and update companies |
| `crm.objects.deals.read` | Read deals |
| `crm.objects.deals.write` | Create and update deals |
| `crm.objects.line_items.read` | Read line items |
| `crm.objects.line_items.write` | Create and update line items |
| `crm.objects.quotes.read` | Read quotes |
| `crm.lists.read` | Read contact lists |
| `crm.lists.write` | Create and manage contact lists |
| `tickets` | Read and write support tickets |
| `forms` | Read forms and form submissions |
| `automation` | Read and trigger workflows and engagements |
| `e-commerce` | Products and orders |

See HubSpot's [scope reference](https://developers.hubspot.com/docs/api/working-with-oauth#scopes) for the full list.

### Configure optional scopes in your HubSpot app

In your HubSpot app, go to **Auth** > **Auth settings** > **Scopes**. You'll see three categories: **Required scopes** (always requested), **Conditionally required scopes**, and **Optional scopes** (requested only when the user's account has access to them).

> Image: HubSpot Scopes page showing Required, Conditionally required, and Optional scopes sections

Click **Add new scope** and select the optional scopes your app needs. Optional scopes let users without access to a feature still install your app — HubSpot simply skips those scopes at consent time.

### Enable the same optional scopes in Scalekit

1. Open the connection in **AgentKit** > **Connections**.
2. In the **Permissions** field, enter the scopes you need, space-separated. Example for a read-only CRM flow: `crm.objects.contacts.read crm.objects.companies.read crm.objects.deals.read`.
3. Make sure the scope set here matches exactly what you've configured in your HubSpot app. A mismatch causes an `invalid_scope` error when the user authorizes.

> tip: Keep scope sets aligned
>
> Your Scalekit connection, your HubSpot app, and any SDK calls must use the same scope set. The safest workflow: configure scopes in your HubSpot app first, then copy them into Scalekit's **Permissions** field.

## Getting resource IDs

export const sectionTitle = 'Getting resource IDs'

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

| Resource | Tool to get ID | Field in response |
|----------|---------------|-------------------|
| Contact ID | `hubspot_contacts_search` or `hubspot_contacts_list` | `results[].id` |
| Company ID | `hubspot_companies_search` | `results[].id` |
| Deal ID | `hubspot_deals_search` | `results[].id` |
| Ticket ID | `hubspot_tickets_search` | `results[].id` |
| Line Item ID | `hubspot_deal_line_items_get` | `results[].id` |
| Product ID | `hubspot_products_list` | `results[].id` |
| Owner ID | `hubspot_owners_list` | `results[].id` |
| Pipeline ID | `hubspot_deal_pipelines_list` | `results[].id` |
| Pipeline Stage ID | `hubspot_deal_pipelines_list` | `results[].stages[].id` |
| Custom Object Type ID | `hubspot_schemas_list` | `results[].objectTypeId` |
| Custom Object Record ID | `hubspot_custom_object_records_search` | `results[].id` |
| Quote ID | `hubspot_quote_get` | `id` |

### Association type IDs

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

| From → To | Association Type ID |
|-----------|-------------------|
| Contact → Company (primary) | `1` |
| Contact → Company | `279` |
| Contact → Deal | `4` |
| Contact → Ticket | `15` |
| Deal → Contact | `3` |
| Deal → Company | `5` |
| Ticket → Contact | `16` |
| Ticket → Company | `340` |
| Line Item → Deal | `20` |
| Company → Contact | `280` |
| Company → Deal | `6` |

## Tool list

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.

## Tool list

### `hubspot_account_details_get`

Retrieve account details for the HubSpot portal including hub ID, timezone, currency, and data hosting location.

Parameters:

- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `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.

Parameters:

- `from_object_id` (`string`, required): ID of the source object
- `from_object_type` (`string`, required): Type of the source object (e.g. contacts, companies, deals, tickets)
- `to_object_id` (`string`, required): ID of the target object
- `to_object_type` (`string`, required): Type of the target object (e.g. contacts, companies, deals, tickets)

### `hubspot_association_label_create`

Create a new association label between two CRM object types.

Parameters:

- `from_object_type` (`string`, required): From object type.
- `label` (`string`, required): Label display text.
- `name` (`string`, required): Label name.
- `to_object_type` (`string`, required): To object type.
- `inverse_label` (`string`, optional): Inverse label.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_association_label_delete`

Delete a custom association label definition.

Parameters:

- `association_type_id` (`string`, required): Association type ID.
- `from_object_type` (`string`, required): From object type.
- `to_object_type` (`string`, required): To object type.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_association_label_update`

Update an existing association label definition.

Parameters:

- `association_type_id` (`string`, required): Association type ID.
- `from_object_type` (`string`, required): From object type.
- `label` (`string`, required): Label display text.
- `to_object_type` (`string`, required): To object type.
- `inverse_label` (`string`, optional): Inverse label.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_association_labels_list`

List all association label definitions between two CRM object types.

Parameters:

- `from_object_type` (`string`, required): From object type.
- `to_object_type` (`string`, required): To object type.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_association_set`

Create or update a labeled association between two CRM records.

Parameters:

- `association_category` (`string`, required): Association category.
- `association_type_id` (`integer`, required): Association type ID.
- `object_id` (`string`, required): From object ID.
- `object_type` (`string`, required): From object type.
- `to_object_id` (`string`, required): To object ID.
- `to_object_type` (`string`, required): To object type.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_associations_batch_archive`

Remove an association between two HubSpot CRM objects using the v4 associations API.

Parameters:

- `from_object_type` (`string`, required): The type of the source object
- `inputs` (`string`, required): JSON array of associations to archive in HubSpot v4 format.
- `to_object_type` (`string`, required): The type of the target object

### `hubspot_associations_batch_create`

Create one or more associations between HubSpot records using the batch API. Pass arrays of IDs — up to 100 pairs per call.

Parameters:

- `from_object_type` (`string`, required): Object type of the source records (e.g. contacts, deals, companies, tickets)
- `inputs` (`string`, required): JSON array of association objects in HubSpot v4 format.
- `to_object_type` (`string`, required): Object type of the target records (e.g. deals, companies, contacts, tickets)

### `hubspot_audit_logs_get`

Retrieve account audit logs filtered by user, event type, object type, or date range.

Parameters:

- `acting_user_id` (`integer`, optional): Filter by user ID who performed the action.
- `after` (`string`, optional): Pagination cursor.
- `fill_final_timestamp` (`boolean`, optional): Include final timestamp in response.
- `limit` (`integer`, optional): Maximum number of results per page.
- `occurred_after` (`string`, optional): Return logs after this timestamp.
- `occurred_before` (`string`, optional): Return logs before this timestamp.
- `schema_version` (`string`, optional): Schema version
- `sort` (`string`, optional): Sort parameters.
- `tool_version` (`string`, optional): Tool version

### `hubspot_bulk_export`

Initiate a bulk export of CRM records for the specified object type.

Parameters:

- `export_name` (`string`, required): Name for the export.
- `export_type` (`string`, required): Type of export.
- `format` (`string`, required): File format for the export.
- `include_labeled_associations` (`string`, required): Include labeled associations.
- `include_primary_display_property` (`string`, required): Include primary display property for associated objects.
- `language` (`string`, required): Language for the export.
- `object_properties` (`string`, required): Properties to include in the export.
- `object_type` (`string`, required): CRM object type to export.
- `override_association_limit` (`string`, required): Override 1000 association limit per row.
- `associated_object_type` (`string`, optional): Associated object types to include.
- `export_internal_values_options` (`string`, optional): How to export internal values.
- `list_id` (`string`, optional): List ID for LIST exports.
- `public_crm_search_request` (`object`, optional): Advanced filter and sort criteria for the export.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_bulk_export_status`

Check the status of a bulk export job and retrieve the download URL when complete.

Parameters:

- `export_id` (`string`, required): Export job ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_call_get`

Retrieve a single call engagement by its ID.

Parameters:

- `call_id` (`string`, required): Call ID.
- `archived` (`boolean`, optional): Return archived record.
- `associations` (`string`, optional): Associations to return.
- `id_property` (`string`, optional): ID property name.
- `properties` (`string`, optional): Properties to return.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_call_log`

Log a call engagement in HubSpot CRM. Records details of a phone call including title, duration, notes, status, and direction.

Parameters:

- `hs_call_title` (`string`, required): Title or subject of the call
- `hs_timestamp` (`string`, required): Date and time when the call took place (ISO 8601 format)
- `hs_call_body` (`string`, optional): Notes or transcript from the call
- `hs_call_direction` (`string`, optional): Direction of the call
- `hs_call_duration` (`number`, optional): Duration of the call in milliseconds
- `hs_call_status` (`string`, optional): Outcome status of the call

### `hubspot_call_transcript_get`

Retrieve the full transcript for a recorded HubSpot call by transcript ID.

Parameters:

- `transcript_id` (`string`, required): The unique ID of the call transcript.

### `hubspot_call_update`

Update an existing call engagement in HubSpot CRM by call ID. Provide any fields to update — only the fields you include will be changed.

Parameters:

- `call_id` (`string`, required): ID of the call to update
- `hs_call_body` (`string`, optional): Notes or transcript from the call
- `hs_call_direction` (`string`, optional): Direction of the call
- `hs_call_duration` (`number`, optional): Duration of the call in milliseconds
- `hs_call_from_number` (`string`, optional): Phone number the call originated from
- `hs_call_recording_url` (`string`, optional): HTTPS URL pointing to the call recording (.mp3 or .wav)
- `hs_call_status` (`string`, optional): Outcome status of the call
- `hs_call_title` (`string`, optional): Title or subject of the call
- `hs_call_to_number` (`string`, optional): Phone number that received the call
- `hs_timestamp` (`string`, optional): Date and time when the call took place
- `hubspot_owner_id` (`string`, optional): ID of the HubSpot owner associated with the call

### `hubspot_calls_search`

Search HubSpot call engagements using filters and full-text search. Returns logged calls with their properties.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of properties to include in the response
- `query` (`string`, optional): Full-text search term across call properties

### `hubspot_campaign_get`

Retrieve details of a specific HubSpot marketing campaign by campaign ID.

Parameters:

- `campaign_id` (`string`, required): ID of the campaign to retrieve

### `hubspot_campaigns_list`

List all HubSpot marketing campaigns with pagination support.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results
- `limit` (`number`, optional): Number of campaigns to return per page

### `hubspot_companies_batch_archive`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to archive. Each item has an 'id' field.

### `hubspot_companies_batch_create`

Create one or more companys in HubSpot using the batch API. Pass a list of records — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to create in HubSpot batch format.

### `hubspot_companies_batch_read`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to read. Each item has an 'id' field.
- `properties` (`string`, optional): JSON array of property names to return. Omit to get default properties.

### `hubspot_companies_batch_update`

Update one or more companys in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to update in HubSpot batch format.

### `hubspot_companies_batch_upsert`

Upsert one or more companys in HubSpot using the batch API. Pass a list of records — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to upsert in HubSpot batch format.

### `hubspot_companies_merge`

Merge two company records into one, keeping the primary company.

Parameters:

- `object_id_to_merge` (`string`, required): Record ID to merge.
- `primary_object_id` (`string`, required): Primary record ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_companies_search`

Search HubSpot companies using full-text search and pagination. Returns matching companies with specified properties.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`array`, optional): List of properties to include in the response
- `query` (`string`, optional): Search term for full-text search across company properties

### `hubspot_company_create`

Create a new company in HubSpot CRM. Requires a company name as the unique identifier. Supports additional properties like domain, industry, phone, location, and revenue information.

Parameters:

- `name` (`string`, required): Company name (required, serves as primary identifier)
- `annualrevenue` (`number`, optional): Annual revenue of the company
- `city` (`string`, optional): Company city location
- `country` (`string`, optional): Company country location
- `description` (`string`, optional): Company description or overview
- `domain` (`string`, optional): Company website domain
- `industry` (`string`, optional): Industry type of the company
- `numberofemployees` (`number`, optional): Number of employees at the company
- `phone` (`string`, optional): Company phone number
- `state` (`string`, optional): Company state or region

### `hubspot_company_get`

Retrieve details of a specific company from HubSpot by company ID. Returns company properties and associated data.

Parameters:

- `company_id` (`string`, required): ID of the company to retrieve
- `properties` (`string`, optional): Comma-separated list of properties to include in the response

### `hubspot_company_update`

Update an existing company in HubSpot CRM by company ID. Provide any fields to update.

Parameters:

- `company_id` (`string`, required): ID of the company to update
- `annualrevenue` (`string`, optional): Annual revenue of the company
- `city` (`string`, optional): City where the company is located
- `country` (`string`, optional): Country where the company is located
- `description` (`string`, optional): Description of the company
- `domain` (`string`, optional): Company website domain
- `industry` (`string`, optional): Industry the company operates in
- `name` (`string`, optional): Name of the company
- `numberofemployees` (`number`, optional): Number of employees at the company
- `phone` (`string`, optional): Company phone number
- `state` (`string`, optional): State or region where the company is located
- `website` (`string`, optional): Company website URL

### `hubspot_contact_create`

Create a new contact in HubSpot CRM. Requires an email address as the unique identifier. Supports additional properties like name, company, phone, and lifecycle stage.

Parameters:

- `email` (`string`, required): Primary email address for the contact (required, serves as unique identifier)
- `company` (`string`, optional): Company name where the contact works
- `firstname` (`string`, optional): First name of the contact
- `hs_lead_status` (`string`, optional): Lead status of the contact
- `jobtitle` (`string`, optional): Job title of the contact
- `lastname` (`string`, optional): Last name of the contact
- `lifecyclestage` (`string`, optional): Lifecycle stage of the contact
- `phone` (`string`, optional): Phone number of the contact
- `website` (`string`, optional): Personal or company website URL

### `hubspot_contact_email_events_get`

Retrieve marketing email events for a specific contact by their email address. Returns open, click, bounce, and unsubscribe events.

Parameters:

- `email` (`string`, required): Email address of the contact to retrieve events for
- `eventType` (`string`, optional): Filter by event type (e.g., OPEN, CLICK, BOUNCE, UNSUBSCRIBE)
- `limit` (`number`, optional): Number of events to return per page

### `hubspot_contact_get`

Retrieve details of a specific contact from HubSpot by contact ID. Returns contact properties and associated data.

Parameters:

- `contact_id` (`string`, required): ID of the contact to retrieve
- `properties` (`string`, optional): Comma-separated list of properties to include in the response

### `hubspot_contact_list_membership_get`

Retrieve all HubSpot lists that a specific contact belongs to, identified by contact ID.

Parameters:

- `contact_id` (`string`, required): ID of the contact to retrieve list memberships for

### `hubspot_contact_sequence_enrollments_get`

Retrieve all sequence enrollments for a specific contact, showing which sequences they are currently enrolled in.

Parameters:

- `contact_id` (`string`, required): The ID of the contact whose sequence enrollments to retrieve.

### `hubspot_contact_update`

Update an existing contact in HubSpot CRM by contact ID. Provide any fields to update.

Parameters:

- `contact_id` (`string`, required): ID of the contact to update
- `company` (`string`, optional): Company name where the contact works
- `email` (`string`, optional): Primary email address of the contact
- `firstname` (`string`, optional): First name of the contact
- `hs_lead_status` (`string`, optional): Lead status of the contact
- `jobtitle` (`string`, optional): Job title of the contact
- `lastname` (`string`, optional): Last name of the contact
- `lifecyclestage` (`string`, optional): Lifecycle stage of the contact
- `phone` (`string`, optional): Phone number of the contact
- `website` (`string`, optional): Website URL of the contact

### `hubspot_contacts_batch_archive`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to archive. Each item has an 'id' field.

### `hubspot_contacts_batch_create`

Create one or more contacts in HubSpot using the batch API. Pass the inputs array in native HubSpot format — up to 100 records per call.

Parameters:

- `inputs` (`string`, required): JSON array of contact objects in HubSpot batch format. Each item has a 'properties' object and optional 'associations' array.

### `hubspot_contacts_batch_read`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to read. Each item has an 'id' field.
- `properties` (`string`, optional): JSON array of property names to return. Omit to get default properties.

### `hubspot_contacts_batch_update`

Update one or more contacts in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to update in HubSpot batch format.

### `hubspot_contacts_batch_upsert`

Upsert one or more contacts in HubSpot using the batch API. Pass a list of records — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to upsert in HubSpot batch format.

### `hubspot_contacts_list`

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

Parameters:

- `after` (`string`, optional): Pagination cursor to get the next set of results
- `archived` (`boolean`, optional): Whether to include archived contacts in the results
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of properties to include in the response

### `hubspot_contacts_merge`

Merge two contact records into one, keeping the primary contact.

Parameters:

- `object_id_to_merge` (`string`, required): Record ID to merge.
- `primary_object_id` (`string`, required): Primary record ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_contacts_search`

Search HubSpot contacts using full-text search and pagination. Returns matching contacts with specified properties.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`array`, optional): List of properties to include in the response
- `query` (`string`, optional): Search term for full-text search across contact properties

### `hubspot_custom_object_record_create`

Create a new record for a HubSpot custom object type.

Parameters:

- `object_type_id` (`string`, required): The object type ID of the custom object (e.g., contacts)
- `properties` (`string`, required): JSON object containing the properties for the new record

### `hubspot_custom_object_record_get`

Retrieve a specific record of a HubSpot custom object by object type ID and record ID.

Parameters:

- `object_type_id` (`string`, required): The object type ID of the custom object (e.g., contacts)
- `record_id` (`string`, required): ID of the record to retrieve
- `properties` (`string`, optional): Comma-separated list of properties to include in the response

### `hubspot_custom_object_record_update`

Update an existing record of a HubSpot custom object by object type ID and record ID. Use hubspot_schemas_list to discover available object type IDs and their properties.

Parameters:

- `object_type_id` (`string`, required): The object type ID of the custom object (e.g., contacts)
- `properties` (`object`, required): Key-value pairs of custom object properties to update
- `record_id` (`string`, required): ID of the record to update

### `hubspot_custom_object_records_search`

Search records of a HubSpot custom object by object type ID. Use hubspot_schemas_list to find the objectTypeId for your custom object.

Parameters:

- `object_type_id` (`string`, required): The object type ID of the custom object (e.g., contacts)
- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of properties to include in the response
- `query` (`string`, optional): Full-text search term across record properties

### `hubspot_deal_create`

Create a new deal in HubSpot CRM. Requires dealname and dealstage. Supports additional properties like amount, pipeline, close date, and deal type.

Parameters:

- `dealname` (`string`, required): Name of the deal (required)
- `dealstage` (`string`, required): Current stage of the deal (required)
- `amount` (`number`, optional): Deal amount/value
- `closedate` (`string`, optional): Expected close date (YYYY-MM-DD format)
- `dealtype` (`string`, optional): Type of deal
- `description` (`string`, optional): Deal description
- `hs_priority` (`string`, optional): Deal priority (high, medium, low)
- `pipeline` (`string`, optional): Deal pipeline

### `hubspot_deal_get`

Retrieve details of a specific deal from HubSpot by deal ID. Returns deal properties and associated data.

Parameters:

- `deal_id` (`string`, required): ID of the deal to retrieve
- `associations` (`string`, optional): Comma-separated list of object types to retrieve associations for
- `properties` (`string`, optional): Comma-separated list of properties to include in the response

### `hubspot_deal_line_items_get`

Retrieve all line items associated with a specific HubSpot deal.

Parameters:

- `deal_id` (`string`, required): ID of the deal to retrieve line items for

### `hubspot_deal_pipelines_list`

Retrieve all deal pipelines in HubSpot, including pipeline stages. Use this to get valid pipeline IDs and stage IDs for creating or updating deals.

Parameters:

- `archived` (`string`, optional): Include archived pipelines in the response

### `hubspot_deal_splits_read`

Retrieve deal split records for a batch of deal IDs.

Parameters:

- `inputs` (`array`, required): Deal split IDs to read.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_deal_splits_upsert`

Create or update deal splits for a batch of deals.

Parameters:

- `inputs` (`array`, required): Deal split inputs to upsert.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_deal_update`

Update an existing deal in HubSpot CRM by deal ID. Provide any fields to update.

Parameters:

- `deal_id` (`string`, required): ID of the deal to update
- `amount` (`number`, optional): Updated deal amount/value
- `closedate` (`string`, optional): Updated expected close date (YYYY-MM-DD format)
- `dealname` (`string`, optional): Updated name of the deal
- `dealstage` (`string`, optional): Updated stage of the deal
- `dealtype` (`string`, optional): Updated type of deal
- `description` (`string`, optional): Updated deal description
- `hs_priority` (`string`, optional): Updated deal priority
- `pipeline` (`string`, optional): Updated deal pipeline

### `hubspot_deals_batch_archive`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to archive. Each item has an 'id' field.

### `hubspot_deals_batch_create`

Create one or more deals in HubSpot using the batch API. Pass a list of records — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to create in HubSpot batch format.

### `hubspot_deals_batch_read`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to read. Each item has an 'id' field.
- `properties` (`string`, optional): JSON array of property names to return. Omit to get default properties.

### `hubspot_deals_batch_update`

Update one or more deals in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to update in HubSpot batch format.

### `hubspot_deals_batch_upsert`

Upsert one or more deals in HubSpot using the batch API. Pass a list of records — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to upsert in HubSpot batch format.

### `hubspot_deals_merge`

Merge two deal records of the same type into one, keeping the primary deal.

Parameters:

- `object_id_to_merge` (`string`, required): Record ID to merge.
- `primary_object_id` (`string`, required): Primary record ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_deals_search`

Search HubSpot deals using full-text search and pagination. Returns matching deals with specified properties.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`array`, optional): List of properties to include in the response
- `query` (`string`, optional): Search term for full-text search across deal properties

### `hubspot_email_create`

Create an email engagement in HubSpot CRM to log an email interaction on a record's timeline. Use this to record sent, received, or forwarded emails against contacts, companies, or deals.

Parameters:

- `hs_email_direction` (`string`, required): Direction the email was sent
- `hs_timestamp` (`string`, required): Date and time of the email
- `hs_email_headers` (`string`, optional): Email headers as a JSON-escaped string containing sender and recipient details
- `hs_email_html` (`string`, optional): HTML body of the email
- `hs_email_status` (`string`, optional): Send status of the email
- `hs_email_subject` (`string`, optional): Subject line of the email
- `hs_email_text` (`string`, optional): Plain-text body of the email
- `hubspot_owner_id` (`string`, optional): ID of the HubSpot owner associated with the email

### `hubspot_email_engagement_get`

Retrieve a single email engagement record by its ID.

Parameters:

- `email_id` (`string`, required): Email ID.
- `archived` (`boolean`, optional): Return archived record.
- `associations` (`string`, optional): Associations to return.
- `id_property` (`string`, optional): ID property name.
- `properties` (`string`, optional): Properties to return.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_email_statistics_histogram`

Retrieve a time-series histogram of marketing email statistics (opens, clicks, deliveries, etc.) bucketed by a specified interval over a time range.

Parameters:

- `endTimestamp` (`string`, required): End of the time range for the histogram in ISO 8601 date-time format
- `interval` (`string`, required): Time bucket interval for grouping histogram data
- `startTimestamp` (`string`, required): Start of the time range for the histogram in ISO 8601 date-time format
- `after` (`string`, optional): Pagination cursor to get the next set of results
- `emailIds` (`array`, optional): List of marketing email IDs to filter histogram data by

### `hubspot_email_statistics_list`

Retrieve aggregated send, open, click, and other statistics for marketing emails over a specified time range. Optionally filter by specific email IDs.

Parameters:

- `endTimestamp` (`string`, required): End of the time range for statistics in ISO 8601 date-time format
- `startTimestamp` (`string`, required): Start of the time range for statistics in ISO 8601 date-time format
- `emailIds` (`array`, optional): List of marketing email IDs to filter statistics by
- `property` (`string`, optional): Comma-separated list of metric properties to include in the response

### `hubspot_email_update`

Update an existing email engagement in HubSpot CRM by email ID. Provide any fields to update — only the fields you include will be changed.

Parameters:

- `email_id` (`string`, required): ID of the email engagement to update
- `hs_email_direction` (`string`, optional): Direction the email was sent
- `hs_email_headers` (`string`, optional): Email headers as a JSON-escaped string containing sender and recipient details
- `hs_email_html` (`string`, optional): HTML body of the email
- `hs_email_status` (`string`, optional): Send status of the email
- `hs_email_subject` (`string`, optional): Subject line of the email
- `hs_email_text` (`string`, optional): Plain-text body of the email
- `hs_timestamp` (`string`, optional): Date and time of the email
- `hubspot_owner_id` (`string`, optional): ID of the HubSpot owner associated with the email

### `hubspot_emails_search`

Search HubSpot email engagements (logged emails) using filters and full-text search. Returns logged email records with their properties.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of properties to include in the response
- `query` (`string`, optional): Full-text search term across email properties

### `hubspot_engagements_list`

List engagements (notes, tasks, calls, emails, meetings) from HubSpot CRM. Supports filtering by engagement type and pagination.

Parameters:

- `engagement_type` (`string`, required): Type of engagement to list
- `after` (`string`, optional): Pagination cursor to get the next page of results
- `limit` (`integer`, optional): Number of results to return (max 100)

### `hubspot_export_details_get`

Retrieve details and download URL for a completed bulk export job.

Parameters:

- `task_id` (`string`, required): Task ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_export_get`

Retrieve detailed information about a specific CRM export by its export ID.

Parameters:

- `export_id` (`string`, required): Export ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_feedback_submission_get`

Retrieve a single feedback submission by ID, including survey type, response, and contact association.

Parameters:

- `submission_id` (`string`, required): The unique ID of the feedback submission.
- `archived` (`boolean`, optional): Whether to return only archived submissions.
- `associations` (`string`, optional): Object types to retrieve associated IDs for.
- `id_property` (`string`, optional): Name of a unique property to use for lookup.
- `properties` (`string`, optional): Properties to include in the response.
- `properties_with_history` (`string`, optional): Properties to return with their full change history.

### `hubspot_feedback_submissions_list`

List feedback survey submissions (NPS, CSAT, CES) from HubSpot with pagination.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response.
- `archived` (`boolean`, optional): Whether to return only archived submissions.
- `associations` (`string`, optional): Object types to retrieve associated IDs for.
- `limit` (`integer`, optional): Number of results per page (max 100).
- `properties` (`string`, optional): Properties to include in the response.
- `properties_with_history` (`string`, optional): Properties to return with their full change history.

### `hubspot_file_get`

Retrieve metadata for a file stored in HubSpot by its file ID.

Parameters:

- `file_id` (`string`, required): File ID.
- `properties` (`string`, optional): Properties to return.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_file_signed_url_get`

Get a signed download URL for a file in HubSpot. The URL expires after the specified duration.

Parameters:

- `file_id` (`string`, required): File ID.
- `expiration_seconds` (`integer`, optional): Expiration seconds.
- `schema_version` (`string`, optional): Schema version
- `size` (`string`, optional): Image resize size.
- `tool_version` (`string`, optional): Tool version
- `upscale` (`boolean`, optional): Upscale image to fit size.

### `hubspot_files_search`

Search files in HubSpot file manager by name, type, extension, date range, or size.

Parameters:

- `after` (`string`, optional): Pagination cursor.
- `allows_anonymous_access` (`boolean`, optional): Public files only.
- `before` (`string`, optional): Before timestamp.
- `created_at_gte` (`string`, optional): Created after.
- `created_at_lte` (`string`, optional): Created before.
- `extension` (`string`, optional): File extension.
- `is_usable_in_content` (`boolean`, optional): Usable in content.
- `limit` (`integer`, optional): Page size.
- `name` (`string`, optional): File name search.
- `path` (`string`, optional): File path.
- `properties` (`string`, optional): Properties to return.
- `schema_version` (`string`, optional): Schema version
- `size_gte` (`integer`, optional): Min file size.
- `size_lte` (`integer`, optional): Max file size.
- `sort` (`string`, optional): Sort field.
- `tool_version` (`string`, optional): Tool version
- `type` (`string`, optional): File type.
- `updated_at_gte` (`string`, optional): Updated after.
- `updated_at_lte` (`string`, optional): Updated before.

### `hubspot_forecast_get`

Retrieve a single forecast by its ID.

Parameters:

- `forecast_id` (`string`, required): Forecast ID.
- `archived` (`boolean`, optional): Return archived.
- `associations` (`string`, optional): Associations to return.
- `id_property` (`string`, optional): ID property name.
- `properties` (`string`, optional): Properties to return.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_forecast_types_list`

Retrieve all available forecast type definitions.

Parameters:

- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_forecasts_list`

Retrieve a list of sales forecasts.

Parameters:

- `after` (`string`, optional): Pagination cursor.
- `archived` (`boolean`, optional): Return archived forecasts.
- `associations` (`string`, optional): Associations to return.
- `limit` (`integer`, optional): Page size.
- `properties` (`string`, optional): Properties to return.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_form_submissions_get`

Retrieve all submissions for a specific HubSpot form. Returns submitted field values and submission timestamps.

Parameters:

- `form_id` (`string`, required): ID of the form to retrieve submissions for
- `after` (`string`, optional): Pagination offset token for the next page
- `limit` (`number`, optional): Number of submissions to return per page

### `hubspot_forms_list`

List all HubSpot marketing forms. Returns form IDs, names, and field definitions.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results
- `formTypes` (`string`, optional): Comma-separated list of form types to filter by (e.g., hubspot,captured,flow)
- `limit` (`number`, optional): Number of forms to return per page (max 50)

### `hubspot_goal_get`

Retrieve a single HubSpot goal by its ID.

Parameters:

- `goal_id` (`string`, required): The unique ID of the goal.
- `associations` (`string`, optional): Comma-separated associated object types to include.
- `properties` (`string`, optional): Comma-separated list of properties to return.

### `hubspot_goal_target_delete`

Permanently delete a goal target record.

Parameters:

- `goal_target_id` (`string`, required): Goal target ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_goal_target_get`

Retrieve a single HubSpot goal target by ID. Goal targets are the specific targets assigned to users within a goal.

Parameters:

- `goal_target_id` (`string`, required): The unique ID of the goal target.
- `archived` (`boolean`, optional): Whether to return only archived goal targets.
- `associations` (`string`, optional): Object types to retrieve associated IDs for.
- `id_property` (`string`, optional): Name of a unique property to use for lookup.
- `properties` (`string`, optional): Properties to include in the response.
- `properties_with_history` (`string`, optional): Properties to return with full change history.

### `hubspot_goal_target_update`

Update an existing goal target record by its ID.

Parameters:

- `goal_target_id` (`string`, required): Goal target ID.
- `id_property` (`string`, optional): ID property name.
- `properties` (`object`, optional): Properties to update.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_goal_targets_batch_update`

Batch update multiple goal target records.

Parameters:

- `inputs` (`array`, required): Goal target updates.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_goal_targets_create`

Create a new goal target record with specified properties and optional associations.

Parameters:

- `associations` (`array`, required): Associations to link with this goal target.
- `properties` (`object`, required): Goal target properties.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_goal_targets_list`

List HubSpot goal targets — the specific targets assigned to users within goals — with optional property filters and pagination.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response.
- `archived` (`boolean`, optional): Whether to return only archived goal targets.
- `associations` (`string`, optional): Object types to retrieve associated IDs for.
- `limit` (`integer`, optional): Number of results per page (max 100).
- `properties` (`string`, optional): Properties to include in the response.
- `properties_with_history` (`string`, optional): Properties to return with full change history.

### `hubspot_goals_list`

List HubSpot goals with optional property selection and pagination.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response.
- `associations` (`string`, optional): Comma-separated associated object types to include.
- `limit` (`integer`, optional): Number of results per page (max 100).
- `properties` (`string`, optional): Comma-separated list of properties to return.

### `hubspot_graphql_execute`

Execute a GraphQL query against HubSpot data using the CRM GraphQL endpoint.

Parameters:

- `query` (`string`, required): GraphQL query string.
- `operation_name` (`string`, optional): Operation name.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version
- `variables` (`object`, optional): Query variables.

### `hubspot_import_cancel`

Cancel an active import job.

Parameters:

- `import_id` (`string`, required): Import ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_import_errors_get`

Retrieve validation errors for a specific import job.

Parameters:

- `import_id` (`string`, required): Import ID.
- `after` (`string`, optional): Pagination cursor.
- `include_error_message` (`boolean`, optional): Include error message.
- `include_row_data` (`boolean`, optional): Include row data.
- `limit` (`integer`, optional): Page size.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_import_get`

Get details and status of a specific import job by its ID.

Parameters:

- `import_id` (`string`, required): Import ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_imports_list`

Retrieve all active and recently completed CRM imports.

Parameters:

- `after` (`string`, optional): Pagination cursor.
- `limit` (`integer`, optional): Page size.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_inboxes_list`

Retrieve all conversation inboxes in the HubSpot account.

Parameters:

- `after` (`string`, optional): Pagination cursor.
- `archived` (`boolean`, optional): Return archived inboxes only.
- `limit` (`integer`, optional): Maximum results per page.
- `schema_version` (`string`, optional): Schema version
- `sort` (`string`, optional): Sort parameters.
- `tool_version` (`string`, optional): Tool version

### `hubspot_lead_create`

Create a new lead in HubSpot CRM with optional pipeline stage and contact associations.

Parameters:

- `associations` (`array`, required): Objects to associate with this lead.
- `hs_lead_name` (`string`, required): Name of the lead.
- `hs_pipeline` (`string`, optional): Pipeline ID for this lead.
- `hs_pipeline_stage` (`string`, optional): Pipeline stage ID.
- `properties` (`object`, optional): Additional lead properties as key-value pairs.

### `hubspot_lead_get`

Retrieve a single HubSpot lead by its ID with specified properties.

Parameters:

- `lead_id` (`string`, required): The unique ID of the lead.
- `archived` (`boolean`, optional): Whether to return only archived leads.
- `associations` (`string`, optional): Object types to retrieve associated IDs for.
- `id_property` (`string`, optional): Name of a unique property to use for lookup instead of the internal object ID.
- `properties` (`string`, optional): Properties to include in the response.
- `properties_with_history` (`string`, optional): Properties to return with full change history.

### `hubspot_lead_update`

Update an existing HubSpot lead by ID. Only provided fields are modified.

Parameters:

- `lead_id` (`string`, required): The unique ID of the lead to update.
- `hs_lead_name` (`string`, optional): Updated lead name.
- `hs_pipeline` (`string`, optional): Updated pipeline ID.
- `hs_pipeline_stage` (`string`, optional): Updated pipeline stage ID.
- `id_property` (`string`, optional): Name of a unique property to use for lookup instead of the internal object ID.
- `properties` (`object`, optional): Additional lead properties as key-value pairs.

### `hubspot_leads_search`

Search HubSpot leads using filters, full-text query, and property selection.

Parameters:

- `filterGroups` (`array`, required): Filter groups for advanced lead filtering.
- `limit` (`integer`, required): Number of results to return (max 100).
- `properties` (`array`, required): Properties to return for each lead.
- `sorts` (`array`, required): Sort criteria as property name strings.
- `after` (`string`, optional): Pagination cursor from the previous response.
- `query` (`string`, optional): Full-text search query across lead properties.

### `hubspot_line_item_create`

Create a new line item in HubSpot. Line items represent individual products or services in a deal.

Parameters:

- `name` (`string`, required): Name of the line item
- `deal_id` (`string`, optional): ID of the deal to associate this line item with
- `hs_product_id` (`string`, optional): ID of the associated product from HubSpot product library
- `price` (`string`, optional): Unit price of the line item
- `quantity` (`string`, optional): Quantity of the line item

### `hubspot_line_items_batch_archive`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to archive. Each item has an 'id' field.

### `hubspot_line_items_batch_create`

Create one or more line items in HubSpot using the batch API. Pass a list of records — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to create in HubSpot batch format.

### `hubspot_line_items_batch_read`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to read. Each item has an 'id' field.
- `properties` (`string`, optional): JSON array of property names to return. Omit to get default properties.

### `hubspot_line_items_batch_update`

Update one or more line items in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to update in HubSpot batch format.

### `hubspot_line_items_search`

Search line item records using filters, sorting, and pagination.

Parameters:

- `after` (`string`, required): Pagination cursor.
- `filter_groups` (`array`, required): Filter groups.
- `limit` (`integer`, required): Page size.
- `properties` (`array`, required): Properties to return.
- `sorts` (`array`, required): Sort order.
- `query` (`string`, optional): Search query string.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_list_create`

Create a new HubSpot CRM list for contacts, companies, or deals. Supports static (MANUAL), one-time snapshot (SNAPSHOT), and auto-updating dynamic (DYNAMIC) lists.

Parameters:

- `name` (`string`, required): Display name of the list. Must be unique across all public lists in the portal.
- `objectTypeId` (`string`, required): Object type the list will contain. Use 0-1 for contacts, 0-2 for companies, 0-3 for deals.
- `processingType` (`string`, required): How list membership is determined. MANUAL for static lists, SNAPSHOT for a one-time filter run, DYNAMIC for continuously updated lists.
- `customProperties` (`string`, optional): Custom key-value metadata to attach to the list.
- `filterBranch` (`string`, optional): Nested filter tree defining membership criteria for DYNAMIC or SNAPSHOT lists.
- `listFolderId` (`integer`, optional): ID of the folder to place this list in. Defaults to the root folder if omitted.
- `listPermissions` (`string`, optional): Teams and users that should have edit access to this list, identified by their numeric HubSpot IDs.
- `membershipSettings` (`string`, optional): Controls whether unassigned records are included in the list and which team owns the membership.

### `hubspot_list_delete`

Permanently delete a HubSpot CRM list by its list ID. This removes the list definition but does not delete the records it contains.

Parameters:

- `listId` (`string`, required): The ID of the list to delete.

### `hubspot_list_filters_update`

Replace the filter branch of a DYNAMIC HubSpot list. The new filterBranch fully replaces the existing definition — include any filters you want to keep. The list immediately begins reprocessing its membership after the update.

Parameters:

- `filterBranch` (`string`, required): The new filter branch definition that replaces the existing one. Must be a complete OR root branch with nested AND branches.
- `listId` (`string`, required): The ID of the list whose filters should be updated.

### `hubspot_list_get`

Retrieve a specific CRM list by its list ID.

Parameters:

- `list_id` (`string`, required): List ID.
- `include_filters` (`boolean`, optional): Include filters.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_list_memberships_add`

Add one or more records to a MANUAL HubSpot list by their record IDs.

Parameters:

- `listId` (`string`, required): ID of the list to add contacts to.
- `recordIds` (`string`, required): JSON array of contact record IDs to add to the list.

### `hubspot_list_memberships_get`

Fetch memberships of a list sorted by recordId. Use after/before for pagination; after takes precedence over before when both are provided.

Parameters:

- `list_id` (`string`, required): The ILS ID of the list.
- `after` (`string`, optional): Paging offset token for the next page (ascending order).
- `before` (`string`, optional): Paging offset token for the previous page (descending order).
- `limit` (`integer`, optional): Number of records to return per page (max 250, default 100).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution
- `tool_version` (`string`, optional): Optional tool version to use for execution

### `hubspot_list_memberships_remove`

Remove one or more records from a MANUAL HubSpot list by their record IDs.

Parameters:

- `listId` (`string`, required): ID of the list to remove contacts from.
- `recordIds` (`string`, required): JSON array of contact record IDs to remove from the list.

### `hubspot_list_name_update`

Rename a HubSpot CRM list. The new name must be unique across all public lists in the portal. Optionally return filter definitions in the response by setting includeFilters to true.

Parameters:

- `listId` (`string`, required): The ID of the list to update.
- `listName` (`string`, required): The new name for the list.
- `includeFilters` (`boolean`, optional): Whether to include filter branch definitions in the response.

### `hubspot_list_restore`

Restore a previously deleted CRM list by its list ID.

Parameters:

- `list_id` (`string`, required): List ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_lists_list`

Retrieve all CRM lists with optional filters and pagination.

Parameters:

- `include_filters` (`boolean`, optional): Include filter definitions in response.
- `list_ids` (`string`, optional): Filter by specific list IDs.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_lists_search`

Search CRM lists by name, IDs, object type, or processing type with pagination.

Parameters:

- `additional_properties` (`array`, required): Additional properties.
- `count` (`integer`, optional): Page size.
- `list_ids` (`array`, optional): List IDs to filter.
- `object_type_id` (`string`, optional): Object type ID.
- `offset` (`integer`, optional): Pagination offset.
- `processing_types` (`array`, optional): Processing types.
- `query` (`string`, optional): Search query.
- `schema_version` (`string`, optional): Schema version
- `sort` (`string`, optional): Sort.
- `tool_version` (`string`, optional): Tool version

### `hubspot_marketing_email_get`

Retrieve a single marketing email by its ID, including subject, body, send configuration, and metadata.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email to retrieve
- `archived` (`boolean`, optional): Whether to return the email even if it has been archived
- `includedProperties` (`string`, optional): Comma-separated list of property names to include in the response, limiting which fields are returned
- `includeStats` (`boolean`, optional): Whether to include send, open, click, and other statistics in the response
- `marketingCampaignNames` (`boolean`, optional): Whether to include the names of marketing campaigns associated with the email
- `variantStats` (`boolean`, optional): Whether to include statistics broken down by A/B test variant
- `workflowNames` (`boolean`, optional): Whether to include the names of workflows in which this email is used

### `hubspot_marketing_event_attendance_record`

Record attendance for contacts at a marketing event.

Parameters:

- `external_account_id` (`string`, required): External account ID.
- `external_event_id` (`string`, required): External event ID.
- `inputs` (`array`, required): Contacts to record attendance for.
- `subscriber_state` (`string`, required): Subscriber state.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_marketing_event_complete`

Mark a marketing event as completed.

Parameters:

- `end_date_time` (`string`, required): Event end date and time.
- `external_account_id` (`string`, required): External account ID.
- `external_event_id` (`string`, required): External event ID.
- `start_date_time` (`string`, required): Event start date and time.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_marketing_event_create`

Create a new marketing event in HubSpot.

Parameters:

- `custom_properties` (`array`, required): Custom properties for the marketing event.
- `event_name` (`string`, required): Event name.
- `event_organizer` (`string`, required): Event organizer name.
- `external_account_id` (`string`, required): External account ID.
- `external_event_id` (`string`, required): External event ID.
- `end_date_time` (`string`, optional): End date/time.
- `event_cancelled` (`boolean`, optional): Whether the event is cancelled.
- `event_completed` (`boolean`, optional): Whether the event is completed.
- `event_description` (`string`, optional): Event description.
- `event_type` (`string`, optional): Event type.
- `event_url` (`string`, optional): Event URL.
- `schema_version` (`string`, optional): Schema version
- `start_date_time` (`string`, optional): Start date/time.
- `tool_version` (`string`, optional): Tool version

### `hubspot_marketing_event_get`

Retrieve a single HubSpot marketing event by its external event ID and account ID.

Parameters:

- `external_account_id` (`string`, required): The external account ID of the app that created the event.
- `external_event_id` (`string`, required): The external event ID in the app that created the event.

### `hubspot_marketing_event_upsert`

Create or update multiple marketing events in a single batch request.

Parameters:

- `inputs` (`array`, required): Array of marketing event objects to upsert.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_marketing_events_list`

List HubSpot marketing events (webinars, conferences, virtual events) with optional filters and pagination.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response.
- `limit` (`integer`, optional): Number of results per page.
- `object_id` (`string`, optional): CRM object ID to get associated marketing events for.
- `object_type` (`string`, optional): CRM object type to get associated marketing events for.
- `q` (`string`, optional): Search query to filter events by name.

### `hubspot_meeting_get`

Retrieve a single meeting engagement by its ID.

Parameters:

- `meeting_id` (`string`, required): Meeting ID.
- `archived` (`boolean`, optional): Return archived record.
- `associations` (`string`, optional): Associations to return.
- `id_property` (`string`, optional): ID property name.
- `properties` (`string`, optional): Properties to return.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_meeting_links_list`

List all HubSpot meeting scheduler links (booking pages) for the connected account.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response.
- `limit` (`integer`, optional): Number of meeting links to return per page.
- `name` (`string`, optional): Filter meeting links by name.
- `organizer_user_id` (`string`, optional): Filter meeting links by the organizer's HubSpot user ID.
- `type` (`string`, optional): Filter by meeting link type.

### `hubspot_meeting_log`

Log a meeting engagement in HubSpot CRM. Records details of a meeting including title, start/end time, description, and outcome.

Parameters:

- `hs_meeting_end_time` (`string`, required): End time of the meeting (ISO 8601 format)
- `hs_meeting_start_time` (`string`, required): Start time of the meeting (ISO 8601 format)
- `hs_meeting_title` (`string`, required): Title of the meeting
- `hs_timestamp` (`string`, required): Timestamp for the meeting (ISO 8601 format)
- `hs_meeting_body` (`string`, optional): Description or agenda for the meeting
- `hs_meeting_outcome` (`string`, optional): Outcome of the meeting

### `hubspot_meeting_update`

Update an existing meeting engagement in HubSpot CRM by meeting ID. Provide any fields to update — only the fields you include will be changed.

Parameters:

- `meeting_id` (`string`, required): ID of the meeting to update
- `hs_internal_meeting_notes` (`string`, optional): Internal notes not shared with attendees
- `hs_meeting_body` (`string`, optional): Description or agenda for the meeting
- `hs_meeting_end_time` (`string`, optional): End time of the meeting (ISO 8601 format)
- `hs_meeting_location` (`string`, optional): Location of the meeting
- `hs_meeting_outcome` (`string`, optional): Outcome of the meeting
- `hs_meeting_start_time` (`string`, optional): Start time of the meeting (ISO 8601 format)
- `hs_meeting_title` (`string`, optional): Title of the meeting
- `hs_timestamp` (`string`, optional): Timestamp for the meeting (ISO 8601 format)
- `hubspot_owner_id` (`string`, optional): ID of the HubSpot owner associated with the meeting

### `hubspot_meetings_search`

Search HubSpot meeting engagements using filters and full-text search. Returns logged meetings with their properties.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of properties to include in the response
- `query` (`string`, optional): Full-text search term across meeting properties

### `hubspot_note_create`

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

Parameters:

- `props` (`object`, required): Note properties. hs_note_body (required) is the note content. hs_timestamp (required) is Unix ms timestamp e.g. 1700000000000.

### `hubspot_note_get`

Retrieve a single note engagement by its ID.

Parameters:

- `note_id` (`string`, required): Note ID.
- `archived` (`boolean`, optional): Return archived record.
- `associations` (`string`, optional): Associations to return.
- `id_property` (`string`, optional): ID property name.
- `properties` (`string`, optional): Properties to return.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_note_log`

Log a note engagement in HubSpot CRM. Creates a text note that can be associated with contacts, companies, or deals.

Parameters:

- `hs_note_body` (`string`, required): Content of the note
- `hs_timestamp` (`string`, required): Timestamp for the note (ISO 8601 format)

### `hubspot_note_update`

Update an existing note in HubSpot CRM by note ID. Provide any fields to update — only the fields you include will be changed.

Parameters:

- `note_id` (`string`, required): ID of the note to update
- `hs_note_body` (`string`, optional): Text content of the note
- `hs_timestamp` (`string`, optional): Date and time of the note
- `hubspot_owner_id` (`string`, optional): ID of the HubSpot owner associated with the note

### `hubspot_notes_search`

Search HubSpot note engagements using filters and full-text search. Returns logged notes with their content and timestamps.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of properties to include in the response
- `query` (`string`, optional): Full-text search term across note content

### `hubspot_object_properties_list`

Retrieve all properties defined for a HubSpot CRM object type (contacts, companies, deals, tickets, etc.).

Parameters:

- `object_type` (`string`, required): The CRM object type to list properties for
- `archived` (`string`, optional): Include archived properties in the response

### `hubspot_owners_list`

List all HubSpot owners (users). Use this to find owner IDs for assigning contacts, deals, tickets, and other CRM records.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results
- `email` (`string`, optional): Filter owners by email address
- `limit` (`number`, optional): Number of owners to return per page (max 500)

### `hubspot_pipeline_audit_log_get`

Retrieve the audit log for a specific pipeline showing all changes made over time.

Parameters:

- `object_type` (`string`, required): Object type.
- `pipeline_id` (`string`, required): Pipeline ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_pipeline_create`

Create a new pipeline for the specified object type.

Parameters:

- `display_order` (`integer`, required): Display order.
- `label` (`string`, required): Pipeline label.
- `object_type` (`string`, required): Object type.
- `stages` (`array`, required): Pipeline stages.
- `pipeline_id` (`string`, optional): Optional pipeline identifier.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_pipeline_delete`

Permanently delete a pipeline for the specified object type.

Parameters:

- `object_type` (`string`, required): Object type.
- `pipeline_id` (`string`, required): Pipeline ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version
- `validate_references` (`boolean`, optional): Validate references.

### `hubspot_pipeline_stage_create`

Create a new stage within an existing pipeline.

Parameters:

- `display_order` (`integer`, required): Display order.
- `label` (`string`, required): Stage label.
- `metadata` (`object`, required): Stage metadata.
- `object_type` (`string`, required): Object type.
- `pipeline_id` (`string`, required): Pipeline ID.
- `schema_version` (`string`, optional): Schema version
- `stage_id` (`string`, optional): Optional custom stage identifier.
- `tool_version` (`string`, optional): Tool version

### `hubspot_pipeline_stage_delete`

Permanently delete a stage from a pipeline.

Parameters:

- `object_type` (`string`, required): Object type.
- `pipeline_id` (`string`, required): Pipeline ID.
- `stage_id` (`string`, required): Stage ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_pipeline_stage_update`

Update an existing stage within a pipeline.

Parameters:

- `display_order` (`integer`, required): Display order.
- `label` (`string`, required): Stage label.
- `metadata` (`object`, required): Stage metadata.
- `object_type` (`string`, required): Object type.
- `pipeline_id` (`string`, required): Pipeline ID.
- `stage_id` (`string`, required): Stage ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_pipeline_update`

Update an existing pipeline for the specified object type.

Parameters:

- `display_order` (`integer`, required): Display order.
- `label` (`string`, required): Pipeline label.
- `object_type` (`string`, required): Object type.
- `pipeline_id` (`string`, required): Pipeline ID.
- `stages` (`array`, required): Pipeline stages to replace.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version
- `validate_deal_stage_usages` (`boolean`, optional): Validate deal stage usages before delete.
- `validate_references` (`boolean`, optional): Validate references before delete.

### `hubspot_product_create`

Create a new product in the HubSpot product library.

Parameters:

- `name` (`string`, required): Name of the product
- `description` (`string`, optional): Description of the product
- `hs_sku` (`string`, optional): Stock keeping unit (SKU) identifier for the product
- `price` (`string`, optional): Price of the product

### `hubspot_product_get`

Retrieve a single product by its ID.

Parameters:

- `product_id` (`string`, required): Product ID.
- `archived` (`boolean`, optional): Return archived.
- `associations` (`string`, optional): Associations.
- `id_property` (`string`, optional): ID property name.
- `properties` (`string`, optional): Properties.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_product_update`

Update an existing product in the HubSpot product library by its product ID.

Parameters:

- `product_id` (`string`, required): The ID of the product to update.
- `description` (`string`, optional): New description of the product.
- `hs_cost_of_goods_sold` (`string`, optional): Cost of goods sold for the product.
- `hs_recurring_billing_period` (`string`, optional): Billing period for recurring products (e.g. P1M for monthly, P1Y for annual).
- `hs_sku` (`string`, optional): New stock keeping unit (SKU) identifier for the product.
- `idProperty` (`string`, optional): The name of a unique property to use as the identifier instead of the default productId.
- `name` (`string`, optional): New name of the product.
- `price` (`string`, optional): New unit price of the product.
- `properties` (`string`, optional): Arbitrary key-value pairs of any HubSpot product properties to update.

### `hubspot_products_batch_archive`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to archive. Each item has an 'id' field.

### `hubspot_products_batch_read`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to read. Each item has an 'id' field.
- `properties` (`string`, optional): JSON array of property names to return. Omit to get default properties.

### `hubspot_products_list`

Retrieve a list of products from the HubSpot product library.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results
- `limit` (`number`, optional): Number of products to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of product properties to include in response

### `hubspot_products_search`

Search product records using filters, sorting, and pagination.

Parameters:

- `after` (`string`, required): Pagination cursor.
- `filter_groups` (`array`, required): Filter groups.
- `limit` (`integer`, required): Page size.
- `properties` (`array`, required): Properties to return.
- `sorts` (`array`, required): Sort order.
- `query` (`string`, optional): Search query string.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_property_create`

Create a custom property on any HubSpot CRM object type (contacts, companies, deals, tickets, etc.).

Parameters:

- `field_type` (`string`, required): UI field type for the property.
- `group_name` (`string`, required): Property group this field belongs to. Get groups from HubSpot or use defaults like contactinformation.
- `label` (`string`, required): Display label shown in HubSpot UI.
- `object_type` (`string`, required): CRM object type to create the property on.
- `property_name` (`string`, required): Internal name for the property (lowercase, underscores, no spaces).
- `property_type` (`string`, required): Data type of the property.
- `calculation_formula` (`string`, optional): Formula for calculated properties. Only applicable when fieldType=calculation_equation.
- `currency_property_name` (`string`, optional): Property name used to determine the currency for currency-type properties.
- `data_sensitivity` (`string`, optional): Sensitivity level of the property data.
- `description` (`string`, optional): Optional description of the property.
- `display_order` (`integer`, optional): Display order for the property. Lower positive integers appear first; -1 places after all positive values.
- `external_options` (`boolean`, optional): Set to true for enumeration properties that pull options from HubSpot users. Use with referencedObjectType='OWNER'.
- `form_field` (`boolean`, optional): Whether the property can be used in HubSpot forms.
- `hasUniqueValue` (`boolean`, optional): Set to true to enforce unique values across all records.
- `hidden` (`boolean`, optional): Set to true to hide the property in HubSpot UI.
- `number_display_hint` (`string`, optional): Controls how number values are formatted in HubSpot.
- `options` (`array`, optional): Options for enumeration/select fields.
- `referenced_object_type` (`string`, optional): Set to 'OWNER' when externalOptions is true to pull option values from HubSpot users.
- `show_currency_symbol` (`boolean`, optional): Whether to display the currency symbol alongside the property value.
- `text_display_hint` (`string`, optional): Controls the display format for text properties.

### `hubspot_property_delete`

Permanently delete a custom property from a HubSpot CRM object. Built-in HubSpot properties cannot be deleted.

Parameters:

- `object_type` (`string`, required): CRM object type the property belongs to.
- `property_name` (`string`, required): Internal name of the custom property to delete.

### `hubspot_property_group_create`

Create a new property group for the specified object type.

Parameters:

- `label` (`string`, required): Display label.
- `name` (`string`, required): Group name.
- `object_type` (`string`, required): Object type.
- `display_order` (`integer`, optional): Display order.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_property_group_delete`

Permanently delete a property group for the specified object type.

Parameters:

- `group_name` (`string`, required): Group name.
- `object_type` (`string`, required): Object type.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_property_group_update`

Update an existing property group for the specified object type.

Parameters:

- `group_name` (`string`, required): Group name.
- `object_type` (`string`, required): Object type.
- `display_order` (`integer`, optional): Display order.
- `label` (`string`, optional): Display label.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_property_groups_list`

Retrieve all property groups for the specified object type.

Parameters:

- `object_type` (`string`, required): Object type.
- `locale` (`string`, optional): Locale for the response.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_property_update`

Update an existing custom property on a HubSpot CRM object. Only provided fields are modified.

Parameters:

- `object_type` (`string`, required): CRM object type the property belongs to.
- `property_name` (`string`, required): Internal name of the property to update.
- `calculation_formula` (`string`, optional): Updated formula for calculated properties.
- `currency_property_name` (`string`, optional): Updated property name used to determine currency for currency-type properties.
- `description` (`string`, optional): New description for the property.
- `display_order` (`integer`, optional): Display order for the property.
- `field_type` (`string`, optional): Updated UI field type.
- `form_field` (`boolean`, optional): Whether the property can be used in HubSpot forms.
- `group_name` (`string`, optional): The property group to move this property to.
- `hidden` (`boolean`, optional): Set to true to hide the property in HubSpot UI.
- `label` (`string`, optional): New display label for the property.
- `number_display_hint` (`string`, optional): Updated display format for number properties.
- `options` (`array`, optional): Updated options for enumeration fields.
- `property_type` (`string`, optional): Updated data type of the property.
- `show_currency_symbol` (`boolean`, optional): Whether to display the currency symbol alongside the value.
- `text_display_hint` (`string`, optional): Updated display format for text properties.

### `hubspot_property_validation_rule_get`

Retrieve the validation rule for a specific property on a given object type.

Parameters:

- `object_type_id` (`string`, required): Object type ID.
- `property_name` (`string`, required): Property name.
- `rule_type` (`string`, required): Rule type.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_property_validation_rule_set`

Create or update the validation rule for a specific property on a given object type.

Parameters:

- `object_type_id` (`string`, required): Object type ID.
- `property_name` (`string`, required): Property name.
- `rule_arguments` (`string`, required): Arguments defining the constraints for the validation rule.
- `rule_type` (`string`, required): Rule type.
- `schema_version` (`string`, optional): Schema version
- `should_apply_normalization` (`boolean`, optional): Whether normalization should be applied to the value.
- `tool_version` (`string`, optional): Tool version

### `hubspot_quote_create`

Create a new quote in HubSpot. Requires a title and language. Optionally associate with a deal and set expiration date, currency, status, and additional properties. Returns the created quote ID.

Parameters:

- `hs_expiration_date` (`string`, required): Expiration date of the quote (YYYY-MM-DD format)
- `hs_language` (`string`, required): Language of the quote (ISO 639-1 code, e.g. en, de, fr, es)
- `hs_title` (`string`, required): Title of the quote
- `deal_id` (`string`, optional): ID of the deal to associate this quote with
- `hs_currency` (`string`, optional): Currency code for the quote (e.g. USD, EUR).
- `hs_sender_company_name` (`string`, optional): Sender company name shown on the quote.
- `hs_status` (`string`, optional): Status of the quote (DRAFT, PENDING_APPROVAL, APPROVED, REJECTED)
- `properties` (`object`, optional): Additional HubSpot quote properties as a JSON object.

### `hubspot_quote_get`

Retrieve a specific HubSpot quote by its ID.

Parameters:

- `quote_id` (`string`, required): ID of the quote to retrieve
- `properties` (`string`, optional): Comma-separated list of quote properties to include in response

### `hubspot_quote_update`

Update an existing quote in HubSpot by its quote ID. Use this to change the title, status, expiration date, or currency of a quote.

Parameters:

- `quote_id` (`string`, required): The ID of the quote to update.
- `hs_currency` (`string`, optional): Currency code for the quote (ISO 4217).
- `hs_expiration_date` (`string`, optional): New expiration date for the quote (YYYY-MM-DD).
- `hs_language` (`string`, optional): Language of the quote (ISO 639-1 code).
- `hs_status` (`string`, optional): New status of the quote.
- `hs_title` (`string`, optional): New title of the quote.
- `idProperty` (`string`, optional): The name of a unique property to use as the identifier instead of the default quoteId.
- `properties` (`string`, optional): Arbitrary key-value pairs of any HubSpot quote properties to update.

### `hubspot_quotes_list`

Retrieve a paginated list of quote records.

Parameters:

- `after` (`string`, optional): Pagination cursor.
- `archived` (`boolean`, optional): Return archived.
- `associations` (`string`, optional): Associations to return.
- `limit` (`integer`, optional): Page size.
- `properties` (`string`, optional): Properties.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_quotes_search`

Search quote records using filters, sorting, and pagination.

Parameters:

- `after` (`string`, required): Pagination cursor.
- `filter_groups` (`array`, required): Filter groups.
- `limit` (`integer`, required): Page size.
- `properties` (`array`, required): Properties to return.
- `sorts` (`array`, required): Sort order.
- `query` (`string`, optional): Search query string.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_record_associations_get`

Retrieve all associations for a specific CRM record.

Parameters:

- `object_id` (`string`, required): Object ID.
- `object_type` (`string`, required): Object type.
- `to_object_type` (`string`, required): To object type.
- `after` (`string`, optional): Pagination cursor.
- `limit` (`integer`, optional): Page size.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_record_list_memberships_get`

Retrieve all lists that a given CRM record is a member of, identified by object type and record ID.

Parameters:

- `object_type_id` (`string`, required): The object type ID of the record.
- `record_id` (`string`, required): The ID of the CRM record.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution
- `tool_version` (`string`, optional): Optional tool version to use for execution

### `hubspot_record_with_history_get`

Retrieve a CRM record including full property change history for specified properties.

Parameters:

- `object_id` (`string`, required): Object ID.
- `object_type` (`string`, required): Object type.
- `properties_with_history` (`string`, required): Properties with history.
- `archived` (`boolean`, optional): Return archived.
- `associations` (`string`, optional): Associations.
- `id_property` (`string`, optional): ID property.
- `properties` (`string`, optional): Additional properties.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_schema_association_create`

Create a new association definition between a custom object schema and another object type.

Parameters:

- `from_object_type_id` (`string`, required): From object type ID.
- `name` (`string`, required): Association name.
- `object_type_id` (`string`, required): Object type ID.
- `to_object_type_id` (`string`, required): To object type ID.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_schema_create`

Create a new custom CRM object schema (type definition) in HubSpot.

Parameters:

- `associated_objects` (`array`, required): Associated object types.
- `labels` (`object`, required): Display labels.
- `name` (`string`, required): Schema name.
- `properties` (`array`, required): Property definitions.
- `required_properties` (`array`, required): Required property names.
- `description` (`string`, optional): Schema description.
- `primary_display_property` (`string`, optional): Primary display property.
- `schema_version` (`string`, optional): Schema version
- `searchable_properties` (`array`, optional): Searchable properties.
- `secondary_display_properties` (`array`, optional): Secondary display properties.
- `tool_version` (`string`, optional): Tool version

### `hubspot_schema_delete`

Delete a custom CRM object schema. Set purge=true to permanently delete including all records.

Parameters:

- `object_type` (`string`, required): Object type.
- `archived` (`boolean`, optional): Purge schema.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_schema_update`

Update an existing custom CRM object schema definition.

Parameters:

- `object_type` (`string`, required): Object type.
- `allows_sensitive_properties` (`boolean`, optional): Allows sensitive properties.
- `clear_description` (`boolean`, optional): Clear description.
- `description` (`string`, optional): Description.
- `labels` (`object`, optional): Display labels.
- `primary_display_property` (`string`, optional): Primary display property.
- `required_properties` (`array`, optional): Required properties.
- `restorable` (`boolean`, optional): Restorable.
- `schema_version` (`string`, optional): Schema version
- `searchable_properties` (`array`, optional): Searchable properties.
- `secondary_display_properties` (`array`, optional): Secondary display properties.
- `tool_version` (`string`, optional): Tool version

### `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.

Parameters:

- `archived` (`string`, optional): Include archived schemas in the response

### `hubspot_sequence_enroll`

Enroll a contact into a HubSpot sequence. Requires the sequence ID, contact ID, sender email, and the enrolling user's ID.

Parameters:

- `contact_id` (`string`, required): The ID of the contact to enroll in the sequence.
- `sender_email` (`string`, required): The email address of the sender enrolling the contact.
- `sequence_id` (`string`, required): The ID of the sequence to enroll the contact in.
- `user_id` (`string`, required): The ID of the HubSpot user enrolling the contact.
- `sender_alias_address` (`string`, optional): An alias email address used by the sender when enrolling the contact.

### `hubspot_sequence_get`

Retrieve details of a specific sequence by ID, including its steps, status, and settings.

Parameters:

- `sequence_id` (`string`, required): The ID of the sequence to retrieve.
- `user_id` (`string`, required): The ID of the HubSpot user associated with the sequence.

### `hubspot_sequences_list`

List all sequences in HubSpot. Returns a paginated list of sequences with their IDs, names, and status.

Parameters:

- `user_id` (`string`, required): The ID of the HubSpot user whose sequences to list.
- `after` (`string`, optional): Cursor token for the next page of results.
- `limit` (`integer`, optional): Maximum number of sequences to return per page.
- `name` (`string`, optional): Filter sequences by name.

### `hubspot_subscription_definitions_list`

Retrieve all email subscription type definitions for the portal.

Parameters:

- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_subscription_status_get`

Get the email subscription status for a contact by their email address.

Parameters:

- `email_address` (`string`, required): Contact email address.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `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.

Parameters:

- `task_id` (`string`, required): ID of the task to update
- `hs_task_body` (`string`, optional): Updated notes for the task
- `hs_task_status` (`string`, optional): New status to set for the task

### `hubspot_task_create`

Create a new task in HubSpot CRM. Tasks can be assigned to owners and associated with contacts, companies, or deals.

Parameters:

- `hs_task_subject` (`string`, required): Subject or title of the task
- `hs_timestamp` (`string`, required): Due date and time for the task (ISO 8601 format)
- `hs_task_body` (`string`, optional): Notes or description for the task
- `hs_task_priority` (`string`, optional): Priority level of the task
- `hs_task_status` (`string`, optional): Status of the task
- `hs_task_type` (`string`, optional): Type of task

### `hubspot_task_get`

Retrieve a single task by its ID.

Parameters:

- `task_id` (`string`, required): Task ID.
- `archived` (`boolean`, optional): Return archived record.
- `associations` (`string`, optional): Associations to return.
- `id_property` (`string`, optional): ID property name.
- `properties` (`string`, optional): Properties to return.
- `properties_with_history` (`string`, optional): Properties with history.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_task_update`

Update an existing task record in HubSpot CRM.

Parameters:

- `task_id` (`string`, required): Task ID.
- `hs_task_body` (`string`, optional): Task notes.
- `hs_task_priority` (`string`, optional): Task priority.
- `hs_task_status` (`string`, optional): Task status.
- `hs_task_subject` (`string`, optional): Task subject.
- `hs_task_type` (`string`, optional): Task type.
- `hs_timestamp` (`string`, optional): Due date.
- `properties` (`object`, optional): Additional properties.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_tasks_search`

Search HubSpot tasks using filters and full-text search. Returns tasks with their subject, status, due date, and priority.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of properties to include in the response
- `query` (`string`, optional): Full-text search term across task properties

### `hubspot_teams_list`

Retrieve all teams in the HubSpot account.

Parameters:

- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_thread_get`

Retrieve a specific conversation thread by its ID.

Parameters:

- `thread_id` (`string`, required): Thread ID.
- `archived` (`boolean`, optional): Return archived thread.
- `property` (`string`, optional): Specific property to return.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_thread_message_send`

Send a new message to a conversation thread. Option 1 (MESSAGE): requires senderActorId, channelId, channelAccountId, recipients. Option 2 (COMMENT): only requires type, text, and attachments.

Parameters:

- `text` (`string`, required): Message text.
- `thread_id` (`string`, required): Thread ID.
- `type` (`string`, required): Message type.
- `attachments` (`array`, optional): Message attachments.
- `channel_account_id` (`string`, optional): Channel account ID.
- `channel_id` (`string`, optional): Channel ID.
- `recipients` (`array`, optional): Message recipients.
- `rich_text` (`string`, optional): Rich text content.
- `schema_version` (`string`, optional): Schema version
- `sender_actor_id` (`string`, optional): Sender actor ID.
- `subject` (`string`, optional): Message subject.
- `tool_version` (`string`, optional): Tool version

### `hubspot_thread_messages_get`

Retrieve all messages in a specific conversation thread.

Parameters:

- `thread_id` (`string`, required): Thread ID.
- `after` (`string`, optional): Pagination cursor.
- `archived` (`boolean`, optional): Return archived messages only.
- `limit` (`integer`, optional): Page size.
- `property` (`string`, optional): Specific property to return.
- `schema_version` (`string`, optional): Schema version
- `sort` (`string`, optional): Sort parameters.
- `tool_version` (`string`, optional): Tool version

### `hubspot_thread_update`

Update a conversation thread status, assignment, or inbox.

Parameters:

- `thread_id` (`string`, required): Thread ID to update.
- `archived` (`boolean`, optional): Archive or restore thread.
- `archived_query` (`boolean`, optional): Filter archived threads.
- `schema_version` (`string`, optional): Schema version
- `status` (`string`, optional): Thread status.
- `tool_version` (`string`, optional): Tool version

### `hubspot_threads_list`

Retrieve a paginated list of conversation threads, optionally filtered by inbox or status.

Parameters:

- `after` (`string`, optional): Pagination cursor.
- `archived` (`boolean`, optional): Return archived threads only.
- `associated_contact_id` (`integer`, optional): Filter by associated contact ID.
- `associated_ticket_id` (`integer`, optional): Filter by associated ticket ID.
- `inbox_id` (`string`, optional): Inbox ID.
- `latest_message_after` (`string`, optional): Filter by latest message timestamp.
- `limit` (`integer`, optional): Page size.
- `property` (`string`, optional): Property to return.
- `schema_version` (`string`, optional): Schema version
- `sort` (`string`, optional): Sort parameters.
- `status` (`string`, optional): Thread status.
- `thread_status` (`string`, optional): Filter by thread status.
- `tool_version` (`string`, optional): Tool version

### `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.

Parameters:

- `hs_pipeline_stage` (`string`, required): Pipeline stage ID for the ticket
- `subject` (`string`, required): Subject of the ticket
- `content` (`string`, optional): Detailed description of the support issue
- `hs_pipeline` (`string`, optional): Pipeline ID for the ticket (defaults to '0' for the default pipeline)
- `hs_ticket_priority` (`string`, optional): Priority level of the ticket

### `hubspot_ticket_get`

Retrieve details of a specific HubSpot support ticket by ticket ID.

Parameters:

- `ticket_id` (`string`, required): ID of the ticket to retrieve
- `properties` (`string`, optional): Comma-separated list of properties to include in the response

### `hubspot_ticket_update`

Update an existing HubSpot support ticket by ticket ID. Provide any fields to update.

Parameters:

- `ticket_id` (`string`, required): ID of the ticket to update
- `content` (`string`, optional): Updated description of the support issue
- `hs_pipeline` (`string`, optional): Updated pipeline ID for the ticket
- `hs_pipeline_stage` (`string`, optional): Updated pipeline stage ID for the ticket
- `hs_ticket_priority` (`string`, optional): Updated priority level of the ticket
- `subject` (`string`, optional): Updated subject of the ticket

### `hubspot_tickets_batch_archive`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to archive. Each item has an 'id' field.

### `hubspot_tickets_batch_create`

Create one or more tickets in HubSpot using the batch API. Pass a list of records — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to create in HubSpot batch format.

### `hubspot_tickets_batch_read`

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

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to read. Each item has an 'id' field.
- `properties` (`string`, optional): JSON array of property names to return. Omit to get default properties.

### `hubspot_tickets_batch_update`

Update one or more tickets in HubSpot using the batch API. Pass a list of records with IDs — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to update in HubSpot batch format.

### `hubspot_tickets_batch_upsert`

Upsert one or more tickets in HubSpot using the batch API. Pass a list of records — up to 100 per call.

Parameters:

- `inputs` (`string`, required): JSON array of objects to upsert in HubSpot batch format.

### `hubspot_tickets_search`

Search HubSpot support tickets using filters and full-text search. Returns matching tickets with their properties.

Parameters:

- `after` (`string`, optional): Pagination offset to get results starting from a specific position
- `filterGroups` (`string`, optional): JSON string containing filter groups for advanced filtering
- `limit` (`number`, optional): Number of results to return per page (max 100)
- `properties` (`string`, optional): Comma-separated list of properties to include in the response
- `query` (`string`, optional): Full-text search term across ticket properties

### `hubspot_transactional_email_send`

Send a transactional (single) email using a HubSpot email template.

Parameters:

- `email_id` (`integer`, required): Email template ID.
- `message` (`object`, required): Email delivery details.
- `contact_properties` (`object`, optional): Contact property values to set.
- `custom_properties` (`object`, optional): Custom property values for template.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_user_get`

Retrieve details of a specific user by their user ID.

Parameters:

- `user_id` (`string`, required): User ID.
- `id_property` (`string`, optional): How to interpret the userId — as a user ID or email address.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_users_list`

Retrieve a list of all users in the HubSpot account.

Parameters:

- `after` (`string`, optional): Pagination cursor.
- `limit` (`integer`, optional): Page size.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_workflow_create`

Create a new automation workflow in HubSpot. Use type CONTACT_FLOW for contact-based workflows. The workflow starts disabled by default unless isEnabled is set to true.

Parameters:

- `name` (`string`, required): Display name of the workflow.
- `objectTypeId` (`string`, required): Object type the workflow operates on.
- `type` (`string`, required): Workflow type. Use CONTACT_FLOW for contact-based workflows.
- `actions` (`string`, optional): Array of action steps in the workflow. Each action type can be STATIC_BRANCH, LIST_BRANCH, AB_TEST_BRANCH, CUSTOM_CODE, WEBHOOK, or SINGLE_CONNECTION.
- `blockedDates` (`string`, optional): Dates on which workflow actions are suppressed.
- `canEnrollFromSalesforce` (`boolean`, optional): Whether contacts can be enrolled from Salesforce. Only applicable for CONTACT_FLOW type.
- `customProperties` (`string`, optional): Custom metadata key-value pairs attached to the workflow.
- `dataSources` (`string`, optional): Data sources the workflow can reference, such as associated objects.
- `description` (`string`, optional): Optional description of the workflow's purpose.
- `enrollmentCriteria` (`string`, optional): Criteria for enrolling contacts into the workflow.
- `enrollmentSchedule` (`string`, optional): Schedule for re-enrollment checks.
- `eventAnchor` (`string`, optional): The anchor point for date-based workflows, referencing a contact property or a static date.
- `flowType` (`string`, optional): Flow sub-type. Use WORKFLOW for standard automation or ACTION_SET for action-only flows.
- `goalFilterBranch` (`string`, optional): Filter branch defining the goal criteria that unenrolls contacts when met. Only for CONTACT_FLOW.
- `isEnabled` (`boolean`, optional): Whether the workflow is active immediately after creation. Defaults to false.
- `startActionId` (`string`, optional): The ID of the first action to execute in the workflow.
- `suppressionFilterBranch` (`string`, optional): Filter branch defining contacts to exclude from enrollment. Only for PLATFORM_FLOW type.
- `suppressionListIds` (`string`, optional): Array of list IDs whose members are excluded from workflow enrollment.
- `timeWindows` (`string`, optional): Time windows that restrict when workflow actions can execute.
- `unEnrollmentSetting` (`string`, optional): Controls when and how contacts are unenrolled. Only for CONTACT_FLOW.
- `uuid` (`string`, optional): Optional stable identifier for the workflow, preserved across revisions.

### `hubspot_workflow_delete`

Permanently delete a HubSpot workflow by its workflow ID. This action cannot be undone.

Parameters:

- `flow_id` (`string`, required): The ID of the workflow to delete.

### `hubspot_workflow_email_campaigns_get`

Retrieve email campaigns associated with one or more HubSpot workflows. Filter by flow IDs to see which email campaigns a specific workflow sends.

Parameters:

- `flowId` (`string`, required): Comma-separated list of flow IDs to filter email campaigns by specific workflows.
- `after` (`string`, optional): Pagination cursor from the previous response to fetch the next page.
- `before` (`string`, optional): Pagination cursor from the previous response to fetch the previous page.
- `limit` (`integer`, optional): Maximum number of results to return per page.

### `hubspot_workflow_enroll`

Enroll a contact into a HubSpot workflow by workflow ID and the contact's email address.

Parameters:

- `email` (`string`, required): The email address of the contact to enroll in the workflow.
- `workflow_id` (`string`, required): The ID of the workflow to enroll the contact into.

### `hubspot_workflow_get`

Retrieve details of a specific automation workflow by flow ID, including its trigger, actions, and enrollment criteria.

Parameters:

- `flow_id` (`string`, required): The ID of the workflow to retrieve.

### `hubspot_workflow_get_v3`

Retrieve metadata for a specific v3 workflow by its v3 workflow ID, including name, type, enabled status, and optionally validation errors and statistics.

Parameters:

- `workflow_id` (`string`, required): The ID of the v3 workflow to retrieve.
- `errors` (`boolean`, optional): Whether to include validation errors and warnings in the response.
- `stats` (`boolean`, optional): Whether to include workflow statistics in the response.

### `hubspot_workflow_unenroll`

Remove a contact from a HubSpot workflow by workflow ID and the contact's email address.

Parameters:

- `email` (`string`, required): The email address of the contact to unenroll from the workflow.
- `workflow_id` (`string`, required): The ID of the workflow to unenroll the contact from.

### `hubspot_workflow_update`

Replace a HubSpot workflow's full definition by flow ID. Requires the current revisionId for optimistic locking — fetch it first with Get Workflow. Provide all required fields (actions, blockedDates, customProperties, timeWindows, type, isEnabled) plus the revisionId.

Parameters:

- `flow_id` (`string`, required): The ID of the workflow to update.
- `isEnabled` (`boolean`, required): Whether the workflow should be active after the update.
- `revisionId` (`string`, required): The current revision ID of the workflow, used for optimistic locking to prevent concurrent overwrites.
- `type` (`string`, required): Workflow type. Must match the existing workflow type.
- `actions` (`string`, optional): Array of action steps in the workflow. Replaces the existing actions. Each action type can be STATIC_BRANCH, LIST_BRANCH, AB_TEST_BRANCH, CUSTOM_CODE, WEBHOOK, or SINGLE_CONNECTION.
- `blockedDates` (`string`, optional): Array of date ranges during which the workflow will not send actions.
- `canEnrollFromSalesforce` (`boolean`, optional): Whether contacts can be enrolled from Salesforce. Only applicable for CONTACT_FLOW type.
- `customProperties` (`string`, optional): Custom metadata key-value pairs attached to the workflow.
- `description` (`string`, optional): Updated description of the workflow's purpose.
- `enrollmentCriteria` (`string`, optional): How contacts are enrolled into the workflow.
- `enrollmentSchedule` (`string`, optional): Schedule for re-enrollment checks.
- `goalFilterBranch` (`string`, optional): Filter branch defining the goal criteria that unenrolls contacts when met. Only for CONTACT_FLOW workflows.
- `name` (`string`, optional): New display name for the workflow.
- `startActionId` (`string`, optional): The ID of the first action to execute in the workflow.
- `suppressionFilterBranch` (`string`, optional): Filter branch defining contacts to exclude from enrollment. Only for PLATFORM_FLOW workflows.
- `suppressionListIds` (`string`, optional): Array of list IDs whose members are excluded from workflow enrollment.
- `timeWindows` (`string`, optional): Time windows that restrict when workflow actions can execute.
- `unEnrollmentSetting` (`string`, optional): Controls when and how contacts are unenrolled from the workflow. Only for CONTACT_FLOW workflows.
- `uuid` (`string`, optional): Optional stable identifier for the workflow, useful for tracking across revisions.

### `hubspot_workflows_list`

List all automation workflows in HubSpot. Returns workflow IDs, names, types, and enabled status.

Parameters:

- `after` (`string`, optional): Cursor token for the next page of results.
- `limit` (`integer`, optional): Maximum number of workflows to return per page.

### `hubspot_workflows_list_v3`

List all v3 (v2) automation workflows in HubSpot. Returns the workflow IDs required by the Enroll in Workflow and Unenroll from Workflow tools. Use this instead of List Workflows when you need to enroll or unenroll a contact.


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
