hubspot-automation – Agents & Automation skill for AI agents
Automate HubSpot CRM operations (contacts, companies, deals, tickets, properties) via Rube MCP using Composio integration.
Install the hubspot-automation skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/hubspot-automation-3878a.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /hubspot-automation – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/hubspot-automation-3878a.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $hubspot-automation – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/hubspot-automation-3878a.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /hubspot-automation – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/hubspot-automation-3878a.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /hubspot-automation – then describe the task you want done.
SKILL.md content
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_CONNECTIONSwith toolkithubspot - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. The target HubSpot account must still complete the returned authentication flow and grant the required scopes.
1. Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
2. Call RUBE_MANAGE_CONNECTIONS with toolkit hubspot
3. If connection is not ACTIVE, follow the returned auth link to complete HubSpot OAuth
4. Confirm connection status shows ACTIVE before running any workflows
Account, schema and write scope
Resolve the exact account and discover current schemas before using these historical slug/parameter examples. Search-before-create reduces duplicates but is not a concurrency-safe uniqueness guarantee: use supported unique IDs/upsert semantics and reconcile uncertain writes before retrying. Restrict returned contact fields, redact personal data from logs, preview batch size/targets and preserve partial-failure results. CRM creation, assignment, property-schema changes and outreach require the corresponding user authority; a read request does not grant those writes.
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:
1. HUBSPOT_GET_ACCOUNT_INFO - Verify connection and permissions (Prerequisite)
2. HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA - Search for existing contacts to avoid duplicates (Prerequisite)
3. HUBSPOT_READ_A_CRM_PROPERTY_BY_NAME - Check property metadata for constrained values (Optional)
4. HUBSPOT_CREATE_CONTACT - Create a single contact (Required)
5. HUBSPOT_CREATE_CONTACTS - Batch create contacts up to 100 (Alternative)
Key parameters:
HUBSPOT_CREATE_CONTACT:propertiesobject withemail,firstname,lastname,phone,companyHUBSPOT_CREATE_CONTACTS:inputsarray of{properties}objects, max 100 per batchHUBSPOT_SEARCH_CONTACTS_BY_CRITERIA:filterGroupsarray with{filters: [{propertyName, operator, value}]},propertiesarray 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:
1. HUBSPOT_SEARCH_COMPANIES - Search existing companies (Prerequisite)
2. HUBSPOT_CREATE_COMPANIES - Batch create companies, max 100 (Required)
3. HUBSPOT_UPDATE_COMPANIES - Batch update existing companies (Alternative)
4. HUBSPOT_GET_COMPANY - Get single company details (Optional)
5. HUBSPOT_BATCH_READ_COMPANIES_BY_PROPERTIES - Bulk read companies by property values (Optional)
Key parameters:
HUBSPOT_CREATE_COMPANIES:inputsarray of{properties}objects, max 100HUBSPOT_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:
1. HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE - Map pipeline and stage IDs/names (Prerequisite)
2. HUBSPOT_SEARCH_DEALS - Search deals with filters (Required)
3. HUBSPOT_RETRIEVE_PIPELINE_STAGES - Get stage details for one pipeline (Optional)
4. HUBSPOT_RETRIEVE_OWNERS - Get owner/rep details (Optional)
5. HUBSPOT_GET_DEAL - Get single deal details (Optional)
6. HUBSPOT_LIST_DEALS - List all deals without filters (Fallback)
Key parameters:
HUBSPOT_SEARCH_DEALS:filterGroupswith filters onpipeline,dealstage,createdate,closedate,hubspot_owner_id;properties,sorts,limit,afterHUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE:objectTypeset 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
labelfield for display - Filters must use internal property names (
pipeline,dealstage,createdate), not display names - Paginate via
paging.next.afteruntil absent
4. Search and Filter Tickets
When to use: User wants to find support tickets by status, date, or criteria
Tool sequence:
1. HUBSPOT_SEARCH_TICKETS - Search with filterGroups (Required)
2. HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE - Discover available property names (Fallback)
3. HUBSPOT_GET_TICKET - Get single ticket details (Optional)
4. 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/operatorreturns zero results without errors - Date filtering may require epoch-ms bounds; mixing formats causes mismatches
- Only fields in the
propertiesarray 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:
1. HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE - List existing properties (Prerequisite)
2. HUBSPOT_READ_PROPERTY_GROUPS_FOR_OBJECT_TYPE - List property groups (Optional)
3. HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE - Create a single property (Required)
4. HUBSPOT_CREATE_BATCH_OF_PROPERTIES - Batch create properties (Alternative)
5. HUBSPOT_UPDATE_SPECIFIC_CRM_PROPERTY - Update existing property definition (Optional)
Key parameters:
HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE:objectType,name,label,type(string/number/date/enumeration),fieldType,groupName,options(for enumerations)
Pitfalls:
- Property names are immutable after creation; choose carefully
- Enumeration options must be pre-defined with
valueandlabel - 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
HUBSPOT_RETRIEVE_OWNERS
Pagination
- Search endpoints use cursor-based pagination
- Follow
paging.next.afteruntil absent - Typical limit: 100 records per page
- Pass
aftervalue 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 (
CREATE_CONTACTS,CREATE_COMPANIES,UPDATE_COMPANIES) 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_TYPEto discover correct names - Batch limits: Max 100 records per batch operation. Larger sets must be chunked
- Response structure: Search results are nested under
response.data.resultswith 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
paging.next.aftercursor, not page numbers. Continue untilafteris absent - Duplicate prevention: Always search before creating contacts/companies to avoid duplicates
- Auth verification: Run
HUBSPOT_GET_ACCOUNT_INFOfirst; auth failures cascade to all subsequent calls
Quick Reference
| Task | Tool Slug | Key Params |
|------|-----------|------------|
| Create contact | HUBSPOT_CREATE_CONTACT | properties: {email, firstname, lastname} |
| Batch create contacts | HUBSPOT_CREATE_CONTACTS | inputs: [{properties}] (max 100) |
| Search contacts | HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA | filterGroups, properties, limit, after |
| Create companies |
… (full content is in the download package)
Related skills
- huggingface-community-evals – Curated upstream guidance for Huggingface Community Evals; use when the workflow matches…
- hunt-dispatch – Skill-set loader for /hunt orchestrator.
- spec-driven-workflow – Use when the user asks to write specs before code, define acceptance criteria, plan…
- idea-evaluator – Evaluates an idea by hosting a multi-turn debate between a Pro and Con agent, delivering…
- idea-evaluator-con – The Con Agent persona for idea evaluation. Critiques an idea by identifying potential…
- idea-evaluator-pro – The Pro Agent persona for idea evaluation. Logically supports an idea, arguing for its…
- instagram-automation – Automate Instagram tasks via Rube MCP (Composio): create posts, carousels, manage media…
- intercom-automation – Automate Intercom tasks via Rube MCP (Composio): conversations, contacts, companies…