Skip to content
Automation
Skill

/pipeline-review

Pipeline review and next-action planner. Pulls all prospects from a specified CRM pipeline stage, analyzes every email thread and meeting transcript per prospect, then delivers a concise per-prospect status summary with sales cycle recap, action items (yours and theirs), and

From plugin
benai-skills
84152 skills17 agents1 hook4 MCP

Claude Code

$ npx -y skills add naveedharri/benai-skills --skill pipeline-review --agent claude-code

SKILL.md

pipeline-review.SKILL.md
name: pipeline-review
description: Pipeline review and next-action planner. Pulls all prospects from a specified CRM pipeline stage, analyzes every email thread and meeting transcript per prospect, then delivers a concise per-prospect status summary with sales cycle recap, action items (yours and theirs), and contact details, plus a cross-pipeline synthesis of patterns and priorities. Works with Attio or Pipedrive, Gmail, and Fireflies, and degrades gracefully when a source is missing. Use when the user says "review my pipeline", "what is the status of my deals", "next actions for my prospects", "pipeline review for [stage]", or wants a stage-by-stage read of where every deal stands and what to do next.
disable-model-invocation: true

Pipeline Review

Pull every prospect from a target pipeline stage, cross-reference their full email history and meeting transcripts, and produce a concise action-oriented summary sent via Slack.

What This Skill Produces

A Slack message (sent to the user or a channel they specify) containing, for each prospect:

  • Contact info (email, phone)
  • Deal value and pipeline metadata (stage, priority, forecast)
  • A 1-3 sentence recap of the sales cycle so far
  • Action items from YOUR end (what your team needs to do)
  • Action items from THEIR end (what the prospect owes you)
  • A clear recommendation: follow up, escalate, or move out of pipeline

The message is concise and skimmable -- no emojis, no walls of text. A busy founder should be able to scan it in under 2 minutes and know exactly what to do today.

Phase 0: Gather Context

Use `AskUserQuestion` to collect what you need. Combine into 1-2 calls.

Round 1 -- Pipeline & Delivery

**Question 1 -- Which pipeline and stage?** "Which CRM list/pipeline should I review, and which stage(s) do you want me to focus on?"

  • If they don't know the exact list name, use `list-lists` to show them the options.
  • Common stages: "Next Call Scheduled", "Proposal Sent", "Negotiation", "Follow-up Needed"

**Question 2 -- Where should I send the summary?** "Where do you want the pipeline summary sent? I can DM you on Slack or post it to a channel."

  • Default: DM to the user. Search for their Slack user by email from CRM workspace membership.

Round 2 -- Scope (if needed)

**Question 3 -- Any prospects to skip?** "Should I review ALL prospects in that stage, or skip any?"

  • Usually the answer is "all" -- but some users want to exclude recently-added leads or specific names.

After collecting answers, confirm your understanding before pulling data.

Phase 1: Data Collection

Step 1 -- Discover CRM Structure

Read `references/CONNECTORS.md` for connector-specific patterns. The general flow:

1. **Find the list**: Use `list-lists` (Attio) or equivalent to locate the target pipeline 2. **Understand the schema**: Use `list-list-attribute-definitions` to identify the stage field slug, deal value field, and other entry-level attributes 3. **Identify record-level fields**: Use `list-attribute-definitions` on the parent object (usually "people") to understand where email, phone, name live

Step 2 -- Pull All Prospects from the Target Stage

This is the step that requires the most care. CRM APIs paginate (typically 50 records max per request), and stage filtering can be unreliable depending on the CRM.

**Recommended approach -- full scan with local filtering:**

Rather than relying on server-side stage filters (which can fail silently or have inconsistent syntax), pull ALL entries from the list in paginated batches and filter locally. This is more reliable and avoids missing prospects due to filter syntax issues.

offset = 0
all_target_entries = []
while has_more:
    batch = list-records-in-list(list=TARGET_LIST, limit=50, offset=offset)
    for entry in batch:
        if entry.stage == TARGET_STAGE:
            all_target_entries.append(entry)
    offset += 50

Save entry-level data as you go: entry_id, parent_record_id, stage, deal value, priority, forecast, close date, notes, agreement stage.

**Important**: Count your results and sanity-check with the user. If they say "I see 10 prospects" but you only found 4, you missed some. Go back and re-scan.

Step 3 -- Fetch Contact Details

Collect all unique `parent_record_id` values from the entries, then batch-fetch person records:

get-records-by-ids(object="people", record_ids=[...])

Extract for each prospect:

  • **Name** (required)
  • **Email address** (required -- also needed for email/call searches)
  • **Phone number** (include if available)
  • **Company** (if linked)
  • **Location** (if available)

Step 4 -- Pull Email History for Each Prospect

For every prospect, search for all email threads using their email address:

search-emails-by-metadata(participant_email_addresses=["prospect@company.com"], limit=10)

This returns email metadata: subject, summary, snippet, sender, sent_at. For the most recent 2-3 emails, pull full content with `get-email-content` if the summary alone doesn't tell you enough about the current state.

Key things to extract from emails:

  • When was the last email exchange? (recency = urgency signal)
  • Who sent the last email -- us or them? (ball in whose court?)
  • What was discussed? Any commitments, questions, or objections?
  • Any new stakeholders cc'd? (buying committee expansion = good sign)

Run email searches in parallel where possible -- don't do them one at a time.

Step 5 -- Pull Meeting/Call Transcripts

Check which transcription tools are available:

  • **Fireflies**: Use `fireflies_search` with the prospect's name or email, then `fireflies_get_summary` for the most recent call(s)
  • **Attio call recordings**: Use `search-call-recordings-by-metadata` with speaker_person_record_ids or related_record_ids
  • **Other tools**: Check available MCPs for Gong, Fathom, Otter, etc.

For each prospect, pull the summary of their most recent 1-2 calls. You need:

  • When the call happened
  • Key topics discu
Read more
@naveedharri
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

84152 skills17 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
84
Star history of naveedharri/benai-skills on GitHub, a chart by star-history.com

Other skills on benai-skills.

ads-audit

ads-audit

Full multi-platform paid advertising audit with parallel subagent delegation. Analyzes Google Ads, Meta Ads, LinkedIn Ads, TikTok…

ads-budget

ads-budget

Budget allocation and bidding strategy review across all ad platforms. Evaluates spend distribution, bidding strategy…

ads-competitor

ads-competitor

Competitor ad intelligence analysis across Google, Meta, LinkedIn, TikTok, and Microsoft. Analyzes competitor ad copy, creative…

ads-creative

ads-creative

Cross-platform creative quality audit covering ad copy, video, image, and format diversity across all platforms. Detects creative…

ads-google

ads-google

Google Ads deep analysis covering Search, Performance Max, Display, YouTube, and Demand Gen campaigns. Evaluates 74 checks across…

ads-landing

ads-landing

Landing page quality assessment for paid advertising campaigns. Evaluates message match, page speed, mobile experience, trust…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about pipeline-review.

Which coding agents can use pipeline-review?
pipeline-review installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.