The catalogue/HubSpot
HubSpot
app.hubspot
Manage contacts, companies, deals, tickets, engagements, lists, and conversations in HubSpot CRM
Version2.0.0
Categoryother
AuthOAuth 2
Tools35
Transportstdio
LicenceMIT
01
What it does
The app, in its own words.
HubSpot CRM integration — manage contacts, companies, deals, tickets, engagements, lists, and conversations via HubSpot REST API v3 with OAuth2.
02
Tools
35 tools the agent can call.
Every one is declared with typed parameters and returns structured results, so the host can render them instead of narrating them.
- create-associationCreate an association between two HubSpot CRM objects (e.g., contact-company, deal-contact). Uses v4 associations API. Params: fromObjectType, fromObjectId, toObjectType, toObjectId, associationType?
- create-companyCreate a new HubSpot company. Returns curated company shape. Not retryable. Params: name, domain?, industry?, type?, phone?, website?, city?, state?, country?, numberOfEmployees?, annualRevenue?, lifecycleStage?, properties?
- create-contactCreate a new HubSpot contact. Returns curated contact shape. Not retryable (no idempotency key). Params: email, firstName?, lastName?, phone?, company?, jobTitle?, website?, lifecycleStage?, properties?
- create-dealCreate a new HubSpot deal. Returns curated deal shape. Not retryable. Params: name, amount?, stage?, pipeline?, type?, closeDate?, probability?, description?, properties?
- create-engagementCreate a HubSpot engagement (call, email, meeting, note, task). Uses the v3 engagements API. Params: type (call|email|meeting|note|task), subject?, body?, status?, direction?, startTime?, duration?, associatedObjectType?, associatedObjectId?, properties?
- create-ticketCreate a new HubSpot ticket. Returns curated ticket shape. Not retryable. Params: subject, content?, status?, priority?, category?, pipeline?, stage?, source?, properties?
- delete-associationDelete an association between two HubSpot CRM objects. Params: fromObjectType, fromObjectId, toObjectType, toObjectId, associationType?
- delete-companyArchive (soft delete) a HubSpot company. Irreversible via API. Returns { success, companyId }.
- delete-contactArchive (soft delete) a HubSpot contact. Irreversible via API. Returns { success, contactId }.
- delete-dealArchive (soft delete) a HubSpot deal. Irreversible via API. Returns { success, dealId }.
- delete-engagementArchive (soft delete) a HubSpot engagement. Params: type (call|email|meeting|note|task), engagementId
- delete-ticketArchive (soft delete) a HubSpot ticket. Irreversible via API. Returns { success, ticketId }.
- get-companyRetrieve a HubSpot company by ID or domain. Returns curated { id, name, domain, industry, type, phone, website, city, state, country, numberOfEmployees, annualRevenue, lifecycleStage, createdAt, updatedAt }. Params: companyId, idProperty?
- get-contactRetrieve a HubSpot contact by ID or email. Returns curated { id, email, firstName, lastName, phone, company, jobTitle, website, lifecycleStage, leadStatus, createdAt, updatedAt }. Params: contactId, idProperty?
- get-conversationGet a HubSpot conversation by ID, including messages. Params: conversationId, includeMessages?
- get-dealRetrieve a HubSpot deal by ID. Returns curated { id, name, amount, stage, pipeline, type, closeDate, probability, description, source, createdAt, updatedAt }. Params: dealId
- get-engagementRetrieve a HubSpot engagement by ID. Params: type (call|email|meeting|note|task), engagementId
- get-listGet a specific HubSpot list by ID (CRM Lists v3). Params: listId
- get-pipelineGet a specific HubSpot pipeline by ID. Returns pipeline with stages. Params: objectType, pipelineId
- get-ticketRetrieve a HubSpot ticket by ID. Returns curated { id, subject, content, status, priority, category, pipeline, stage, source, createdAt, updatedAt }. Params: ticketId
- list-associationsList all associations for a HubSpot object. Params: objectType, objectId, toObjectType, limit?
- list-companiesList HubSpot companies with optional filters. Returns curated rows { id, name, domain, industry, type, phone, city, state, country, numberOfEmployees, lifecycleStage, createdAt }. Params: limit (1-100, def 50), after, properties?
- list-contactsList HubSpot contacts with optional filters. Returns curated rows { id, email, firstName, lastName, phone, company, jobTitle, lifecycleStage, createdAt }. Params: limit (1-100, def 50), after, properties?
- list-conversationsList HubSpot conversations (inbox) with optional filters. Returns curated rows. Params: limit?, after?, status?
- list-dealsList HubSpot deals with optional filters. Returns curated rows { id, name, amount, stage, pipeline, type, closeDate, probability, description, createdAt }. Params: limit (1-100, def 50), after, properties?
- list-engagementsList HubSpot engagements (calls, emails, meetings, notes, tasks). Params: type (call|email|meeting|note|task), limit?, after?
- list-listsList HubSpot lists (CRM Lists v3). Returns curated rows { id, name, processingType, dynamic, objectTypeId, createdAt, updatedAt, memberCount }. Params: limit?, offset?, processingType?
- list-pipelinesList HubSpot pipelines for deals or tickets. Returns pipeline definitions with stages. Params: objectType (deals or tickets), includeInactive?
- list-ticketsList HubSpot tickets with optional filters. Returns curated rows { id, subject, content, status, priority, category, pipeline, createdAt }. Params: limit (1-100, def 50), after, properties?
- searchSearch across HubSpot CRM objects (contacts, companies, deals) using the v3 search API. Returns curated results. Params: query, objectType, limit?, after?, sorts?, filters?
- send-conversation-messageSend a message in a HubSpot conversation (inbox reply). Params: conversationId, text, channelId?
- update-companyUpdate an existing HubSpot company. Idempotent per-field — safe to retry. Params: companyId, name?, domain?, industry?, type?, phone?, website?, city?, state?, country?, numberOfEmployees?, annualRevenue?, lifecycleStage?, properties?
- update-contactUpdate an existing HubSpot contact. Idempotent per-field — safe to retry. Params: contactId, email?, firstName?, lastName?, phone?, company?, jobTitle?, website?, lifecycleStage?, properties?
- update-dealUpdate an existing HubSpot deal. Idempotent per-field — safe to retry. Params: dealId, name?, amount?, stage?, pipeline?, type?, closeDate?, probability?, description?, properties?
- update-ticketUpdate an existing HubSpot ticket. Idempotent per-field — safe to retry. Params: ticketId, subject?, content?, status?, priority?, category?, pipeline?, stage?, source?, properties?
03
Auth and permissions
What it asks for.
Declared in the manifest, in advance. The app cannot reach anything it did not ask for here.
Scopes
oauthcrm.objects.contacts.readcrm.objects.contacts.writecrm.objects.companies.readcrm.objects.companies.writecrm.objects.deals.readcrm.objects.deals.writecrm.objects.owners.read
System secrets
CLIENT_IDCLIENT_SECRET
User secrets
ACCESS_TOKENREFRESH_TOKEN
Reading further
The manifest and the source for HubSpot live in the monorepo, alongside the other apps.