> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended**:
> ```bash
> npx @scalekit-inc/cli setup
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for 40+ agents.
> Features: full-stack-auth, agent-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_all_files_list`

List files stored in the HubSpot file manager, with pagination and date-range filtering. Requires the 'files' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `parent_folder_id` (`string`, optional): Restrict results to files inside a specific folder.
- `properties` (`string`, optional): Comma-separated list of additional file properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`string`, optional): Property to sort results by; prefix with '-' for descending order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

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

Remove all associations between two specific HubSpot CRM records.

Parameters:

- `object_id` (`string`, required): The HubSpot ID of the source record.
- `object_type` (`string`, required): The CRM object type of the source record.
- `to_object_id` (`string`, required): The HubSpot ID of the target record.
- `to_object_type` (`string`, required): The CRM object type of the target record.

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

Remove specific association labels between many pairs of CRM records in a single batch call, without removing the underlying association.

Parameters:

- `from_object_type` (`string`, required): The CRM object type of the source records.
- `inputs` (`string`, required): JSON array of {from, to, types} objects identifying which labeled associations to remove. Pass as a JSON array via the SDK, not as a string.
- `to_object_type` (`string`, required): The CRM object type of the target records.

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

Configure a maximum number of associations allowed between two CRM object types.

Parameters:

- `from_object_type` (`string`, required): The source CRM object type.
- `inputs` (`string`, required): JSON array of limit configurations, each with associationTypeId, maxToObjectIds, and categoryId. Pass as a JSON array via the SDK, not as a string.
- `to_object_type` (`string`, required): The target CRM object type.

### `hubspot_association_limits_batch_purge`

Remove previously configured association limits between two CRM object types.

Parameters:

- `from_object_type` (`string`, required): The source CRM object type.
- `inputs` (`string`, required): JSON array of {associationTypeId, categoryId} objects identifying which limits to remove. Pass as a JSON array via the SDK, not as a string.
- `to_object_type` (`string`, required): The target CRM object type.

### `hubspot_association_limits_batch_update`

Update previously configured association limits between two CRM object types.

Parameters:

- `from_object_type` (`string`, required): The source CRM object type.
- `inputs` (`string`, required): JSON array of updated limit configurations, each with associationTypeId, maxToObjectIds, and categoryId. Pass as a JSON array via the SDK, not as a string.
- `to_object_type` (`string`, required): The target CRM object type.

### `hubspot_association_limits_get`

Retrieve the configured association limits between two specific CRM object types.

Parameters:

- `from_object_type` (`string`, required): The source CRM object type.
- `to_object_type` (`string`, required): The target CRM object type.

### `hubspot_association_limits_list`

Retrieve all configured association limits across every object type pair in the account.

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

Create default (unlabeled) associations between many pairs of CRM records in a single batch call.

Parameters:

- `from_object_type` (`string`, required): The CRM object type of the source records.
- `inputs` (`string`, required): JSON array of {"from":{"id":"<id>"},"to":{"id":"<id>"}} pairs to associate. Pass as a JSON array via the SDK, not as a string.
- `to_object_type` (`string`, required): The CRM object type of the target records.

### `hubspot_associations_batch_read`

Retrieve associations (including labels) for many CRM records at once in a single batch call, given their IDs.

Parameters:

- `from_object_type` (`string`, required): The CRM object type of the source records.
- `inputs` (`string`, required): JSON array of {"id": "<record_id>"} objects to fetch associations for. Pass as a JSON array via the SDK, not as a string.
- `to_object_type` (`string`, required): The CRM object type to fetch associations for.

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

Create a new blog author in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `full_name` (`string`, required): Display name of the blog author.
- `avatar` (`string`, optional): URL of the author's avatar image.
- `bio` (`string`, optional): Short biography of the blog author.
- `display_name` (`string`, optional): The full name of the blog author as displayed publicly (may differ from the internal full_name).
- `email` (`string`, optional): Email address of the blog author.
- `facebook` (`string`, optional): Facebook profile URL for the author.
- `language` (`string`, optional): ISO 639 language code for this author record.
- `linkedin` (`string`, optional): LinkedIn profile URL for the author.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL path segment for the author's profile page.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `twitter` (`string`, optional): Twitter/X handle or profile URL for the author.
- `website` (`string`, optional): Personal or company website URL for the author.

### `hubspot_blog_author_delete`

Permanently delete a blog author from HubSpot CMS by author ID. Requires the 'content' scope.

Parameters:

- `author_id` (`string`, required): ID of the blog author to delete.
- `archived` (`boolean`, optional): If true, request a permanent hard-delete of an already-archived author instead of a soft-delete. HubSpot currently rejects hard deletes for this resource family ('Hard deletes of objects are not supported'), so leave this false/unset for a normal delete.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_author_get`

Retrieve a single blog author from HubSpot CMS by author ID. Requires the 'content' scope.

Parameters:

- `author_id` (`string`, required): ID of the blog author to retrieve.
- `property` (`string`, optional): Comma-separated list of blog author properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_author_update`

Update an existing blog author in HubSpot CMS by author ID. Only provided fields are changed. Requires the 'content' scope.

Parameters:

- `author_id` (`string`, required): ID of the blog author to update.
- `avatar` (`string`, optional): URL of the author's avatar image.
- `bio` (`string`, optional): Short biography of the blog author.
- `display_name` (`string`, optional): The full name of the blog author as displayed publicly (may differ from the internal full_name).
- `email` (`string`, optional): Email address of the blog author.
- `facebook` (`string`, optional): Facebook profile URL for the author.
- `full_name` (`string`, optional): Display name of the blog author.
- `language` (`string`, optional): ISO 639 language code for this author record.
- `linkedin` (`string`, optional): LinkedIn profile URL for the author.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL path segment for the author's profile page.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `twitter` (`string`, optional): Twitter/X handle or profile URL for the author.
- `website` (`string`, optional): Personal or company website URL for the author.

### `hubspot_blog_authors_batch_archive`

