> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# HubSpot Integration for AI Agents & Workflows

> HubSpot CRM integration: contacts, companies, deals, tickets, and engagement (note/task/meeting) management. Uses the hubspot-api-client SDK.

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/hubspot.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=a0c4f0f00631e9982f32289ab6616e70" alt="HubSpot logo" width="72" height="72" data-path="logos/hubspot.svg" />

## Overview

Add **HubSpot** to any ModuleX agent or workflow. HubSpot CRM integration via the **synchronous** `hubspot-api-client` SDK. 26 actions across contacts, companies, deals, tickets, plus engagement (note/task/meeting) and property management.

<Info>
  **Categories**: CRM · Sales · Marketing · **Auth**: OAuth2, Private App Access Token · **Actions**: 26
</Info>

## Authentication

<Tabs>
  <Tab title="OAuth2">
    ### OAuth2 Authentication

    Connect using HubSpot OAuth (recommended for most use cases)

    #### Required Credentials

    | Field         | Description                     | Required | Format                                 |
    | ------------- | ------------------------------- | -------- | -------------------------------------- |
    | Client ID     | HubSpot OAuth App Client ID     | Yes      | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` |
    | Client Secret | HubSpot OAuth App Client Secret | Yes      | `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` |

    #### OAuth Configuration

    * **Authorization URL**: `https://app.hubspot.com/oauth/authorize`
    * **Token URL**: `https://api.hubapi.com/oauth/v1/token`
    * **Scopes**: `crm.objects.contacts.read`, `crm.objects.contacts.write`, `crm.objects.companies.read`, `crm.objects.companies.write`, `crm.objects.deals.read`, `crm.objects.deals.write`, `tickets`, `crm.schemas.contacts.read`, `crm.schemas.companies.read`, `crm.schemas.deals.read`
  </Tab>

  <Tab title="Private App Access Token">
    ### Private App Access Token

    Use a HubSpot Private App access token for authentication

    #### Required Credentials

    | Field        | Description                      | Required | Format                                         |
    | ------------ | -------------------------------- | -------- | ---------------------------------------------- |
    | Access Token | HubSpot Private App access token | Yes      | `pat-eu1-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` |
  </Tab>
</Tabs>

## Available Actions

