Skip to content
Development
Skill

/activities

HubSpot tasks, notes, and associations: task priority and status values, notes-vs-tasks semantics, the association type matrix linking contacts, companies, deals, and tickets, and engagement-history workflows.

From plugin
msp-claude-plugins
52200 skills146 agents200 commands4 MCP

Claude Code

$ npx -y skills add wyre-ai/msp-claude-plugins --skill activities --agent claude-code

SKILL.md

activities.SKILL.md
name: "HubSpot Activities"
description: >
  HubSpot tasks, notes, and associations: task priority and status values,
  notes-vs-tasks semantics, the association type matrix linking contacts,
  companies, deals, and tickets, and engagement-history workflows.
when_to_use: >-
  When logging notes, creating follow-up tasks, or linking CRM objects together in HubSpot.
  Use when: hubspot task, hubspot note, hubspot activity, hubspot association,
  hubspot engagement, hubspot log, hubspot follow-up, hubspot link objects, hubspot relationship,
  activity management hubspot, or task creation hubspot.

HubSpot Activities & Associations

Overview

Activities in HubSpot encompass tasks, notes, and other engagement records that track interactions with contacts, companies, deals, and tickets. Associations are the links that connect HubSpot CRM objects together -- a contact associated with a company, a deal associated with a contact, a note associated with a ticket. For MSPs, activities provide the service history and follow-up tracking that drives client satisfaction, while associations ensure that every interaction is visible from any related record.

Conduit connector

Conduit's `hubspot` connector is HubSpot's own hosted MCP server (`https://mcp.hubspot.com/anthropic/v1/mcp`, OAuth). Its CRM tools are generic over object type, so every call names the `objectType`:

| Tool | Call shape | |------|-----------| | `search_crm_objects` | `objectType`, optional `query` (free text), `filterGroups` (property `filters` and `associatedWith` association filters), `properties`, `sorts`, `limit` (max 200), `offset` | | `get_crm_objects` | `objectType`, `objectIds` (1-100), `properties` | | `manage_crm_objects` | `createRequest.objects[]` or `updateRequest.objects[]` (each with `objectType`, `properties`, optional `associations`, and `objectId` for updates), plus `confirmationStatus` (`CONFIRMED` only after the user approved the exact change) | | `search_properties` / `get_properties` | Discover property names and enumeration values for an `objectType` | | `search_owners` | Resolve `hubspot_owner_id` values to people |

Parameter names in the tables below (such as `contactId`) describe the HubSpot fields involved; send them in the call shapes above. See `hubspot-api-patterns` for the full tool list.

Anti-triggers

  • **A customer-reported issue that needs resolving** — that is a ticket with a

pipeline and stage, not a task; use `hubspot-tickets`.

  • **The properties of the record being annotated** — this skill covers the

note, task, and association only; object fields live in `hubspot-contacts`, `hubspot-companies`, `hubspot-deals`, or `hubspot-tickets`.

  • **Billable time against client work** — HubSpot tasks are not time entries;

the PSA is the system of record for those.

MCP Tools

Available Tools

Activity Tools

| Tool | Description | Key Parameters | |------|-------------|----------------| | `manage_crm_objects` (`createRequest`, `objectType: "tasks"`) | Create a task | `hs_task_subject` (required), `hs_task_body`, `hs_task_priority`, `hs_timestamp` | | `manage_crm_objects` (`createRequest`, `objectType: "notes"`) | Create a note | `hs_note_body` (required), `hs_timestamp` |

Association Tools

| Tool | Description | Key Parameters | |------|-------------|----------------| | `manage_crm_objects` (`updateRequest` with `associations`) | Create an association between two objects | `updateRequest.objects[]` with `objectType`, `objectId` and `associations: [{ targetObjectType, targetObjectId, labels? }]` | | `search_crm_objects` (`associatedWith` filter) | List records associated with an object | `objectType` (the records you want) plus `filterGroups[].associatedWith: [{ objectType, operator: "EQUAL", objectIdValues: [id] }]` |

Utility Tools

| Tool | Description | Key Parameters | |------|-------------|----------------| | `get_user_details` | Get details of the current user | None |

Create a Task

Call `manage_crm_objects` (`createRequest`, `objectType: "tasks"`) to create a follow-up task:

**Example: Create a follow-up task:**

  • `hs_task_subject`: `Follow up with Acme Corp on managed services proposal`
  • `hs_task_body`: `Review proposal feedback and schedule next call. Contact: John Smith, IT Director.`
  • `hs_task_priority`: `HIGH`
  • `hs_timestamp`: `2026-03-01T09:00:00.000Z`
  • `hubspot_owner_id`: `67890`

**Example: Create an onboarding task:**

  • `hs_task_subject`: `Complete Acme Corp onboarding checklist`
  • `hs_task_body`: `Set up monitoring agents, configure backup, verify antivirus deployment.`
  • `hs_task_priority`: `HIGH`
  • `hs_timestamp`: `2026-02-28T09:00:00.000Z`

Create a Note

Call `manage_crm_objects` (`createRequest`, `objectType: "notes"`) to log an activity:

**Example: Log a meeting note:**

  • `hs_note_body`: `Met with John Smith (IT Director) at Acme Corp. Discussed current IT pain points: frequent email outages, no backup solution, aging network switches. Interested in managed IT services package. Follow-up scheduled for March 1.`
  • `hs_timestamp`: `2026-02-24T15:00:00.000Z`

**Example: Log a support resolution:**

  • `hs_note_body`: `Resolved email delivery issue for Acme Corp. Root cause: misconfigured SPF record. Updated DNS TXT record and verified delivery to all 5 affected users. Monitoring for 24 hours.`
  • `hs_timestamp`: `2026-02-24T11:30:00.000Z`

Create an Association

Associations are written with `manage_crm_objects`, on the record you are updating (or creating):

**Example: Associate a contact with a company:**

{
  "updateRequest": {
    "objects": [
      {
        "objectType": "contacts",
        "objectId": 12345,
        "associations": [{ "targetObjectType": "COMPANY", "targetObjectId": 98765 }]
      }
    ]
  },
  "confirmationStatus": "CONFIRMED"
}

**Example: Create a note already associated with a contact:**

{
  "createRequest": {
    "objects": [
      {
        "objectType": "notes",
Read more
@wyre-technology
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai

52200 skills146 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
52
Star history of wyre-technology/msp-claude-plugins on GitHub, a chart by star-history.com

Other skills on msp-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about activities.

Which coding agents can use activities?
activities installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.