{"id":24813,"plugin_id":"plugin_asdk_app_697acb8e53d88191bf7a79e62012ae14","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:18:41.140Z","digest":"c2a92d301dd098a113950047111c3d0bcaa3c373f87dcf5b474e27f8fa7bc329","against":5163,"payload":{"name":"hubspot-crm-data-hygiene","description":"Use when auditing HubSpot data quality for missing fields, stale records, duplicates, associations, owners, or cleanup tasks.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":263}],"skill_md_contents":"---\nname: hubspot-crm-data-hygiene\ndescription: Use when auditing HubSpot data quality for missing fields, stale records, duplicates, associations, owners, or cleanup tasks.\n---\n\n# HubSpot CRM Data Hygiene\n\nIdentify cleanup needs across contacts, companies, deals, and tickets. Follow [../hubspot/SKILL.md](../hubspot/SKILL.md) for access, URLs, pagination, and write approvals.\n\n## Workflow\n\n1. Call `get_user_details` and confirm read access to the requested object types.\n2. Clarify issue classes: missing fields, stale records, duplicate-like records, owner gaps, associations, lifecycle/stage issues, or imports.\n3. Discover properties with `search_properties`: contact email/phone/company/owner/lifecycle; company name/domain/website/owner; deal stage/pipeline/amount/close date; ticket subject/stage/priority/category/owner.\n4. Use `get_properties` for enums, then `search_crm_objects` count queries with `NOT_HAS_PROPERTY`, `HAS_PROPERTY`, filters, and `associatedWith`.\n5. For duplicate-like checks, prefer strong keys: contact email, company domain/website, phone, or deal name plus associated company. If aggregation is unavailable, sample and say so.\n6. Fetch examples with `get_crm_objects` only when current values affect cleanup.\n\n## Issue Classes\n\n- Missing routing or identity fields.\n- Stale activity, old modified dates, past close dates, or unresolved ticket age.\n- Broken associations, inconsistent lifecycle/stage values, or duplicate-like records sharing strong identifiers.\n\n## Output\n\nReturn coverage, top issues with counts, example URLs, why each issue matters, recommended fix, cleanup backlog, human-review items, and caveats. Do not auto-merge duplicates or overwrite fields. For writes, use the core confirmation table.\n"},"changes":[{"path":"/included_files","type":"changed","before":[],"after":[{"relative_path":"agents/openai.yaml","size_in_bytes":263}]}],"summary":"Fields changed: 1. /included_files.","summary_kind":"deterministic","summary_metadata":{}}