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

Deal Reengagement

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

Re-engages a stale deal or cold contact by reading Attio, Gmail, and Granola context, suggesting reactivation angles, and drafting a re-engagement email.

About

Gathers full deal and contact context from CRM, email, and meeting notes, proposes 2-3 reactivation angles, then drafts a re-engagement email. A salesperson uses it to revive a cold deal or win back a lapsed contact.

  • Resolves person and deal records and calculates how stale the deal is
  • Suggests angles before drafting the re-engagement email

Deal Reengagement 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 deal-reengagement

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

Re-engages a stale deal or cold contact by reading Attio, Gmail, and Granola context, suggesting reactivation angles, and drafting a re-engagement email.

Files

SKILL.mdMarkdownGitHub ↗

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):

TaskToolKey parameters
Search people or companiessearch-recordsobject, query
Get specific recordsget-records-by-idsobject, record_ids
Get pending taskslist-tasksis_completed=false

Environment

VariableSourcePurpose
AttioMCP (Attio connector)CRM — people, deals, tasks
GmailMCP (claude.ai Gmail)Email history and drafting
GranolaMCP (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

This week in AI coding

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

unsubscribe anytime.