HubSpot CRM Automation via Rube MCP
Automate HubSpot CRM workflows including contact/company management, deal pipeline tracking, ticket search, and custom property creation through Composio's HubSpot toolkit.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active HubSpot connection via
RUBE_MANAGE_CONNECTIONS with toolkit hubspot
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit hubspot
- If connection is not ACTIVE, follow the returned auth link to complete HubSpot OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Create and Manage Contacts
When to use: User wants to create new contacts or update existing ones in HubSpot CRM
Tool sequence:
HUBSPOT_GET_ACCOUNT_INFO - Verify connection and permissions (Prerequisite)
HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA - Search for existing contacts to avoid duplicates (Prerequisite)
HUBSPOT_READ_A_CRM_PROPERTY_BY_NAME - Check property metadata for constrained values (Optional)
HUBSPOT_CREATE_CONTACT - Create a single contact (Required)
HUBSPOT_CREATE_CONTACTS - Batch create contacts up to 100 (Alternative)
Key parameters:
HUBSPOT_CREATE_CONTACT: properties object with email, firstname, lastname, phone, company
HUBSPOT_CREATE_CONTACTS: inputs array of {properties} objects, max 100 per batch
HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA: filterGroups array with {filters: [{propertyName, operator, value}]}, properties array of fields to return
Pitfalls:
- Max 100 records per batch; chunk larger imports
- 400 'Property values were not valid' if using incorrect property names or enum values
- Always search before creating to avoid duplicates
- Auth errors from GET_ACCOUNT_INFO mean all subsequent calls will fail
2. Manage Companies
When to use: User wants to create, search, or update company records
Tool sequence:
HUBSPOT_SEARCH_COMPANIES - Search existing companies (Prerequisite)
HUBSPOT_CREATE_COMPANIES - Batch create companies, max 100 (Required)
HUBSPOT_UPDATE_COMPANIES - Batch update existing companies (Alternative)
HUBSPOT_GET_COMPANY - Get single company details (Optional)
HUBSPOT_BATCH_READ_COMPANIES_BY_PROPERTIES - Bulk read companies by property values (Optional)
Key parameters:
HUBSPOT_CREATE_COMPANIES: inputs array of {properties} objects, max 100
HUBSPOT_SEARCH_COMPANIES: filterGroups, properties, sorts, limit, after (pagination cursor)
Pitfalls:
- Max 100 per batch; chunk larger sets
- Store returned IDs immediately for downstream operations
- Property values must match exact internal names, not display labels
3. Manage Deals and Pipeline
When to use: User wants to search deals, view pipeline stages, or track deal progress
Tool sequence:
HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE - Map pipeline and stage IDs/names (Prerequisite)
HUBSPOT_SEARCH_DEALS - Search deals with filters (Required)
HUBSPOT_RETRIEVE_PIPELINE_STAGES - Get stage details for one pipeline (Optional)
HUBSPOT_RETRIEVE_OWNERS - Get owner/rep details (Optional)
HUBSPOT_GET_DEAL - Get single deal details (Optional)
HUBSPOT_LIST_DEALS - List all deals without filters (Fallback)
Key parameters:
HUBSPOT_SEARCH_DEALS: filterGroups with filters on pipeline, dealstage, createdate, closedate, hubspot_owner_id; properties, sorts, limit, after
HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE: objectType set to 'deals'
Pitfalls:
- Results nested under
response.data.results; properties are often strings (amounts, dates)
- Stage IDs may be readable strings or opaque numeric IDs; use
label field for display
- Filters must use internal property names (
pipeline, dealstage, createdate), not display names
- Paginate via
paging.next.after until absent
4. Search and Filter Tickets
When to use: User wants to find support tickets by status, date, or criteria
Tool sequence:
HUBSPOT_SEARCH_TICKETS - Search with filterGroups (Required)
HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE - Discover available property names (Fallback)
HUBSPOT_GET_TICKET - Get single ticket details (Optional)
HUBSPOT_GET_TICKETS - Bulk fetch tickets by IDs (Optional)
Key parameters:
HUBSPOT_SEARCH_TICKETS: filterGroups, properties (only listed fields are returned), sorts, limit, after
Pitfalls:
- Incorrect
propertyName/operator returns zero results without errors
- Date filtering may require epoch-ms bounds; mixing formats causes mismatches
- On
1---2name: hubspot-automation3description: Automate HubSpot CRM operations (contacts, companies, deals, tickets, properties) via Rube MCP using Composio integration.4---567# HubSpot CRM Automation via Rube MCP89Automate HubSpot CRM workflows including contact/company management, deal pipeline tracking, ticket search, and custom property creation through Composio's HubSpot toolkit.1011## Prerequisites1213- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)14- Active HubSpot connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `hubspot`15- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1617## Setup1819**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.20211. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds222. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `hubspot`233. If connection is not ACTIVE, follow the returned auth link to complete HubSpot OAuth244. Confirm connection status shows ACTIVE before running any workflows2526## Core Workflows2728### 1. Create and Manage Contacts2930**When to use**: User wants to create new contacts or update existing ones in HubSpot CRM3132**Tool sequence**:331. `HUBSPOT_GET_ACCOUNT_INFO` - Verify connection and permissions (Prerequisite)342. `HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA` - Search for existing contacts to avoid duplicates (Prerequisite)353. `HUBSPOT_READ_A_CRM_PROPERTY_BY_NAME` - Check property metadata for constrained values (Optional)364. `HUBSPOT_CREATE_CONTACT` - Create a single contact (Required)375. `HUBSPOT_CREATE_CONTACTS` - Batch create contacts up to 100 (Alternative)3839**Key parameters**:40- `HUBSPOT_CREATE_CONTACT`: `properties` object with `email`, `firstname`, `lastname`, `phone`, `company`41- `HUBSPOT_CREATE_CONTACTS`: `inputs` array of `{properties}` objects, max 100 per batch42- `HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA`: `filterGroups` array with `{filters: [{propertyName, operator, value}]}`, `properties` array of fields to return4344**Pitfalls**:45- Max 100 records per batch; chunk larger imports46- 400 'Property values were not valid' if using incorrect property names or enum values47- Always search before creating to avoid duplicates48- Auth errors from GET_ACCOUNT_INFO mean all subsequent calls will fail4950### 2. Manage Companies5152**When to use**: User wants to create, search, or update company records5354**Tool sequence**:551. `HUBSPOT_SEARCH_COMPANIES` - Search existing companies (Prerequisite)562. `HUBSPOT_CREATE_COMPANIES` - Batch create companies, max 100 (Required)573. `HUBSPOT_UPDATE_COMPANIES` - Batch update existing companies (Alternative)584. `HUBSPOT_GET_COMPANY` - Get single company details (Optional)595. `HUBSPOT_BATCH_READ_COMPANIES_BY_PROPERTIES` - Bulk read companies by property values (Optional)6061**Key parameters**:62- `HUBSPOT_CREATE_COMPANIES`: `inputs` array of `{properties}` objects, max 10063- `HUBSPOT_SEARCH_COMPANIES`: `filterGroups`, `properties`, `sorts`, `limit`, `after` (pagination cursor)6465**Pitfalls**:66- Max 100 per batch; chunk larger sets67- Store returned IDs immediately for downstream operations68- Property values must match exact internal names, not display labels6970### 3. Manage Deals and Pipeline7172**When to use**: User wants to search deals, view pipeline stages, or track deal progress7374**Tool sequence**:751. `HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE` - Map pipeline and stage IDs/names (Prerequisite)762. `HUBSPOT_SEARCH_DEALS` - Search deals with filters (Required)773. `HUBSPOT_RETRIEVE_PIPELINE_STAGES` - Get stage details for one pipeline (Optional)784. `HUBSPOT_RETRIEVE_OWNERS` - Get owner/rep details (Optional)795. `HUBSPOT_GET_DEAL` - Get single deal details (Optional)806. `HUBSPOT_LIST_DEALS` - List all deals without filters (Fallback)8182**Key parameters**:83- `HUBSPOT_SEARCH_DEALS`: `filterGroups` with filters on `pipeline`, `dealstage`, `createdate`, `closedate`, `hubspot_owner_id`; `properties`, `sorts`, `limit`, `after`84- `HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE`: `objectType` set to `'deals'`8586**Pitfalls**:87- Results nested under `response.data.results`; properties are often strings (amounts, dates)88- Stage IDs may be readable strings or opaque numeric IDs; use `label` field for display89- Filters must use internal property names (`pipeline`, `dealstage`, `createdate`), not display names90- Paginate via `paging.next.after` until absent9192### 4. Search and Filter Tickets9394**When to use**: User wants to find support tickets by status, date, or criteria9596**Tool sequence**:971. `HUBSPOT_SEARCH_TICKETS` - Search with filterGroups (Required)982. `HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE` - Discover available property names (Fallback)993. `HUBSPOT_GET_TICKET` - Get single ticket details (Optional)1004. `HUBSPOT_GET_TICKETS` - Bulk fetch tickets by IDs (Optional)101102**Key parameters**:103- `HUBSPOT_SEARCH_TICKETS`: `filterGroups`, `properties` (only listed fields are returned), `sorts`, `limit`, `after`104105**Pitfalls**:106- Incorrect `propertyName`/`operator` returns zero results without errors107- Date filtering may require epoch-ms bounds; mixing formats causes mismatches108- On