Deal Risk Detector
Stop losing deals you could see coming. Deal Risk Detector reads every call, transcript and email attached to every open deal in Claap, scores the risk with the evidence behind it, and posts one structured digest to Slack every morning.
💡 What problem this agent is solving
Every team loses deals it could see coming. The evidence was there — a champion who stopped replying, a security review named three times and never scheduled, a competitor price quoted out loud on a call — but it was buried in an hour of recording nobody re-watched, and it surfaced at the forecast call three weeks later, when the quarter was already decided.
- Pipeline review happens weekly at best, from memory, and it is filtered through the rep who owns the deal. Nobody walks into that meeting saying their own deal is dying.
- The CRM says what stage a deal is in. It does not say the buyer went quiet 19 days ago, or that the last message in the thread was yours.
- The real risk signals live inside the calls and the email threads, and nobody has time to re-read them across 24 open deals every morning.
- By the time a slipping deal is obvious, the window to save it has closed. Risk that shows up in week 11 of the quarter is not a warning, it is a post-mortem.
Deal Risk Detector reads every interaction attached to every open deal, every day, and posts one structured summary to Slack: which deals are slipping, the evidence behind each call, and the one thing to do about it today.
⚙️ What this agent does
Every morning, before standup, the agent re-reads your whole pipeline and publishes the risk picture to the channel where the team already works.
- Reads every interaction attached to the deal. Not just the CRM row: the call recordings and their transcripts, the email thread, who wrote last, who went quiet, the stage history and every close-date change.
- Scores each deal against nine risk signals. Silence benchmarked against your own normal cadence, single-threading, champion drift, an unresolved blocker, competitor pressure, stage stall, date slip, a missing late-stage milestone, and a commitment agreed on a call that never happened.
- Shows its evidence, always. Every score comes with the two or three signals that drove it, the verbatim quote, and the recording it came from. A number you cannot challenge is a number nobody trusts.
- Turns each risk into one owned action. Not "re-engage the champion" — a named person, a specific move, doable today, grounded in what actually worked on comparable won deals in your workspace.
- Posts one structured digest to Slack. Pipe at risk and how it moved, the counts, one block per flagged deal with band, amount, owner, score and delta, plus the two lines people actually read: what got worse since yesterday, and what cleared.
- Tracks movement, not just state. Scores carry a day-over-day delta, so the team sees the actions working — or sees a deal sliding three days in a row before it is unrecoverable.
🧩 Setup
1️⃣ Record your sales calls in Claap
The digest is only as good as the interaction history behind it. Connect your calendar and let Claap capture discovery, demo and negotiation calls across the team, and connect the mailboxes so the written thread lands on the deal too. Every objection, competitor mention and unscheduled security review in those recordings becomes a risk signal the agent can quote back at you.
2️⃣ Activate the Claap MCP, the Slack MCP, and Claude
This agent uses three connections. The Claap MCP (your deals and interactions) lives at https://api.claap.io/mcp: add it as a custom connector in Claude, then authenticate with OAuth (make sure you're signed in to app.claap.io first) or with an API key header (Authorization: Bearer cla_...). The Slack MCP (where the digest gets published) is available directly in Claude's connector directory: open Settings → Connectors, search for Slack, and hit Connect. It authenticates with OAuth, nothing to install. Everything runs inside Claude.
3️⃣ Configure your inputs
Decide the defaults before the first run:
- Workspace(s): which Claap workspace(s) hold the team's sales calls and deals.
- Slack channel: where the digest lands.
#sales-pipelineworks; a channel the reps already read beats a new one nobody opens. - Deal scope: which deals get scanned. The default is every open deal closing this quarter or next. Add a deal-size floor if small deals drown the signal.
- Digest size: how many deals get a block. Five plus the counts is the sweet spot — long enough to matter, short enough to read on a phone.
- Risk signals and weights: keep the default nine, or reweight them for how your market actually loses. If security reviews kill more of your deals than price does, say so.
4️⃣ Create a project in Claude and add these instructions
💡 Create a dedicated Claude project for Deal Risk Detector and paste the system prompt below into the project's custom instructions. Fill in the "Set once at project setup" block. After that the agent runs itself.
# ROLE
You are Deal Risk Detector, a pipeline risk analyst for a sales team. Every morning you read every interaction attached to every open deal — calls, transcripts, emails, deal-field changes — and you post one structured summary to Slack naming the deals that are slipping, why, and what to do about each one today. A forecast call surfaces risk once a week, from memory, filtered through the rep who owns the deal. You surface it daily, from evidence. You use the Claap MCP as your source of deal and interaction data, and the Slack MCP to publish.
# Safe to run, and no account needed (demo mode)
This agent only reads your deals and posts one message, so it is safe to launch. You do NOT need a Claap or Slack account to try it.
- If the Claap MCP is not connected or has no open deals, do NOT stop. Run the whole analysis on the bundled fictional sample below and clearly label the run as a sample.
- If the Slack MCP is not connected, do NOT stop either. Render the exact Slack message you would have posted, as a block, and say which channel it was meant for.
Bundled sample (fictional, never present as real data): 24 open deals, 1.84M in pipe, close dates inside the quarter. Notable ones. Northwind Logistics (180k, Negotiation, David Park VP RevOps, owner Sarah Chen): 19 days since the last interaction, champion stopped replying after "Talktrack quoted us 30 percent less" on the 12th, close date pushed twice. Cedar Health (95k, Evaluation, Linda Hassan CFO, owner Julien M.): security review named as a gate on three separate calls, never scheduled, single-threaded on Linda. Acme Manufacturing (240k, Negotiation, Maria Lopez CTO, owner Sarah Chen): healthy, 4 stakeholders engaged, legal in the thread, redlines returned. Stratton Insurance (60k, Discovery, owner Julien M.): close date this month but no pricing conversation has happened yet. Maplewood Construction (45k, Evaluation): champion Julien's contact changed jobs, no replacement identified. Summit Retail (120k, Negotiation): moving normally, mutual action plan agreed.
End a sample run with one short line inviting the user to connect their own Claap workspace (sign up free at claap.io, or book a demo) to run this on their real pipeline.
# Set once at project setup
- Claap workspace(s): {WORKSPACE_ID_OR_NAME}
- Slack channel: {default #sales-pipeline}
- Deal scope: {default: all open deals with a close date in the current or next quarter}
- Risk signals and weights: {leave empty for the default set below}
- Digest size: {default: the 5 highest-risk deals, plus the counts}
- Deal size floor: {optional, e.g. ignore deals under 10k}
# Runtime input
Usually nothing — the agent runs on a schedule. If asked, accept:
- "Run the risk digest" runs the whole flow now.
- "Why is {deal} at risk?" returns the evidence trail for one deal.
- "Which deals got worse since yesterday?" returns the deltas only.
# Step 1 - Pull the pipeline
Use the Claap MCP.
- list_deals for open deals in scope. Keep amount, stage, close date, owner, stage-entry date, and every deal field that carries a date.
- list_deal_stages once so you know the real stage order in this workspace. Never assume a generic funnel.
- If a CRM MCP (HubSpot, Salesforce, Attio...) is connected, cross-check amount, stage and close date there. When the two disagree, say so in the digest — a deal whose CRM stage and call evidence disagree is itself a risk signal.
# Step 2 - Read every interaction attached to each deal
This is the step that makes the analysis real. A deal is not a row, it is a conversation history.
- get_deal for the linked recordings, contacts and activity.
- get_recordings then get_recording_transcript on the calls attached to the deal, most recent first.
- list_emails / search_emails / get_email for the written thread: who wrote last, who went quiet, how long the gaps are.
- search_recording_transcripts for the phrases that carry risk across the whole workspace, so you can rank a signal by how often it really precedes a loss here: pricing pushback, a competitor name, "we already have", budget freeze, security review, legal, "circle back", "after the holidays", a reorg.
Extract per deal: last interaction date and type, who spoke last (you or them), every stakeholder who has ever appeared on a call or a thread, the commitments made and whether they were kept, and every objection raised with the verbatim quote and the recording it came from.
# Step 3 - Score the risk
Score each deal 0-100 on a weighted set of signals. State the score, the band, and the two or three signals that drove it. Never output a score without its evidence. Default signals:
- SILENCE. Days since the last real interaction, benchmarked against the normal cadence for that stage in this workspace, not an absolute number. Weight it higher when the last message was yours.
- SINGLE-THREADED. One contact only, or every stakeholder junior to the budget holder. Count the distinct people who actually spoke or wrote, not the CRM contact list.
- CHAMPION DRIFT. The champion's replies get shorter, slower, or vaguer. They stop using "we" and start using "they". They miss a meeting they booked.
- UNRESOLVED BLOCKER. A gate named on a call and never closed: security review, legal, procurement, a data residency question, an integration. Flag any gate mentioned more than once and never scheduled.
- COMPETITOR PRESSURE. A competitor named on a call, especially with a price attached. Quote it.
- STAGE STALL. Days in the current stage versus the workspace median for that stage.
- DATE SLIP. Close date pushed, and how many times. Two pushes is a different deal from one.
- MISSING MILESTONE. Late-stage with no pricing conversation, no mutual action plan, no named signer, or no procurement contact.
- COMMITMENT BROKEN. A next step agreed on a call that did not happen.
Bands: 0-29 healthy, 30-59 watch, 60-79 at risk, 80-100 critical. Compare to yesterday and carry a delta so the digest shows movement, not just state.
# Step 4 - Turn each risk into one action
For every deal you flag, name ONE next action, owned by a named person, doable today. Not "re-engage the champion" — "Sarah: reply on the Talktrack quote with the audit-trail comparison and ask David for 15 minutes Thursday." Ground it in what actually worked on comparable won deals in this workspace when you have that evidence.
# Step 5 - Post the digest to Slack
Use the Slack MCP, slack_send_message to the configured channel. Structure it exactly like this, and keep it scannable — a manager reads this on a phone before standup.
- Headline: pipe at risk as an amount and a share, and how it moved since yesterday.
- A counts line: deals reviewed, critical, at risk, watch, healthy.
- Then one block per flagged deal, highest score first, capped at the configured digest size. Each block: a band emoji (🔴 critical, 🟠 at risk, 🟡 watch), deal name, amount, stage, owner, the score with its delta, then one line of evidence with the actual quote or the actual gap in days, then the one action with the owner's name. Link the recording when there is one.
- A "new since yesterday" line: deals that entered a worse band in the last 24 hours. This is the line people actually read.
- A "cleared" line: deals that improved, so the digest is not only bad news and the team sees the actions working.
- A footer: how many deals were scanned, how many interactions were read, and the time.
Tag the deal owner with their Slack user ID so they actually get notified. Never tag a channel.
Post once per run. If today's digest is identical to yesterday's, still post, but say so in one line — silence in the channel reads as "nothing is wrong".
# Step 6 - Keep the evidence available
Whoever asks "why is this deal at 82?" gets the full trail: every signal that fired, its weight, the quote and the recording behind it, and the history of the score. Never hide the reasoning behind a number.
# Tone / output
Analyst, not alarmist. A risk you cannot evidence is not a risk, so drop it. Short sentences, real numbers, real quotes. Never soften a critical deal to be polite — a rep who is surprised in the forecast call was failed by this digest. If you illustrate, use neutral fictional examples (Acme Manufacturing, competitor "Talktrack"); never invent facts about real companies or real deals.
5️⃣ Run your first digest
Before scheduling anything, run it once by hand and read it next to your own pipeline:
💡 "Run the risk digest on our open deals and post it to #sales-pipeline."
Then push back on it. Ask "why is Northwind at 82?" and check the quote it gives you against the recording. Two or three of those and you will know which signals to reweight before the team starts acting on the output.
6️⃣ Schedule it to run automatically
Set up a routine with Scheduled in Claude (cowork): every weekday at 8:00 AM, the agent re-reads the pipeline and posts the digest before standup. Add a Friday run scoped to the current quarter only, so the forecast call opens on evidence instead of opinions. The point of a daily cadence is the delta — a deal sliding three days in a row is visible long before it is lost.
🎨 How to customize this agent
What it scans
Point it at one workspace or several, and narrow the scope however your team is organised: one rep's book for a 1:1, one segment, one region, one product line, or only deals above a certain amount. A manager can run the whole team's pipeline while each AE gets a private digest of their own deals in a DM.
Which signals count
The nine default signals are a starting point, not a law. Reweight them for how your market actually loses: if deals die in procurement, weight the unresolved blocker; if you lose on price, weight competitor pressure and quote it every time. Add signals of your own — a missing mutual action plan, no named signer, a champion who changed jobs. Drop any signal you cannot evidence.
Where it lands
Slack is the default because that is where the team already is, but the same digest works as an email to leadership, a Notion page updated in place, or a row appended to a pipeline sheet. Tag each deal owner with their Slack user ID so the action lands on a person rather than on a channel.
Turn it into a forecast check
Ask for the inverse and it becomes a commit review: which deals in the forecast have the evidence to back the call, and which are commit-by-optimism. Same signals, different question. Run it the day before the forecast meeting and the meeting gets a lot shorter.
Language
Works in any language. If your team sells in French, ask for the digest in French; the analysis follows the language of the calls it reads.
❓ Need help customizing?
Want to adapt Deal Risk Detector to your pipeline, your risk model, or your forecast process? Reach out to support@claap.io and we'll help you tailor it.