{"id":"cf6ef154-d960-4f5f-b578-4671cf87f63f","shortId":"2AJMkW","kind":"skill","title":"hubspot-automation","tagline":"Automate HubSpot CRM operations (contacts, companies, deals, tickets, properties) via Rube MCP using Composio integration.","description":"# HubSpot CRM Automation via Rube MCP\n\nAutomate HubSpot CRM workflows including contact/company management, deal pipeline tracking, ticket search, and custom property creation through Composio's HubSpot toolkit.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active HubSpot connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `hubspot`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `hubspot`\n3. If connection is not ACTIVE, follow the returned auth link to complete HubSpot OAuth\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Create and Manage Contacts\n\n**When to use**: User wants to create new contacts or update existing ones in HubSpot CRM\n\n**Tool sequence**:\n1. `HUBSPOT_GET_ACCOUNT_INFO` - Verify connection and permissions (Prerequisite)\n2. `HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA` - Search for existing contacts to avoid duplicates (Prerequisite)\n3. `HUBSPOT_READ_A_CRM_PROPERTY_BY_NAME` - Check property metadata for constrained values (Optional)\n4. `HUBSPOT_CREATE_CONTACT` - Create a single contact (Required)\n5. `HUBSPOT_CREATE_CONTACTS` - Batch create contacts up to 100 (Alternative)\n\n**Key parameters**:\n- `HUBSPOT_CREATE_CONTACT`: `properties` object with `email`, `firstname`, `lastname`, `phone`, `company`\n- `HUBSPOT_CREATE_CONTACTS`: `inputs` array of `{properties}` objects, max 100 per batch\n- `HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA`: `filterGroups` array with `{filters: [{propertyName, operator, value}]}`, `properties` array of fields to return\n\n**Pitfalls**:\n- Max 100 records per batch; chunk larger imports\n- 400 'Property values were not valid' if using incorrect property names or enum values\n- Always search before creating to avoid duplicates\n- Auth errors from GET_ACCOUNT_INFO mean all subsequent calls will fail\n\n### 2. Manage Companies\n\n**When to use**: User wants to create, search, or update company records\n\n**Tool sequence**:\n1. `HUBSPOT_SEARCH_COMPANIES` - Search existing companies (Prerequisite)\n2. `HUBSPOT_CREATE_COMPANIES` - Batch create companies, max 100 (Required)\n3. `HUBSPOT_UPDATE_COMPANIES` - Batch update existing companies (Alternative)\n4. `HUBSPOT_GET_COMPANY` - Get single company details (Optional)\n5. `HUBSPOT_BATCH_READ_COMPANIES_BY_PROPERTIES` - Bulk read companies by property values (Optional)\n\n**Key parameters**:\n- `HUBSPOT_CREATE_COMPANIES`: `inputs` array of `{properties}` objects, max 100\n- `HUBSPOT_SEARCH_COMPANIES`: `filterGroups`, `properties`, `sorts`, `limit`, `after` (pagination cursor)\n\n**Pitfalls**:\n- Max 100 per batch; chunk larger sets\n- Store returned IDs immediately for downstream operations\n- Property values must match exact internal names, not display labels\n\n### 3. Manage Deals and Pipeline\n\n**When to use**: User wants to search deals, view pipeline stages, or track deal progress\n\n**Tool sequence**:\n1. `HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE` - Map pipeline and stage IDs/names (Prerequisite)\n2. `HUBSPOT_SEARCH_DEALS` - Search deals with filters (Required)\n3. `HUBSPOT_RETRIEVE_PIPELINE_STAGES` - Get stage details for one pipeline (Optional)\n4. `HUBSPOT_RETRIEVE_OWNERS` - Get owner/rep details (Optional)\n5. `HUBSPOT_GET_DEAL` - Get single deal details (Optional)\n6. `HUBSPOT_LIST_DEALS` - List all deals without filters (Fallback)\n\n**Key parameters**:\n- `HUBSPOT_SEARCH_DEALS`: `filterGroups` with filters on `pipeline`, `dealstage`, `createdate`, `closedate`, `hubspot_owner_id`; `properties`, `sorts`, `limit`, `after`\n- `HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE`: `objectType` set to `'deals'`\n\n**Pitfalls**:\n- Results nested under `response.data.results`; properties are often strings (amounts, dates)\n- Stage IDs may be readable strings or opaque numeric IDs; use `label` field for display\n- Filters must use internal property names (`pipeline`, `dealstage`, `createdate`), not display names\n- Paginate via `paging.next.after` until absent\n\n### 4. Search and Filter Tickets\n\n**When to use**: User wants to find support tickets by status, date, or criteria\n\n**Tool sequence**:\n1. `HUBSPOT_SEARCH_TICKETS` - Search with filterGroups (Required)\n2. `HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE` - Discover available property names (Fallback)\n3. `HUBSPOT_GET_TICKET` - Get single ticket details (Optional)\n4. `HUBSPOT_GET_TICKETS` - Bulk fetch tickets by IDs (Optional)\n\n**Key parameters**:\n- `HUBSPOT_SEARCH_TICKETS`: `filterGroups`, `properties` (only listed fields are returned), `sorts`, `limit`, `after`\n\n**Pitfalls**:\n- Incorrect `propertyName`/`operator` returns zero results without errors\n- Date filtering may require epoch-ms bounds; mixing formats causes mismatches\n- Only fields in the `properties` array are returned; missing ones break downstream logic\n- Use READ_ALL_PROPERTIES to discover exact internal property names\n\n### 5. Create and Manage Custom Properties\n\n**When to use**: User wants to add custom fields to CRM objects\n\n**Tool sequence**:\n1. `HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE` - List existing properties (Prerequisite)\n2. `HUBSPOT_READ_PROPERTY_GROUPS_FOR_OBJECT_TYPE` - List property groups (Optional)\n3. `HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE` - Create a single property (Required)\n4. `HUBSPOT_CREATE_BATCH_OF_PROPERTIES` - Batch create properties (Alternative)\n5. `HUBSPOT_UPDATE_SPECIFIC_CRM_PROPERTY` - Update existing property definition (Optional)\n\n**Key parameters**:\n- `HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE`: `objectType`, `name`, `label`, `type` (string/number/date/enumeration), `fieldType`, `groupName`, `options` (for enumerations)\n\n**Pitfalls**:\n- Property names are immutable after creation; choose carefully\n- Enumeration options must be pre-defined with `value` and `label`\n- Group must exist before assigning properties to it\n\n## Common Patterns\n\n### ID Resolution\n- **Property display name → internal name**: Use `HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE`\n- **Pipeline name → pipeline ID**: Use `HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE`\n- **Stage name → stage ID**: Extract from pipeline stages response\n- **Owner name → owner ID**: Use `HUBSPOT_RETRIEVE_OWNERS`\n\n### Pagination\n- Search endpoints use cursor-based pagination\n- Follow `paging.next.after` until absent\n- Typical limit: 100 records per page\n- Pass `after` value from previous response to get next page\n\n### Batch Operations\n- Most create/update endpoints support batching with max 100 records per call\n- For larger datasets, chunk into groups of 100\n- Store returned IDs from each batch before proceeding\n- Use batch endpoints (`CREATE_CONTACTS`, `CREATE_COMPANIES`, `UPDATE_COMPANIES`) instead of single-record endpoints for efficiency\n\n## Known Pitfalls\n\n- **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\n- **Batch limits**: Max 100 records per batch operation. Larger sets must be chunked\n- **Response structure**: Search results are nested under `response.data.results` with properties as string values\n- **Date formats**: Date properties may be epoch-ms or ISO strings depending on endpoint. Parse defensively\n- **Immutable names**: Property names cannot be changed after creation. Plan naming conventions carefully\n- **Cursor pagination**: Use `paging.next.after` cursor, not page numbers. Continue until `after` is absent\n- **Duplicate prevention**: Always search before creating contacts/companies to avoid duplicates\n- **Auth verification**: Run `HUBSPOT_GET_ACCOUNT_INFO` first; auth failures cascade to all subsequent calls\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| Create contact | `HUBSPOT_CREATE_CONTACT` | `properties: {email, firstname, lastname}` |\n| Batch create contacts | `HUBSPOT_CREATE_CONTACTS` | `inputs: [{properties}]` (max 100) |\n| Search contacts | `HUBSPOT_SEARCH_CONTACTS_BY_CRITERIA` | `filterGroups, properties, limit, after` |\n| Create companies | `HUBSPOT_CREATE_COMPANIES` | `inputs: [{properties}]` (max 100) |\n| Search companies | `HUBSPOT_SEARCH_COMPANIES` | `filterGroups, properties, after` |\n| Search deals | `HUBSPOT_SEARCH_DEALS` | `filterGroups, properties, after` |\n| Get pipelines | `HUBSPOT_RETRIEVE_ALL_PIPELINES_FOR_SPECIFIED_OBJECT_TYPE` | `objectType: 'deals'` |\n| Search tickets | `HUBSPOT_SEARCH_TICKETS` | `filterGroups, properties, after` |\n| List properties | `HUBSPOT_READ_ALL_PROPERTIES_FOR_OBJECT_TYPE` | `objectType` |\n| Create property | `HUBSPOT_CREATE_PROPERTY_FOR_SPECIFIED_OBJECT_TYPE` | `objectType, name, label, type, fieldType` |\n| Get owners | `HUBSPOT_RETRIEVE_OWNERS` | None |\n| Verify connection | `HUBSPOT_GET_ACCOUNT_INFO` | None |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["hubspot","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-hubspot-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/hubspot-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34768 github stars · SKILL.md body (9,484 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-23T18:51:28.833Z","embedding":null,"createdAt":"2026-04-18T21:38:40.680Z","updatedAt":"2026-04-23T18:51:28.833Z","lastSeenAt":"2026-04-23T18:51:28.833Z","tsv":"'/mcp':84 '1':104,151,174,335,454,613,732 '100':231,255,278,351,396,409,898,921,932,987,1103,1123 '2':116,184,318,343,469,621,744 '3':124,198,353,432,478,634,756 '4':139,213,362,490,592,643,769 '400':285 '5':222,371,498,712,779 '6':507 'absent':591,895,1052 'account':177,310,1068,1194 'action':1209 'activ':56,129,144 'add':81,98,724 'altern':232,361,778 'alway':66,299,972,1055 'amount':558 'api':94 'applic':1203 'array':250,264,271,391,694 'ask':1247 'assign':833 'auth':133,306,1063,1071 'autom':3,4,21,25 'avail':55,109,630 'avoid':195,304,1061 'base':890 'batch':226,257,281,347,357,373,411,772,775,912,918,938,942,984,990,1094 'bound':684 'boundari':1255 'break':699 'bulk':378,647 'call':67,117,315,924,973,1077 'cannot':1031 'care':817,1039 'cascad':1073 'caus':687 'chang':1033 'check':206 'choos':816 'chunk':282,412,928,996 'clarif':1249 'clear':1222 'client':91 'closed':529 'common':837 'compani':9,245,320,331,338,341,346,349,356,360,365,368,375,380,389,399,947,949,1116,1119,1125,1128 'complet':136 'composio':17,42 'configur':92 'confirm':111,140 'connect':51,58,62,120,126,141,180,1191 'constrain':210 'contact':8,155,164,187,193,216,220,225,228,237,248,260,945,1086,1089,1096,1099,1105,1108 'contact/company':30 'contacts/companies':1059 'continu':1048 'convent':1038 'core':149 'correct':982 'creat':152,162,215,217,224,227,236,247,302,327,345,348,388,713,758,764,771,776,793,944,946,1058,1085,1088,1095,1098,1115,1118,1170,1173 'create/update':915 'created':528,583 'creation':40,815,1035 'criteria':189,262,610,1110,1258 'crm':6,20,27,171,202,728,783 'current':74 'cursor':406,889,1040,1044 'cursor-bas':888 'custom':38,716,725 'dataset':927 'date':559,608,677,1010,1012 'deal':10,32,434,444,450,472,474,501,504,510,513,521,548,1133,1136,1151 'dealstag':527,582 'defens':1026 'defin':824 'definit':788 'depend':1022 'describ':1210,1226 'detail':369,485,496,505,641 'discov':629,707,981 'display':430,574,585,842,970 'downstream':420,700 'duplic':196,305,1053,1062 'effici':957 'email':241,1091 'endpoint':100,886,916,943,955,964,1024 'enum':297 'enumer':808,818 'environ':1238 'environment-specif':1237 'epoch':682,1017 'epoch-m':681,1016 'error':307,676 'exact':426,708 'execut':1205 'exist':167,192,340,359,741,786,831 'expert':1243 'extract':871 'fail':317 'failur':1072 'fallback':516,633 'fetch':648 'field':273,572,662,690,726 'fieldtyp':804,1183 'filter':266,476,515,524,575,595,678 'filtergroup':263,400,522,619,658,1111,1129,1137,1157 'find':603 'first':71,1070 'firstnam':242,1092 'follow':130,892 'format':686,1011 'get':73,78,176,309,364,366,483,494,500,502,636,638,645,909,1067,1140,1184,1193 'group':748,754,829,930 'groupnam':805 'hubspot':2,5,19,26,44,57,65,123,137,170,175,185,199,214,223,235,246,258,336,344,354,363,372,387,397,455,470,479,491,499,508,519,530,537,614,622,635,644,655,733,745,757,770,780,792,847,859,881,1066,1087,1097,1106,1117,1126,1134,1142,1154,1162,1172,1186,1192 'hubspot-autom':1 'id':417,532,561,569,651,839,857,870,879,935 'ids/names':467 'immedi':418 'immut':813,1027 'import':284 'includ':29 'incorrect':293,669 'info':178,311,1069,1195 'input':249,390,1100,1120,1252 'instead':950 'integr':18 'intern':427,578,709,844,966 'iso':1020 'key':95,233,385,517,653,790,1083 'known':958 'label':431,571,801,828,971,1181 'larger':283,413,926,992 'lastnam':243,1093 'limit':403,535,666,897,985,1113,1214 'link':134 'list':509,511,661,740,752,1160 'logic':701 'manag':31,61,119,154,319,433,715 'map':463 'match':425,1223 'max':254,277,350,395,408,920,986,1102,1122 'may':562,679,1014 'mcp':15,24,48,80,87,107 'mean':312 'metadata':208 'mismatch':688 'miss':697,1260 'mix':685 'ms':683,1018 'must':49,424,576,820,830,994 'name':205,295,428,580,586,632,711,800,811,843,845,855,868,877,961,968,983,1028,1030,1037,1180 'need':96 'nest':551,1002 'new':163 'next':910 'none':1189,1196 'number':1047 'numer':568 'oauth':138 'object':239,253,394,461,543,627,729,738,750,762,797,852,865,978,1148,1167,1177 'objecttyp':545,799,1150,1169,1179 'often':556 'one':168,487,698 'opaqu':567 'oper':7,268,421,671,913,991 'option':212,370,384,489,497,506,642,652,755,789,806,819 'output':1232 'overview':1213 'owner':493,531,876,878,883,1185,1188 'owner/rep':495 'page':901,911,1046 'pagin':405,587,884,891,1041 'paging.next.after':589,893,1043 'param':1084 'paramet':234,386,518,654,791 'pars':1025 'pass':902 'pattern':838 'per':256,280,410,900,923,989 'permiss':182,1253 'phone':244 'pipelin':33,436,446,458,464,481,488,526,540,581,854,856,862,873,1141,1145 'pitfal':276,407,549,668,809,959 'plan':1036 'pre':823 'pre-defin':822 'prerequisit':46,183,197,342,468,743 'prevent':1054 'previous':906 'proceed':940 'progress':451 'properti':12,39,203,207,238,252,270,286,294,377,382,393,401,422,533,554,579,625,631,659,693,705,710,717,736,742,747,753,759,767,774,777,784,787,794,810,834,841,850,960,967,976,1006,1013,1029,1090,1101,1112,1121,1130,1138,1158,1161,1165,1171,1174 'propertynam':267,670 'quick':1078 'read':200,374,379,623,703,734,746,848,974,1163 'readabl':564 'record':279,332,899,922,954,988 'refer':1079 'requir':221,352,477,620,680,768,1251 'resolut':840 'respond':115 'respons':875,907,997 'response.data.results':553,1004 'result':550,674,1000 'retriev':456,480,492,538,860,882,1143,1187 'return':132,275,416,664,672,696,934 'review':1244 'rube':14,23,47,52,60,68,79,106,112,118 'rube.app':83 'rube.app/mcp':82 'run':146,1065 'safeti':1254 'schema':76 'scope':1225 'search':36,53,69,113,186,190,259,300,328,337,339,398,443,471,473,520,593,615,617,656,885,999,1056,1104,1107,1124,1127,1132,1135,1152,1155 'search/filter':963 'sequenc':173,334,453,612,731 'server':88 'set':414,546,993 'setup':77 'show':143 'singl':219,367,503,639,766,953 'single-record':952 'skill':1201,1217 'skill-hubspot-automation' 'slug':1082 'sort':402,534,665 'source-sickn33' 'specif':782,1239 'specifi':460,542,761,796,864,1147,1176 'stage':447,466,482,484,560,867,869,874 'status':142,607 'stop':1245 'store':415,933 'string':557,565,1008,1021 'string/number/date/enumeration':803 'structur':998 'subsequ':314,1076 'substitut':1235 'success':1257 'support':604,917 'task':1080,1221 'test':1241 'ticket':11,35,596,605,616,637,640,646,649,657,1153,1156 'tool':54,70,75,114,172,333,452,611,730,1081 'toolkit':45,64,122 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'track':34,449 'treat':1230 'type':462,544,628,739,751,763,798,802,853,866,979,1149,1168,1178,1182 'typic':896 'updat':166,330,355,358,781,785,948 'use':16,158,292,323,439,570,577,599,702,720,846,858,880,887,941,965,1042,1199,1215 'user':159,324,440,600,721 'valid':290,1240 'valu':211,269,287,298,383,423,826,904,1009 'verif':1064 'verifi':105,179,1190 'via':13,22,59,588 'view':445 'want':160,325,441,601,722 'without':514,675 'work':103 'workflow':28,148,150,1207 'zero':673","prices":[{"id":"a35c1b8b-4eda-4b45-8a72-de2cd7e0fa71","listingId":"cf6ef154-d960-4f5f-b578-4671cf87f63f","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:38:40.680Z"}],"sources":[{"listingId":"cf6ef154-d960-4f5f-b578-4671cf87f63f","source":"github","sourceId":"sickn33/antigravity-awesome-skills/hubspot-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/hubspot-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:38:40.680Z","lastSeenAt":"2026-04-23T18:51:28.833Z"}],"details":{"listingId":"cf6ef154-d960-4f5f-b578-4671cf87f63f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"hubspot-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34768,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"152ed75c53cf6288ba5429b7661849ae7ff5b8c5","skill_md_path":"skills/hubspot-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/hubspot-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"hubspot-automation","description":"Automate HubSpot CRM operations (contacts, companies, deals, tickets, properties) via Rube MCP using Composio integration."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/hubspot-automation"},"updatedAt":"2026-04-23T18:51:28.833Z"}}