The catalogue/HubSpot

HubSpot

app.hubspot

Manage contacts, companies, deals, tickets, engagements, lists, and conversations in HubSpot CRM

OAuth 2otherRead the source
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.

hubspotcrmcontactsdealsticketssalesmarketingengagementspipelines
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.

Read the sourceBack to the catalogue

HubSpot · Agent Apps