From dealdeploy
Fetch and complete a single HubSpot task via the HubSpot MCP. Use when the user wants to complete a HubSpot task, check what tasks are pending, or mark a task done. Triggers on: "HubSpot task", "do my task", "complete task", "mark task complete", "next task".
How this skill is triggered — by the user, by Claude, or both
Slash command
/dealdeploy:do-hubspot-taskThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Fetch, process, and complete **exactly one** HubSpot task per invocation. NEVER process more than one task. If the user wants to complete multiple tasks, they must invoke this skill multiple times.
Fetch, process, and complete exactly one HubSpot task per invocation. NEVER process more than one task. If the user wants to complete multiple tasks, they must invoke this skill multiple times.
The user may specify which task to complete. If no specific task is given, pick the oldest due task.
Call get_user_details to get the authenticated user's ownerId. If this fails, stop.
Build a search_crm_objects query for incomplete tasks owned by the current user that have the CLAUDE: prefix in the subject:
search_crm_objects(
objectType="tasks",
filterGroups=[
{
"filters": [
{ "propertyName": "hubspot_owner_id", "operator": "EQ", "value": "{owner_id}" },
{ "propertyName": "hs_task_status", "operator": "NEQ", "value": "COMPLETED" },
{ "propertyName": "hs_timestamp", "operator": "LTE", "value": "{end_of_today_unix_ms}" },
{ "propertyName": "hs_task_subject", "operator": "CONTAINS_TOKEN", "value": "CLAUDE:" }
]
}
],
properties=["hs_task_subject", "hs_task_body", "hs_task_status", "hs_task_type", "hs_timestamp", "hubspot_owner_id"]
)
CRITICAL: Only process tasks whose hs_task_subject starts with "CLAUDE: ". After fetching results, verify that each task's subject begins with "CLAUDE: " (case-sensitive). Discard any tasks that don't match. This is a hard requirement — never process a task without the "CLAUDE: " prefix, even if the user asks you to.
If the user specified additional filters (e.g. by subject keyword, task type, date range), add those as additional filters. If no tasks found, report that and stop.
Pick exactly one task to process:
hs_timestamp (earliest due).Present the selected task to the user with its subject, type, due date, and body summary. Do NOT process any other tasks.
For the selected task, use search_crm_objects with an association filter to find the associated contact and/or company. Retrieve relevant properties like firstname, lastname, email, company, jobtitle, hs_linkedin_url.
Process the single task based on its subject and body content. The task body (hs_task_body) contains instructions — strip HTML tags and trim whitespace.
CRITICAL: You MUST actually execute the task, not just describe it. After reading the task instructions, identify every action required to fulfill them and invoke all relevant tools and skills to carry out those actions immediately. Do NOT simply summarize what needs to be done — DO IT.
Examples of what "execute" means:
manage_crm_objects to update the propertymanage_crm_objects to create the dealIf the task instructions are ambiguous or you genuinely cannot determine what action to take, THEN ask the user. But if the instructions are clear, execute them without asking for confirmation first.
REMEMBER TO INVOKE ANY SKILLS RELVANT TO THE TASK.
Never ask user for confirmation to execute the task — just do it. The user invoked this skill to get the task done, so get it done.
After successfully processing the task:
manage_crm_objects(
confirmationStatus="CONFIRMATION_WAIVED_FOR_SESSION",
updateRequest={
"objects": [{
"objectType": "tasks",
"objectId": {task_id},
"properties": {
"hs_task_status": "COMPLETED"
}
}]
}
)
HubSpot update errors are non-blocking — log but don't stop.
hubspot_owner_id matches the current user before processing the tasknpx claudepluginhub dealdeploy/dd-plugin --plugin dealdeployAutomates HubSpot CRM workflows for contacts, companies, deals, tickets, and properties via Rube MCP using Composio toolkit. Guides tool sequences for create/search/update operations.
Builds HubSpot marketing automation workflows: create static/dynamic contact lists, process form submissions, send emails, manage tickets using TypeScript API client.
Automates HubSpot CRM operations including contacts, companies, deals, tickets, and properties via Rube MCP using Composio integration. Useful for CRM workflows like creating/updating records and searching entities.