From hubspot-admin
Audit and remove unused, empty, or duplicate list definitions from HubSpot. Identifies lists with zero members, lists not used by any workflow or email, and overlapping list criteria.
npx claudepluginhub tomgranot/hubspot-admin-skillsThis skill uses the workspace's default tool permissions.
Audit HubSpot lists to remove clutter. Unused lists slow down the UI, confuse team members, and can mask the lists that actually matter.
Audit and remove inactive, test, or deprecated workflows from HubSpot. Identifies workflows that have never enrolled contacts, workflows turned off for 90+ days, and test workflows.
Builds HubSpot marketing automation workflows: create static/dynamic contact lists, process form submissions, send emails, manage tickets using TypeScript API client.
Automates Lemlist multichannel outreach: list/manage campaigns, enroll leads at scale with enrichment, add personalization variables, export data, handle unsubscribes via Composio MCP tools.
Share bugs, ideas, or general feedback.
Audit HubSpot lists to remove clutter. Unused lists slow down the UI, confuse team members, and can mask the lists that actually matter.
.envhubspot-api-client installed via uvPull 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.
Flag lists matching any of these criteria:
Cross-reference with workflows and email campaigns before deleting — a list with zero members might still be used as an enrollment trigger.