deal-reengagement

Installation
SKILL.md

Re-engage Stale Deal

Help write a re-engagement email for a stale deal or cold contact. First gather all context, then suggest angles, then draft.

Inputs

The user provides one or more of:

  • A contact name, email, or company name
  • A deal name or Attio deal ID
  • Specific context on why they want to re-engage

If not provided, ask for the contact or deal reference.

Workflow

Step 1: Build full context

1a. Attio — Person + Deal records

Resolve the contact in Attio:

  • Use search-records with object = "people" and the contact's name or email as query.

From the person record, extract:

  • Name, job title, company
  • Origin, registration date
  • Subscription status, plan, LTV (if any)
  • Last interaction date
  • Associated deal IDs

For each associated deal:

  • Use get-records-by-ids with object = "deals" and the deal record IDs.
  • Extract: deal name, stage, value, created date, last activity
  • Calculate how long the deal has been stale

Check pending tasks:

  • Use list-tasks with is_completed = false.
  • Filter for tasks linked to this person or their deals

1b. Gmail — Full email history

  1. Call gmail_search_messages with: from:{contact_email} OR to:{contact_email} Limit to 20 messages to get the full arc.

  2. Call gmail_read_thread on the 2-3 most substantive threads.

Extract:

  • The full relationship timeline (first contact → last contact)
  • What was proposed or discussed
  • Any pricing, offers, or commitments made
  • Where the conversation dropped off and why (if apparent)
  • The tone and style of the relationship

1c. Granola — Past meetings

  1. Call query_granola_meetings with "meetings with {contact_name}"
  2. If found, call get_meetings for full details
  3. If transcript needed, call get_meeting_transcript

Extract:

  • What was discussed in meetings
  • Action items that were or weren't completed
  • Pain points the contact expressed
  • Objections or hesitations raised

Step 2: Diagnose the stall

Before drafting, analyze why the deal went cold. Common patterns:

  • Timing: they weren't ready, budget cycle, other priorities
  • Fit: product didn't match their immediate needs
  • Champion left: the contact changed roles or companies
  • Dropped ball: follow-up was missed on our side
  • Price: proposal was too high or unclear value
  • Competitor: they went with someone else

State the diagnosis explicitly to the user.

Step 3: Suggest 2-3 re-engagement angles

Based on the context, propose 2-3 distinct angles. Each angle should include:

  • Hook: what makes this relevant now (new feature, time passed, market change)
  • Value prop: why it's worth reconnecting
  • Ask: specific low-friction CTA

Example angle types:

  • Value-first: share something useful (insight, data, resource) without asking for anything
  • Trigger-based: reference a change (new role, funding, product update, industry shift)
  • Direct check-in: honest, low-pressure "how are things going"
  • New offer: revised pricing, new capability, different packaging
  • Social proof: similar company succeeded with your product

Present angles to the user and let them pick one (or combine).

Step 4: Draft the re-engagement email

Based on the chosen angle:

Structure:

  1. Opening — personal, reference something specific from history (1 sentence)
  2. Bridge — why you're reaching out now (1-2 sentences)
  3. Value — what's new or different (1-2 sentences)
  4. Ask — specific, low-friction CTA (1 sentence)

Tone rules:

  • Match the existing relationship tone from email history
  • Never apologize for the gap ("sorry for the silence")
  • Never guilt trip ("I haven't heard back")
  • Confident but not pushy
  • Reference specific things from your history, not generic filler

Constraints:

  • Under 150 words (shorter than a regular follow-up — stale deals need brevity)
  • No emojis unless the contact uses them
  • Subject line should NOT be a reply to the old thread (fresh start)

Step 5: Save artifacts locally

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

  1. Read first: Check for existing context.md and past meeting notes — use as input.
  2. Save meeting notes: If Granola data was fetched, persist to meetings/YYYY-MM-DD_{title-slug}.md.
  3. Save key emails: If the email thread contains commercial significance (proposals, pricing), snapshot to emails/YYYY-MM-DD_{subject-slug}.md.
  4. Update context.md: Update deal history and current status.

Granola data can be deleted — the local copy is the source of truth. See revops/customers/README.md for templates and naming rules.

Step 6: Present and act

Show the draft with:

  • To: address
  • Subject: line (new thread, not a reply)
  • Body
  • Angle used: which re-engagement angle was chosen
  • Context: brief note on sources used

Ask the user if they want to:

  1. Edit the draft
  2. Try a different angle
  3. Create a Gmail draft via gmail_create_draft

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 specific records get-records-by-ids object, record_ids
Get pending tasks list-tasks is_completed=false

Environment

Variable Source Purpose
Attio MCP (Attio connector) CRM — people, deals, tasks
Gmail MCP (claude.ai Gmail) Email history and drafting
Granola MCP (Granola) Meeting notes and transcripts

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