From hubspot
Search, create, update, and manage HubSpot CRM contacts. Covers fields, lifecycle stages, lead status, and associating contacts with companies and deals.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hubspot:contactsWhen to use
When searching, creating, updating, and managing contact records in HubSpot CRM. Use when: hubspot contact, hubspot lead, hubspot person, hubspot email lookup, contact search hubspot, contact management hubspot, hubspot prospect, client contact hubspot, hubspot lifecycle, or lead management hubspot.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Contacts in HubSpot represent individual people -- clients, prospects, vendors, or any person your MSP interacts with. Contacts are the foundational entity in HubSpot CRM. They can be associated with companies, deals, tickets, and activities to build a complete picture of every relationship. For MSPs, contacts typically represent client employees, decision-makers, technical contacts, and billin...
Contacts in HubSpot represent individual people -- clients, prospects, vendors, or any person your MSP interacts with. Contacts are the foundational entity in HubSpot CRM. They can be associated with companies, deals, tickets, and activities to build a complete picture of every relationship. For MSPs, contacts typically represent client employees, decision-makers, technical contacts, and billing contacts at managed companies.
| Tool | Description | Key Parameters |
|---|---|---|
hubspot_retrieve_contact | Get a single contact by ID | contactId (required) |
hubspot_create_contact | Create a new contact | email (required), firstname, lastname, phone, company |
hubspot_update_contact | Update an existing contact | contactId (required), property fields to update |
hubspot_list_contacts | List contacts with pagination | limit, after (cursor) |
hubspot_list_contact_properties | List all available contact properties | None |
hubspot_search_contacts | Search contacts by criteria | filterGroups, sorts, limit, after |
Call hubspot_search_contacts with filter groups to find contacts:
Search by email domain (find all contacts at a company):
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "CONTAINS_TOKEN",
"value": "acmecorp.com"
}
]
}
],
"limit": 100
}
Search by name:
{
"filterGroups": [
{
"filters": [
{
"propertyName": "firstname",
"operator": "EQ",
"value": "John"
},
{
"propertyName": "lastname",
"operator": "EQ",
"value": "Smith"
}
]
}
]
}
Search by lifecycle stage (find all customers):
{
"filterGroups": [
{
"filters": [
{
"propertyName": "lifecyclestage",
"operator": "EQ",
"value": "customer"
}
]
}
],
"sorts": [
{
"propertyName": "lastname",
"direction": "ASCENDING"
}
],
"limit": 100
}
Call hubspot_create_contact with the contact's properties:
Example: Create a new client contact:
email: [email protected]firstname: Janelastname: Doephone: 555-987-6543company: Acme Corporationjobtitle: IT Directorlifecyclestage: customerCall hubspot_update_contact with the contactId and the properties to change:
Example: Update lifecycle stage and lead status:
contactId: 12345lifecyclestage: customerhs_lead_status: CONNECTEDCall hubspot_retrieve_contact with the contactId:
Example:
hubspot_retrieve_contact with contactId=12345Lifecycle stages track where a contact is in your MSP's sales and service process:
| Stage | Description | MSP Context |
|---|---|---|
subscriber | Signed up for updates | Newsletter subscriber |
lead | Expressed interest | Downloaded a whitepaper or filled out a form |
marketingqualifiedlead | Marketing qualified | Meets marketing criteria for outreach |
salesqualifiedlead | Sales qualified | Confirmed interest in MSP services |
opportunity | Active opportunity | In an active sales conversation |
customer | Paying customer | Signed MSP agreement, receiving services |
evangelist | Advocate | Actively refers new business |
other | Custom stage | Does not fit standard stages |
Lead status tracks the disposition of sales outreach:
| Status | Description |
|---|---|
NEW | New lead, not yet contacted |
OPEN | Open lead, in active outreach |
IN_PROGRESS | Engaged in conversation |
OPEN_DEAL | Deal created, in pipeline |
UNQUALIFIED | Does not meet qualification criteria |
ATTEMPTED_TO_CONTACT | Outreach attempted, no response |
CONNECTED | Connected, conversation initiated |
BAD_TIMING | Interested but not ready |
The hubspot_owner_id property assigns a contact to a specific user in your HubSpot account. For MSPs, this is typically the account manager or sales rep responsible for the relationship.
| Field | Type | Description |
|---|---|---|
email | string | Email address (primary identifier) |
firstname | string | First name |
lastname | string | Last name |
phone | string | Phone number |
mobilephone | string | Mobile phone number |
company | string | Company name (text field) |
jobtitle | string | Job title |
address | string | Street address |
city | string | City |
state | string | State or region |
zip | string | Postal code |
country | string | Country |
website | string | Personal website |
lifecyclestage | enumeration | Lifecycle stage |
hs_lead_status | enumeration | Lead status |
hubspot_owner_id | number | Assigned owner (user ID) |
createdate | datetime | Record creation date |
lastmodifieddate | datetime | Last modification date |
notes_last_updated | datetime | Last note timestamp |
num_associated_deals | number | Number of associated deals |
hs_email_last_send_date | datetime | Last email sent |
hs_email_last_open_date | datetime | Last email opened |
Many MSPs add custom properties for contacts. Common examples:
| Field | Type | Description |
|---|---|---|
preferred_contact_method | enumeration | Email, phone, or text |
technical_skill_level | enumeration | Basic, intermediate, advanced |
decision_maker | boolean | Is this person a decision-maker |
primary_contact | boolean | Primary contact for the company |
hubspot_search_contacts with a filter on email using EQ operatorCONTAINS_TOKEN for partial domain matchingid for further operationshubspot_search_contacts with a filter on email using CONTAINS_TOKEN with the company's email domainhubspot_access_associations on the company object to get associated contactshubspot_search_contactshubspot_create_contact with email, name, phone, company, job title, and lifecyclestage=customerhubspot_create_association to link the contact to the company recordhubspot_create_note to document the new contact setuphubspot_update_contact with:
lifecyclestage: customerhs_lead_status: CONNECTEDhubspot_create_note to log the conversion detailshubspot_create_task to create onboarding follow-up taskshubspot_search_companieshubspot_access_associations to get all contacts associated with the companyhubspot_retrieve_contactSingle Contact:
{
"id": "12345",
"properties": {
"email": "[email protected]",
"firstname": "John",
"lastname": "Smith",
"phone": "555-123-4567",
"company": "Acme Corporation",
"jobtitle": "IT Director",
"lifecyclestage": "customer",
"hs_lead_status": "CONNECTED",
"hubspot_owner_id": "67890",
"createdate": "2025-06-15T10:30:00.000Z",
"lastmodifieddate": "2026-02-10T14:15:00.000Z"
},
"createdAt": "2025-06-15T10:30:00.000Z",
"updatedAt": "2026-02-10T14:15:00.000Z"
}
Search Results:
{
"total": 3,
"results": [
{
"id": "12345",
"properties": {
"email": "[email protected]",
"firstname": "John",
"lastname": "Smith",
"company": "Acme Corporation"
}
},
{
"id": "12346",
"properties": {
"email": "[email protected]",
"firstname": "Jane",
"lastname": "Doe",
"company": "Acme Corporation"
}
}
]
}
| Error | Cause | Resolution |
|---|---|---|
| Contact not found | Invalid contact ID | Verify the ID with hubspot_search_contacts |
| Duplicate email | Contact with this email already exists | Search for existing contact first |
| Invalid property | Property name not recognized | Use hubspot_list_contact_properties to check available properties |
| Invalid lifecycle stage | Stage value not valid | Use one of: subscriber, lead, marketingqualifiedlead, salesqualifiedlead, opportunity, customer, evangelist, other |
| Rate limited | Too many requests | Wait 10 seconds and retry |
hubspot_owner_id so team members know who manages each relationshipnpx claudepluginhub wyre-technology/msp-claude-plugins --plugin hubspotSearches, creates, updates, and audits HubSpot CRM company records. Covers company fields, industry classification, lifecycle stages, domain matching, and cross-referencing with contacts, deals, and tickets.
Automates Apollo.io lead generation: search organizations, discover contacts, enrich prospect data, manage stages, and build outreach lists via natural language through Composio MCP.
Manages HubSpot CRM contacts, companies, deals, and CMS content via API. Use for adding contacts, creating deals, searching CRM, updating deal stages, or managing HubSpot pages.