Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
extruct-ai avatar

Meddpicc Post Call

  • 2 installs
  • 7 repo stars
  • Updated April 12, 2026
  • extruct-ai/gtm-cowork-skills

Analyzes a sales call transcript against the 8 MEDDPICC dimensions, scores each, extracts key intel, and auto-fills Attio with deal updates, notes, and tasks.

About

Pulls a Granola transcript, scores all 8 MEDDPICC dimensions 0-4, extracts competitors, budget, decision criteria, and champion signals, then writes deal updates, notes, and follow-up tasks to Attio. A salesperson uses it to auto-log and qualify a completed sales call.

  • Scores each MEDDPICC dimension 0-4 with extraction guidance
  • Auto-fills Attio deal fields, notes, and follow-up tasks

Meddpicc Post Call by the numbers

  • 2 all-time installs (skills.sh)
  • Ranked #730 of 853 Sales & Marketing skills by installs in the Skillselion catalog
  • Data as of Jul 13, 2026 (Skillselion catalog sync)
npx skills add https://github.com/extruct-ai/gtm-cowork-skills --skill meddpicc-post-call

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2
repo stars7
Last updatedApril 12, 2026
Repositoryextruct-ai/gtm-cowork-skills

What it does

Analyzes a sales call transcript against the 8 MEDDPICC dimensions, scores each, extracts key intel, and auto-fills Attio with deal updates, notes, and tasks.

Files

SKILL.mdMarkdownGitHub ↗

MEDDPICC Post-Call CRM Automation

Analyze a sales call transcript against the MEDDPICC framework, score each dimension, auto-fill the CRM (Attio), and create follow-up tasks — so the rep never has to manually log call notes again.

MEDDPICC Framework Reference

Each dimension is scored 0–4:

ScoreMeaning
0Not addressed at all
1Barely addressed — vague or passing mention
2Somewhat addressed — surface-level discussion
3Well addressed — clear specifics uncovered
4Thoroughly addressed — deep, actionable intel captured

The 8 Dimensions

LetterDimensionWhat to extract
MMetricsQuantifiable outcomes the prospect wants to improve (revenue, time saved, cost reduction, headcount efficiency). Look for specific numbers, KPIs, or targets.
EEconomic BuyerThe person with final budget authority. Look for mentions of who approves spend, signs contracts, or has veto power. May differ from the person on the call.
DDecision CriteriaFactors that will drive the purchase decision — technical requirements, integration needs, ROI thresholds, compliance, ease of use.
DDecision ProcessThe formal steps the prospect follows to evaluate and approve a purchase — timeline, stakeholders involved, evaluation stages, legal/procurement review.
PPaper ProcessInternal paperwork and approval workflows — procurement rules, legal review, security questionnaires, vendor onboarding, contract redlining.
IIdentify PainThe core problems or challenges the prospect faces. Look for emotional language, frustration signals, business impact of the status quo.
CChampionAn internal advocate for your solution. Someone who has influence, access to the economic buyer, and a personal win tied to your success.
CCompetitionCompetitors mentioned, alternative solutions being evaluated, or build-vs-buy considerations. Also "do nothing" as a competitor.

Overall Score Calculation

Overall MEDDPICC Score = (sum of 8 dimension scores / 32) × 100, rounded to nearest integer.

Workflow

Step 0: Gather Inputs

Ask the user for: 1. Which call? — Company name, contact name, or meeting date. If the user provides a Granola meeting link or ID, use it directly. 2. Sales stage — What stage is this deal at? (Discovery, Demo, POC, Negotiation, etc.) This provides context for how to weight the MEDDPICC gaps — early-stage calls naturally score lower on Paper Process, for instance. 3. Any context the user wants to add — Things they noticed but may not be in the transcript (e.g., "the CTO seemed skeptical but didn't say it outright").

If the user already provided some of this context in their message, don't re-ask. Extract what you can and only ask about what's missing.

Step 1: Gather Deal Context (Multi-Source)

Attempt data sources in priority order. Each source that returns data adds to the picture — do NOT stop after the first hit. Merge everything before scoring.

1a. Granola (primary — meeting transcripts)

1. If a meeting ID or link is provided: call get_meeting_transcript with the meeting ID.

  • If transcript access fails (paid tier required), fall back to query_granola_meetings with specific questions about the meeting.

2. If a company/contact name is provided: call query_granola_meetings with "meeting with {name}" to find the most recent match. 3. If no match: call list_meetings and scan for likely candidates by date or attendee.

