← Back to Skills Marketplace
tomgranot

Cleanup Properties

by TomGranot · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
106
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install cleanup-properties
Description
Archive or delete unused custom properties across all HubSpot object types (contacts, companies, deals). Identifies Salesforce sync properties, test/temp pro...
README (SKILL.md)

Cleanup Properties

Remove or archive unused custom properties. Property bloat slows down forms, confuses users, and makes data mapping harder.

Prerequisites

  • HubSpot API token in .env
  • Python with hubspot-api-client installed via uv

Step-by-Step Instructions

Stage 1: Before — Inventory All Custom Properties

Pull properties for each object type:

from hubspot import HubSpot

api_client = HubSpot(access_token=os.getenv("HUBSPOT_API_TOKEN"))

for obj_type in ["contacts", "companies", "deals"]:
    props = api_client.crm.properties.core_api.get_all(
        object_type=obj_type
    )
    custom_props = [p for p in props.results if not p.hubspot_defined]

For each custom property, record: name, label, object type, type, group, number of records with a value (requires search queries), whether it is used in any form/workflow/list.

Stage 2: Execute — Identify Candidates for Deletion

Safe to delete:

  • Properties with zero populated records and not used in any form, workflow, or list
  • Properties with names containing "test", "temp", "old_", "copy_of"
  • Properties created by deactivated integrations

Handle with care:

  • Salesforce sync properties (hs_salesforce_* prefix or mapped in sync settings) — do not delete without coordinating with the Salesforce admin
  • Form fields — check if the property is used on any active form before deleting
  • Workflow dependencies — check if any workflow reads or sets this property
  • Calculated properties — check if other calculated properties reference this one

Archive instead of delete when:

  • The property has historical data that might be needed for reporting
  • You are unsure whether anything depends on it

Stage 3: After — Delete or Archive

  1. Archive properties first (HubSpot supports property archiving).
  2. Wait 30 days, then delete archived properties that caused no issues.
  3. Document all changes in a cleanup log.

Stage 4: Rollback

  • Archived properties can be unarchived at any time.
  • Deleted properties cannot be restored. The property definition and all associated data are permanently lost.
  • Always archive before deleting to provide a safety window.

Tips

  • Run this quarterly as part of the database cleanup routine.
  • Establish a property naming convention going forward (e.g., team_purpose_detail).
  • Limit who can create custom properties to prevent sprawl.
  • HubSpot has a property limit per object type — cleanup prevents hitting it.
Usage Guidance
This skill's purpose (clean up HubSpot custom properties) is reasonable, but the SKILL.md and the registry metadata disagree: the instructions expect a HUBSPOT_API_TOKEN in a .env file and a Python dependency, yet the skill declares no required environment variables or install steps. Before installing or running it: (1) require that the skill metadata declare HUBSPOT_API_TOKEN and indicate the minimum necessary API scopes (prefer read-only/inventory first, then separate write permission for archival/deletion); (2) fix the SKILL.md typos and make all API calls explicit (including how to check form/workflow/list usage and counts of populated records); (3) run the process in a test/sandbox HubSpot account first and produce a report of candidate properties without deleting anything; (4) enforce an approval workflow (human review) before any archival/deletion and keep detailed logs; and (5) coordinate with Salesforce admins for any hs_salesforce_* properties. Given the credential gap and missing safeguards, treat this skill as suspicious until metadata and instructions are corrected and you confirm token scope and a safe review process.
Capability Analysis
Type: OpenClaw Skill Name: cleanup-properties Version: 1.0.0 The skill is a legitimate administrative tool for HubSpot database maintenance, designed to identify and archive or delete unused custom properties. The instructions in SKILL.md provide clear safety guidelines, such as checking for Salesforce sync dependencies and recommending archiving over immediate deletion, and the code logic uses the official hubspot-api-client without any signs of data exfiltration or malicious execution.
Capability Assessment
Purpose & Capability
The SKILL.md clearly requires a HubSpot API token and a Python client to run, but the registry metadata lists no required environment variables or dependencies. That mismatch (credential and dependency needed but not declared) is inconsistent with the stated skill packaging.
Instruction Scope
Instructions are focused on inventorying, archiving, and deleting HubSpot custom properties which aligns with the description. However the runtime steps omit concrete API calls for checking forms/workflows/lists and for counting populated records, contain small code omissions (uses os.getenv but never imports os), and a likely typo ('uv' for installing the hubspot client). The guidance correctly stresses archiving before deletion.
Install Mechanism
This is an instruction-only skill with no install spec or bundled code, so there is no installer risk. The SKILL.md does reference installing a Python package, but no install steps are declared in the registry.
Credentials
The instructions require a HUBSPOT_API_TOKEN (not declared in metadata) which would grant access to read and modify CRM data. The skill does not declare required env vars or the expected minimum token scopes (read vs write). That omission prevents assessing whether requested privileges are appropriately limited.
Persistence & Privilege
The skill does not request persistent presence (always: false) and has no install actions that would alter other skills or system-wide settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install cleanup-properties
  3. After installation, invoke the skill by name or use /cleanup-properties
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release of the cleanup-properties skill. - Identify and inventory custom properties across all HubSpot object types (contacts, companies, deals) - Flag unused, temporary, test, obsolete, and integration-created properties for safe deletion or archiving - Special handling for Salesforce sync properties, active form fields, workflow dependencies, and calculated properties - Step-by-step guidance for archiving, deletion, and rollback procedures - Promotes ongoing property maintenance and prevention of property bloat
Metadata
Slug cleanup-properties
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Cleanup Properties?

Archive or delete unused custom properties across all HubSpot object types (contacts, companies, deals). Identifies Salesforce sync properties, test/temp pro... It is an AI Agent Skill for Claude Code / OpenClaw, with 106 downloads so far.

How do I install Cleanup Properties?

Run "/install cleanup-properties" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Cleanup Properties free?

Yes, Cleanup Properties is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Cleanup Properties support?

Cleanup Properties is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Cleanup Properties?

It is built and maintained by TomGranot (@tomgranot); the current version is v1.0.0.

💬 Comments