Archive multiple blog authors in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of author IDs (strings) to archive, e.g. ["<author_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_authors_batch_create`

Create multiple blog authors in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item is a full blog author object, e.g. {"fullName": "...", "email": "..."}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_authors_batch_read`

Retrieve multiple blog authors by ID in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of author IDs (strings) to fetch, e.g. ["<author_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_authors_batch_update`

Update multiple blog authors in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item: {"id": "<author_id>", ...fields to update}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_authors_list`

List blog authors configured in HubSpot CMS. Supports pagination and sorting. Requires the 'content' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, include archived (soft-deleted) records alongside active ones (confirmed live: this does not exclude active records).
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_at` (`string`, optional): Return records created at exactly this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `property` (`string`, optional): Comma-separated list of blog author properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order. Multiple fields are applied in order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_at` (`string`, optional): Return records updated at exactly this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

### `hubspot_blog_post_archive`

Archive (soft-delete) a blog post in HubSpot CMS by post ID. Requires the 'content' scope.

Parameters:

- `post_id` (`string`, required): ID of the blog post to archive.
- `archived` (`boolean`, optional): If true, request a permanent hard-delete of an already-archived post instead of a soft-delete/archive. HubSpot currently rejects hard deletes for this resource family ('Hard deletes of objects are not supported'), so leave this false/unset for a normal archive.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_post_create`

Create a new blog post in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `content_group_id` (`string`, required): ID of the parent blog (content group) this post is published under.
- `name` (`string`, required): Title of the blog post.
- `additional_properties` (`object`, optional): Additional raw HubSpot blog post fields to merge into the request (e.g. widgets, layoutSections, archivedAt).
- `blog_author_id` (`string`, optional): ID of the blog author to attribute this post to.
- `campaign` (`string`, optional): HubSpot marketing campaign GUID to associate with this post.
- `featured_image` (`string`, optional): URL of the featured image.
- `featured_image_alt_text` (`string`, optional): Alt text for the featured image.
- `html_title` (`string`, optional): Browser tab / SEO title for the post.
- `language` (`string`, optional): ISO 639 language code for this post (used for multi-language variants).
- `link_rel_canonical_url` (`string`, optional): Canonical URL to use for this post's <link rel="canonical"> tag, overriding the default.
- `meta_description` (`string`, optional): SEO meta description for the post.
- `password` (`string`, optional): Password to protect the post with. Leave unset for no password protection.
- `post_body` (`string`, optional): HTML content of the blog post body.
- `post_summary` (`string`, optional): Short summary shown on blog listing pages.
- `publish_date` (`string`, optional): ISO 8601 datetime to schedule publishing.
- `publish_immediately` (`boolean`, optional): Whether to publish the post immediately rather than leaving it as a draft/scheduled.
- `rss_body` (`string`, optional): HTML content to use in the RSS feed for this post, if different from postBody.
- `rss_summary` (`string`, optional): Summary text to use in the RSS feed for this post, if different from postSummary.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL path segment for the post.
- `state` (`string`, optional): Current state of the post (e.g. DRAFT, PUBLISHED, SCHEDULED).
- `tag_ids` (`array`, optional): IDs of blog tags to associate with this post.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `use_featured_image` (`boolean`, optional): Whether to show a featured image on the post.

### `hubspot_blog_post_get`

Retrieve a single blog post from HubSpot CMS by its post ID. Requires the 'content' scope.

Parameters:

- `post_id` (`string`, required): ID of the blog post to retrieve.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `property` (`string`, optional): Comma-separated list of blog post properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_post_revision_get`

Retrieve a specific historical revision of a blog post by revision ID. Requires the 'content' scope.

Parameters:

- `post_id` (`string`, required): ID of the blog post.
- `revision_id` (`string`, required): ID of the specific revision to retrieve.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_post_revision_restore`

Restore a blog post to a previous revision. Requires the 'content' scope.

Parameters:

- `post_id` (`string`, required): ID of the blog post.
- `revision_id` (`string`, required): ID of the revision to restore.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_post_revisions_list`

List the revision history of a blog post in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `post_id` (`string`, required): ID of the blog post whose revisions to list.
- `after` (`string`, optional): Pagination cursor for the next page of results.
- `before` (`string`, optional): Pagination cursor for the previous page of results.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 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_blog_post_update`

Update an existing blog post in HubSpot CMS by post ID. Only provided fields are changed. Requires the 'content' scope.

Parameters:

- `post_id` (`string`, required): ID of the blog post to update.
- `additional_properties` (`object`, optional): Additional raw HubSpot blog post fields to merge into the request (e.g. widgets, layoutSections, archivedAt).
- `blog_author_id` (`string`, optional): ID of the blog author to attribute this post to.
- `campaign` (`string`, optional): HubSpot marketing campaign GUID to associate with this post.
- `content_group_id` (`string`, optional): ID of the parent blog (content group) this post is published under.
- `featured_image` (`string`, optional): URL of the featured image.
- `featured_image_alt_text` (`string`, optional): Alt text for the featured image.
- `html_title` (`string`, optional): Browser tab / SEO title for the post.
- `language` (`string`, optional): ISO 639 language code for this post (used for multi-language variants).
- `link_rel_canonical_url` (`string`, optional): Canonical URL to use for this post's <link rel="canonical"> tag, overriding the default.
- `meta_description` (`string`, optional): SEO meta description for the post.
- `name` (`string`, optional): Title of the blog post.
- `password` (`string`, optional): Password to protect the post with. Leave unset for no password protection.
- `post_body` (`string`, optional): HTML content of the blog post body.
- `post_summary` (`string`, optional): Short summary shown on blog listing pages.
- `publish_date` (`string`, optional): ISO 8601 datetime to schedule publishing.
- `publish_immediately` (`boolean`, optional): Whether to publish the post immediately rather than leaving it as a draft/scheduled.
- `rss_body` (`string`, optional): HTML content to use in the RSS feed for this post, if different from postBody.
- `rss_summary` (`string`, optional): Summary text to use in the RSS feed for this post, if different from postSummary.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL path segment for the post.
- `state` (`string`, optional): Current state of the post (e.g. DRAFT, PUBLISHED, SCHEDULED).
- `tag_ids` (`array`, optional): IDs of blog tags to associate with this post.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `use_featured_image` (`boolean`, optional): Whether to show a featured image on the post.

### `hubspot_blog_posts_batch_archive`

Archive multiple blog posts in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of post IDs (strings) to archive, e.g. ["<post_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_posts_batch_create`

Create multiple blog posts in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item is a full blog post object, e.g. {"name": "...", "contentGroupId": "...", "slug": "..."}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_posts_batch_read`

Retrieve multiple blog posts by ID in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of post IDs (strings) to fetch, e.g. ["<post_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_posts_batch_update`

Update multiple blog posts in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item: {"id": "<post_id>", ...fields to update}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_posts_list`

List blog posts in HubSpot CMS. Supports pagination, sorting, and archived/date-range filtering. Requires the 'content' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, include archived (soft-deleted) records alongside active ones (matches confirmed behavior on the sibling authors-list endpoint; this is not an exclusive filter).
- `content_group_id` (`string`, optional): Filter to posts belonging to a specific blog.
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_at` (`string`, optional): Return records created at exactly this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `property` (`string`, optional): Comma-separated list of blog post properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order. Multiple fields are applied in order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_at` (`string`, optional): Return records updated at exactly this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

### `hubspot_blog_settings_get`

List blogs configured in the HubSpot account along with their settings (name, slug, language, description, access rules). Supports pagination, sorting, and archived/date-range filtering. Requires the 'content' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, include archived blogs alongside active ones (matches confirmed behavior on the sibling authors-list endpoint; this is not an exclusive filter).
- `created_after` (`string`, optional): Return blogs created on or after this ISO 8601 datetime.
- `created_at` (`string`, optional): Return blogs created at exactly this ISO 8601 datetime.
- `created_before` (`string`, optional): Return blogs created on or before this ISO 8601 datetime.
- `limit` (`integer`, optional): Maximum number of results to return per page (default 100).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return blogs updated on or after this ISO 8601 datetime.
- `updated_at` (`string`, optional): Return blogs updated at exactly this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return blogs updated on or before this ISO 8601 datetime.

### `hubspot_blog_tag_create`

Create a new blog tag in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `name` (`string`, required): Name of the blog tag.
- `language` (`string`, optional): ISO 639 language code for this tag. Omit to make the tag available for all languages.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL-friendly identifier for the tag.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `translated_from_id` (`integer`, optional): ID of the primary tag this tag was translated from, for multi-language tag groups.

### `hubspot_blog_tag_delete`

Permanently delete a blog tag from HubSpot CMS by tag ID. Requires the 'content' scope.

Parameters:

- `tag_id` (`string`, required): ID of the blog tag to delete.
- `archived` (`boolean`, optional): If true, request a permanent hard-delete of an already-archived tag instead of a soft-delete. HubSpot currently rejects hard deletes for this resource family ('Hard deletes of objects are not supported'), so leave this false/unset for a normal delete.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_tag_get`

Retrieve a single blog tag from HubSpot CMS by tag ID. Requires the 'content' scope.

Parameters:

- `tag_id` (`string`, required): ID of the blog tag to retrieve.
- `property` (`string`, optional): Comma-separated list of blog tag properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_tag_update`

Update an existing blog tag in HubSpot CMS by tag ID. Requires the 'content' scope.

Parameters:

- `tag_id` (`string`, required): ID of the blog tag to update.
- `language` (`string`, optional): ISO 639 language code for this tag. Omit to make the tag available for all languages.
- `name` (`string`, optional): Name of the blog tag.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL-friendly identifier for the tag.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `translated_from_id` (`integer`, optional): ID of the primary tag this tag was translated from, for multi-language tag groups.

### `hubspot_blog_tags_batch_archive`

Archive multiple blog tags in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of tag IDs (strings) to archive, e.g. ["<tag_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_tags_batch_create`

Create multiple blog tags in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item is a full blog tag object, e.g. {"name": "..."}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_tags_batch_read`

Retrieve multiple blog tags by ID in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of tag IDs (strings) to fetch, e.g. ["<tag_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_tags_batch_update`

Update multiple blog tags in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item: {"id": "<tag_id>", ...fields to update}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_blog_tags_list`

List blog tags configured in HubSpot CMS. Supports pagination and sorting. For search-by-name/slug/id and active/blog-ID filtering not available here, see hubspot_blog_topics_search (HubSpot's legacy name for tags). Requires the 'content' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, include archived (soft-deleted) records alongside active ones (matches confirmed behavior on the sibling authors-list endpoint; this is not an exclusive filter).
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_at` (`string`, optional): Return records created at exactly this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `property` (`string`, optional): Comma-separated list of blog tag properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order. Multiple fields are applied in order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_at` (`string`, optional): Return records updated at exactly this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

### `hubspot_blog_topics_search`

Search blog topics using HubSpot's legacy Blog Topics API. 'Topics' is the legacy name for what the newer CMS v3 API calls blog tags (see hubspot_blog_tags_list / hubspot_blog_tag_get for the modern equivalent); this endpoint offers search-by-name/slug/id and active/blog-ID filtering not available on the v3 tags endpoints. Requires the 'content' scope.

Parameters:

- `active` (`boolean`, optional): Restrict results to topics that are (or are not) associated with any published blog posts.
- `blog` (`integer`, optional): Restrict results to topics used on a specific blog.
- `casing` (`string`, optional): Set to 'snake' to have the response returned with snake_case field names instead of camelCase.
- `created` (`integer`, optional): Filter results by creation date, in milliseconds since the Unix epoch.
- `id` (`string`, optional): Search for topics by ID. Supports exact value matching.
- `limit` (`integer`, optional): Maximum number of results to return per page.
- `name` (`string`, optional): Search for topics by name. Supports exact value matching.
- `offset` (`integer`, optional): Number of results to skip, for pagination.
- `q` (`string`, optional): Search for topics whose name or URL slug contains this string.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): Search for topics by URL-friendly slug.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

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

Archive (soft delete) a single call by ID. Archived records can typically be restored within 90 days.

Parameters:

- `call_id` (`string`, required): The ID of the call to delete.

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

Retrieve a plain paginated list of calls from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_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_asset_create`

Associate a marketing asset with a HubSpot campaign. Supported asset types include BLOG_POST, LANDING_PAGE, MARKETING_EMAIL, CTA, FORM, VIDEO, SOCIAL_POST, WORKFLOW, and more.

Parameters:

- `assetId` (`string`, required): The unique ID of the asset to associate.
- `assetType` (`string`, required): Type of asset. Accepted values: MARKETING_EMAIL, LANDING_PAGE, BLOG_POST, CTA, SOCIAL.
- `campaignGuid` (`string`, required): The unique GUID of the campaign.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

### `hubspot_campaign_asset_delete`

Remove the association between a marketing asset and a campaign.

Parameters:

- `assetId` (`string`, required): The unique ID of the asset to disassociate.
- `assetType` (`string`, required): Type of asset to disassociate.
- `campaignGuid` (`string`, required): The unique GUID of the campaign.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

### `hubspot_campaign_assets_get`

List all assets of a specific type associated with a HubSpot campaign. Optionally include asset metrics by providing startDate and endDate.

Parameters:

- `assetType` (`string`, required): Type of assets to retrieve. Accepted values: MARKETING_EMAIL, LANDING_PAGE, BLOG_POST, CTA, SOCIAL.
- `campaignGuid` (`string`, required): The unique GUID of the campaign.
- `after` (`string`, optional): Pagination cursor from previous response paging.next.after.
- `endDate` (`string`, optional): End date for asset metrics (YYYY-MM-DD).
- `limit` (`string`, optional): Maximum number of results per page.
- `schema_version` (`string`, optional): Optional schema version
- `startDate` (`string`, optional): Start date for asset metrics (YYYY-MM-DD).
- `tool_version` (`string`, optional): Optional tool version

### `hubspot_campaign_create`

Create a new HubSpot marketing campaign.

Parameters:

- `properties` (`object`, required): Campaign property key-value pairs.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

### `hubspot_campaign_delete`

Permanently delete a HubSpot marketing campaign by its GUID.

Parameters:

- `campaignGuid` (`string`, required): The unique GUID of the campaign to delete.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

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

Retrieve revenue attribution report for a specific HubSpot marketing campaign.

Parameters:

- `campaignGuid` (`string`, required): The unique GUID of the campaign.
- `attributionModel` (`string`, optional): Revenue attribution model for calculating deal revenue credit.
- `endDate` (`string`, optional): End date for attribution data (YYYY-MM-DD).
- `schema_version` (`string`, optional): Optional schema version
- `startDate` (`string`, optional): Start date for attribution data (YYYY-MM-DD).
- `tool_version` (`string`, optional): Optional tool version

### `hubspot_campaign_update`

Update an existing HubSpot marketing campaign by its GUID.

Parameters:

- `campaignGuid` (`string`, required): The unique GUID of the campaign to update.
- `properties` (`object`, required): Campaign property key-value pairs to update.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

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

Create a new comment on a blog post or other content in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `collection_id` (`integer`, required): ID of the blog containing the post being commented on.
- `comment` (`string`, required): Text content of the comment.
- `content_author_email` (`string`, required): Email address of the blog post's author.
- `content_author_name` (`string`, required): Name of the blog post's author.
- `content_id` (`integer`, required): ID of the blog post or content being commented on.
- `content_permalink` (`string`, required): Public URL of the blog post or content being commented on.
- `content_title` (`string`, required): Title of the blog post or content being commented on.
- `user_email` (`string`, required): Email address of the person leaving the comment.
- `user_name` (`string`, required): Name of the person leaving the comment.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `user_url` (`string`, optional): Optional homepage URL for the person leaving the comment.

### `hubspot_comment_delete`

Permanently delete a comment from HubSpot CMS by comment ID. Requires the 'content' scope.

Parameters:

- `comment_id` (`string`, required): ID of the comment to delete.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_comment_get`

Retrieve a single comment from HubSpot CMS by comment ID. Requires the 'content' scope.

Parameters:

- `comment_id` (`string`, required): ID of the comment to retrieve.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_comment_update`

Update a comment's moderation state or text in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `comment_id` (`string`, required): ID of the comment to update.
- `comment` (`string`, optional): Updated comment text.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `state` (`string`, optional): New moderation state for the comment.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_comments_list`

List blog/page comments in HubSpot CMS, optionally filtered by content ID, moderation state, or free-text query. Requires the 'content' scope.

Parameters:

- `content_id` (`integer`, optional): Restrict results to comments on a specific blog post or page.
- `limit` (`integer`, optional): Number of comments to return.
- `offset` (`integer`, optional): Row offset to start returning results from.
- `portal_id` (`integer`, optional): The Hub ID (portal ID) of the HubSpot account the comments belong to.
- `query` (`string`, optional): Free-text search matched against comment content.
- `reverse` (`boolean`, optional): If true, return comments oldest to newest instead of newest to oldest.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `state` (`string`, optional): Restrict results to comments in this moderation state.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

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

Retrieve a plain paginated list of companies from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_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_delete`

Archive (soft delete) a single company by ID. Archived records can typically be restored within 90 days.

Parameters:

- `company_id` (`string`, required): The ID of the company to delete.

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

Archive (soft delete) a single contact by ID. Archived records can typically be restored within 90 days.

Parameters:

- `contact_id` (`string`, required): The ID of the contact to delete.

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

Permanently delete a contact and its associated content to comply with GDPR erasure requests. Unlike hubspot_contact_delete (which archives), this cannot be undone.

Parameters:

- `object_id` (`string`, required): The contact's ID, or the value of id_property if set.
- `id_property` (`string`, optional): The property to use to look up the contact. Defaults to the record ID.

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

Retrieve the content audit log in HubSpot CMS, recording who changed what content and when (pages, posts, HubDB tables, redirects, domains, and more). Requires the 'content' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `before` (`string`, optional): Pagination cursor for the previous page of results.
- `event_types` (`array`, optional): Restrict results to one or more event (action) types.
- `limit` (`integer`, optional): Maximum number of results to return per page.
- `object_ids` (`array`, optional): Restrict results to one or more specific content object IDs.
- `object_types` (`array`, optional): Restrict results to one or more content object types.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `user_ids` (`array`, optional): Restrict results to changes made by one or more specific user IDs.

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

Archive (soft delete) a single custom object record by ID.

Parameters:

- `object_type_id` (`string`, required): The object type ID or fully qualified name of the custom object.
- `record_id` (`string`, required): The ID of the record to delete.

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

Archive (soft delete) a batch of custom object records by ID.

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to archive. Each item: {"id": "<record_id>"}. Up to 100 records.
- `object_type_id` (`string`, required): The object type ID or fully qualified name of the custom object.

### `hubspot_custom_object_records_batch_create`

Create a batch of custom object records in a single call. Up to 100 per request.

Parameters:

- `inputs` (`string`, required): JSON array of records to create. Each item: {"properties": {...}}. Up to 100 records.
- `object_type_id` (`string`, required): The object type ID or fully qualified name of the custom object.

### `hubspot_custom_object_records_batch_read`

Retrieve a batch of custom object records by internal ID or unique property value.

Parameters:

- `inputs` (`string`, required): JSON array of record IDs to read. Each item: {"id": "<record_id>"}. Up to 100 records.
- `object_type_id` (`string`, required): The object type ID or fully qualified name of the custom object.
- `properties` (`string`, optional): JSON array of property names to return. Leave empty for defaults.

### `hubspot_custom_object_records_batch_update`

Update a batch of custom object records by internal ID or unique property value.

Parameters:

- `inputs` (`string`, required): JSON array of updates. Each item: {"id": "<record_id>", "properties": {...}}. Up to 100 records.
- `object_type_id` (`string`, required): The object type ID or fully qualified name of the custom object.

### `hubspot_custom_object_records_batch_upsert`

Create or update a batch of custom object records by unique property value. Up to 100 per request.

Parameters:

- `inputs` (`string`, required): JSON array of records to upsert. Each item: {"idProperty": "<unique property name>", "id": "<value>", "properties": {...}}. Up to 100 records.
- `object_type_id` (`string`, required): The object type ID or fully qualified name of the custom object.

### `hubspot_custom_object_records_merge`

Merge two custom object records of the same type into one.

Parameters:

- `object_id_to_merge` (`string`, required): The ID of the record to merge into the primary (this record will be removed).
- `object_type_id` (`string`, required): The object type ID or fully qualified name of the custom object.
- `primary_object_id` (`string`, required): The ID of the record to keep as primary after the merge.

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

Archive (soft delete) a single deal by ID. Archived records can typically be restored within 90 days.

Parameters:

- `deal_id` (`string`, required): The ID of the deal to delete.

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

Retrieve a plain paginated list of deals from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_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_domain_get`

Retrieve details for a single domain connected to the HubSpot account by domain ID. Requires the 'cms.domains.read' scope.

Parameters:

- `domain_id` (`string`, required): ID of the domain to retrieve.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_domains_list`

List domains connected to the HubSpot account (used for hosting pages, blogs, and email). Requires the 'cms.domains.read' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 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_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_delete`

Archive (soft delete) a single email by ID. Archived records can typically be restored within 90 days.

Parameters:

- `email_id` (`string`, required): The ID of the email to delete.

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

Retrieve a plain paginated list of emails from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_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_event_definition_create`

Define a new custom behavioral event type (schema) in HubSpot. Once created, occurrences can be sent to it with hubspot_event_send or hubspot_events_send_batch. The CRM object association cannot be changed after creation.

Parameters:

- `label` (`string`, required): Human-readable label for the event, shown in the HubSpot UI. Max 100 characters.
- `description` (`string`, optional): Description of what this event represents.
- `include_default_properties` (`boolean`, optional): Whether to include HubSpot's default event properties (e.g. source, URL). Defaults to true.
- `name` (`string`, optional): Internal name for the event. Max 50 characters. Auto-generated from the label if omitted.
- `primary_object` (`string`, optional): The CRM object type this event is associated with: CONTACT, COMPANY, DEAL, TICKET, or a custom object name. Defaults to CONTACT if omitted. Cannot be changed after creation.
- `property_definitions` (`array`, optional): Up to 50 custom property definitions to capture on each occurrence of this event. Pass as a JSON array of objects, each with at least a name, label, and type.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_event_definition_delete`

Permanently delete a custom behavioral event definition, along with all of its recorded occurrences. This cannot be undone.

Parameters:

- `event_name` (`string`, required): The internal name of the custom event definition to delete.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_event_definition_get`

Retrieve a single custom behavioral event definition by its internal event name.

Parameters:

- `event_name` (`string`, required): The internal name of the custom event definition to retrieve.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_event_definition_update`

Update the label and/or description of an existing custom behavioral event definition. These are the only two fields that can be modified after creation — the CRM object association and properties cannot be changed via this endpoint.

Parameters:

- `event_name` (`string`, required): The internal name of the custom event definition to update.
- `description` (`string`, optional): New description of what this event represents.
- `label` (`string`, optional): New human-readable label for the event.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_event_definitions_list`

Retrieve custom behavioral event definitions (schemas) configured in this HubSpot account, optionally filtered by a search string. Only returns custom event definitions — use hubspot_event_types_list for the full inventory including standard analytics events.

Parameters:

- `after` (`string`, optional): Pagination cursor from a previous response.
- `include_properties` (`boolean`, optional): Whether to include each definition's property details in the response.
- `limit` (`integer`, optional): Maximum number of definitions to return.
- `schema_version` (`string`, optional): Schema version
- `search_string` (`string`, optional): Filter definitions whose name matches this search string.
- `tool_version` (`string`, optional): Tool version

### `hubspot_event_send`

Send a single custom behavioral event occurrence to HubSpot for an existing custom event definition. The event must already be defined (see hubspot_event_definition_create) before occurrences can be sent. Identify the target CRM record via object_id, email, or utk.

Parameters:

- `event_name` (`string`, required): The fully qualified or internal name of the custom event to send, as returned by hubspot_event_definition_create or hubspot_event_definitions_list.
- `email` (`string`, optional): Email address identifying the contact, used instead of object_id for contact-associated events.
- `object_id` (`string`, optional): The CRM object ID (contact, company, deal, ticket, or custom object record) this occurrence should be associated with.
- `occurred_at` (`string`, optional): When the event occurred, as an ISO 8601 datetime. Only used to backdate occurrences; omit to use the current time.
- `properties` (`object`, optional): Key-value pairs of custom property values for this event occurrence, matching the properties defined on the event definition.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version
- `utk` (`string`, optional): The HubSpot user token (hubspotutk cookie value) identifying the contact, used instead of object_id or email.
- `uuid` (`string`, optional): A unique identifier for this event occurrence, used to prevent duplicate processing. Auto-generated by HubSpot if omitted.

### `hubspot_event_types_list`

Retrieve an account-wide inventory of all event types that have occurrence data available, including standard analytics events (e.g. page views, sequence email opens) as well as custom events and app events. Distinct from hubspot_event_definitions_list, which only returns custom event definitions.

Parameters:

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

### `hubspot_events_list`

Retrieve behavioral event occurrences that have already happened (analytics events and custom events), optionally filtered by event type, CRM object, or time range. This queries recorded occurrences — use hubspot_event_definitions_list or hubspot_event_types_list to see what event types exist.

Parameters:

- `event_type` (`string`, optional): Filter to occurrences of a specific event, by its fully qualified name.
- `id` (`string`, optional): Retrieve a single occurrence by its unique event ID, instead of filtering a list.
- `object_id` (`string`, optional): Filter to occurrences associated with a specific record ID. Requires object_type to also be set.
- `object_type` (`string`, optional): Filter to occurrences associated with a specific CRM object type (e.g. contact, company, deal). Required when object_id is provided.
- `occurred_after` (`string`, optional): Only return occurrences that happened after this timestamp (ISO 8601 or Unix millis).
- `occurred_before` (`string`, optional): Only return occurrences that happened before this timestamp (ISO 8601 or Unix millis).
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

### `hubspot_events_send_batch`

Send up to 500 custom behavioral event occurrences to HubSpot in a single batch request. Each event must reference an already-defined custom event (see hubspot_event_definition_create) and identify its target CRM record via objectId, email, or utk.

Parameters:

- `events` (`array`, required): Array of event occurrence objects (up to 500). Each object supports the same fields as hubspot_event_send: eventName (required), and one of objectId/email/utk, plus optional properties, occurredAt, and uuid. Pass as a JSON array via the SDK, or as a JSON-encoded string.
- `schema_version` (`string`, optional): Schema version
- `tool_version` (`string`, optional): Tool version

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

Permanently delete a file from the HubSpot file manager by file ID. Requires the 'files' scope.

Parameters:

- `file_id` (`string`, required): ID of the file to delete.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_file_gdpr_delete`

Permanently delete a file for GDPR compliance. This cannot be undone, unlike hubspot_file_delete which only archives the file.

Parameters:

- `file_id` (`string`, required): The unique ID of the file to permanently delete.

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

Create a new file in the HubSpot file manager by importing it from a publicly reachable URL (asynchronous, no multipart upload required). Returns a task ID; poll hubspot_file_import_from_url_status_get to check completion and get the new file's ID. Requires the 'files' scope.

Parameters:

- `access` (`string`, required): Privacy/indexing level for the new file.
- `url` (`string`, required): Publicly reachable URL to download the new file from.
- `duplicate_validation_scope` (`string`, optional): Where to look for a duplicate file before importing.
- `duplicate_validation_strategy` (`string`, optional): What to do if a duplicate file is found.
- `expires_at` (`string`, optional): ISO 8601 datetime when the imported file should expire.
- `folder_id` (`string`, optional): Destination folder ID. One of folder_id or folder_path is required by HubSpot but neither is enforced here; omitting both imports to the root.
- `folder_path` (`string`, optional): Destination folder path. Created automatically if it doesn't already exist.
- `name` (`string`, optional): Name to give the file in the file manager.
- `overwrite` (`boolean`, optional): If true, overwrite an existing file with the same name/extension in the destination folder.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `ttl` (`string`, optional): Time-to-live after which the file is automatically deleted.

### `hubspot_file_import_from_url_status_get`

Check the status of an asynchronous file import task started by hubspot_file_import_from_url. Once status is COMPLETE, the response includes the new file's details. Requires the 'files' scope.

Parameters:

- `task_id` (`string`, required): ID of the import task to check, returned by hubspot_file_import_from_url.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

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

Update metadata for an existing file in the HubSpot file manager (name, folder, or access level). Requires the 'files' scope.

Parameters:

- `file_id` (`string`, required): ID of the file to update.
- `access` (`string`, optional): New privacy/indexing level for the file.
- `clear_expires` (`boolean`, optional): Remove the file's existing expiration date, if any.
- `expires_at` (`string`, optional): New expiration date/time for the file, in ISO 8601 format.
- `folder_id` (`string`, optional): Move the file into this folder ID. Do not set together with folder_path.
- `folder_path` (`string`, optional): Move the file into this folder path. Do not set together with folder_id.
- `is_usable_in_content` (`boolean`, optional): Whether this file can be used in content (e.g. inserted into pages, emails).
- `name` (`string`, optional): New name for the file.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_files_search`

Search files in the HubSpot file manager by name, type, extension, path, dimensions, size, hash, dates, or ID ranges.

Parameters:

- `after` (`string`, optional): Pagination cursor.
- `allows_anonymous_access` (`boolean`, optional): Public files only.
- `before` (`string`, optional): Before timestamp.
- `created_at` (`string`, optional): Exact creation time.
- `created_at_gte` (`string`, optional): Created after.
- `created_at_lte` (`string`, optional): Created before.
- `encoding` (`string`, optional): File encoding.
- `expires_at` (`string`, optional): Exact expiry time.
- `expires_at_gte` (`string`, optional): Expiring after.
- `expires_at_lte` (`string`, optional): Expiring before.
- `extension` (`string`, optional): File extension.
- `file_md5` (`string`, optional): MD5 hash.
- `height` (`integer`, optional): Exact image/video height.
- `height_gte` (`integer`, optional): Minimum height.
- `height_lte` (`integer`, optional): Maximum height.
- `id_gte` (`integer`, optional): Minimum file ID.
- `id_lte` (`integer`, optional): Maximum file ID.
- `ids` (`array`, optional): Specific file IDs to match.
- `is_usable_in_content` (`boolean`, optional): Usable in content.
- `limit` (`integer`, optional): Page size.
- `name` (`string`, optional): File name search.
- `parent_folder_ids` (`array`, optional): Restrict to specific parent folders.
- `path` (`string`, optional): File path.
- `properties` (`array`, optional): Properties to return.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `size` (`integer`, optional): Exact file size.
- `size_gte` (`integer`, optional): Min file size.
- `size_lte` (`integer`, optional): Max file size.
- `sort` (`array`, optional): Sort field.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `type` (`string`, optional): File type.
- `updated_at` (`string`, optional): Exact update time.
- `updated_at_gte` (`string`, optional): Updated after.
- `updated_at_lte` (`string`, optional): Updated before.
- `url` (`string`, optional): Exact URL search.
- `width` (`integer`, optional): Exact image/video width.
- `width_gte` (`integer`, optional): Minimum width.
- `width_lte` (`integer`, optional): Maximum width.

### `hubspot_folder_create`

Create a new folder in the HubSpot file manager. Requires the 'files' scope.

Parameters:

- `name` (`string`, required): Name of the new folder.
- `parent_folder_id` (`string`, optional): ID of the parent folder to nest this folder under. Do not set together with parent_path.
- `parent_path` (`string`, optional): Path of the parent folder to nest this folder under. Do not set together with parent_folder_id.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_folder_delete`

Delete a file manager folder by ID.

Parameters:

- `folder_id` (`string`, required): The unique ID of the folder to delete.

### `hubspot_folder_get`

Retrieve a single file manager folder by ID.

Parameters:

- `folder_id` (`string`, required): The unique ID of the folder to retrieve.
- `properties` (`string`, optional): JSON array of property names to include in the response.

### `hubspot_folder_update`

Update a file manager folder's name or parent folder by folder ID.

Parameters:

- `folder_id` (`string`, required): The unique ID of the folder to update.
- `name` (`string`, optional): New name for the folder.
- `parent_folder_id` (`string`, optional): New parent folder ID to move this folder under.

### `hubspot_folders_list`

List folders in the HubSpot file manager, with pagination and optional parent-folder filtering. Requires the 'files' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `name` (`string`, optional): Filter folders by exact name.
- `parent_folder_id` (`string`, optional): Restrict results to sub-folders of a specific folder.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`string`, optional): Property to sort results by; prefix with '-' for descending order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

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

Create a new HubSpot form with fields, configuration, and submission settings.

Parameters:

- `archived` (`boolean`, required): Whether the form is archived.
- `configuration` (`object`, required): Form configuration including post-submit action, language, lifecycle stages, and notification settings.
- `createdAt` (`string`, required): Creation timestamp in ISO 8601 format.
- `displayOptions` (`object`, required): Visual display options for the form including submit button text, CSS styling, and render mode.
- `fieldGroups` (`array`, required): Array of field groups defining the form layout and fields.
- `formType` (`string`, required): Type of form. Accepted values: hubspot, captured, flow, blog_comment, hubspot_internal.
- `legalConsentOptions` (`object`, required): GDPR legal consent configuration. Accepted types: none, implicit_consent_to_process, legitimate_interest, explicit_consent_to_process.
- `name` (`string`, required): Display name for the form.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

### `hubspot_form_delete`

Archive a HubSpot form definition. New submissions will not be accepted and the form will be permanently deleted after 3 months.

Parameters:

- `formId` (`string`, required): The unique ID of the form to delete.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

### `hubspot_form_get`

Retrieve a single HubSpot form definition by ID.

Parameters:

- `formId` (`string`, required): Form ID from the URL or hubspot_forms_list.
- `archived` (`boolean`, optional): Set to true to retrieve the form even if it has been archived.

### `hubspot_form_partial_update`

Partially update a HubSpot form definition — only the fields provided are changed, unlike hubspot_form_update which requires a full replacement.

Parameters:

- `formId` (`string`, required): The unique ID of the form to update.
- `archived` (`boolean`, optional): Set to true to archive the form.
- `configuration` (`string`, optional): Partial form configuration to merge in. Pass as a JSON object via the SDK, not as a string.
- `displayOptions` (`string`, optional): Partial display options to merge in. Pass as a JSON object via the SDK, not as a string.
- `fieldGroups` (`string`, optional): Replacement array of field groups defining the form layout and fields. Pass as a JSON array via the SDK, not as a string.
- `legalConsentOptions` (`string`, optional): Legal consent configuration. Pass as a JSON object via the SDK, not as a string.
- `name` (`string`, optional): New display name for the form.

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

Update all fields of a HubSpot form definition. This is a full update — all required fields must be provided.

Parameters:

- `archived` (`boolean`, required): Whether the form is archived.
- `configuration` (`object`, required): Form configuration including post-submit action, language, lifecycle stages, and notification settings.
- `createdAt` (`string`, required): Creation timestamp in ISO 8601 format.
- `displayOptions` (`object`, required): Visual display options for the form.
- `fieldGroups` (`array`, required): Array of field groups defining the form layout and fields.
- `formId` (`string`, required): The unique ID of the form to update.
- `formType` (`string`, required): The type of form.
- `legalConsentOptions` (`object`, required): GDPR legal consent configuration. Accepted types: none, implicit_consent_to_process, legitimate_interest, explicit_consent_to_process.
- `name` (`string`, required): The display name of the form.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

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

List the draft (unpublished) versions of HubDB tables in the HubSpot account. Requires the 'hubdb' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `content_type` (`string`, optional): Restrict results to tables with a specific content type.
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_at` (`string`, optional): Return records created at exactly this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `is_get_localized_schema` (`boolean`, optional): Whether to return the table schema localized for the current account language.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_at` (`string`, optional): Return records updated at exactly this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

### `hubspot_hubdb_row_clone`

Clone a single existing row within the draft version of a HubDB table, creating a duplicate row. For cloning many rows at once, use hubspot_hubdb_rows_batch_clone instead. Requires the 'hubdb' scope.

Parameters:

- `row_id` (`string`, required): ID of the row to clone.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `name` (`string`, optional): Optional name for the cloned row.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_row_create`

Create a new row in a HubDB table. The new row is added to the draft version; call hubspot_hubdb_table_publish afterward to make it live. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `values` (`string`, required): JSON object mapping column names to values for this row.
- `child_table_id` (`string`, optional): ID of a child table to associate with this row, for multi-level dynamic pages.
- `display_index` (`integer`, optional): Position index controlling where this row is displayed within the table's row order.
- `path` (`string`, optional): URL path suffix for the row's dynamic page (only used if the table drives dynamic pages).
- `row_name` (`string`, optional): HTML title for the row's dynamic page (only used if the table drives dynamic pages).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_row_delete`

Permanently delete a row from a HubDB table's draft version by row ID. Call hubspot_hubdb_table_publish afterward to make the deletion live. Requires the 'hubdb' scope.

Parameters:

- `row_id` (`string`, required): ID of the row to delete.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_row_draft_get`

Retrieve a single row from the draft (unpublished) version of a HubDB table by row ID. For the published copy of the row, use hubspot_hubdb_row_get instead. Requires the 'hubdb' scope.

Parameters:

- `row_id` (`string`, required): ID of the row to retrieve.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `archived` (`boolean`, optional): If true, return the row only if it has been archived (soft-deleted).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_row_get`

Retrieve a single row from the published version of a HubDB table by row ID. For the unpublished draft copy of the row, use hubspot_hubdb_row_draft_get instead. Requires the 'hubdb' scope.

Parameters:

- `row_id` (`string`, required): ID of the row to retrieve.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `archived` (`boolean`, optional): If true, return the row only if it has been archived (soft-deleted).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_row_update`

Update an existing row in a HubDB table by row ID. This updates the table's draft version; call hubspot_hubdb_table_publish afterward to make the change live. Only provided fields are changed. Requires the 'hubdb' scope.

Parameters:

- `row_id` (`string`, required): ID of the row to update.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `display_index` (`integer`, optional): Position index controlling where this row is displayed within the table's row order.
- `path` (`string`, optional): URL path suffix for the row's dynamic page.
- `row_name` (`string`, optional): HTML title for the row's dynamic page.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `values` (`string`, optional): JSON object mapping column names to values for this row.

### `hubspot_hubdb_rows_batch_clone`

Clone multiple existing rows within a HubDB table's draft version in a single request. Requires the 'hubdb' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item clones one row: {"id": "<row_id>", "name": "<optional new name>"}.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_rows_batch_create`

Create multiple rows in a HubDB table in a single request. New rows are added to the draft version; call hubspot_hubdb_table_publish afterward to make them live. Requires the 'hubdb' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item is a row object, e.g. {"values": {"col": "value"}, "path": "...", "name": "..."}.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_rows_batch_purge`

Permanently delete multiple rows from a HubDB table's draft version by row ID in a single request. Requires the 'hubdb' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. A JSON array of row IDs (strings) to permanently delete.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_rows_batch_read`

Retrieve multiple rows from a HubDB table's draft version by row ID in a single request. Requires the 'hubdb' scope.

Parameters:

- `inputs` (`string`, required): JSON array of row IDs (strings) to fetch, e.g. ["<row_id>", ...].
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_rows_batch_replace`

Replace multiple rows in a HubDB table's draft version wholesale in a single request (up to 100). Unlike batch update, unspecified columns in 'values' are cleared rather than left unchanged. Call hubspot_hubdb_table_publish afterward to make the changes live. Requires the 'hubdb' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item wholesale-replaces one row: {"id": "<row_id>", "values": {...all column values}}.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_rows_batch_update`

Update multiple rows in a HubDB table's draft version in a single request. Call hubspot_hubdb_table_publish afterward to make the changes live. Requires the 'hubdb' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item: {"id": "<row_id>", "values": {...fields to update}}.
- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_rows_draft_get`

List rows from the draft (unpublished) version of a HubDB table, with pagination and sorting. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `after` (`string`, optional): Pagination cursor for the next page of results.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`string`, optional): Property to sort results by; prefix with '-' for descending order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_rows_get`

List rows from the published version of a HubDB table, with pagination and sorting. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) rows.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `offset` (`integer`, optional): Row offset to start returning results from.
- `properties` (`array`, optional): Restrict which row properties are included in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_table_archive`

Permanently delete (archive) a HubDB table by table ID or name. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_table_create`

Create a new HubDB table in the HubSpot account. Requires the 'hubdb' scope.

Parameters:

- `hubdb_name` (`string`, required): Internal name of the table (lowercase letters, digits, underscores only; cannot start with a digit).
- `label` (`string`, required): User-facing display label for the table.
- `additional_properties` (`object`, optional): Additional raw HubDB table fields to merge into the request (e.g. dynamicMetaTags).
- `allow_child_tables` (`boolean`, optional): Whether this table can have child tables for multi-level dynamic pages.
- `allow_public_api_access` (`boolean`, optional): Whether this table's published data is readable without authentication.
- `columns` (`string`, optional): JSON array of column definitions for the table.
- `enable_child_table_pages` (`boolean`, optional): Whether child table rows can power their own dynamic pages.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `use_for_pages` (`boolean`, optional): Whether rows in this table can drive dynamic pages.

### `hubspot_hubdb_table_draft_get`

Retrieve metadata for the draft (unpublished) version of a HubDB table by table ID or name. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_table_draft_reset`

Discard unpublished draft changes on a HubDB table, reverting the draft to match the published version. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_table_draft_update`

Update the draft version of a HubDB table's metadata (label, settings, columns). Only provided fields are changed. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `additional_properties` (`object`, optional): Additional raw HubDB table fields to merge into the request (e.g. dynamicMetaTags).
- `allow_child_tables` (`boolean`, optional): Whether this table can have child tables for multi-level dynamic pages.
- `allow_public_api_access` (`boolean`, optional): Whether this table's published data is readable without authentication.
- `archived` (`boolean`, optional): Set to false to restore an archived table via this draft update, or true to archive it.
- `columns` (`string`, optional): JSON array of column definitions for the table.
- `enable_child_table_pages` (`boolean`, optional): Whether child table rows can power their own dynamic pages.
- `label` (`string`, optional): User-facing display label for the table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `use_for_pages` (`boolean`, optional): Whether rows in this table can drive dynamic pages.

### `hubspot_hubdb_table_get`

Retrieve metadata for the published version of a HubDB table by table ID or name. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_table_publish`

Publish (push live) the draft version of a HubDB table, making draft row/column changes visible in the published table. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_table_unpublish`

Unpublish a HubDB table so that website pages using its data stop rendering that data, without deleting the table or its rows. The table and its data remain intact and can be republished later. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_table_version_delete`

Permanently delete a specific historical version (snapshot) of a HubDB table, without affecting the current table or its other versions. Requires the 'hubdb' scope.

Parameters:

- `table_id_or_name` (`string`, required): ID or internal name of the HubDB table.
- `version_id` (`integer`, required): ID of the specific table version (snapshot) to delete.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_hubdb_tables_list`

List HubDB tables in the HubSpot account. Requires the 'hubdb' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `content_type` (`string`, optional): Restrict results to tables with a specific content type.
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_at` (`string`, optional): Return records created at exactly this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `is_get_localized_schema` (`boolean`, optional): Whether to return the table schema localized for the current account language.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_at` (`string`, optional): Return records updated at exactly this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

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

Archive (soft-delete) a landing page in HubSpot CMS by page ID. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the landing page to archive.
- `archived` (`boolean`, optional): If true, request a permanent hard-delete of an already-archived page instead of a soft-delete/archive. HubSpot currently rejects hard deletes for pages ('Hard deletes of objects are not supported'), so leave this false/unset for a normal archive.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_landing_page_create`

Create a new landing page in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `name` (`string`, required): Title of the page.
- `template_path` (`string`, required): Path to the template used to render the page (without a leading slash).
- `additional_properties` (`object`, optional): Additional raw HubSpot page fields to merge into the request (e.g. layoutSections, widgets, translations, archivedAt).
- `author_name` (`string`, optional): Name of the content author to display.
- `campaign` (`string`, optional): HubSpot marketing campaign GUID to associate with this page.
- `domain` (`string`, optional): Custom domain to publish the page on. Leave blank to use the primary domain.
- `featured_image` (`string`, optional): URL of the featured image.
- `featured_image_alt_text` (`string`, optional): Alt text for the featured image.
- `html_title` (`string`, optional): Browser tab / SEO title for the page.
- `language` (`string`, optional): ISO 639 language code for this page (used for multi-language variants).
- `meta_description` (`string`, optional): SEO meta description for the page.
- `publish_date` (`string`, optional): ISO 8601 datetime to schedule publishing.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL path segment for the page.
- `state` (`string`, optional): Current state of the page (e.g. DRAFT, PUBLISHED, SCHEDULED).
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `use_featured_image` (`boolean`, optional): Whether to show a featured image on the page.

### `hubspot_landing_page_get`

Retrieve a single landing page from HubSpot CMS by its page ID. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the landing page to retrieve.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `property` (`string`, optional): Comma-separated list of landing page properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_landing_page_revision_get`

Retrieve a specific historical revision of a landing page by revision ID. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the landing page.
- `revision_id` (`string`, required): ID of the specific revision to retrieve.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_landing_page_revision_restore`

Restore a landing page to a previous revision. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the landing page.
- `revision_id` (`string`, required): ID of the revision to restore.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_landing_page_revisions_list`

List the revision history of a landing page in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the landing page whose revisions to list.
- `after` (`string`, optional): Pagination cursor for the next page of results.
- `before` (`string`, optional): Pagination cursor for the previous page of results.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 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_landing_page_update`

Update an existing landing page in HubSpot CMS by page ID. Only provided fields are changed. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the landing page to update.
- `additional_properties` (`object`, optional): Additional raw HubSpot page fields to merge into the request (e.g. layoutSections, widgets, translations, archivedAt).
- `author_name` (`string`, optional): Name of the content author to display.
- `campaign` (`string`, optional): HubSpot marketing campaign GUID to associate with this page.
- `domain` (`string`, optional): Custom domain to publish the page on. Leave blank to use the primary domain.
- `featured_image` (`string`, optional): URL of the featured image.
- `featured_image_alt_text` (`string`, optional): Alt text for the featured image.
- `html_title` (`string`, optional): Browser tab / SEO title for the page.
- `language` (`string`, optional): ISO 639 language code for this page (used for multi-language variants).
- `meta_description` (`string`, optional): SEO meta description for the page.
- `name` (`string`, optional): Title of the page.
- `publish_date` (`string`, optional): ISO 8601 datetime to schedule publishing.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL path segment for the page.
- `state` (`string`, optional): Current state of the page (e.g. DRAFT, PUBLISHED, SCHEDULED).
- `template_path` (`string`, optional): Path to the template used to render the page (without a leading slash).
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `use_featured_image` (`boolean`, optional): Whether to show a featured image on the page.

### `hubspot_landing_pages_batch_archive`

Archive multiple landing pages in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of page IDs (strings) to archive, e.g. ["<page_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_landing_pages_batch_create`

Create multiple landing pages in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item is a full landing page object, e.g. {"name": "...", "templatePath": "...", "slug": "..."}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_landing_pages_batch_read`

Retrieve multiple landing pages by ID in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of page IDs (strings) to fetch, e.g. ["<page_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_landing_pages_batch_update`

Update multiple landing pages in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item: {"id": "<page_id>", ...fields to update}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_landing_pages_list`

List landing pages in HubSpot CMS. Supports pagination, sorting, and archived/date-range filtering. Requires the 'content' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_at` (`string`, optional): Return records created at exactly this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `property` (`string`, optional): Comma-separated list of landing page properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order. Multiple fields are applied in order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_at` (`string`, optional): Return records updated at exactly this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

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

Archive (soft delete) a single line item by ID. Archived records can typically be restored within 90 days.

Parameters:

- `line_item_id` (`string`, required): The ID of the line item to delete.

### `hubspot_line_item_get`

Retrieve a single line item by ID.

Parameters:

- `line_item_id` (`string`, required): The ID of the line item to retrieve.
- `properties` (`string`, optional): Comma-separated list of properties to include in the response.

### `hubspot_line_item_update`

Update properties of an existing line item.

Parameters:

- `line_item_id` (`string`, required): The ID of the line item to update.
- `properties` (`string`, required): JSON object of property name/value pairs to update. Pass as a JSON object via the SDK, not as a string.

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

Retrieve a plain paginated list of line items from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_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_folder_create`

Create a new folder for organizing HubSpot lists.

Parameters:

- `name` (`string`, required): The name of the folder to create.
- `parentFolderId` (`string`, optional): The folder this should be created in. Defaults to the root folder (0) if omitted.

### `hubspot_list_folder_delete`

Delete a HubSpot list folder by ID.

Parameters:

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

### `hubspot_list_folder_move`

Move a HubSpot list folder under a different parent folder.

Parameters:

- `folderId` (`string`, required): The ID of the folder to move.
- `newParentFolderId` (`string`, required): The ID of the new parent folder. Use 0 for the root folder.

### `hubspot_list_folder_rename`

Rename a HubSpot list folder.

Parameters:

- `folderId` (`string`, required): The ID of the list folder to rename.
- `name` (`string`, required): The new name for the folder.

### `hubspot_list_folders_get`

Retrieve the list folders nested directly under a given parent folder (root folder by default).

Parameters:

- `folderId` (`string`, optional): The parent folder ID to list child folders for. Defaults to the root folder (0).

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

Retrieve a HubSpot list by its name instead of its numeric ID.

Parameters:

- `listName` (`string`, required): The exact name of the list to find.
- `objectTypeId` (`string`, required): The object type ID the list contains records of, e.g. 0-1 for contacts.
- `includeFilters` (`boolean`, optional): Whether to include the list's filter definition in the response.

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

Add and/or remove specific records from a HubSpot list in a single atomic call.

Parameters:

- `listId` (`string`, required): The numeric ID of the list.
- `recordIdsToAdd` (`string`, required): JSON array of record IDs to add to the list. Pass as a JSON array via the SDK, not as a string.
- `recordIdsToRemove` (`string`, required): JSON array of record IDs to remove from the list. Pass as a JSON array via the SDK, not as a string.

### `hubspot_list_memberships_add_from_list`

Copy every record from a source list into a destination list.

Parameters:

- `listId` (`string`, required): The numeric ID of the list.
- `sourceListId` (`string`, required): The ID of the list whose records should be copied in.

### `hubspot_list_memberships_batch_read`

Check list membership for multiple records at once, across any of their lists, in a single batch call.

Parameters:

- `inputs` (`string`, required): JSON array of {"recordId": "<id>", "objectTypeId": "<type>"} objects to check. Pass as a JSON array via the SDK, not as a string.

### `hubspot_list_memberships_delete_all`

Remove every record from a HubSpot list, emptying it without deleting the list itself.

Parameters:

- `listId` (`string`, required): The numeric ID of 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_join_order_get`

Retrieve a list's memberships ordered by when each record was added, oldest first.

Parameters:

- `listId` (`string`, required): The numeric ID of the list.
- `after` (`string`, optional): Pagination cursor from the previous response.
- `before` (`string`, optional): Pagination cursor to page backwards.
- `limit` (`integer`, optional): Maximum number of memberships to return per page.

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

Move a HubSpot list into a folder.

Parameters:

- `folderId` (`string`, required): The ID of the destination folder. Use 0 for the root folder.
- `listId` (`string`, required): The numeric ID of 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_list_schedule_conversion_cancel`

Cancel a previously scheduled conversion of a dynamic list to static.

Parameters:

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

### `hubspot_list_schedule_conversion_get`

Retrieve the scheduled conversion details for a dynamic list being converted to static.

Parameters:

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

### `hubspot_list_schedule_conversion_set`

Schedule (or update the schedule of) a dynamic list's conversion to a static list, either on a fixed date or after a period of inactivity.

Parameters:

- `conversion_type` (`string`, required): The type of scheduled conversion.
- `listId` (`string`, required): The numeric ID of the list.
- `day` (`integer`, optional): Day component of the conversion date. Required when conversion_type is CONVERSION_DATE.
- `month` (`integer`, optional): Month component (1-12) of the conversion date. Required when conversion_type is CONVERSION_DATE.
- `offset` (`integer`, optional): Number of time_unit periods of inactivity before conversion. Required when conversion_type is INACTIVITY.
- `time_unit` (`string`, optional): Unit of the inactivity period. Required when conversion_type is INACTIVITY.
- `year` (`integer`, optional): Year component of the conversion date. Required when conversion_type is CONVERSION_DATE.

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

Create an A/B test variation of an existing marketing email.

Parameters:

- `contentId` (`string`, required): The ID of the marketing email to A/B test.
- `variationName` (`string`, required): Name of the variation to create.

### `hubspot_marketing_email_ab_test_variation_get`

Retrieve the A/B test variation details for a marketing email.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.

### `hubspot_marketing_email_clone`

Clone an existing marketing email into a new draft.

Parameters:

- `id` (`string`, required): The ID of the marketing email to clone.
- `cloneName` (`string`, optional): The name to assign to the cloned email.
- `language` (`string`, optional): The language code for the cloned email.

### `hubspot_marketing_email_create`

Create a new HubSpot marketing email.

Parameters:

- `name` (`string`, required): Internal name for the email.
- `activeDomain` (`string`, optional): The active domain of the email.
- `archived` (`boolean`, optional): Set to true to archive the email.
- `businessUnitId` (`integer`, optional): ID of the business unit to associate with the email.
- `campaign` (`string`, optional): Campaign GUID to associate this email with.
- `content` (`object`, optional): Email body content including flexAreas, widgets, and styleSettings.
- `feedbackSurveyId` (`string`, optional): The ID of the feedback survey linked to the email.
- `folderIdV2` (`integer`, optional): ID of the folder where the email will be stored.
- `from` (`object`, optional): Sender details: fromName, replyTo, customReplyTo.
- `jitterSendTime` (`boolean`, optional): Randomize send time slightly to avoid all sends at exactly the same moment.
- `language` (`string`, optional): Language code, e.g. en, fr, de, es.
- `publishDate` (`string`, optional): Scheduled send date in ISO 8601 format.
- `rssData` (`object`, optional): RSS email configuration: hubspotBlogId, url, maxEntries, timing.
- `schema_version` (`string`, optional): Optional schema version
- `sendOnPublish` (`boolean`, optional): Set to true to send immediately on publish.
- `state` (`string`, optional): Email state. Common values: DRAFT, SCHEDULED, PUBLISHED.
- `subcategory` (`string`, optional): Email subcategory. Common values: batch, automated, blog_email, rss_to_email, localtime.
- `subject` (`string`, optional): Email subject line.
- `subscriptionDetails` (`object`, optional): Subscription configuration: subscriptionId, officeLocationId, preferencesGroupId.
- `testing` (`object`, optional): AB testing configuration.
- `to` (`object`, optional): Recipient configuration: contactLists, contactIlsLists, contactIds, suppressGraymail.
- `tool_version` (`string`, optional): Optional tool version
- `webversion` (`object`, optional): Web version settings: enabled, slug, title, metaDescription, redirectToUrl.

### `hubspot_marketing_email_delete`

Permanently delete a HubSpot marketing email by its ID.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email to delete.
- `archived` (`boolean`, optional): Filter for archived emails.
- `schema_version` (`string`, optional): Optional schema version
- `tool_version` (`string`, optional): Optional tool version

### `hubspot_marketing_email_draft_get`

Retrieve the draft (unpublished) version of a marketing email.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.

### `hubspot_marketing_email_draft_reset`

Discard the draft version of a marketing email, resetting it back to match the currently published version.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.

### `hubspot_marketing_email_draft_update`

Create or update the draft version of a marketing email, such as its subject, content, or name, without affecting the currently published version.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.
- `archived` (`boolean`, optional): Whether the email is archived.
- `campaign` (`string`, optional): The ID of the campaign this email is associated to.
- `content` (`string`, optional): Email content object (widgets, HTML title, etc.). Pass as a JSON object via the SDK, not as a string.
- `name` (`string`, optional): Internal name of the email.
- `subject` (`string`, optional): Email subject line.

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

Publish (or send) a marketing email, making its current draft content live.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.

### `hubspot_marketing_email_revision_get`

Retrieve a single revision of a marketing email.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.
- `revisionId` (`string`, required): The ID of the revision to retrieve.

### `hubspot_marketing_email_revision_restore`

Restore a marketing email to a previous revision, making it the current published version.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.
- `revisionId` (`string`, required): The ID of the revision to restore.

### `hubspot_marketing_email_revisions_list`

Retrieve the revision history of a marketing email.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.
- `after` (`string`, optional): Pagination cursor from the previous response.
- `limit` (`integer`, optional): Maximum number of revisions to return per page.

### `hubspot_marketing_email_unpublish`

Unpublish a marketing email, or cancel a scheduled send.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email. Get it from hubspot_marketing_emails_list.

### `hubspot_marketing_email_update`

Update an existing HubSpot marketing email by its ID.

Parameters:

- `emailId` (`string`, required): The ID of the marketing email to update.
- `activeDomain` (`string`, optional): The active domain of the email.
- `archived` (`boolean`, optional): Set to true to archive the email.
- `businessUnitId` (`integer`, optional): ID of the business unit to associate with the email.
- `campaign` (`string`, optional): Campaign GUID to associate this email with.
- `content` (`object`, optional): Email body content including flexAreas, widgets, and styleSettings.
- `feedbackSurveyId` (`string`, optional): The ID of the feedback survey linked to the email.
- `folderIdV2` (`integer`, optional): ID of the folder where the email will be stored.
- `from` (`object`, optional): Sender details: fromName, replyTo, customReplyTo.
- `jitterSendTime` (`boolean`, optional): Randomize send time slightly to avoid all sends at exactly the same moment.
- `language` (`string`, optional): Language code, e.g. en, fr, de, es.
- `name` (`string`, optional): Internal name for the email.
- `publishDate` (`string`, optional): Scheduled send date in ISO 8601 format.
- `rssData` (`object`, optional): RSS email configuration: hubspotBlogId, url, maxEntries, timing.
- `schema_version` (`string`, optional): Optional schema version
- `sendOnPublish` (`boolean`, optional): Set to true to send immediately on publish.
- `state` (`string`, optional): Email state. Common values: DRAFT, SCHEDULED, PUBLISHED.
- `subcategory` (`string`, optional): Email subcategory. Common values: batch, automated, blog_email, rss_to_email, localtime.
- `subject` (`string`, optional): Email subject line shown to recipients.
- `subscriptionDetails` (`object`, optional): Subscription configuration: subscriptionId, officeLocationId, preferencesGroupId.
- `testing` (`object`, optional): AB testing configuration.
- `to` (`object`, optional): Recipient configuration: contactLists, contactIlsLists, contactIds, suppressGraymail.
- `tool_version` (`string`, optional): Optional tool version
- `webversion` (`object`, optional): Web version settings: enabled, slug, title, metaDescription, redirectToUrl.

### `hubspot_marketing_emails_list`

List marketing emails in the account with optional filtering and pagination. Use this to find email IDs before getting, updating, publishing, or deleting one.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to return only archived marketing emails.
- `campaign` (`string`, optional): Filter to emails associated with a specific campaign GUID.
- `createdAfter` (`string`, optional): Only return emails created after this ISO 8601 timestamp.
- `createdBefore` (`string`, optional): Only return emails created before this ISO 8601 timestamp.
- `includeStats` (`boolean`, optional): Whether to include send/open/click statistics in the response.
- `isPublished` (`boolean`, optional): Filter to only published (true) or only unpublished/draft (false) emails.
- `limit` (`integer`, optional): Maximum number of results to return per page.
- `type` (`string`, optional): Filter by marketing email type, e.g. AUTOMATED_EMAIL, BATCH_EMAIL, RSS_EMAIL.
- `updatedAfter` (`string`, optional): Only return emails updated after this ISO 8601 timestamp.
- `updatedBefore` (`string`, optional): Only return emails updated before this ISO 8601 timestamp.

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

Record attendance for contacts at a marketing event, identified by email address instead of internal contact ID.

Parameters:

- `external_event_id` (`string`, required): Your unique identifier for this event in your system.
- `inputs` (`string`, required): Array of contact objects. Each needs email, interactionDateTime (ms timestamp), contactProperties (can be {}), and properties (can be {}). Pass as a JSON array via the SDK, not as a string.
- `subscriber_state` (`string`, required): The attendance state. Accepted values: register, attend, cancel.
- `external_account_id` (`string`, optional): Your account ID in the external event system.

### `hubspot_marketing_event_cancel`

Mark a marketing event as cancelled, identified by your external event and account IDs.

Parameters:

- `external_account_id` (`string`, required): Your account ID in the external event system.
- `external_event_id` (`string`, required): Your unique identifier for this event in your system.

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

Retrieve a paginated breakdown of every marketing event a single contact has participated in.

Parameters:

- `contact_identifier` (`string`, required): The contact's HubSpot ID or email address.
- `after` (`string`, optional): Pagination cursor from the previous response.
- `limit` (`integer`, optional): Maximum number of results to return per page.
- `state` (`string`, optional): Filter to a single participation state.

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

Permanently delete a marketing event, identified by your external event and account IDs.

Parameters:

- `external_account_id` (`string`, required): Your account ID in the external event system.
- `external_event_id` (`string`, required): Your unique identifier for this event in your system.

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

Associate a contact list with a marketing event for audience targeting, identified by your external event and account IDs.

Parameters:

- `external_account_id` (`string`, required): Your account ID in the external event system.
- `external_event_id` (`string`, required): Your unique identifier for this event in your system.
- `list_id` (`string`, required): The ID of the contact list to associate with the event.

### `hubspot_marketing_event_list_disassociate`

Remove the association between a contact list and a marketing event, identified by your external event and account IDs.

Parameters:

- `external_account_id` (`string`, required): Your account ID in the external event system.
- `external_event_id` (`string`, required): Your unique identifier for this event in your system.
- `list_id` (`string`, required): The ID of the contact list to disassociate from the event.

### `hubspot_marketing_event_lists_get`

Retrieve the contact lists associated with a marketing event, identified by your external event and account IDs.

Parameters:

- `external_account_id` (`string`, required): Your account ID in the external event system.
- `external_event_id` (`string`, required): Your unique identifier for this event in your system.

### `hubspot_marketing_event_participations_breakdown_get`

Retrieve a paginated, per-contact breakdown of participation state for a marketing event.

Parameters:

- `external_account_id` (`string`, required): Your account ID in the external event system.
- `external_event_id` (`string`, required): Your unique identifier for this event in your system.
- `after` (`string`, optional): Pagination cursor from the previous response.
- `contact_identifier` (`string`, optional): Filter to a single contact by ID or email.
- `limit` (`integer`, optional): Maximum number of results to return per page.
- `state` (`string`, optional): Filter to a single participation state.

### `hubspot_marketing_event_participations_get`

Retrieve attendance/participation counters (registered, attended, cancelled) for a marketing event.

Parameters:

- `external_account_id` (`string`, required): Your account ID in the external event system.
- `external_event_id` (`string`, required): Your unique identifier for this event in your system.

### `hubspot_marketing_event_update`

Partially update a marketing event's details, identified by your external event and account IDs.

Parameters:

- `external_account_id` (`string`, required): Your account ID in the external event system.
- `external_event_id` (`string`, required): Your unique identifier for this event in your system.
- `custom_properties` (`string`, optional): Array of custom property objects (can be empty []). Pass as a JSON array via the SDK, not as a string.
- `end_date_time` (`string`, optional): ISO 8601 end date and time of the event.
- `event_cancelled` (`boolean`, optional): Whether the event has been cancelled.
- `event_completed` (`boolean`, optional): Whether the event has been completed.
- `event_description` (`string`, optional): Description of the marketing event.
- `event_name` (`string`, optional): The name of the marketing event.
- `event_organizer` (`string`, optional): The name of the organizer of the marketing event.
- `start_date_time` (`string`, optional): ISO 8601 start date and time of 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_batch_delete`

Permanently delete multiple marketing events at once, identified by their external event, account, and app IDs.

Parameters:

- `inputs` (`string`, required): JSON array of {appId, externalAccountId, externalEventId} objects identifying events to delete. Pass as a JSON array via the SDK, not as a string.

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

Archive (soft delete) a single meeting by ID. Archived records can typically be restored within 90 days.

Parameters:

- `meeting_id` (`string`, required): The ID of the meeting to delete.

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

Retrieve a plain paginated list of meetings from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_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_delete`

Archive (soft delete) a single note by ID. Archived records can typically be restored within 90 days.

Parameters:

- `note_id` (`string`, required): The ID of the note to delete.

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

Retrieve a plain paginated list of notes from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_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_owner_get`

Retrieve a single HubSpot owner (user) by owner ID.

Parameters:

- `owner_id` (`string`, required): The unique ID of the owner. Get it from hubspot_owners_list.
- `archived` (`boolean`, optional): Set to true to retrieve the owner even if it has been deactivated.

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

Retrieve a single pipeline by ID for a given CRM object type.

Parameters:

- `object_type` (`string`, required): The CRM object type the pipeline belongs to.
- `pipeline_id` (`string`, required): The ID of the pipeline to retrieve.

### `hubspot_pipeline_stage_audit_log_get`

Retrieve the audit log of changes made to a single pipeline stage.

Parameters:

- `object_type` (`string`, required): The CRM object type the pipeline belongs to.
- `pipeline_id` (`string`, required): The ID of the pipeline the stage belongs to.
- `stage_id` (`string`, required): The ID of the stage to retrieve the audit log for.

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

Retrieve a single pipeline stage by ID.

Parameters:

- `object_type` (`string`, required): The CRM object type the pipeline belongs to.
- `pipeline_id` (`string`, required): The ID of the pipeline the stage belongs to.
- `stage_id` (`string`, required): The ID of the stage to retrieve.

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

Retrieve all stages of a single pipeline.

Parameters:

- `object_type` (`string`, required): The CRM object type the pipeline belongs to.
- `pipeline_id` (`string`, required): The ID of the pipeline to list stages for.

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

Retrieve all pipelines defined for a given CRM object type (e.g. deals, tickets, or a custom object).

Parameters:

- `object_type` (`string`, required): The CRM object type to list pipelines for.

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

Archive (soft delete) a single product by ID. Archived records can typically be restored within 90 days.

Parameters:

- `product_id` (`string`, required): The ID of the product to delete.

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

Archive (soft delete) a single quote by ID. Archived records can typically be restored within 90 days.

Parameters:

- `quote_id` (`string`, required): The ID of the quote to delete.

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

Delete an existing association definition between a custom object schema and another object type.

Parameters:

- `association_identifier` (`string`, required): The ID of the association definition to delete. Get it from hubspot_schema_get.
- `object_type_id` (`string`, required): The fully qualified name or ID of the custom object type that owns the association.

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

Retrieve the full schema definition (properties, associations, labels) for a single custom object type.

Parameters:

- `object_type` (`string`, required): Fully qualified name or object type ID of the schema to retrieve.
- `include_association_definitions` (`boolean`, optional): Whether to include association definitions in the response. Defaults to true.
- `include_audit_metadata` (`boolean`, optional): Whether to include audit metadata (created/updated by) in the response. Defaults to true.
- `include_property_definitions` (`boolean`, optional): Whether to include property definitions in the response. Defaults to true.

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

Retrieve multiple custom object schemas at once by object type, in a single batch request.

Parameters:

- `inputs` (`string`, required): JSON array of object type names or IDs to fetch schemas for. Pass as a JSON array via the SDK, not as a string.
- `include_association_definitions` (`boolean`, optional): Whether to include association definitions in the response.
- `include_audit_metadata` (`boolean`, optional): Whether to include audit metadata in the response.
- `include_property_definitions` (`boolean`, optional): Whether to include property definitions in the response.

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

Archive (soft-delete) a website (site) page in HubSpot CMS by page ID. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the site page to archive.
- `archived` (`boolean`, optional): If true, request a permanent hard-delete of an already-archived page instead of a soft-delete/archive. HubSpot currently rejects hard deletes for pages ('Hard deletes of objects are not supported'), so leave this false/unset for a normal archive.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_page_create`

Create a new website (site) page in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `name` (`string`, required): Title of the page.
- `template_path` (`string`, required): Path to the template used to render the page (without a leading slash).
- `additional_properties` (`object`, optional): Additional raw HubSpot page fields to merge into the request (e.g. layoutSections, widgets, translations, archivedAt).
- `author_name` (`string`, optional): Name of the content author to display.
- `campaign` (`string`, optional): HubSpot marketing campaign GUID to associate with this page.
- `domain` (`string`, optional): Custom domain to publish the page on. Leave blank to use the primary domain.
- `featured_image` (`string`, optional): URL of the featured image.
- `featured_image_alt_text` (`string`, optional): Alt text for the featured image.
- `html_title` (`string`, optional): Browser tab / SEO title for the page.
- `language` (`string`, optional): ISO 639 language code for this page (used for multi-language variants).
- `meta_description` (`string`, optional): SEO meta description for the page.
- `publish_date` (`string`, optional): ISO 8601 datetime to schedule publishing.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL path segment for the page.
- `state` (`string`, optional): Current state of the page (e.g. DRAFT, PUBLISHED, SCHEDULED).
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `use_featured_image` (`boolean`, optional): Whether to show a featured image on the page.

### `hubspot_site_page_get`

Retrieve a single website (site) page from HubSpot CMS by its page ID. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the site page to retrieve.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `property` (`string`, optional): Comma-separated list of page properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_page_revision_get`

Retrieve a specific historical revision of a website (site) page by revision ID. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the site page.
- `revision_id` (`string`, required): ID of the specific revision to retrieve.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_page_revision_restore`

Restore a website (site) page to a previous revision. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the site page.
- `revision_id` (`string`, required): ID of the revision to restore.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_page_revisions_list`

List the revision history of a website (site) page in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the site page whose revisions to list.
- `after` (`string`, optional): Pagination cursor for the next page of results.
- `before` (`string`, optional): Pagination cursor for the previous page of results.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 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_site_page_update`

Update an existing website (site) page in HubSpot CMS by page ID. Only provided fields are changed. Requires the 'content' scope.

Parameters:

- `page_id` (`string`, required): ID of the site page to update.
- `additional_properties` (`object`, optional): Additional raw HubSpot page fields to merge into the request (e.g. layoutSections, widgets, translations, archivedAt).
- `author_name` (`string`, optional): Name of the content author to display.
- `campaign` (`string`, optional): HubSpot marketing campaign GUID to associate with this page.
- `domain` (`string`, optional): Custom domain to publish the page on. Leave blank to use the primary domain.
- `featured_image` (`string`, optional): URL of the featured image.
- `featured_image_alt_text` (`string`, optional): Alt text for the featured image.
- `html_title` (`string`, optional): Browser tab / SEO title for the page.
- `language` (`string`, optional): ISO 639 language code for this page (used for multi-language variants).
- `meta_description` (`string`, optional): SEO meta description for the page.
- `name` (`string`, optional): Title of the page.
- `publish_date` (`string`, optional): ISO 8601 datetime to schedule publishing.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `slug` (`string`, optional): URL path segment for the page.
- `state` (`string`, optional): Current state of the page (e.g. DRAFT, PUBLISHED, SCHEDULED).
- `template_path` (`string`, optional): Path to the template used to render the page (without a leading slash).
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `use_featured_image` (`boolean`, optional): Whether to show a featured image on the page.

### `hubspot_site_pages_batch_archive`

Archive multiple website (site) pages in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of page IDs (strings) to archive, e.g. ["<page_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_pages_batch_create`

Create multiple website (site) pages in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item is a full page object, e.g. {"name": "...", "templatePath": "...", "slug": "..."}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_pages_batch_read`

Retrieve multiple website (site) pages by ID in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array of page IDs (strings) to fetch, e.g. ["<page_id>", ...].
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_pages_batch_update`

Update multiple website (site) pages in a single request (up to 100). Requires the 'content' scope.

Parameters:

- `inputs` (`string`, required): JSON array for the batch request. Each item: {"id": "<page_id>", ...fields to update}.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_pages_list`

List website (site) pages in HubSpot CMS. Supports pagination, sorting, and archived/date-range filtering. Requires the 'content' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_at` (`string`, optional): Return records created at exactly this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `property` (`string`, optional): Comma-separated list of page properties to include in the response.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`array`, optional): Fields to sort results by; prefix a field with '-' for descending order. Multiple fields are applied in order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_at` (`string`, optional): Return records updated at exactly this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

### `hubspot_site_search`

Run a full-text search across a HubSpot-hosted website's public pages, blog posts, and knowledge base articles using the legacy Content Search v2 API (the same index that powers the on-site search widget). Requires the portal's Hub ID (use hubspot_account_details_get to look it up) and the 'content' scope. For the newer, richer v3 endpoint see hubspot_site_search_v3.

Parameters:

- `portal_id` (`string`, required): The Hub ID (portal ID) of the HubSpot account to search against.
- `term` (`string`, required): Search term to run against the site's indexed content.
- `analytics` (`boolean`, optional): Whether to enable tracking links in results for site search analytics.
- `autocomplete` (`boolean`, optional): Whether to run the query in autocomplete mode (matches partial terms as-you-type).
- `boost_recent` (`string`, optional): Time window used to boost recently published/updated content in the ranking.
- `content_types` (`array`, optional): Restrict results to one or more content types.
- `domain` (`array`, optional): Restrict results to one or more domains, for accounts with multiple sites.
- `group_id` (`array`, optional): Restrict results to one or more content group (blog) IDs.
- `hubdb_query` (`string`, optional): Additional HubDB-specific query used to filter results when searching a table via table_id.
- `language` (`string`, optional): Restrict results to a specific document language.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `match_prefix` (`boolean`, optional): Inverts the path_prefix filter's default matching behavior.
- `max_boost` (`number`, optional): Maximum multiplier applied by the popularity boost.
- `offset` (`integer`, optional): Number of results to skip, for pagination.
- `path_prefix` (`array`, optional): Restrict results to URLs starting with one or more path prefixes (max 30 characters each).
- `popularity_boost` (`number`, optional): Weight applied to boost more popular (higher-traffic) content in the ranking.
- `properties` (`array`, optional): Restrict full-text matching to specific content properties instead of all indexed fields.
- `result_length` (`string`, optional): Controls how much of the result description/snippet is returned.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `table_id` (`string`, optional): HubDB table ID to scope the search to, for searching dynamic pages backed by that table.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_search_indexed_data_get`

Retrieve the indexed search data HubSpot has stored for a specific content asset by ID. Useful for debugging why a particular page, post, or article is not being returned from a site search query. Requires the 'content' scope.

Parameters:

- `content_id` (`string`, required): ID of the content asset (page, post, or article) to fetch indexed search data for.
- `content_type` (`string`, optional): Restrict the lookup to a specific content type.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_site_search_v3`

Run a full-text search across a HubSpot-hosted website's public pages, blog posts, and knowledge base articles using the v3 site search API. Richer than hubspot_site_search (v2): supports content-type filtering, path prefix, language, popularity/recency boosting, and HubDB dynamic page queries. Requires the 'site-search-read' scope (not 'content').

Parameters:

- `analytics` (`boolean`, optional): Whether to record this request in HubSpot's site search analytics.
- `autocomplete` (`boolean`, optional): Whether to run the query in autocomplete mode (matches partial terms as-you-type).
- `boost_limit` (`number`, optional): Maximum number of top results eligible for recency/popularity boosting.
- `boost_recent` (`string`, optional): Weight search results by recency.
- `content_type` (`array`, optional): Restrict results to a single content type (legacy alias; prefer content_types for the validated enum).
- `content_types` (`array`, optional): Restrict results to one or more content types.
- `domain` (`array`, optional): Restrict results to one or more domains, for accounts with multiple sites.
- `group_id` (`array`, optional): Restrict results to one or more content group (blog) IDs.
- `hubdb_query` (`string`, optional): Additional HubDB-specific query string, for searching dynamic pages backed by a HubDB table.
- `language` (`string`, optional): Restrict results to a specific document language.
- `limit` (`integer`, optional): Maximum number of results to return per page.
- `match_prefix` (`boolean`, optional): Whether to match the search term as a prefix rather than a whole-word/phrase match.
- `offset` (`integer`, optional): Number of results to skip, for pagination.
- `path_prefix` (`array`, optional): Restrict results to URLs starting with one or more path prefixes.
- `popularity_boost` (`number`, optional): Weight search results by page popularity/traffic.
- `properties` (`array`, optional): Restrict full-text matching to specific content properties instead of all indexed fields.
- `q` (`string`, optional): Search term to run against the site's indexed content.
- `result_length` (`string`, optional): Controls how much of the result description/snippet is returned.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `table_id` (`integer`, optional): HubDB table ID to scope the search to, for searching dynamic pages backed by that table.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_source_code_content_get`

Download the raw content of a file in the HubSpot CMS Developer File System (themes, templates, modules, CSS/JS). Returns the file's raw bytes/text, not a JSON object. Requires the 'content' scope.

Parameters:

- `environment` (`string`, required): Whether to download the file from the draft (unpublished) or published (live) file system.
- `path` (`string`, required): Path to the file in the Developer File System, without a leading slash.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_source_code_delete`

Permanently delete a file from the HubSpot CMS Developer File System (themes, templates, modules, CSS/JS). Requires the 'content' scope.

Parameters:

- `environment` (`string`, required): Whether to delete the file from the draft (unpublished) or published (live) file system.
- `path` (`string`, required): Path to the file to delete in the Developer File System, without a leading slash.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_source_code_extract`

Asynchronously extract a zip package already uploaded to the HubSpot CMS Developer File System, unpacking its contents in place into the containing folder. Requires the 'content' scope.

Parameters:

- `path` (`string`, required): Path to the zip file to extract in the Developer File System, without a leading slash.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_source_code_metadata_get`

Fetch metadata (timestamps, size, folder structure) for a file or folder in the HubSpot CMS Developer File System (themes, templates, modules, CSS/JS). Requires the 'content' scope.

Parameters:

- `environment` (`string`, required): Whether to look up the file in the draft (unpublished) or published (live) file system.
- `path` (`string`, required): Path to the file or folder in the Developer File System, without a leading slash.
- `properties` (`string`, optional): Comma-separated list of additional metadata properties to retrieve.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

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

Archive (soft delete) a single task by ID. Archived records can typically be restored within 90 days.

Parameters:

- `task_id` (`string`, required): The ID of the task to delete.

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

Retrieve a plain paginated list of tasks from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_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_delete`

Archive (soft delete) a single ticket by ID. Archived records can typically be restored within 90 days.

Parameters:

- `ticket_id` (`string`, required): The ID of the ticket to delete.

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

Retrieve a plain paginated list of tickets from HubSpot, without search filters.

Parameters:

- `after` (`string`, optional): Pagination cursor from the previous response's paging.next.after field.
- `archived` (`boolean`, optional): Whether to include archived records 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_tickets_merge`

Merge two support tickets into one, keeping the primary ticket.

Parameters:

- `object_id_to_merge` (`string`, required): The ID of the ticket to merge into the primary (this ticket will be removed).
- `primary_object_id` (`string`, required): The ID of the ticket to keep as primary after the merge.

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

Send a single custom timeline event onto a CRM record's timeline, using a previously created event template.

Parameters:

- `event_template_id` (`string`, required): The ID of the event template this event is an instance of. Get it from hubspot_timeline_event_templates_list.
- `tokens` (`string`, required): Key-value pairs matching the tokens defined on the event template. Pass as a JSON object via the SDK, not as a string.
- `email` (`string`, optional): Email address to identify the contact, if the event is for a contact and object_id is not known.
- `extra_data` (`string`, optional): Additional event-specific data available to the template's markdown, as a JSON object.
- `id` (`string`, optional): Optional unique identifier for this event. Leave empty to let HubSpot generate one. `{{uuid}}` anywhere in the value generates a unique string.
- `object_id` (`string`, optional): The CRM object ID the event should appear on. Required for every object type except contacts.
- `utk` (`string`, optional): The HubSpot user token (hubspotutk cookie value) to identify the contact instead of object_id or email.

### `hubspot_timeline_event_get`

Retrieve a single timeline event instance by its template ID and event ID.

Parameters:

- `event_id` (`string`, required): The ID of the event instance to retrieve.
- `event_template_id` (`string`, required): The ID of the event template the event was created from.

### `hubspot_timeline_event_template_create`

Create a new timeline event template for an app, defining how future events of this type render on a CRM record's timeline.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that will own this template.
- `name` (`string`, required): The template name.
- `object_type` (`string`, required): The type of CRM object this template is for. Contacts, companies, tickets, and deals are supported.
- `tokens` (`string`, required): JSON array of token definitions usable in the template markdown. Each needs name, label, and type (string, number, date, enumeration). Pass as a JSON array via the SDK, not as a string.
- `detail_template` (`string`, optional): Markdown with Handlebars tokens rendered when the timeline entry is expanded.
- `header_template` (`string`, optional): Markdown with Handlebars tokens rendered as the timeline entry header.

### `hubspot_timeline_event_template_delete`

Delete a timeline event template. Existing events created from it are not removed.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the template.
- `event_template_id` (`string`, required): The ID of the event template to delete.

### `hubspot_timeline_event_template_get`

Retrieve a single timeline event template by ID.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the template.
- `event_template_id` (`string`, required): The ID of the event template to retrieve.

### `hubspot_timeline_event_template_token_create`

Add a new token (custom property placeholder) to an existing timeline event template.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the template.
- `event_template_id` (`string`, required): The ID of the event template to add the token to.
- `label` (`string`, required): Label used for list segmentation and reporting.
- `name` (`string`, required): Unique token name referenced in the templates. Alphanumeric, periods, dashes, or underscores only.
- `type` (`string`, required): The data type of the token.
- `object_property_name` (`string`, optional): The name of the CRM object property this token should populate, if any.
- `options` (`string`, optional): If type is enumeration, the list of {label, value} options to choose from. Pass as a JSON array via the SDK, not as a string.

### `hubspot_timeline_event_template_token_delete`

Delete a token from a timeline event template.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the template.
- `event_template_id` (`string`, required): The ID of the event template the token belongs to.
- `token_name` (`string`, required): The name of the token to delete.

### `hubspot_timeline_event_template_token_update`

Update an existing token on a timeline event template.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the template.
- `event_template_id` (`string`, required): The ID of the event template the token belongs to.
- `token_name` (`string`, required): The name of the token to update.
- `label` (`string`, optional): New label for the token.
- `options` (`string`, optional): New list of {label, value} options if type is enumeration. Pass as a JSON array via the SDK, not as a string.

### `hubspot_timeline_event_template_update`

Update an existing timeline event template's name or rendering templates.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the template.
- `event_template_id` (`string`, required): The ID of the event template to update.
- `detail_template` (`string`, optional): New detail markdown template.
- `header_template` (`string`, optional): New header markdown template.
- `name` (`string`, optional): New template name.

### `hubspot_timeline_event_templates_list`

Retrieve all timeline event templates defined for an app.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the event templates.

### `hubspot_timeline_events_batch_create`

Send multiple custom timeline events in a single batch call.

Parameters:

- `inputs` (`string`, required): JSON array of timeline event objects to create. Each needs eventTemplateId, tokens, and one of objectId/email/utk. Pass as a JSON array via the SDK, not as a string.

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

Create a new URL redirect rule in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `destination` (`string`, required): The URL the visitor is redirected to when routePrefix matches.
- `route_prefix` (`string`, required): The incoming URL, path, or pattern to match for redirection.
- `content_group_id` (`string`, optional): ID of a blog (content group) this redirect is scoped to, if it should only apply within that blog.
- `is_match_full_url` (`boolean`, optional): If true, routePrefix must match the entire URL, not just the path.
- `is_match_query_string` (`boolean`, optional): If true, the query string must also match.
- `is_only_after_not_found` (`boolean`, optional): If true, this redirect only applies when no matching page/post is found.
- `is_pattern` (`boolean`, optional): If true, routePrefix is treated as a wildcard pattern rather than an exact path.
- `is_protocol_agnostic` (`boolean`, optional): If true, the redirect matches regardless of http/https.
- `is_regex` (`boolean`, optional): If true, route_prefix is interpreted as a regular expression rather than a literal path/pattern.
- `is_trailing_slash_optional` (`boolean`, optional): If true, a trailing slash on the incoming URL is optional.
- `label` (`string`, optional): Internal label to help identify this redirect rule in the HubSpot UI.
- `name` (`string`, optional): Internal name for this redirect rule (distinct from the label shown in the UI).
- `note` (`string`, optional): Free-text internal note about why this redirect exists.
- `precedence` (`integer`, optional): Order in which this redirect is evaluated relative to others (lower runs first).
- `redirect_style` (`integer`, optional): HTTP redirect type: 301 (permanent), 302 (temporary), or 305 (proxy).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_url_redirect_delete`

Permanently delete a URL redirect rule from HubSpot CMS by its ID. Requires the 'content' scope.

Parameters:

- `url_redirect_id` (`string`, required): ID of the URL redirect rule to delete.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_url_redirect_get`

Retrieve a single URL redirect rule from HubSpot CMS by its ID. Requires the 'content' scope.

Parameters:

- `url_redirect_id` (`string`, required): ID of the URL redirect rule to retrieve.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_url_redirect_update`

Update an existing URL redirect rule in HubSpot CMS by its ID. Only provided fields are changed. Requires the 'content' scope.

Parameters:

- `url_redirect_id` (`string`, required): ID of the URL redirect rule to update.
- `content_group_id` (`string`, optional): ID of a blog (content group) this redirect is scoped to, if it should only apply within that blog.
- `destination` (`string`, optional): The URL the visitor is redirected to when routePrefix matches.
- `is_match_full_url` (`boolean`, optional): If true, routePrefix must match the entire URL, not just the path.
- `is_match_query_string` (`boolean`, optional): If true, the query string must also match.
- `is_only_after_not_found` (`boolean`, optional): If true, this redirect only applies when no matching page/post is found.
- `is_pattern` (`boolean`, optional): If true, routePrefix is treated as a wildcard pattern rather than an exact path.
- `is_protocol_agnostic` (`boolean`, optional): If true, the redirect matches regardless of http/https.
- `is_regex` (`boolean`, optional): If true, route_prefix is interpreted as a regular expression rather than a literal path/pattern.
- `is_trailing_slash_optional` (`boolean`, optional): If true, a trailing slash on the incoming URL is optional.
- `label` (`string`, optional): Internal label to help identify this redirect rule in the HubSpot UI.
- `name` (`string`, optional): Internal name for this redirect rule (distinct from the label shown in the UI).
- `note` (`string`, optional): Free-text internal note about why this redirect exists.
- `precedence` (`integer`, optional): Order in which this redirect is evaluated relative to others (lower runs first).
- `redirect_style` (`integer`, optional): HTTP redirect type: 301 (permanent), 302 (temporary), or 305 (proxy).
- `route_prefix` (`string`, optional): The incoming URL, path, or pattern to match for redirection.
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `tool_version` (`string`, optional): Optional tool version to use for execution.

### `hubspot_url_redirects_list`

List URL redirect rules configured in HubSpot CMS. Requires the 'content' scope.

Parameters:

- `after` (`string`, optional): Pagination cursor for the next page of results.
- `archived` (`boolean`, optional): If true, return only archived (soft-deleted) records.
- `created_after` (`string`, optional): Return records created on or after this ISO 8601 datetime.
- `created_before` (`string`, optional): Return records created on or before this ISO 8601 datetime.
- `limit` (`integer`, optional): Maximum number of results to return per page (max 100).
- `schema_version` (`string`, optional): Optional schema version to use for tool execution.
- `sort` (`string`, optional): Property to sort results by; prefix with '-' for descending order.
- `tool_version` (`string`, optional): Optional tool version to use for execution.
- `updated_after` (`string`, optional): Return records updated on or after this ISO 8601 datetime.
- `updated_before` (`string`, optional): Return records updated on or before this ISO 8601 datetime.

### `hubspot_user_create`

Provision a new user in the HubSpot account via the Settings User Provisioning API. Requires an email address; optionally assigns a permission set (role), primary/secondary teams, and controls whether a welcome email is sent.

Parameters:

- `email` (`string`, required): Email address of the user to create.
- `primary_team_id` (`string`, optional): ID of the team to set as the user's primary team.
- `role_id` (`string`, optional): ID of the permission set (role) to assign to the user.
- `schema_version` (`string`, optional): Schema version
- `secondary_team_ids` (`array`, optional): IDs of additional teams the user should belong to.
- `send_welcome_email` (`boolean`, optional): Whether to send the user a welcome email prompting them to set a password and log in. Defaults to true.
- `tool_version` (`string`, optional): Tool version

### `hubspot_user_delete`

Permanently remove (deprovision) a user from the HubSpot account via the Settings User Provisioning API. This does not deactivate a paid seat — it removes the user's access entirely.

Parameters:

- `user_id` (`string`, required): User ID (or email, if id_property is EMAIL) of the user to remove.
- `id_property` (`string`, optional): How to interpret user_id — as a user ID or email address.
- `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_user_update`

Modify an existing HubSpot user's role/permission set, primary team, secondary teams, or super admin status via the Settings User Provisioning API.

Parameters:

- `user_id` (`string`, required): User ID (or email, if id_property is EMAIL) of the user to update.
- `id_property` (`string`, optional): How to interpret user_id — as a user ID or email address.
- `primary_team_id` (`string`, optional): ID of the team to set as the user's primary team.
- `role_id` (`string`, optional): ID of the permission set (role) to assign to the user.
- `schema_version` (`string`, optional): Schema version
- `secondary_team_ids` (`array`, optional): IDs of additional teams the user should belong to. Replaces the existing set.
- `super_admin` (`boolean`, optional): Whether the user should be granted super admin status.
- `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_webhook_settings_delete`

Delete an app's webhook settings, stopping all webhook delivery for that app.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app whose webhook settings should be removed.

### `hubspot_webhook_settings_get`

Retrieve the current webhook target URL and throttling settings for an app.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app to look up webhook settings for.

### `hubspot_webhook_settings_update`

Create or update the webhook target URL and throttling settings for an app. HubSpot delivers all subscribed events to this URL.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app to configure webhook settings for.
- `max_concurrent_requests` (`integer`, required): Maximum number of concurrent webhook requests HubSpot should send.
- `period` (`string`, required): The throttling time window. Accepted values: SECONDLY, ROLLING_MINUTE.
- `target_url` (`string`, required): A publicly reachable URL where HubSpot will POST event payloads.

### `hubspot_webhook_subscription_create`

Create a new webhook event subscription for an app, so HubSpot delivers matching events to the app's configured target URL.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app to add the subscription to.
- `event_type` (`string`, required): Type of CRM event to listen for, e.g. contact.creation, contact.propertyChange, deal.creation, deal.propertyChange, company.merge, deal.deletion.
- `active` (`boolean`, optional): Whether the subscription is active immediately. Defaults to false (paused) if omitted.
- `property_name` (`string`, optional): Required when event_type is a propertyChange event: the property to watch for changes.

### `hubspot_webhook_subscription_delete`

Delete a webhook event subscription.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the subscription.
- `subscription_id` (`integer`, required): The ID of the webhook subscription to delete.

### `hubspot_webhook_subscription_get`

Retrieve a single webhook event subscription by ID.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the subscription.
- `subscription_id` (`integer`, required): The ID of the webhook subscription to retrieve.

### `hubspot_webhook_subscription_update`

Activate or pause a single webhook event subscription.

Parameters:

- `active` (`boolean`, required): Set to true to activate the subscription, false to pause it.
- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the subscription.
- `subscription_id` (`integer`, required): The ID of the webhook subscription to update.

### `hubspot_webhook_subscriptions_batch_update`

Update multiple webhook subscriptions (e.g. activate or pause) for an app in a single batch call.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app that owns the subscriptions.
- `inputs` (`string`, required): JSON array of {"id": "<subscription_id>", "active": <bool>} objects. Pass as a JSON array via the SDK, not as a string.

### `hubspot_webhook_subscriptions_list`

Retrieve all webhook event subscriptions configured for an app.

Parameters:

- `app_id` (`integer`, required): The ID of the HubSpot developer app to list subscriptions for.

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

Retrieve performance metrics (enrollment and completion counts over time) for a single automation workflow.

Parameters:

- `flow_id` (`string`, required): The ID of the workflow to retrieve performance metrics for.
- `bucket_type` (`string`, optional): How to bucket the performance data. Accepted values: DAY, WEEK, MONTH.
- `end` (`integer`, optional): End of the reporting window, as epoch milliseconds.
- `start` (`integer`, optional): Start of the reporting window, as epoch milliseconds.

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

Retrieve multiple automation workflows (flows) at once by ID, in a single batch request.

Parameters:

- `flow_ids` (`string`, required): JSON array of workflow (flow) IDs to fetch. Pass as a JSON array via the SDK, not as a string.

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