meeting-followup

Installation
SKILL.md

Meeting Follow-Up Email

Draft a follow-up email after a call by combining meeting notes, email history, and CRM context.

Inputs

The user provides one or more of:

  • A contact name or email address
  • A meeting reference (title, date, or Granola meeting ID)
  • Specific points to include in the follow-up

If the user provides a Granola meeting context (summary, endTime), use that directly. If not provided, ask for the contact name or email.

Workflow

Step 1: Gather meeting context (Granola MCP)

Use Granola MCP tools to find and extract the meeting:

  1. If meeting context is provided inline (summary, endTime): use it directly.
  2. If contact name is known: call query_granola_meetings with "meeting with {contact_name}" to find the most recent meeting.
  3. If no match: call list_meetings with time_range: "last_30_days" and scan for a matching title or attendee.
  4. Once meeting ID is found: call get_meetings with the ID to get full details.

Extract:

  • Summary and key discussion points
  • Action items and next steps
  • Decisions made
  • Commitments from either side

If more detail is needed, call get_meeting_transcript with the meeting ID.

Step 2: Gather email history (Gmail MCP)

Use Gmail MCP tools to get conversation context:

  1. Resolve the contact email. Sources (try in order):

    • User provides it directly
    • Extract from meeting attendees (Granola)
    • Search Attio: use search-records with object = "people" and the contact name as query
    • Ask the user
  2. Call gmail_search_messages with query: from:{contact_email} OR to:{contact_email} Limit to 10 most recent messages.

  3. Identify the most relevant thread (most recent exchange or matching meeting topic).

  4. Call gmail_read_thread with the thread ID to get full email bodies.

Extract:

  • What was last discussed over email
  • Open questions or proposals
  • Tone and formality level of the conversation
  • Prior commitments or offers

Step 3: Check pending CRM tasks (Attio MCP)

Query Attio for open tasks linked to this contact:

  • Use list-tasks with is_completed = false.
  • Filter results for tasks whose linked_records match the contact's record ID

Note any overdue or pending tasks to reference in the follow-up.

Step 4: Draft the follow-up

Structure:

  1. Thank them for their time (1 sentence, reference the specific meeting topic)
  2. Summarize key discussion points (2-3 bullets from meeting + emails)
  3. List next steps or action items (explicit, with owners if discussed)
  4. Clear call-to-action (one specific ask or proposal)

Tone rules:

  • Match the tone of the existing email thread (formal ↔ casual)
  • Professional but warm
  • No filler phrases ("I hope this email finds you well")
  • Use the same greeting style as previous emails in the thread
  • Reference specific things discussed, not generic pleasantries

Constraints:

  • Under 200 words
  • No emojis unless the contact uses them
  • If a proposal or price was mentioned, reference it naturally

Step 5: Save artifacts locally

After gathering context, persist to revops/customers/{company-slug}/:

  1. Meeting notes: Save Granola meeting data to meetings/YYYY-MM-DD_{title-slug}.md using the template from revops/customers/README.md
  2. Context update: If context.md exists, update the Deal History and Current Status. If it doesn't exist, create it from the template.
  3. Check first: Read existing files before writing to avoid overwriting.

This is non-optional — Granola data can be deleted, the local copy is the source of truth.

Step 6: Present and act

Show the draft with:

  • To: address
  • Subject: line (reply to existing thread or new subject)
  • Body
  • Context used: brief note on sources (meeting summary, email thread, tasks)

Ask the user if they want to:

  1. Edit the draft
  2. Create a Gmail draft via gmail_create_draft
  3. Start over with different context

Attio MCP Tool Reference

Use these MCP tools (NOT raw API calls):

Task Tool Key parameters
Search people or companies search-records object, query
Get pending tasks list-tasks is_completed=false

Environment

Variable Source Purpose
Attio MCP (Attio connector) CRM — people, tasks
Gmail MCP (claude.ai Gmail) Email search, read threads, create drafts
Granola MCP (Granola) Meeting notes, transcripts, summaries

Reference

  • CRM enrichment context: revops/CRM_ENRICHMENT.md
  • Customer artifacts: revops/customers/ (see README.md for structure and templates)
Related skills
Installs
1
GitHub Stars
3
First Seen
Apr 17, 2026