All skills

Pipeline review

Reviews pipeline health before forecast calls or recurring check-ins. Flags stuck, skipped, regressing, or at-risk deals and recommends one concrete action per issue.

SKILL.md
name:
pipeline-review
description:
Reviews pipeline health before forecast calls or recurring check-ins. Flags stuck, skipped, regressing, or at-risk deals and recommends one concrete action per issue.

Instructions

Setup state. Not yet configured for this org. Load the Setup sub-page and walk the user through mapping their CRM stages to the Swan funnel model, recording per-stage SLAs, and setting the review cadence before running a review. (After setup is performed, rewrite this paragraph via swan-update-skill to describe the current state — funnel stages mapped from CRM, required field mappings, per-stage SLAs in days, review cadence and delivery channel, and last-refreshed date — so future runs see the current configuration without re-checking.)

What this skill does

Walk the user's pipeline. Surface deals that need attention: stalled in stage, regressed in stage, missing key activities, or showing risk signals. Output: a short prioritized list with one action per item. Not a forecast — that's a separate verb.


Step 1 — Scope the review

Ask once:

  • Whose pipeline (a specific AE, a team, the whole org)?
  • Which stages (mid-funnel only by default — exclude early discovery and closed)?
  • Time horizon (default: deals expected to close this quarter, plus anything aging > 30 days regardless of close date).

If the user hasn't said which AE, default to all open mid-funnel deals.


Step 2 — Pull the deal slice

hubspot-search-objects (object: deals) filtered to the chosen owner(s), open stages, and the date window. Page size 20. Pull associated company and amount.

If the result is > 40 deals, switch to swan-execute-code: dump the deals query result and aggregate from disk.


Step 3 — Flag anomalies per deal

For each deal in the slice, check three things (cheap, no enrichment):

Flag Check How
Stalled No engagement / activity update > 21 days Deal hs_lastmodifieddate > 21 days ago
Regressed Stage went backwards Check stage history if available; or compare to prior pipeline snapshot in memory
Risk: low engagement < 3 distinct contacts engaged in last 30 days hubspot-get-engagements on the deal — count distinct contacts
Risk: champion gone Primary contact left the company swan-search-companies for the contact's current company vs deal company
Risk: amount missing Deal in late stage with no amount Deal amount field empty + stage past discovery
Risk: close date stale Close date in the past or > 90 days out for a "this quarter" deal Compare to today

Keep one line per flagged deal: <deal name> — <flag> — <evidence>. Discard the rest.

If a deal has multiple flags, list them comma-separated on the same line.


Step 4 — Pull fresh signals for at-risk deals only

For each flagged deal, check one source: swan-fetch-business-events on the associated company in the last 30 days. If a fresh signal exists, note it — it's the angle to act on.

Skip signal lookup for unflagged deals. Most pipeline reviews are about the at-risk subset.


Step 5 — Recommend one action per flag

Lightest first:

Flag Default action Tool
Stalled, fresh signal exists Draft a signal-based re-engagement hand off to reach-out
Stalled, no fresh signal Create a CRM task for the owner to call/email manually hubspot-create-task + hubspot-create-note
Regressed Create a task to schedule a deal review with the owner hubspot-create-task
Low engagement Hand off to multi-thread-deals to identify missing personas multi-thread-deals
Champion gone Hand off to champion-tracker to find the champion's new role champion-tracker
Amount missing / close date stale Create a task for the owner to update the deal hubspot-create-task

Don't auto-execute. List the recommendation. Ask which to proceed with.


Step 6 — Surface the report

PIPELINE REVIEW — <date>, <scope>

<N> deals reviewed. <M> flagged.

STALLED (X)
  1. <deal> — <amount> — last activity Y days ago — fresh signal: <yes/no>
     → <action>

REGRESSED (X)
  ...

RISKS (X)
  ...

End with a bottom line: "X actions recommended. Want me to create the CRM tasks for the top N?" Wait for approval before writing anything to CRM.


Rules

  • MUST process deals in slices of 20. Don't load the whole pipeline into context.
  • MUST cite specific evidence per flag (days, dates, counts).
  • MUST end with an explicit approval gate before creating CRM tasks.
  • NEVER recommend more than 10-15 actions in a single review. Bigger lists won't get acted on. If more deals are flagged, surface top 10 and offer to do the rest in a follow-up pass.
  • NEVER flag deals as stalled if they're in a stage where 21 days is normal (custom stages — confirm the org's stage SLAs from memory before flagging).