cleanup-lists
About
This Claude Skill audits and cleans up HubSpot lists by identifying and removing unused, empty, or duplicate list definitions. It specifically finds lists with zero members, those not used in workflows or emails, and lists with overlapping criteria. Use this for ongoing HubSpot maintenance to reduce UI clutter and improve system performance.
Quick Install
Claude Code
Recommendednpx skills add TomGranot/hubspot-admin-skills -a claude-code/plugin add https://github.com/TomGranot/hubspot-admin-skillsgit clone https://github.com/TomGranot/hubspot-admin-skills.git ~/.claude/skills/cleanup-listsCopy and paste this command in Claude Code to install this skill
Documentation
Cleanup Lists
Audit HubSpot lists to remove clutter. Unused lists slow down the UI, confuse team members, and can mask the lists that actually matter.
Prerequisites
- HubSpot API token in
.env - Python with
hubspot-api-clientinstalled viauv - Note: Lists API access may return 403 on some plan tiers. If so, perform the audit manually in the UI.
Step-by-Step Instructions
Stage 1: Before — Inventory All Lists
Pull all lists via the API:
from hubspot import HubSpot
api_client = HubSpot(access_token=os.getenv("HUBSPOT_API_TOKEN"))
lists = []
offset = 0
while True:
response = api_client.crm.lists.lists_api.get_page(offset=offset, limit=100)
lists.extend(response.results)
if not response.paging or not response.paging.next:
break
offset = response.paging.next.after
For each list, record: list ID, name, type (active/static), member count, created date, last updated date.
Export to CSV for review.
Stage 2: Execute — Identify Candidates for Deletion
Flag lists matching any of these criteria:
- Zero members and created more than 30 days ago
- Not referenced by any workflow, email, or ad audience
- Duplicate names or nearly identical filter criteria
- Test/temp lists (names containing "test", "temp", "copy of", "old")
- Static lists that have not been updated in 6+ months
Cross-reference with workflows and email campaigns before deleting — a list with zero members might still be used as an enrollment trigger.
Stage 3: After — Delete and Document
- Delete confirmed unused lists via the API or UI.
- Document what was deleted (list name, ID, reason) in a cleanup log.
- Inform team members if any lists they created were removed.
Stage 4: Rollback
- HubSpot does not have a list recycle bin. Deleted lists cannot be restored.
- Before deleting, export the list definition (filters/criteria) so it can be recreated if needed.
- Static lists: export member IDs before deletion if the membership data matters.
Tips
- Run this quarterly as part of the database cleanup routine.
- Establish a naming convention going forward (e.g., prefix with team name or purpose).
- Archive lists by prefixing with "[ARCHIVE]" instead of deleting if you are unsure.
GitHub Repository
Frequently asked questions
What is the cleanup-lists skill?
cleanup-lists is a Claude Skill by TomGranot. Skills package instructions and resources that Claude loads on demand, so Claude can perform cleanup-lists-related tasks without extra prompting.
How do I install cleanup-lists?
Use the install commands on this page: add cleanup-lists to Claude Code as a plugin, or clone its repository into your skills directory, then restart Claude so it picks up the skill.
What category does cleanup-lists belong to?
cleanup-lists is in the Communication category, tagged ai and automation.
Is cleanup-lists free to use?
Yes. cleanup-lists is listed on AIMCP and free to install. It runs inside Claude, so no separate service account is required to use the skill itself.
Related Skills
This Claude Skill enables email management through the Himalaya CLI tool using IMAP. It allows developers to search, summarize, and delete emails from an IMAP account with natural language queries. Use it for automated email workflows like getting daily summaries or performing batch operations directly from Claude.
imsg is a CLI tool for macOS that lets you programmatically interact with iMessage/SMS via the Messages.app. It enables developers to list chats, view message history, watch conversations in real-time, and send messages or attachments. Use this skill to automate messaging tasks or integrate iMessage/SMS functionality into your development workflows.
This Claude Skill provides comprehensive guidance for implementing internationalization (i18n) and localization in applications. It covers key tasks like message extraction, translation management, locale-specific formatting, and RTL support using libraries like i18next and gettext. Use it when building multi-language applications or adding localization features for international users.
wacli is a command-line tool that enables WhatsApp messaging, search, and synchronization via the WhatsApp Web protocol. It's primarily used within Clawdis workflows for automated handling but can be called directly to send messages, sync chats, or query history. Key features include QR-based authentication, continuous background syncing, and the ability to send both text and files.
