sales-reporting

Daily briefings, pipeline snapshots, and win/loss analysis from the terminal — closing-this-week, open pipeline by stage/owner, and closed-won vs closed-lost over a period.

By hubspot · 1,314 installs

npx skills add hubspot/agent-cli-skills --skill sales-reporting

Source repository · Upstream listing

Source of truth hubspot <command help is authoritative. Build on bulk operations/SKILL.md — JSONL shape, batch read rules, and pagination live there. Reshape patterns: bulk operations/resources/json patterns.md . search / list cap at 100 rows per call; a result of exactly 100 is almost always truncated — paginate via bulk operations/SKILL.md before aggregating. Property and output shape notes All CRM property values come back as strings in JSONL — booleans included. hs is closed won is returned as "true" / "false" (string); amount is a numeric string. Use tonumber for arithmetic; compare booleans as strings ( == "true" ) when filtering client side. In filter expressions, hs is closed won=true and hs is closed!=true work — the API parses the value. properties returns the standard nested shape: {"id":"123","properties":{"amount":"5000","dealname":"..."}} . Reference fields as .properties.amount in jq. Stage IDs in dealstage are portal specific. Map them with hubspot pipelines stages type deals pipeline <id . hubspot owner id is a numeric string. Resolve to a name with hubspot owners list (fields: id , firstName , lastName , email ). 1. Daily briefing Date windows differ between macOS and GNU date : Deals closing in the next 7 days: Deals updated in the last 24h: Open pipeline summary line: 2. Pipeline snapshot By stage — count and amount per dealstage : By owner: To label owner IDs with names, dump the owners file once and join: 3. Win/loss analysis Filter on hs is closed won=true for won; hs is closed=true AND hs is closed won!=true for lost. Scope with closedate =YYYY MM DD AND closedate<YYYY MM DD . Closed won / lost in a period: Win rate by rep — pull all closed deals in the period, group, divide. Note: hs is closed won lands as a string, so compare == "true" . Revenue by close month (won deals): Known limitations hubspot pipelines stages does not expose stage probability — won/lost stages can't be auto identified from the stages list. Use hs is closed won on deals instead. No team object — group by hubspot owner id and resolve names from hubspot owners list client side.