HubSpot
CRM, marketing, and sales pipelines.
Verdict
Common use cases
- Pull contact history during discovery calls
- Update deal stages after client meetings
- Archive stale leads in bulk weekly
- Associate landing pages with campaign IDs
- Audit pipeline health before forecast reviews
Integration
- Vendor
- HubSpot
- Category
- crm
- Auth
- OAUTH2
- Tools
- 50
- Composio slug
hubspot
Tools
- Add asset association
Associates an existing asset ('form', 'object list', or 'external web url') with a specified hubspot marketing campaign.
- Add token to event template
Adds a new custom data token to an existing event template for a specified hubspot application, optionally populating a crm object property if objectpropertyname is provided.
- Archive a batch of emails by ID
Archives multiple hubspot crm emails by id; ids must exist as archiving is irreversible.
- Archive a batch of quotes by id
Archives a batch of existing, non-archived quotes by their ids; this action is irreversible and useful for managing outdated or irrelevant quotes.
- Archive a CRM object by ID
Archives a specific hubspot crm object by its type and id, moving it to the recycling bin; this action is irreversible via the api but objects can often be restored via the hubspot ui.
- Archive batch of companies by id
Archives a batch of companies by their unique ids; targeted companies must exist, not be previously archived, and this api operation is irreversible.
- Archive batch of contacts by id
Archives a batch of existing contacts by their hubspot crm ids, rendering them inactive; this action is irreversible via the api and requires manual restoration or a separate unarchive endpoint.
- Archive batch of deals by id
Archives a batch of existing deals by their unique hubspot ids, removing them from active views and reports (soft delete); archived deals may be restorable.
- Archive batch of feedback submissions by id
Asynchronously archives a batch of hubspot feedback submissions using their unique ids, which must correspond to valid and existing submissions; the operation is queued, and submissions are moved from active views without being deleted.
- Archive batch of line items by id
Archives a batch of existing line items by their unique ids in hubspot crm; this operation is irreversible via the api.
- Archive batch of objects by id
Archives a batch of existing, non-archived crm objects of a specified `objecttype` by their ids, effectively hiding them from active use.
- Archive batch of properties
Archives a batch of properties by their internal names for a specified hubspot crm object type; this operation is idempotent and safe to retry.
- Archive batch of tickets by id
Archives a batch of existing, unarchived hubspot crm tickets by their unique ids.
- Archive batch products by id
Archives a batch of existing, unarchived hubspot products by their ids; this action is irreversible via the api.
- Archive company
Archives an existing company in hubspot crm by its `companyid`, moving it to a recycling bin from which it can be restored, rather than permanently deleting it.
- Archive contact by id
Archives a contact in hubspot crm by its id, moving it to the recycling bin; this is generally irreversible via api and removes the contact from active use.
- Archive email
Archives the hubspot email specified by `emailid` by moving it to the recycling bin, making it inaccessible unless restored.
- Archive emails
Archives multiple hubspot emails by their ids.
- Archive feedback submission
Archives an existing, non-archived feedback submission in hubspot crm by its id, moving it to the recycling bin (not permanently deleting it).
- Archive line item by id
Archives a specific hubspot line item by its id, moving it to a recoverable state.
- Archive product
Archives a hubspot product by its id.
- Archive product by product ID
Archives an existing product in hubspot crm by its `productid`, moving it to an archived state (irreversible via api) to remove it from active use while retaining its data.
- Archive products
Archives multiple hubspot products by their ids.
- Archive property by object type and name
Archives a specified crm property by its object type and name, moving it to the recycling bin; note that some default hubspot properties cannot be archived.
- Archive property group
Archives a hubspot property group, making it inactive and hidden (not permanently deleted, allowing potential restoration) with immediate effect on its crm visibility and usability.
- Archive quote object by id
Archives a hubspot quote object by id to the recycling bin; this is api-irreversible and may need manual restoration.
- Archive ticket
Archives a hubspot ticket by its id.
- Archive ticket by id
Archives an existing hubspot ticket by its id, moving it to the recycling bin; this is a permanent operation not undoable via the api.
- Archive tickets
Archives multiple hubspot tickets by their ids.
- Audit pipeline changes by id
Retrieves a reverse chronological audit log of all changes for a specific, existing hubspot crm pipeline, which is identified by its `pipelineid` and a valid `objecttype` that supports pipelines (e.g., 'deals', 'tickets').
- Batch read companies by properties
Batch-retrieves hubspot company records by their ids, allowing custom id properties, specific properties to fetch, and historical data.
- Batch update quotes
Updates multiple existing hubspot quotes in a batch; each quote is identified by its object id or a custom unique property (via `idproperty`), and only writable properties are modified.
- Campaign search
Searches for and retrieves a paginated list of hubspot marketing campaigns.
- Cancel active import
Cancels an active hubspot data import job using its `importid`; this action is irreversible, and any data already processed will remain.
- Clone marketing email
Duplicates an existing hubspot marketing email, identified by its `id`, into a new draft; an optional `clonename` can be assigned to this new email copy.
- Configure calling extension settings
Configures or updates settings for a hubspot app's calling extension, including its name, ui url, iframe dimensions, `isready` status, and `supportscustomobjects` flag, for the specified `appid`.
- Create a batch of campaigns
Creates up to 50 marketing campaigns in a single batch operation.
- Create a batch of companies
Creates multiple company records in hubspot crm in a single batch operation, processing up to 100 companies per request.
- Create a batch of emails
Creates multiple email objects for record-keeping (does not send emails) within hubspot crm in a single batch, allowing properties and associations to other crm objects to be set for each email.
- Create A/B test variation
Creates a new a/b test variation for an existing hubspot email, using its `contentid`; this action only creates the variation, it does not start the a/b test or send emails.
- Create a campaign
Creates a new marketing campaign in hubspot with the specified properties, returning the created campaign data including its `campaignguid`.
- Create a new marketing email
Creates a new marketing email in hubspot, allowing comprehensive configuration of content, recipients, sender details, a/b testing, scheduling, web version, and other settings; the internal `name` for the email is required.
- Create a new property group
Creates a new, empty property group for a specified crm object type in hubspot, requiring a unique group name for that object type; properties must be added separately.
- Create association for object type
Creates the *definition* (schema) of a new association in hubspot, specifying how two crm object types relate (not an actual link between records); any provided `name` must be unique for the `fromobjecttypeid` and `toobjecttypeid` pair.
- Create batch of contacts
Deprecated: use the `create batch of contacts` action instead. creates multiple hubspot contact records.
- Create batch of contacts
Creates up to 100 new contact records in hubspot crm, optionally associating them with existing crm objects; ensure associated object ids are valid.
- Create batch of deals
Creates multiple deals in hubspot crm; ensure any associated object ids, deal stages, and pipeline ids specified are valid and exist within the hubspot account.
- Create batch of feedback submissions
Creates a batch of feedback submissions in hubspot, ideal for bulk imports; all property names, `associationtypeid`s, and association `to id`s must reference existing entities in hubspot.
- Create email
Creates a new email engagement record in hubspot, requiring portal-specific `properties` (e.g., `hs timestamp` as a utc millisecond timestamp), and that association `to id`s and `associationtypeid`s are valid and existing.
- Read Batch Emails
Retrieves a batch of hubspot email objects by their internal ids or values of a specified unique property, allowing targeted property selection, including historical data.
Setup
Setup guide
- 11. In Switchy, open your workspace settings and navigate to the Integrations tab. 2. Find HubSpot in the MCP directory and click Connect. 3. You'll redirect to HubSpot's OAuth consent screen — log in with an account that has Super Admin or appropriate CRM permissions. 4. Grant the requested scopes: these typically include crm.objects.contacts.read, crm.objects.contacts.write, crm.objects.deals.read, crm.objects.deals.write, crm.objects.companies.read, crm.objects.companies.write, and marketing-email.read. 5. After authorizing, HubSpot redirects you back to Switchy with a success confirmation. 6. Open any Space and type '@HubSpot list recent deals' to test the connection. 7. If the MCP returns deal data, you're live — if it errors, revisit Integrations to confirm scopes were granted. 8. To invoke a tool, @mention HubSpot in a message and describe the task in plain language, like '@HubSpot archive these contact IDs: 12345, 67890'.
What teammates see: by default, memories from HubSpot are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Summarize Open Deals
@HubSpot list all deals currently in the 'Proposal Sent' stage and summarize their total value, owner, and days since last activity.Open in a Space →
Archive Closed-Lost Contacts
@HubSpot find contacts associated with deals closed-lost more than 90 days ago, then archive them in a batch.Open in a Space →
Link Form to Campaign
@HubSpot associate form ID 98765 with campaign ID 54321 so we can track lead sources accurately.Open in a Space →
Audit Recent Email Archives
@HubSpot show me all emails archived in the past seven days, including their subject lines and associated contact IDs.Open in a Space →
Add Token to Event Template
@HubSpot add a custom token named 'referral_source' to event template ID 11223 and map it to the contact property 'hs_analytics_source'.Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@hubspot show me all deals in the pipeline that closed in the last 30 days, grouped by owner
Found 14 deals closed in the last 30 days across 4 owners: **Sarah Chen (6 deals)** — $127,400 total value - Acme Corp renewal ($45K, closed Dec 18) - Widget Co expansion ($32K, closed Dec 22) - [4 more deals] **Marcus Liu (5 deals)** — $89,200 total **Priya Sharma (2 deals)** — $38,500 total **Jordan Wells (1 deal)** — $15,000 total This is an illustrative summary. Actual results depend on your HubSpot pipeline configuration and deal properties.
Demonstrates read access to deals and custom reporting. Requires OAuth scopes for CRM deals (crm.objects.deals.read). HubSpot's API returns raw deal records; the AI synthesizes grouping and totals. Rate limits apply at 100 requests per 10 seconds for most accounts.
@hubspot create a contact for jamie.torres@techstartup.io with company 'TechStartup Inc' and lifecycle stage 'Marketing Qualified Lead'
Created contact **Jamie Torres** (jamie.torres@techstartup.io) in HubSpot CRM. - **Contact ID:** 12847563 - **Company:** TechStartup Inc (associated) - **Lifecycle Stage:** Marketing Qualified Lead - **Created:** 2025-01-15 at 3:42 PM UTC Contact is now visible in your CRM and will appear in relevant lists and workflows based on your automation rules. This example shows a successful creation; actual response includes full property values and association details.
Showcases write capability for contacts and company associations. Requires crm.objects.contacts.write scope. Side-effect: triggers any active workflows tied to contact creation or lifecycle stage changes. Duplicate email addresses may cause conflicts depending on your HubSpot settings.
@hubspot review all open support tickets from the last week and draft a summary email for our customer success team highlighting urgent issues
Reviewed 23 open tickets created since Jan 8. Here's a draft summary: **Subject:** Weekly Support Escalation — 5 Urgent Items **High Priority (5 tickets):** - Ticket #4521: API timeout errors (Acme Corp, reported 4x) - Ticket #4518: Billing discrepancy $2,300 (Widget Co) - [3 more urgent items] **Medium Priority (12 tickets):** Feature requests and onboarding questions. **Low Priority (6 tickets):** Documentation clarifications. Recommend immediate follow-up on API timeout pattern — may indicate infrastructure issue. This draft synthesizes ticket data; verify details in HubSpot before sending.
Combines ticket retrieval with AI reasoning to surface patterns and draft communications. Requires crm.objects.tickets.read scope. The AI interprets priority from ticket properties (status, tags, SLA fields). Summary accuracy depends on consistent ticket tagging practices in your HubSpot account.
Use-case deep-dives
When HubSpot MCP replaces manual CRM updates after demos
A 10-person SaaS startup runs 30 demos a week. After each call, the AE updates the deal stage, logs notes, and creates follow-up tasks in HubSpot—usually 4 minutes of clicking. With this MCP, the team shares a Switchy workspace where Claude reads the demo transcript, writes the deal update, and queues the task creation. The AE reviews the batch in one pass and commits. This works because HubSpot's OAuth scope covers deals, contacts, and tasks without needing admin keys. The threshold: if your deal stages have complex conditional logic or require multi-object writes (like syncing to a custom object), you'll hit the 50-tool ceiling and need custom scripting. For straightforward pipeline hygiene at small-team scale, this MCP cuts CRM busywork by half.
Why this MCP wins for bulk contact enrichment workflows
A 6-person CS team preps for 80 quarterly business reviews each quarter. They pull contact records, check last-touch dates, and flag accounts missing recent activity. Doing this manually in HubSpot's UI takes 90 minutes. In Switchy, they prompt Claude to batch-fetch contacts by segment, surface the staleness flags, and draft the outreach sequence—all using the MCP's read and archive tools. The team reviews the list, archives dead leads in one shot (irreversible via API, so they double-check), and exports the live targets. This scenario works because HubSpot's batch operations handle up to a few hundred records without rate-limit drama. If you're running this on 5,000 contacts, expect slowdowns and consider a dedicated ETL tool instead. For mid-sized customer bases, this MCP makes QBR prep a 20-minute task.
When to use this MCP for campaign cleanup at scale
A 4-person marketing team runs 15 campaigns a quarter, each with forms, landing pages, and email templates scattered across HubSpot. At quarter-end, they audit which assets are still live and archive the rest to keep the workspace clean. Manually clicking through campaigns and disassociating assets takes 2 hours. With this MCP in Switchy, they ask Claude to list all campaign associations, flag assets older than 90 days with zero conversions, and batch-archive the dead weight. The MCP's 'add asset association' and archive tools handle the writes; the team spot-checks the list before committing. This works for teams under 50 campaigns per year—beyond that, HubSpot's API pagination and the MCP's 50-tool limit make this tedious. For small teams doing seasonal cleanup, this MCP turns a quarterly chore into a 15-minute review.
Frequently asked
What can the HubSpot MCP do in Switchy?
The HubSpot MCP gives your team read-write access to CRM objects (contacts, companies, deals, quotes), marketing campaigns, and email tracking directly from Switchy's chat. You can archive records, associate assets with campaigns, and manage event templates without opening HubSpot. It's built for teams who need CRM updates mid-conversation, not just reporting.
Do I need admin access to connect HubSpot via OAuth?
You need a HubSpot user account with permissions matching what you want Switchy to do. OAuth will ask for scopes like crm.objects.contacts.write and crm.objects.deals.read. If your HubSpot admin has locked down API access or specific object permissions, the connection will fail or tools will error out. Check with your admin before connecting.
Can the HubSpot MCP create new contacts or deals?
The 50 tools shown focus heavily on archiving and association tasks. While the MCP likely supports creating records (most HubSpot integrations do), the representative sample doesn't list explicit 'create contact' or 'create deal' tools. If creation is critical, test the connection first or ask Switchy support which CRUD operations are exposed.
Why use this instead of HubSpot's UI or Zapier?
Use the MCP when your team is already in Switchy discussing a lead or deal and needs to update HubSpot without context-switching. Zapier is better for scheduled workflows or multi-app chains. HubSpot's UI is better for bulk imports or complex reporting. The MCP shines for ad-hoc CRM writes triggered by conversation, not automation.
Who on the team should connect the HubSpot MCP?
Whoever owns your HubSpot account and understands which CRM objects your team touches daily. Sales ops or a team lead is ideal. Avoid connecting it with a personal account that might leave the company—OAuth tokens tied to departed users break integrations. One shared connection covers the whole Switchy workspace.