pipeline-review
Pipeline Review
Surface deal risks as they emerge — before a winnable deal silently becomes a lost one.
Risk Categories
1. Engagement Risk (Stakeholder Silence)
Signals that key contacts have gone quiet:
| Signal | How to detect | Severity |
|---|---|---|
| No email in 14+ days | Gmail: search for threads with associated contacts, check last message date | HIGH if deal is In Progress/POC |
| No email in 7-13 days | Same as above | MEDIUM |
| No meeting in 21+ days | Granola: list_meetings + query_granola_meetings for company name |
HIGH if In Progress |
| No upcoming meeting scheduled | Google Calendar: gcal_list_events searching for company/contact name |
MEDIUM |
| One-sided communication | Gmail: check if last 2+ emails are outbound with no reply | HIGH |
2. Momentum Risk (Deal Velocity)
Signals that the deal is losing speed:
| Signal | How to detect | Severity |
|---|---|---|
| Stuck in stage 30+ days | Attio: compare created_at or stage change date vs today |
HIGH |
| Stuck in stage 14-29 days | Same | MEDIUM |
| No deal value set | Attio: value field is empty |
MEDIUM if past Lead stage |
| No associated people | Attio: associated_people is empty |
HIGH |
| Next steps overdue | Attio: check tasks linked to deal with past deadlines | HIGH |
3. Competitive Risk
Signals that competition threatens the deal:
| Signal | How to detect | Severity |
|---|---|---|
| Competitor mentioned | Attio: meddpicc_competition field contains named competitors |
MEDIUM |
| Build vs buy tension | Attio: meddpicc_competition mentions internal build |
HIGH |
| "Do nothing" risk flagged | Attio: meddpicc_competition mentions "do nothing" |
HIGH |
| Competition score 0 | Attio: meddpicc_competition starts with "0/4" — unknown landscape |
MEDIUM (blind spot) |
4. Qualification Risk (MEDDPICC Gaps)
Signals that the deal is under-qualified for its stage:
| Stage | Expected strong (3-4) | Gap = risk if below 2 |
|---|---|---|
| POC | Pain, Metrics, Decision Criteria | Any of these below 2 = HIGH |
| In Progress | Pain, Metrics, Criteria, Competition | Any below 2 = HIGH |
| Signal | How to detect | Severity |
|---|---|---|
| MEDDPICC score = 0 | Attio: meddpicc_score is 0 or empty |
CRITICAL — deal is unqualified |
| MEDDPICC score < 40 | Attio: meddpicc_score < 40 |
HIGH |
| Key dimension at 0 for stage | Parse score from meddpicc_metrics, meddpicc_decision_criteria, meddpicc_competition |
HIGH |
| No budget discussed | Attio: meddpicc_budget_total is empty AND stage is In Progress |
MEDIUM |
5. Data Risk
Signals that you're flying blind:
| Signal | How to detect | Severity |
|---|---|---|
| No Granola meetings found | Granola returns empty for company name | MEDIUM |
| No Attio notes on deal | semantic-search-notes returns empty |
MEDIUM |
| No Gmail threads | Gmail search returns empty | HIGH — no communication trail |
| All three empty | Combined | CRITICAL — ghost deal |
Workflow
Step 1: Identify Target Deals
If the user specifies deals, use those. Otherwise:
- Call
list-recordswithobject: "deals"and filter for active stages (POC, In Progress). - Collect all deal record IDs, names, stages, and associated contacts.
Step 2: Gather Signals (Per Deal)
For each deal, run these checks in parallel where possible:
2a. Attio Deal Data
get-records-by-idsto pull full deal record (MEDDPICC fields, value, stage, confidence, associated people/company, created_at)list-tasksfiltered to the deal to check for overdue taskslist-commentson the deal for recent activity
2b. Email Activity
gmail_search_messageswith the company name or associated contact emails- Check the date of the most recent message
- Check if the last 2+ messages are outbound-only (no reply)
2c. Meeting Activity
query_granola_meetingswith company name to find recent meetingsgcal_list_eventssearching for company/contact name to check for upcoming meetings
Step 3: Score Risks
For each deal, evaluate all risk categories and assign:
- CRITICAL — Immediate action needed. Deal is at serious risk of being lost.
- HIGH — Action needed this week. Multiple warning signs.
- MEDIUM — Monitor closely. Early warning signs present.
- LOW — On track. No significant risks detected.
Overall deal risk = highest individual risk found.
Count the number of HIGH+ signals to determine urgency ranking across deals.
Step 4: Generate Risk Report
Present a prioritized report, sorted by risk level (CRITICAL first):
## Pipeline Risk Report — {date}
### CRITICAL: {Deal Name}
**Stage:** {stage} | **Value:** {value} | **MEDDPICC:** {score}/100
**Days in stage:** {N}
Risk signals:
- {signal 1 with evidence}
- {signal 2 with evidence}
Recommended actions:
1. {specific action with timeline}
2. {specific action}
---
### HIGH: {Deal Name}
...
Step 5: Offer Actions
After presenting the report, offer:
- Re-engage a specific deal (hand off to
deal-reengagementskill) - Score a call for a deal that needs MEDDPICC update (hand off to
meddpicc-post-callskill) - Prep for a meeting with an at-risk account (hand off to
meeting-prepskill) - Draft a follow-up email to break silence (hand off to
meeting-followupskill) - Create tasks in Attio for the recommended actions
Attio MCP Tool Reference
| Task | Tool | Key parameters |
|---|---|---|
| List active deals | list-records |
object: "deals", filter by stage |
| Get deal details | get-records-by-ids |
object: "deals", record_ids |
| Check MEDDPICC fields | Already in deal record | Parse from attributes |
| List deal tasks | list-tasks |
filter by linked deal |
| List deal comments | list-comments |
parent_object: "deals", parent_record_id |
| Search notes | semantic-search-notes |
query with company name |
Gmail MCP Tool Reference
| Task | Tool |
|---|---|
| Search for threads | gmail_search_messages (query with company/contact) |
| Read thread content | gmail_read_thread (thread_id) |
Granola MCP Tool Reference
| Task | Tool |
|---|---|
| Find meetings | query_granola_meetings (query with company name) |
| List recent meetings | list_meetings |
Google Calendar MCP Tool Reference
| Task | Tool |
|---|---|
| Check upcoming meetings | gcal_list_events (search for company/contact) |
Environment
| Variable | Source | Purpose |
|---|---|---|
| Attio | MCP (Attio connector) | CRM — deals, MEDDPICC, tasks, notes |
| Granola | MCP (Granola connector) | Meeting history |
| Gmail | MCP (Gmail connector) | Email engagement signals |
| Google Calendar | MCP (Google Calendar connector) | Upcoming meeting check |
More from extruct-ai/gtm-cowork-skills
key-account-plan
Create comprehensive Key Account Plans for clients/prospects. Use this skill whenever the user mentions 'account plan', 'key account', 'account planning', 'strategic account', 'client plan', 'customer success plan', or wants to create a structured plan for managing an important client relationship. Also trigger when users ask to 'plan for [company name]', 'review account strategy', 'prepare account review', or mention MEDDPICC/MEDDPIC analysis alongside client planning. This skill pulls data from Attio CRM (company records, contacts, deals, notes, emails, call recordings, MEDDPICC scores) and Google Drive, then produces a polished .docx Key Account Plan document and creates summary notes + tasks back in Attio. Even if the user just names a company and says something like 'let's do an account plan' or 'prepare for my QBR with [company]', use this skill.
1user-context
>
1meeting-prep
>
1meeting-followup
>
1company-people-list
>
1deal-intelligence
>
1