<AccordionGroup>
  <Accordion title="get_recent_contacts — List recently modified contacts (sort: lastmodifieddate DESC)">
    ### Parameters

    <ResponseField name="limit" type="integer">
      Maximum results to return (Default: `10`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "contacts": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Contacts",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetRecentContactsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_contact_by_id — Retrieve a contact by its HubSpot ID">
    ### Parameters

    <ResponseField name="contact_id" type="string" required>
      HubSpot contact ID
    </ResponseField>

    <ResponseField name="properties" type="array">
      Properties to retrieve (None = default property set)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetContactByIdOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_contact — Create a new contact (email required)">
    ### Parameters

    <ResponseField name="email" type="string" required>
      Contact email address
    </ResponseField>

    <ResponseField name="firstname" type="string">
      First name
    </ResponseField>

    <ResponseField name="lastname" type="string">
      Last name
    </ResponseField>

    <ResponseField name="phone" type="string">
      Phone number
    </ResponseField>

    <ResponseField name="company" type="string">
      Company
    </ResponseField>

    <ResponseField name="website" type="string">
      Website URL
    </ResponseField>

    <ResponseField name="properties" type="object">
      Additional properties to set
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateContactOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_contact — Update a contact's properties">
    ### Parameters

    <ResponseField name="contact_id" type="string" required>
      HubSpot contact ID
    </ResponseField>

    <ResponseField name="properties" type="object" required>
      Properties to update
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateContactOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_contacts — Search contacts by query string">
    ### Parameters

    <ResponseField name="query" type="string" required>
      Search query string
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Maximum results to return (Default: `10`)
    </ResponseField>

    <ResponseField name="properties" type="array">
      Properties to retrieve (None = default property set)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "contacts": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Contacts",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchContactsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_recent_companies — List recently modified companies">
    ### Parameters

    <ResponseField name="limit" type="integer">
      Maximum results to return (Default: `10`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "companies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Companies",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetRecentCompaniesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_company_by_id — Retrieve a company by its HubSpot ID">
    ### Parameters

    <ResponseField name="company_id" type="string" required>
      HubSpot company ID
    </ResponseField>

    <ResponseField name="properties" type="array">
      Properties to retrieve (None = default property set)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetCompanyByIdOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_company — Create a new company (name required)">
    ### Parameters

    <ResponseField name="name" type="string" required>
      Company name
    </ResponseField>

    <ResponseField name="domain" type="string">
      Primary domain
    </ResponseField>

    <ResponseField name="industry" type="string">
      Industry
    </ResponseField>

    <ResponseField name="phone" type="string">
      Phone number
    </ResponseField>

    <ResponseField name="website" type="string">
      Website URL
    </ResponseField>

    <ResponseField name="properties" type="object">
      Additional properties
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateCompanyOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_company — Update a company's properties">
    ### Parameters

    <ResponseField name="company_id" type="string" required>
      HubSpot company ID
    </ResponseField>

    <ResponseField name="properties" type="object" required>
      Properties to update
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateCompanyOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_company_activity — Get the engagement history for a company (N+1: list associations, then GET each engagement)">
    ### Parameters

    <ResponseField name="company_id" type="string" required>
      HubSpot company ID
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "activities": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Activities",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetCompanyActivityOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_companies — Search companies by query string">
    ### Parameters

    <ResponseField name="query" type="string" required>
      Search query string
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Maximum results to return (Default: `10`)
    </ResponseField>

    <ResponseField name="properties" type="array">
      Properties to retrieve (None = default property set)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "companies": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Companies",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchCompaniesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_recent_deals — List recently modified deals">
    ### Parameters

    <ResponseField name="limit" type="integer">
      Maximum results to return (Default: `10`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "deals": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Deals",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetRecentDealsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_deal_by_id — Retrieve a deal by its HubSpot ID">
    ### Parameters

    <ResponseField name="deal_id" type="string" required>
      HubSpot deal ID
    </ResponseField>

    <ResponseField name="properties" type="array">
      Properties to retrieve (None = default property set)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetDealByIdOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_deal — Create a new deal (dealname required)">
    ### Parameters

    <ResponseField name="dealname" type="string" required>
      Deal name
    </ResponseField>

    <ResponseField name="pipeline" type="string">
      Pipeline ID
    </ResponseField>

    <ResponseField name="dealstage" type="string">
      Stage ID
    </ResponseField>

    <ResponseField name="amount" type="number">
      Deal amount
    </ResponseField>

    <ResponseField name="closedate" type="string">
      Expected close date (ISO 8601)
    </ResponseField>

    <ResponseField name="properties" type="object">
      Additional properties
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateDealOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_deal — Update a deal's properties">
    ### Parameters

    <ResponseField name="deal_id" type="string" required>
      HubSpot deal ID
    </ResponseField>

    <ResponseField name="properties" type="object" required>
      Properties to update
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateDealOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_deals — Search deals by query string">
    ### Parameters

    <ResponseField name="query" type="string" required>
      Search query string
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Maximum results to return (Default: `10`)
    </ResponseField>

    <ResponseField name="properties" type="array">
      Properties to retrieve (None = default property set)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "deals": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Deals",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchDealsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_recent_tickets — List recently modified tickets">
    ### Parameters

    <ResponseField name="limit" type="integer">
      Maximum results to return (Default: `10`)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "tickets": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Tickets",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetRecentTicketsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_ticket_by_id — Retrieve a ticket by its HubSpot ID">
    ### Parameters

    <ResponseField name="ticket_id" type="string" required>
      HubSpot ticket ID
    </ResponseField>

    <ResponseField name="properties" type="array">
      Properties to retrieve (None = default property set)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetTicketByIdOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_ticket — Create a new support ticket (subject required)">
    ### Parameters

    <ResponseField name="subject" type="string" required>
      Ticket subject
    </ResponseField>

    <ResponseField name="content" type="string">
      Ticket content
    </ResponseField>

    <ResponseField name="hs_pipeline" type="string">
      Pipeline ID
    </ResponseField>

    <ResponseField name="hs_pipeline_stage" type="string">
      Pipeline stage ID
    </ResponseField>

    <ResponseField name="hs_ticket_priority" type="string">
      LOW / MEDIUM / HIGH
    </ResponseField>

    <ResponseField name="properties" type="object">
      Additional properties
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateTicketOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="update_ticket — Update a ticket's properties">
    ### Parameters

    <ResponseField name="ticket_id" type="string" required>
      HubSpot ticket ID
    </ResponseField>

    <ResponseField name="properties" type="object" required>
      Properties to update
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "UpdateTicketOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="search_tickets — Search tickets by query string">
    ### Parameters

    <ResponseField name="query" type="string" required>
      Search query string
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Maximum results to return (Default: `10`)
    </ResponseField>

    <ResponseField name="properties" type="array">
      Properties to retrieve (None = default property set)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "tickets": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Tickets",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "SearchTicketsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_note — Create a note engagement (optionally associated with objects)">
    ### Parameters

    <ResponseField name="body" type="string" required>
      Note body content
    </ResponseField>

    <ResponseField name="contact_ids" type="array">
      Contact IDs to associate
    </ResponseField>

    <ResponseField name="company_ids" type="array">
      Company IDs to associate
    </ResponseField>

    <ResponseField name="deal_ids" type="array">
      Deal IDs to associate
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateNoteOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_task — Create a task engagement (subject required)">
    ### Parameters

    <ResponseField name="subject" type="string" required>
      Task subject
    </ResponseField>

    <ResponseField name="body" type="string">
      Task body
    </ResponseField>

    <ResponseField name="due_date" type="string">
      Due date (ISO 8601)
    </ResponseField>

    <ResponseField name="priority" type="string">
      Priority (NONE/LOW/MEDIUM/HIGH) (Default: `NONE`)
    </ResponseField>

    <ResponseField name="status" type="string">
      Status (NOT\_STARTED/IN\_PROGRESS/COMPLETED/etc.) (Default: `NOT_STARTED`)
    </ResponseField>

    <ResponseField name="contact_ids" type="array">
      Contact IDs to associate
    </ResponseField>

    <ResponseField name="company_ids" type="array">
      Company IDs to associate
    </ResponseField>

    <ResponseField name="deal_ids" type="array">
      Deal IDs to associate
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateTaskOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_meeting — Create a meeting engagement">
    ### Parameters

    <ResponseField name="title" type="string" required>
      Meeting title
    </ResponseField>

    <ResponseField name="start_time" type="string" required>
      Start time (ISO 8601 or epoch ms)
    </ResponseField>

    <ResponseField name="end_time" type="string" required>
      End time
    </ResponseField>

    <ResponseField name="body" type="string">
      Meeting body
    </ResponseField>

    <ResponseField name="contact_ids" type="array">
      Contact IDs to associate
    </ResponseField>

    <ResponseField name="company_ids" type="array">
      Company IDs to associate
    </ResponseField>

    <ResponseField name="deal_ids" type="array">
      Deal IDs to associate
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateMeetingOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="get_property — Get a single property definition by name">
    ### Parameters

    <ResponseField name="object_type" type="string" required>
      One of contacts/companies/deals/tickets
    </ResponseField>

    <ResponseField name="property_name" type="string" required>
      Property name to retrieve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "result": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Result"
        }
      },
      "required": [
        "success"
      ],
      "title": "GetPropertyOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_properties — List all property definitions for an object type">
    ### Parameters

    <ResponseField name="object_type" type="string" required>
      One of contacts/companies/deals/tickets
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "properties": {
          "type": "array",
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Properties"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListPropertiesOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Related integrations

<CardGroup cols={3}>
  <Card title="Clay" href="/integrations/tools/clay" />

  <Card title="Dropcontact" href="/integrations/tools/dropcontact" />

  <Card title="Insightly" href="/integrations/tools/insightly" />
</CardGroup>

## Links

* [HubSpot](https://www.hubspot.com)