Once you have the meeting ID, gather full context by calling query_granola_meetings with targeted queries:

  • "What metrics or KPIs were discussed in meeting {id}?"
  • "Who is the decision maker or budget owner mentioned in meeting {id}?"
  • "What competitors or alternatives were mentioned in meeting {id}?"
  • "What are the next steps from meeting {id}?"
  • "What pain points or challenges did the prospect describe in meeting {id}?"
  • "What is the budget or pricing discussed in meeting {id}?"
  • "What is the decision process or timeline discussed in meeting {id}?"

If get_meeting_transcript succeeds, read the full transcript yourself — it's more reliable than querying for fragments.

Important: list_meetings only returns the last 30 days. For older deals, Granola may return nothing even though meetings happened months ago. Note this limitation when reporting gaps.

1b. Attio Notes & Comments (fallback #1)

If Granola returns no meetings, or to supplement Granola data:

1. Call semantic-search-notes with "{company name} deal pain points metrics decision criteria" to find relevant notes. 2. For each note found, call get-note-body to read the full content. 3. Call list-comments with parent_object: "deals" and parent_record_id: {deal_id} to check for inline deal comments.

1c. Gmail Threads (fallback #2)

If both Granola and Attio notes are empty:

1. Call gmail_search_messages with the company name or contact email to find relevant threads. 2. Call gmail_read_thread on the most relevant threads (limit to 3-5 most recent). 3. Extract any MEDDPICC-relevant signals: pricing discussions, objections, next steps, competitor mentions.

1d. Insufficient Data Protocol

If ALL sources return empty, do NOT skip the deal. Instead:

  • Set all dimension scores to 0.
  • Write field values as: "0/4 — No data available from Granola, Attio notes, or Gmail. Requires qualification call."
  • Flag the deal prominently in the results summary as NEEDS RE-QUALIFICATION.
  • Suggest 3 specific discovery questions to ask on the next call, one each for Pain, Metrics, and Decision Criteria.

Step 2: Find the Company and Deal in Attio

In parallel: 1. Call search-records with object = "companies" and the company name as query. 2. Call search-records with object = "deals" and the company/deal name as query.

If the deal doesn't exist yet:

  • Use upsert-record to ensure the company exists (match on domains).
  • Use create-record to create the deal linked to the company.
  • Set the deal owner to the current user (from whoami).

Note the record_id for the deal — you'll need it for notes and tasks.

Also call list-attribute-definitions with object = "deals" and query = "meddpicc" to check whether MEDDPICC custom fields have been created. If they exist, you'll populate them in Step 4.

Step 3: Analyze the Transcript — MEDDPICC Scoring

Read through the entire transcript (or Granola query results) and evaluate each dimension.

For each of the 8 MEDDPICC components, produce:

1. Score (0–4) 2. Evidence — Direct quotes or specific references from the transcript that justify the score. 3. What was uncovered — A 1-2 sentence summary of what the rep learned about this dimension. 4. Gap / recommendation — What's still missing and what the rep should do next to fill the gap.

Automatic Extraction Targets

Beyond scoring, actively extract and structure these specific data points:

Competitor mentions:

  • Named competitors (companies, products)
  • Alternative approaches ("we're also looking at building in-house")
  • Incumbent solutions ("we currently use X")
  • "Do nothing" signals ("we might just keep doing it manually")

Budget discussions:

  • Specific dollar amounts or ranges mentioned
  • Budget cycle timing ("our fiscal year starts in January")
  • Budget ownership ("marketing owns this budget" vs "IT")
  • Pricing reactions (positive, negative, sticker shock)
  • Comparison anchors ("we pay $X for our current tool")

Decision criteria:

  • Must-have vs nice-to-have requirements
  • Technical requirements (integrations, security, compliance)
  • Business requirements (ROI, payback period)
  • Political requirements (stakeholder alignment, board approval)

Champion signals:

  • Who on the call showed enthusiasm or advocacy?
  • Who volunteered to do internal selling?
  • Who offered to make introductions to other stakeholders?
  • Who shared internal context that wasn't asked for?

Next steps mentioned:

  • Explicit commitments ("I'll send you the API docs")
  • Implicit next steps ("we should probably loop in our CTO")
  • Timeline markers ("we need to decide by Q3")
  • Follow-up meeting requests

Step 4: Update Attio (Cumulative Merge)

MEDDPICC is a living qualification — each call adds to the picture. Never blindly overwrite existing scores. Always read existing data first and merge upward.

4-pre. Read Existing MEDDPICC Data

Before writing anything, call get-records-by-ids with the deal record ID and read the current values of: meddpicc_score, meddpicc_metrics, meddpicc_decision_criteria, meddpicc_competition, meddpicc_budget_total.

4a. Merge Rules

For each MEDDPICC dimension:

1. Score goes UP, never down — if the existing score is 3 and the new call only reveals a 2, keep 3. A previous call already uncovered deeper intel. Only increase if the new call adds genuinely new evidence. 2. Text fields APPEND, don't replace — prepend the new call's findings with a date header, then keep the prior content below. Format:

   [2026-04-06] 3/4 — New finding from this call.
   [2026-03-27] 2/4 — Previous finding from earlier call.

3. Budget updates — only overwrite if the new amount is explicitly discussed and differs. A missing budget mention on a follow-up call does NOT zero out a previously captured number. 4. Overall score — recalculate from the merged (highest-per-dimension) scores, not from the latest call alone.

4b. Update the Deal Record

Update these existing deal fields based on the merged analysis:

FieldWhen to update
valueIf a specific deal value, budget, or pricing was discussed and differs from current
deal_confidenceRecalculate 1-5 based on MEDDPICC score: Score 0-20→1, 21-40→2, 41-60→3, 61-80→4, 81-100→5
stageOnly if the call clearly signals a stage change (e.g., they agreed to a POC) — confirm with user before changing

If MEDDPICC custom fields exist on the deals object (check Step 2), also update:

  • meddpicc_score — overall score (0-100), calculated from merged dimension scores
  • meddpicc_metrics — cumulative score + summary (date-stamped entries)
  • meddpicc_decision_criteria — cumulative key criteria extracted
  • meddpicc_competition — cumulative competitors and positioning
  • meddpicc_budget_total — latest confirmed budget amount
4b. Create a MEDDPICC Analysis Note

Use create-note on the deal record with this structure:

# MEDDPICC Call Analysis — {Company Name}
**Date:** {call date}
**Attendees:** {names from transcript}
**Sales Stage:** {current stage}
**Overall MEDDPICC Score:** {score}/100

---

## Scorecard

| Dimension | Score | Summary |
|-----------|-------|---------|
| M — Metrics | {0-4} | {one-line summary} |
| E — Economic Buyer | {0-4} | {one-line summary} |
| D — Decision Criteria | {0-4} | {one-line summary} |
| D — Decision Process | {0-4} | {one-line summary} |
| P — Paper Process | {0-4} | {one-line summary} |
| I — Identified Pain | {0-4} | {one-line summary} |
| C — Champion | {0-4} | {one-line summary} |
| C — Competition | {0-4} | {one-line summary} |

---

## Key Findings

### Competitor Intelligence
{Structured competitor mentions with context}

### Budget & Pricing
{Budget discussions, reactions, anchoring points}

### Decision Criteria & Process
{What drives the decision, who's involved, timeline}

### Pain Points
{Core challenges with evidence/quotes}

### Champion Assessment
{Who is the champion, strength of advocacy, risks}

---

## Critical Gaps
{Top 2-3 MEDDPICC dimensions that scored lowest, with specific recommendations for what to ask or do next}

---

## Next Steps
{Numbered list of action items with owners and deadlines where discussed}
4c. Create Follow-Up Tasks

For each concrete next step identified, create an Attio task using create-task:

  • Content: Clear, actionable description (e.g., "Send API documentation to {contact} at {company}")
  • Deadline: If a date was mentioned, use it. If "next week" or similar, calculate the date. If no date, set deadline 3 business days from now.
  • Linked record: Link to the deal record (linked_record_object: "deals", linked_record_id: {deal_id})
  • Assignee: Current user's workspace_member_id (from whoami)

Always create at least these tasks: 1. One task per explicit commitment made on the call 2. A "Fill MEDDPICC gaps" task for any dimension scored 0-1, describing what to ask/do 3. A "Send follow-up email" task if no follow-up was discussed

4d. Update the Sales List Entry (if applicable)

If the company has an entry in the "Sales" list (api_slug: sales), update it:

  • notes — Append a one-line summary: "MEDDPICC {date}: Score {X}/100. Key gaps: {gaps}. Next: {action}."
  • stage — Only if confirmed by user
  • estimated_contract_value — If budget/pricing was discussed
  • close_confidence — Based on MEDDPICC score (same mapping as deal_confidence)

Step 5: Present Results to User

Show the user a concise summary:

1. MEDDPICC Scorecard — The 8 dimensions with scores, color-coded (use text indicators: scores 0-1 are gaps, 2 are partial, 3-4 are solid) 2. Overall Score with context ("65/100 — typical for a Discovery call, but you're missing Economic Buyer entirely") 3. Top 3 gaps with specific coaching tips (what to ask on the next call) 4. What was updated in Attio — List the deal fields changed, note created, tasks created 5. Competitor landscape — Quick summary of competitive positioning 6. Recommended next actions — Prioritized by impact on closing

Ask if they want to:

  • Edit any of the scores or extracted data before finalizing
  • Create additional tasks
  • Draft a follow-up email (defer to meeting-followup skill)
  • Schedule a next meeting based on the gaps identified

Attio Field Setup Guide

For the skill to populate MEDDPICC-specific fields, create these custom attributes on the Deals object in Attio (Settings → Objects → Deals → Add attribute):

Attribute NameAPI Slug (suggested)TypeDescription
MEDDPICC Scoremeddpicc_scoreNumberOverall MEDDPICC qualification score (0-100). Calculated from 8 dimensions scored 0-4 each. Below 40 = early/weak qualification, 40-60 = developing, 60-80 = strong, 80+ = fully qualified.
Metricsmeddpicc_metricsTextQuantifiable business outcomes the prospect wants to improve — revenue targets, time savings, cost reduction, headcount efficiency. Include specific numbers and KPIs when available.
Decision Criteriameddpicc_decision_criteriaTextFactors driving the purchase decision — technical requirements (integrations, security, compliance), business requirements (ROI threshold, payback period), and political requirements (stakeholder alignment).
Competitionmeddpicc_competitionTextCompetitors being evaluated, incumbent solutions, build-vs-buy considerations, and "do nothing" risk. Include how we differentiate against each.
Budget Totalmeddpicc_budget_totalCurrency (USD)Total budget amount discussed or estimated for the deal. The prospect's stated budget ceiling, approved spend, or pricing anchor.

The skill works without these fields — it always creates a detailed note and tasks. With the fields, it also populates structured data for filtering, reporting, and pipeline views.

Optional Fields (require Attio paid plan for record-reference type)

If your Attio plan supports record-reference custom attributes, you can also add:

Attribute NameAPI Slug (suggested)TypeDescription
Championmeddpicc_championRecord Reference → People (or Text on free plans)Internal advocate for our solution — name, role, advocacy strength, and their personal win tied to our success.
Economic Buyermeddpicc_economic_buyerRecord Reference → People (or Text on free plans)Person with final budget authority and veto power — name, title, and whether we have direct access or need to go through someone.

These are nice-to-haves. Champion and Economic Buyer info is always captured in the MEDDPICC note regardless.

Attio MCP Tool Reference

TaskToolKey parameters
Find companysearch-recordsobject: "companies", query
Find dealsearch-recordsobject: "deals", query
Check MEDDPICC fields existlist-attribute-definitionsobject: "deals", query: "meddpicc"
Update dealupdate-recordobject: "deals", record_id, attributes
Create note on dealcreate-noteparent_object: "deals", parent_record_id, title, content
Create follow-up taskcreate-taskcontent, deadline_at, linked_record_object, linked_record_id
Update Sales list entryupdate-list-entry-by-record-idlist: "sales", parent_object: "companies", attributes
Get user identitywhoami
List deal attributeslist-attribute-definitionsobject: "deals"
Get full deal recordget-records-by-idsobject: "deals", record_ids: [uuid]

Granola MCP Tool Reference

TaskTool
Get full transcriptget_meeting_transcript (meeting_id)
Query meeting contentquery_granola_meetings (query, optional document_ids)
List recent meetingslist_meetings
Get meeting metadataget_meetings

Environment

VariableSourcePurpose
AttioMCP (Attio connector)CRM — deals, companies, notes, tasks
GranolaMCP (Granola connector)Meeting transcripts and summaries
GmailMCP (Gmail connector)Email context if needed for follow-up
Google CalendarMCP (Google Calendar connector)Meeting scheduling context

Stage-Weighted Expectations

Not every dimension needs to score high at every stage. Use this as a coaching guide:

StageExpected strong (3-4)Acceptable weak (0-2)
DiscoveryIdentified Pain, MetricsPaper Process, Competition
DemoPain, Metrics, Decision CriteriaPaper Process
POC/TrialPain, Metrics, Criteria, ChampionPaper Process
NegotiationALL should be 2+None — gaps here are red flags
ContractALL should be 3+None — missing info blocks close

Flag any dimension that's weaker than expected for the stage as a priority gap.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.