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 with toolkit
- Always call first to get current tool schemas
Setup
Get Rube MCP: Add
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 responds
- Call with toolkit
- 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:
- - 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)
- - Create a single contact (Required)
- - Batch create contacts up to 100 (Alternative)
Key parameters:
- : object with , , , ,
- : array of objects, max 100 per batch
HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA
: array with {filters: [{propertyName, operator, value}]}
, 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:
- - Search existing companies (Prerequisite)
- - Batch create companies, max 100 (Required)
- - Batch update existing companies (Alternative)
- - Get single company details (Optional)
HUBSPOT_BATCH_READ_COMPANIES_BY_PROPERTIES
- Bulk read companies by property values (Optional)
Key parameters:
- : array of objects, max 100
- : , , , , (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)
- - Search deals with filters (Required)
HUBSPOT_RETRIEVE_PIPELINE_STAGES
- Get stage details for one pipeline (Optional)
- - Get owner/rep details (Optional)
- - Get single deal details (Optional)
- - List all deals without filters (Fallback)
Key parameters:
- : with filters on , , , , ; , , ,
HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE
: set to
Pitfalls:
- Results nested under ; properties are often strings (amounts, dates)
- Stage IDs may be readable strings or opaque numeric IDs; use field for display
- Filters must use internal property names (, , ), not display names
- Paginate via until absent
4. Search and Filter Tickets
When to use: User wants to find support tickets by status, date, or criteria
Tool sequence:
- - Search with filterGroups (Required)
HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE
- Discover available property names (Fallback)
- - Get single ticket details (Optional)
- - Bulk fetch tickets by IDs (Optional)
Key parameters:
- : , (only listed fields are returned), , ,
Pitfalls:
- Incorrect / returns zero results without errors
- Date filtering may require epoch-ms bounds; mixing formats causes mismatches
- Only fields in the array are returned; missing ones break downstream logic
- Use READ_ALL_PROPERTIES to discover exact internal property names
5. Create and Manage Custom Properties
When to use: User wants to add custom fields to CRM objects
Tool sequence:
HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE
- List existing properties (Prerequisite)
HUBSPOT_READ_PROPERTY_GROUPS_FOR_OBJECT_TYPE
- List property groups (Optional)
HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE
- Create a single property (Required)
HUBSPOT_CREATE_BATCH_OF_PROPERTIES
- Batch create properties (Alternative)
HUBSPOT_UPDATE_SPECIFIC_CRM_PROPERTY
- Update existing property definition (Optional)
Key parameters:
HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE
: , , , (string/number/date/enumeration), , , (for enumerations)
Pitfalls:
- Property names are immutable after creation; choose carefully
- Enumeration options must be pre-defined with and
- Group must exist before assigning properties to it
Common Patterns
ID Resolution
- Property display name → internal name: Use
HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE
- Pipeline name → pipeline ID: Use
HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE
- Stage name → stage ID: Extract from pipeline stages response
- Owner name → owner ID: Use
Pagination
- Search endpoints use cursor-based pagination
- Follow until absent
- Typical limit: 100 records per page
- Pass value from previous response to get next page
Batch Operations
- Most create/update endpoints support batching with max 100 records per call
- For larger datasets, chunk into groups of 100
- Store returned IDs from each batch before proceeding
- Use batch endpoints (, , ) instead of single-record endpoints for efficiency
Known Pitfalls
- Property names: All search/filter endpoints use internal property names, NOT display labels. Always call
READ_ALL_PROPERTIES_FOR_OBJECT_TYPE
to discover correct names
- Batch limits: Max 100 records per batch operation. Larger sets must be chunked
- Response structure: Search results are nested under with properties as string values
- Date formats: Date properties may be epoch-ms or ISO strings depending on endpoint. Parse defensively
- Immutable names: Property names cannot be changed after creation. Plan naming conventions carefully
- Cursor pagination: Use cursor, not page numbers. Continue until is absent
- Duplicate prevention: Always search before creating contacts/companies to avoid duplicates
- Auth verification: Run first; auth failures cascade to all subsequent calls
Quick Reference
| Task | Tool Slug | Key Params |
|---|
| Create contact | | properties: {email, firstname, lastname}
|
| Batch create contacts | | (max 100) |
| Search contacts | HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA
| filterGroups, properties, limit, after
|
| Create companies | | (max 100) |
| Search companies | | filterGroups, properties, after
|
| Search deals | | filterGroups, properties, after
|
| Get pipelines | HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE
| |
| Search tickets | | filterGroups, properties, after
|
| List properties | HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE
| |
| Create property | HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE
| objectType, name, label, type, fieldType
|
| Get owners | | None |
| Verify connection | | None |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.