The pipeline review template
The eight questions a pipeline review should answer, with the thresholds I start from and the digest format that keeps the channel reading. Use it as the agenda for a human-run review, or paste it into the Routine's brief and let Monday's post arrive already answered.
- moved up a stage: count and amount
- moved down a stage: count and amount
- new this week, closed-won, closed-lost
- close date pushed: count, amount, and total pushes per deal
- stale: late stage, no logged activity in > 14 days (tune to your cycle)
- no next step: blank, or a next-step date in the past
- close date in the past on an open deal
- concentration: share of weighted pipeline in the top 3 deals
- weighted coverage this quarter vs remaining target, and vs the coverage ratio you need (3x is a common default)
- repeat slippers: any deal pushed 3+ times
- one headline line: coverage, and the one thing that changed most
- six deals that need a decision, ranked, one line each: deal, owner, amount, what happened, decision needed
- the numbers table, each with the change vs last week
- a thread per rep with 2-4 lines on their deals
The cut is the template. Six deals at the top, chosen by these rules, and the rest below the fold. Cite fields, never adjectives, and the room will trust it enough to start the meeting from it.
The stack
- Per week
- one Routine run reading a few hundred deals, well under a dollar on a mid-tier model
- CRM + Slack
- free over MCP, no BI seat or connector plan
- Setup
- an afternoon to write the brief and run it once by hand
- The meeting
- the real saving: 20-25 minutes of a 6-person meeting, every Monday
The problem
Every sales team runs a pipeline review, and most of them run it the same way. Someone pulls a report Sunday night. Monday morning, the room spends the first twenty-five minutes reading it aloud: what moved, what slipped, whose close dates are fiction. Then, with five minutes left, the actual conversation starts, which deal needs an exec, which one is dead and nobody will say it. The meeting is scheduled for the decisions and spent on the reading.
The facts are all in the CRM. Stage changes are timestamped. Last activity is a field. Close dates are right there, three of them pushed for the fourth consecutive week. Nobody needs a human to discover these things; they need a human to decide what to do about them. Yet the discovery is what eats the meeting, because the report is a table and a table does not tell you which six rows matter this week.
I have built the dashboard version of this three times. Each one was accurate, each one was admired at launch, and each one was open in fewer than a third of the reviews by month two, because a dashboard waits for someone to look at it and a Monday morning has other plans. The report that changes a meeting is the one that shows up in the channel, already read, already ranked, before anyone has finished their coffee.
A Claude Routine does exactly that. Every Monday at 7am it reads the pipeline over MCP, compares it to last week, and writes the digest a good RevOps lead would write if they had two quiet hours nobody ever gives them: what moved and why it matters, what is stale, what has no next step, the deals that keep slipping, coverage against the number. It posts to Slack, one summary for the room and a short thread per rep. Nothing is written back to the CRM; this play only reads. The review starts at 'what do we do about deal four' instead of 'what is deal four.'
How it works
- 01 Fire Monday 7am Claude Routinesin the cloud, no laptop needed
- 02 Read the pipeline HubSpot (MCP)every open deal, read-only
- 03 Compare to last week Snapshotmoves, pushes, new, gone
- 04 Apply the template Claudestale, no next step, slippers, coverage
- 05 Rank the six Claudedeals that need a decision, one line each
- 06 Post + thread Slack (MCP)room summary, a thread per rep
- A Claude Routine fires Monday at 7am, in the cloud, with no laptop involved
- It reads every open deal over the CRM's MCP connector: stage, amount, close date, last activity, owner, stage history, next step
- It compares to last Monday's snapshot: stage moves, amount changes, close-date pushes, new deals, deals that vanished
- It applies your pipeline review template: stale deals, missing next steps, repeat slippers, concentration risk, coverage vs quota
- It writes the digest in the format you set: a headline, the six deals that need a decision, then the numbers, then per-rep notes
- It posts the summary to the sales channel and a thread per rep in Slack, and saves the snapshot for next week's comparison
See it run
The playbook
Write down what a good pipeline review actually asks
Before any automation, agree on the questions. Most pipeline reviews ask the same eight, they just ask them badly, out of order, and from memory. What moved stage this week, up or down? What is stale, meaning no logged activity in more than 14 days for a deal in a late stage? What has no next step or a next step in the past? Which close dates were pushed, and how many times has that deal pushed before? How much of the quarter is concentrated in the top three deals? Where does weighted coverage sit against the number, and against the coverage ratio you actually need?
Write the questions down with their thresholds, because 'stale' means something different for a 30-day cycle than a 9-month one. Set the definitions with the sales leader in the room, once, and put them in the brief. The pipeline review template below is the set I start from; most teams change two thresholds and keep the rest.
Decide what the digest leaves out. A digest that lists every deal gets muted by week three, the same fate as every report before it. The rule that keeps it read: the top section is the six deals that need a decision this week, chosen by the template, with one line each on why. Everything else is the numbers, below the fold.
TipArgue about the thresholds once, in the brief, with the sales leader present. If 'stale' is decided in the meeting every week, the meeting is back to establishing facts, which is the thing you are trying to end.
Connect the CRM read-only over MCP
Connect HubSpot or Salesforce to Claude through its MCP connector and confirm the Routine can read open deals with the fields the template needs: stage, amount, close date, last activity date, owner, next step, and the stage history so it can see moves and pushes. Name your custom properties and pipeline stages explicitly in the brief; the agent will assume the standard ones and miss your setup if you do not.
Keep this play read-only. It reads deals and it writes a Slack message. It never touches the CRM, which is what makes it safe to schedule unattended on day one and why it is the right first Routine for a team that has not run one before. The temptation to have it 'just fix the close dates' comes later, and it should stay a separate, gated play.
Give it somewhere to keep last week's snapshot: a Google Drive file over the connector, or a file in your repo if you run it as a scheduled Claude Code job. The digest is only interesting as a delta, and a delta needs a baseline. Week one will be a baseline with no comparison; tell the team that, so nobody judges it on a Monday when it has nothing to compare against.
- Reads: deal name, owner, stage, amount, close date, last activity, next step, created date, stage history
- Reads: the quota or target for the period, from a property or a number in the brief
- Reads: last Monday's snapshot, for the delta
- Writes: one Slack summary, one thread per rep, and this week's snapshot
- Never writes: anything in the CRM
Write the Routine's brief
The brief is the pipeline review template turned into instructions, plus the output format, plus what to leave out. Brief it the way you would brief a sharp RevOps analyst doing this every Monday without you in the room: pull everything open, compare to last week, apply the thresholds, rank what needs a decision, write it in this shape, post it here. Be specific about the cut, because a Routine that includes everything trains the channel to scroll past it.
Ask for ranked judgment, not a list. 'Six deals that need a decision this week, one line each on why' is a harder instruction than 'list stale deals,' and it is the one that gets read. The agent has the stage history and the activity log; it can tell a deal that pushed for the fourth time from a deal that pushed once because legal is slow, and the digest should say which is which.
Fix the format so the team learns to scan it. Headline number first. Then the six. Then the numbers table. Then per-rep threads. Same order every week. A digest that changes shape is a digest people have to read; one that holds its shape is one they can scan in ninety seconds at the coffee machine.
Every Monday at 7:00am {{TIMEZONE}}, produce the weekly pipeline digest.
Read: all open deals in pipeline "{{PIPELINE_NAME}}" via the {{CRM}} connector, with stage, amount, close date, last activity date, owner, next step, created date, and stage history. Read last week's snapshot from {{SNAPSHOT_LOCATION}}. Quarter target: {{QUOTA}}. Required coverage ratio: {{COVERAGE_RATIO}}x.
Compare to last week and apply these definitions:
- Moved: stage changed since last Monday (note direction).
- Stale: stage in {{LATE_STAGES}} and no logged activity in > {{STALE_DAYS}} days.
- No next step: next step blank or dated in the past.
- Slipped: close date pushed since last Monday. Count total pushes from stage history.
- Concentration: share of weighted pipeline in the top 3 deals.
- Coverage: weighted open pipeline closing this quarter / remaining target.
Write the digest in this exact order:
1. One headline line: coverage vs target, and the one thing that changed most.
2. "Needs a decision this week": the 6 deals that most need one, ranked. One line each: deal, owner, amount, what happened, what decision is needed. Prefer repeat slippers, stale late-stage deals, and large deals with no next step.
3. The numbers: moved up / moved down / new / closed-won / closed-lost / slipped / stale / no next step, each with a count and total amount, and the change vs last week.
4. Per-rep notes: for each owner, 2-4 lines on their deals from sections 2 and 3. Post each as a thread reply.
Rules:
- Read only. Do not create, update, or delete anything in the CRM.
- Do not list every deal. If a deal is not in the six or the numbers, leave it out.
- Cite fields, never adjectives: "pushed 4 times, last activity 23 days ago" beats "at risk".
- If a field is blank, say it is blank; do not infer a next step or a close date.
- Post the summary to #{{SALES_CHANNEL}} and the per-rep notes as thread replies. Save this week's snapshot to {{SNAPSHOT_LOCATION}}.
TipBan adjectives in the brief. 'At risk' is an opinion the room will argue about. 'Pushed four times, last activity 23 days ago, next step blank' is a fact the room can act on. The digest earns trust by citing fields the rep can check in one click.
Schedule it, and run the first one by hand
Set the Routine for Monday at 7am in the team's timezone, early enough that the digest is waiting before anyone opens Slack and late enough that Friday's late CRM updates have landed. A Routine runs in the cloud, so nobody's laptop needs to be open, and it runs on the holiday Monday when the RevOps lead is on a beach. If you would rather own the code and the logs, the same brief runs as a scheduled Claude Code job from your repo; this guide covers when to pick which.
Run the first one manually, on a Friday, with the sales leader looking over your shoulder. Read every line of the six. Where the ranking is wrong, the fix is almost always a threshold or a missing definition in the brief, and that is a five-minute edit. Then let Monday's run go out unedited. A digest a human touches up before posting is a digest that stops the day that human is out.
Post it to the channel the review already lives in, and open the meeting by reading the headline line aloud. That is the whole ritual change: the first twenty-five minutes are gone, because the reading already happened.
Add the per-rep thread and the manager's view
The summary is for the room. The thread per rep is what changes behavior. Each owner gets two to four lines on their own deals from the decision list and the numbers: which one slipped again, which one has no next step, which one went quiet. Reps read a message about their deals; they skim a message about everyone's. Posted as a thread reply under the summary, it stays out of the channel's way and inside the rep's notifications.
Give the manager one extra section, a coverage read by rep against their individual number, and the concentration risk in plain words: 'Forty-one percent of the weighted quarter is in two deals owned by one rep.' That is the sentence a VP wants to see on Monday and usually assembles by hand on Sunday night.
Resist adding more. Every section you add trains the channel to scroll. If a stakeholder wants a new cut, give them their own Routine on their own cadence, and keep the Monday digest to the questions the meeting actually asks.
TipThe per-rep thread is the part reps actually read. Keep the room summary to the six deals and the numbers, and put every 'your deal X pushed again' line in the thread where it lands as a notification for one person, not a public callout.
Tune the thresholds against what the meeting does with them
After four weeks, check the six. If the room regularly ignores a deal the digest flagged, the threshold that flagged it is too loose. If a deal blew up that the digest never surfaced, find the signal it missed, usually a push count or a silent champion, and add it to the ranking rules. The digest should get more useful every month because the brief is a file you can edit, not a report someone has to rebuild.
Watch the stale threshold especially. Fourteen days is right for a 60-day cycle and absurd for a 9-month enterprise motion. If half the late-stage pipeline shows as stale, nobody will act on it, and the section becomes furniture. The right threshold flags the deals the sales leader would have worried about anyway, plus one or two they would have missed.
Every quarter, read the digest from the first week next to the latest one. The team should be able to see the pipeline getting cleaner: fewer blanks, fewer repeat pushes, faster stage moves. That trend is the return on the build, and it is the one number worth putting in front of the CRO.
Inside the prompt
The scoring prompt is short, but every line is there for a reason. Here is what each one is doing and why.
- Read only"Do not create, update, or delete anything in the CRM"
- Makes the Routine safe to schedule unattended on day one. Writes belong in a separate, gated play.
- Definitions with thresholds"Stale: late stage and no activity in > 14 days"
- Argued once, in the brief, with the sales leader present. Otherwise the meeting spends its time re-deciding what stale means.
- Compare to a snapshot"Read last week's snapshot ... note the change vs last week"
- The digest is only interesting as a delta. Without a baseline it is a list, and lists get muted.
- Six, ranked, one line each"the 6 deals that most need a decision, ranked"
- The cut is the product. Everything else goes below the fold in the numbers table.
- Fields, never adjectives"pushed 4 times, last activity 23 days ago" beats "at risk"
- A fact the rep can check in one click. Adjectives start arguments; fields start decisions.
- Fixed order, fixed placesheadline, the six, the numbers, per-rep threads
- Same shape every week so the room scans it in ninety seconds. Per-rep lines land as notifications for one person, not public callouts.
What you get
The Monday 7am post. Headline first, the six deals that need a decision, then the numbers, then a thread per rep. Same shape every week, so the room scans it in ninety seconds.
PIPELINE DIGEST · Mon 7 Sep · New Business
Coverage 2.6x on $740k remaining (down from 2.9x). Biggest change: Northwind ($180k) pushed a 4th time.
NEEDS A DECISION THIS WEEK
1. Northwind Logistics · Marcus · $180k · pushed 4th time to Oct 15, last activity 23 days ago, next step blank. Decision: exec sponsor call or move to Q4 forecast.
2. Halden Payments · Priya · $95k · moved to Negotiation Fri, no next step logged. Decision: confirm paper process and date.
3. Tessaro Health · Marcus · $140k · Proposal stage, no activity 19 days, champion out on leave per last note. Decision: multi-thread or downgrade.
4. Brightline Co · Dana · $60k · new this week, already at Demo, close date this month. Decision: is that date real.
5. Corvid Analytics · Sam · $72k · slipped twice, close date now Sep 30, next step is a past date. Decision: re-date or move out of commit.
6. Meridian Freight · Marcus · $110k · 41% of Marcus's weighted quarter is this + Northwind. Decision: coverage plan if either slips.
THE NUMBERS (vs last week)
Moved up 9 ($610k, +3) · Moved down 3 ($155k, +1) · New 5 ($290k) · Won 2 ($88k) · Lost 1 ($40k)
Slipped 7 ($515k, +2) · Stale (>14d, late stage) 6 ($430k, -1) · No next step 11 ($690k, +4)
[thread] @marcus: Northwind pushed a 4th time and has gone quiet 23 days; Tessaro's champion is out. Between them and Meridian, 41% of your quarter is in 3 deals. Suggest an exec touch on Northwind this week.
[thread] @priya: Halden moved to Negotiation Friday, next step blank. Log the paper process and the signature date so it can count in commit.
[thread] ...
- pushed4th time, now Oct 15
- Counted from stage history, not from memory. One push is legal being slow; four is a deal that is telling you something.
- last activity23 days ago
- Past the 14-day late-stage threshold set in the brief. The number is the argument; nobody has to call it 'at risk'.
- next stepblank
- Reported as blank, never inferred. A digest that fills in a plausible next step is worse than one that says nobody logged one.
- concentration41% of Marcus's weighted quarter, with Meridian
- The sentence a VP assembles by hand on Sunday night. Here it is computed and posted at 7am.
- decision neededexec sponsor call, or move to Q4 forecast
- The digest names the choice; the room makes it. That is the division of labor that gives the meeting its time back.
- where it landsroom summary + @marcus thread
- The room sees the deal and the decision. Marcus gets the detail as a notification, not a public callout.
Pitfalls to avoid
Listing every dealA digest that lists everything is a report, and the channel will mute it by week three. Hold the top section to the six deals that need a decision and push everything else into the numbers table.
Adjectives instead of fields'At risk' starts an argument. 'Pushed 4 times, last activity 23 days ago, next step blank' starts a decision. Ban adjectives in the brief and make every flag cite a field the rep can check in one click.
Letting the Routine write to the CRMThis play reads deals and posts to Slack. The moment it 'just fixes' close dates or next steps, it needs approval gates and an audit trail. Keep that a separate, gated play, and keep this one safe to run unattended.
A stale threshold that flags half the pipelineFourteen days is right for a 60-day cycle and absurd for a 9-month one. If most late-stage deals show as stale, nobody acts on any of them. Set the threshold so it flags what the sales leader would have worried about, plus one or two they would have missed.
Editing the digest before it postsA digest a human touches up stops the week that human is out. Tune the brief until the raw output is good enough to post unedited, then let it post unedited.
Judging week oneThe first run has no snapshot to compare to, so it is a baseline, not a digest. Tell the team, and judge the play on week three.
Questions people ask
- What should a pipeline review actually cover?
- Eight questions, in this order: what moved stage, what is stale, what has no next step, which close dates pushed and how many times, where the quarter is concentrated, and where weighted coverage sits against the target. Then the decisions: which deals need an exec, which need a re-date, which are dead. The facts come from the CRM; the meeting is for the decisions. This play automates the facts.
- Why a Routine instead of a dashboard?
- A dashboard waits for someone to open it, and by month two most reviews do not. A Routine posts the read into the channel at 7am, already ranked, before anyone has opened anything. The difference is delivery, and delivery is the whole reason the dashboard version keeps dying.
- Does it write anything to the CRM?
- No. This play reads deals and posts to Slack, which is why it is safe to schedule unattended on the first day. If you later want an agent to fix close dates or nudge reps to log next steps, build that as a separate play with approval gates and an audit trail. Keep the digest read-only.
- How does it know what changed since last week?
- It saves a snapshot of the open pipeline each Monday, to a Drive file over the connector or a file in your repo, and compares this week's read to last week's. Week one is a baseline with no comparison. Tell the team that, and judge the digest on week three.
- What is the right stale threshold?
- Whatever flags the deals your sales leader would have worried about anyway, plus one or two they would have missed. Fourteen days of no activity on a late-stage deal fits a 60-day cycle. A 9-month enterprise motion might use 30 or 45. If half the late-stage pipeline shows as stale, the threshold is too tight and the section becomes furniture.
- Routine or a scheduled Claude Code job?
- A Routine if you want it running in the cloud in ten minutes with no code. A scheduled Claude Code job if you want the brief in version control, your own logs, and the snapshot in your repo. The brief is identical either way. The loop-vs-Routines guide on this site covers the decision in more depth.
- How long does it take to set up?
- An afternoon: an hour to agree the questions and thresholds with the sales leader, an hour to write the brief, and a manual run on Friday to check the ranking. The first unedited Monday post is the finish line.
Related plays
- Put Recurring GTM Work on Autopilot with Claude Routines →The general pattern this digest is one instance of.
- Claude Routines: scheduled cloud agents, explained →How a Routine runs, and how to set the schedule.
- /loop vs Routines vs scheduled tasks →When to run the brief as a Routine and when to own it as a scheduled job.
- Claude + HubSpot integration guide →Connecting the CRM read-only over MCP.
- Claude + Slack integration guide →Posting the summary and the per-rep threads.
- The RevOps Dashboard That Reconciles: A Claude Agent Builds One Number Set from CRM, Ads, Product, and Billing →The numbers the digest narrates, reconciled against a definitions file every Monday.