create-segment-lists — скилл для Claude Code
Собирает в HubSpot библиотеку списков сегментов: клиенты, партнёры, конкуренты, сотрудники, уровни ICP и отрасли. Нужна для таргетинга, подавления рассылок и отчётности.
npx skills add TomGranot/hubspot-admin-skills --skill create-segment-lists -a claude-codeЧто делает create-segment-lists
Скилл проводит интервью: спрашивает, какие сегменты важны бизнесу и что считается активностью. Дальше по шагам создаёт активные (smart) списки через Lists API v3 — например «All Customers» по стадии жизненного цикла или уровни ICP по свойству ICP tier. Статические списки вроде конкурентов наполняются вручную или из CSV.
Перед запуском нужен сервисный ключ HubSpot в .env под именем HUBSPOT_ACCESS_TOKEN со скоупами crm.lists.read и crm.lists.write, Python 3.10+ и uv. Ещё два условия: свойство ICP tier уже создано (сначала /create-icp-tiers) и стадии жизненного цикла приведены в порядок (сначала /fix-lifecycle-stages). Без ключа с нужными скоупами запросы к API просто не пройдут.
Скилл проверяет пересечения с существующими списками и советует объединять или переименовывать, а не плодить дубли. После создания сверяет число участников, ищет контакты в взаимоисключающих списках и предлагает схему имён вида [ICP] - Tier 1. Удаление списка не трогает сами контакты, но перед этим стоит проверить, не ссылаются ли на него рабочие процессы и письма.
Какие задачи решает
- собрать базовые списки клиентов, партнёров и сотрудников в HubSpot
- разложить контакты по уровням ICP для приоритизации
- исключить из рассылок отписавшихся и немаркетинговые контакты
- завести отдельные списки по отраслям и уровню вовлечённости
- найти дубли и пересечения среди уже существующих списков
Примеры запросов агенту
- Создай списки сегментов в HubSpot: клиенты, партнёры, сотрудники и уровни ICP
- Сделай активный список для отрасли Manufacturing и проверь число участников
- Проверь, не попадают ли контакты одновременно в списки клиентов и конкурентов
Как установить create-segment-lists
1Через Skills CLI (Vercel)
npx skills add TomGranot/hubspot-admin-skills --skill create-segment-lists -a claude-code2Вручную: положить файлы
~/.claude/skills/create-segment-lists/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/create-segment-lists/
1Через Skills CLI (Vercel)
npx skills add TomGranot/hubspot-admin-skills --skill create-segment-lists -a codex2Вручную: положить файлы
.agents/skills/create-segment-lists/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add TomGranot/hubspot-admin-skills --skill create-segment-lists -a cursor2Вручную: положить файлы
.cursor/skills/create-segment-lists/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install TomGranot/hubspot-admin-skills create-segment-lists2Вручную: положить файлы
.github/skills/create-segment-lists/SKILL.md1Через Skills CLI (Vercel)
npx skills add TomGranot/hubspot-admin-skills --skill create-segment-lists -a gemini-cli2Командой платформы
gemini skills install https://github.com/TomGranot/hubspot-admin-skills --path skills/create-segment-listsВручную: положить файлы
.devin/skills/create-segment-lists/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add TomGranot/hubspot-admin-skills --skill create-segment-lists -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о create-segment-lists
Как установить create-segment-lists в Claude Code?
Выполните npx skills add TomGranot/hubspot-admin-skills --skill create-segment-lists -a claude-code. Скилл появится в ~/.claude/skills/create-segment-lists/SKILL.md.
Что делает create-segment-lists?
Создаёт в HubSpot активные и статические списки сегментов: клиентов, партнёров, конкурентов, сотрудников, уровни ICP, отрасли и группы по вовлечённости. Эти списки потом идут в рассылки, аудитории рекламы и триггеры рабочих процессов.
Что нужно подготовить до запуска?
Ключ HubSpot в .env как HUBSPOT_ACCESS_TOKEN со скоупами crm.lists.read и crm.lists.write, Python 3.10+ с uv, созданное свойство ICP tier и приведённые в порядок стадии жизненного цикла.
Исходный текст
SKILL.md · MIT
---
name: create-segment-lists
description: "Create business segment lists in HubSpot for customers, partners, competitors, employees, ICP tiers, and industries. Enables segment-based targeting, suppression, and analytics."
license: MIT
metadata:
author: tomgranot
version: "1.1"
category: ongoing-maintenance
---
# Create Segment Lists
Build a library of segment lists that enable targeted marketing, accurate reporting, and proper suppression. These lists form the foundation of segment-based operations.
## Prerequisites
- A HubSpot service key (`HUBSPOT_ACCESS_TOKEN` in `.env`; an existing legacy private app token also works) with `crm.lists.read` and `crm.lists.write` scopes
- Python 3.10+ with [`uv`](https://github.com/astral-sh/uv)
- ICP tier property created (run `/create-icp-tiers` first)
- Lifecycle stages cleaned up (run `/fix-lifecycle-stages` first)
## Interview: Gather Requirements
Before executing, collect the following information from the user:
**Q1: What are your key customer segments?**
- Examples: Industry verticals (Manufacturing, Professional Services, Retail, Education, Logistics), company size tiers (Enterprise, Mid-Market, SMB), geographic regions (North America, EMEA, APAC)
- Default: Core business segments (Customers, Partners, Competitors, Internal) plus ICP tiers and engagement-based segments
**Q2: What engagement criteria define "active" for your business?**
- Examples: Email open or click in last 90 days, website visit in last 60 days, form submission in last 30 days, meeting booked in last 90 days
- Default: Any email engagement (open or click) within the last 90 days
## Recommended Segments
### Core Business Segments
| List Name | Type | Criteria |
|-----------|------|----------|
| All Customers | Active | Lifecycle stage = Customer |
| All Partners | Active | Contact type = Partner (or custom property) |
| Competitors | Static | Manually curated from known competitor domains |
| Internal Employees | Active | Email domain matches company domain |
| Suppressed Contacts | Active | Marketing status = non-marketing OR globally unsubscribed |
### ICP-Based Segments
| List Name | Type | Criteria |
|-----------|------|----------|
| ICP Tier 1 | Active | ICP tier property = Tier 1 |
| ICP Tier 2 | Active | ICP tier property = Tier 2 |
| ICP Tier 3 | Active | ICP tier property = Tier 3 |
| Non-ICP | Active | ICP tier property = Non-ICP or unknown |
### Industry Segments
| List Name | Type | Criteria |
|-----------|------|----------|
| [Industry Name] | Active | Industry = [value] |
| (Create one per target industry) | | |
### Engagement Segments
| List Name | Type | Criteria |
|-----------|------|----------|
| Highly Engaged (90 days) | Active | Email open or click in last 90 days |
| Disengaged (6+ months) | Active | No email engagement in 180+ days |
| Never Engaged | Active | No email opens ever AND created 30+ days ago |
## Step-by-Step Instructions
### Stage 1: Plan
1. Run the requirements interview above and decide which segments are relevant to the business.
2. Check for existing lists that overlap — merge or rename rather than creating duplicates.
### Stage 2: Before
1. Confirm the properties these lists depend on are populated (ICP tier, lifecycle stage, industry).
2. Inventory existing lists (`POST /crm/v3/lists/search`) and record the baseline count.
### Stage 3: Execute — Create Lists
Use the Lists API (v3) to create active (smart) lists:
```python
import os, requests
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.environ["HUBSPOT_ACCESS_TOKEN"]
BASE = "https://api.hubapi.com"
HEADERS = {"Authorization": f"Bearer {TOKEN}", "Content-Type": "application/json"}
# Example: Create "All Customers" list
resp = requests.post(f"{BASE}/crm/v3/lists", headers=HEADERS, json={
"name": "All Customers",
"objectTypeId": "0-1", # contacts
"processingType": "DYNAMIC",
"filterBranch": {
"filterBranchType": "OR",
"filterBranches": [{
"filterBranchType": "AND",
"filterBranches": [],
"filters": [{
"filterType": "PROPERTY",
"property": "lifecyclestage",
"operation": {
"operationType": "ENUMERATION",
"operator": "IS_ANY_OF",
"values": ["customer"],
},
}],
}],
"filters": [],
},
})
resp.raise_for_status()
```
Create each list, verify member count, and document the list ID.
For static lists (Competitors), create the list and manually add contacts or import from a CSV.
### Stage 4: After
1. Check member counts for each list — do they match expectations?
2. Verify no contacts appear in mutually exclusive lists (e.g., both Customer and Competitor).
3. Confirm lists are visible to the appropriate teams.
## Rollback
- Lists can be deleted via the API or UI.
- Deleting a list does not affect the contacts in it — only the list definition is removed.
- Check if any workflows or emails reference the list before deleting.
## Tips
- Use a consistent naming convention: `[Category] - Segment Name` (e.g., `[ICP] - Tier 1`, `[Industry] - Manufacturing`).
- Review segment membership quarterly — segments should grow or shrink in expected ways.
- Use these lists as building blocks for email sends, ad audiences, and workflow enrollment triggers.
© tomgranot · MIT · TomGranot/hubspot-admin-skills