customer-retention

Identify inactive/at-risk customers via CRM filters and create follow-up tasks at scale. Builds on `bulk-operations`; defers activity-creation specifics to `sales-execution`.

By hubspot · 1,290 installs

npx skills add hubspot/agent-cli-skills --skill customer-retention

Source repository · Upstream listing

Resources File When to use resources/customer health signals.md Filter cookbook of churn signals — filter expressions for notes last contacted , hs last sales activity date , hs email optout , stale tickets, subscription status. Prereqs Read bulk operations/SKILL.md first — every read/write below uses its JSONL pipe, pagination, and dry run/digest patterns. Activity property tables and association rules live in sales execution/SKILL.md . Schema is portal specific. Verify each property before filtering — e.g. hubspot properties get type contacts notes last contacted , ... hs last sales activity date , ... type subscriptions hs subscription status . If subscriptions returns 403, your token lacks subscriptions read — use a private app token with that scope. 1 — Find inactive customers For more signals (email opt out, stale tickets, no open deals) see resources/customer health signals.md . For 100 hits, use the pagination loop from bulk operations . 2 — Flag at risk subscriptions subscriptions is a standard object ( hubspot objects types confirms). Enum values for hs subscription status are portal specific — verify before filtering, then plug the exact value in: 3 — Create a follow up task or check in note Activity creation lives in sales execution (full property tables, note + meeting flows). One anchor example — unassociated tasks are invisible in the CRM UI, so always associate: 4 — Bulk task creation for a cohort Pipe a search through jq into one objects create call, then associate. Preview with dry run first ( bulk operations covers digest/confirm for 100 rows). One CLI call for the search, one for the create, then N for associations — no xargs I{} per record. The output order guarantee of objects create (one result per stdin line, in order — see bulk operations "Output shape") is what makes the paste correct. Known gaps No native churn score / health score property — track via a custom property. No Lists API, no sequences/cadences API — re engagement enrollment is not CLI available. hubspot associations create does not batch — one CLI call per pair.