# Win-Back Prospecting Skill

## Purpose
Pull and prioritize Closed-Lost opportunities for re-engagement. Generates ranked target list with personalized outreach copy, segmented by loss reason with tailored re-engagement strategy per segment.

## When to Run
- **Weekly:** Every Tuesday morning
- **Ad-hoc:** When 6sense shows a previously-lost account surging

## Save Path
Save output to: `./outputs/skill-runs/win-back/YYYY-MM-DD-weekly.md`

## Team Roster (Pipe-Gen)

| Rep | Full Name |
|-----|-----------|
| Andrew | Andrew Young |
| Pat | Pat Oswald |
| Sendu | Sendu Bhakthakumaran |
| Mike | Mike Chen |
| Kim | Kim Corran |
| Anna | Anna Ayrapetyan |
| Aimee | Aimee Dowling |

Name matching: Accept first name, last name, or full name (case-insensitive). Assign win-back accounts round-robin across the 7 reps unless a rep already owns the account.

---

## Execution Steps

### Step 1: Pull Closed-Lost Opportunities

**Primary query — 6-9 month window (standard win-backs):**
```sql
SELECT
  o.Id, o.Name, o.AccountId, o.Account.Name, o.Amount, o.CloseDate,
  o.StageName, o.Loss_Reason__c, o.Type,
  o.Account.NumberOfEmployees, o.Account.Industry,
  o.Account.Six_Sense_Buying_Stage__c,
  o.OwnerId, o.Owner.Name
FROM Opportunity o
WHERE o.Type = 'New Business'
  AND o.IsClosed = true
  AND o.IsWon = false
  AND o.Amount >= 10000
  AND o.Account.NumberOfEmployees >= 500
  AND o.Account.NumberOfEmployees <= 2500
  AND o.CloseDate >= LAST_N_MONTHS:9
  AND o.CloseDate <= LAST_N_MONTHS:6
ORDER BY o.Amount DESC
```

**Rationale for 6-9 months:** Enough time for the buyer's situation to change (new budget cycle, leadership turnover, competitor disappointment) but recent enough that contacts remember us and context is still relevant.

**Secondary query — competitive losses at 9-15 months:**
```sql
SELECT
  o.Id, o.Name, o.AccountId, o.Account.Name, o.Amount, o.CloseDate,
  o.StageName, o.Loss_Reason__c, o.Type,
  o.Account.NumberOfEmployees, o.Account.Industry,
  o.Account.Six_Sense_Buying_Stage__c,
  o.OwnerId, o.Owner.Name
FROM Opportunity o
WHERE o.Type = 'New Business'
  AND o.IsClosed = true
  AND o.IsWon = false
  AND o.Amount >= 10000
  AND o.Account.NumberOfEmployees >= 500
  AND o.Account.NumberOfEmployees <= 2500
  AND o.CloseDate >= LAST_N_MONTHS:15
  AND o.CloseDate < LAST_N_MONTHS:9
  AND o.Loss_Reason__c IN ('Competitor', 'Lost to Competition')
ORDER BY o.Amount DESC
```

**Rationale for 9-15 months on competitive losses:** Competitors' initial contract terms are typically 12 months. Accounts lost to competition 9-15 months ago are approaching or past their first renewal — prime displacement window.

### Step 2: Enrich Each Account

**MCP Tool Mapping:**

| Enrichment Need | MCP Tool | What to Pull |
|----------------|----------|-------------|
| Champion job changes | `graph_champion_movers` | Any contacts from lost opp who changed jobs or new decision-makers who arrived |
| Churn contagion | `graph_churn_contagion` | Whether the competitor they chose is losing other customers |
| Competitor intel | `graph_competitive_intel` | Win/loss patterns, displacement angles, battle card data |
| Call history | `avoma_search_meetings` | Find meetings associated with the account |
| Call notes | `avoma_get_meeting_notes` | Pull the last 2-3 call summaries to understand why we lost |
| Opp context | `clari_get_opportunities` | Historical pipeline and forecast context |
| Contact refresh | `zoominfo_enrich_contacts` | Verify contacts are still at the account, get current titles/emails |

For each returned opportunity:
1. **Current 6sense buying stage** — Is the account showing renewed intent?
2. **Champion tracking** (`graph_champion_movers`) — Any champion job changes since the loss? New decision-makers arrived?
3. **Churn signals** (`graph_churn_contagion`) — Is the competitor they chose losing other customers?
4. **Avoma call notes** (`avoma_search_meetings` + `avoma_get_meeting_notes`) — Pull the last 2-3 call summaries to understand why we lost
5. **Competitor intel** (`graph_competitive_intel`) — If lost to a known competitor (ChiliPiper, Traction Complete, RevenueHero, Default.io), pull win/loss data and displacement angle
6. **Contact mapping** (`zoominfo_enrich_contacts`) — Who were the contacts on the original opp? Are they still there? Who's new?

### Step 3: Prioritize by Loss Reason

First, segment accounts by loss reason, then rank within each segment:

#### Competitor Loss -> Displacement Angle
- **Strategy:** Lead with competitor-specific displacement narrative
- **Enrich:** `graph_competitive_intel` for win-back patterns, `graph_churn_contagion` for competitor churn signals
- **Best timing:** 9-15 months (approaching competitor renewal)
- **Outreach angle:** "We've helped [X] companies switch from [Competitor] — here's what they found after 6 months"

#### No Decision -> Re-Qualify
- **Strategy:** The need didn't go away, they just didn't act. Re-qualify with new urgency.
- **Enrich:** Check if 6sense stage has moved up since loss; look for new leadership hires
- **Best timing:** 6-9 months (new fiscal year or planning cycle)
- **Outreach angle:** "The challenge you were evaluating us for — has it gotten better or worse?"

#### Budget/Timing -> Value Justification
- **Strategy:** They wanted it but couldn't fund it. Lead with ROI proof and flexible packaging.
- **Enrich:** Check for funding events, headcount growth, new budget cycle
- **Best timing:** 6-9 months (new budget cycle)
- **Outreach angle:** "When we last spoke, timing wasn't right. [Customer X] was in the same spot — here's the ROI they saw in 90 days"

#### Product Gap -> Only If Gap Closed
- **Strategy:** Only re-engage if the specific product gap has been addressed
- **Pre-check:** Verify with product team or release notes that the gap is closed
- **If gap NOT closed:** Skip. Do not waste rep time or burn the relationship.
- **If gap IS closed:** Lead with the specific feature/capability they needed
- **Outreach angle:** "You asked us about [feature] — we built it. [Customer X] is already using it to [outcome]"

Then rank into tiers:

**Tier 1 — Signal-Hot Win-Backs** (work this week)
- Account now in 6sense Consideration, Decision, or Purchase stage
- OR `graph_champion_movers` detected champion move (new decision-maker)
- OR `graph_churn_contagion` shows competitor churn signals
- OR competitive loss at 9-15 months approaching renewal

**Tier 2 — Changed-World Win-Backs** (work within 2 weeks)
- New leadership at account (CRO, VP Sales, VP RevOps hired)
- Account had funding round, acquisition, or major product launch since loss
- Original loss reason was timing/budget (not product gap)

**Tier 3 — Standard Win-Backs** (queue for later)
- No new signals, but enough time has passed (6-9 months)
- Original contacts still in place

### Step 4: SVF Value Anchor

For each Tier 1 and Tier 2 account, map the account's pain to the SVF (Solution-Value Framework):

| SVF Phase | What to Map | Output |
|-----------|-------------|--------|
| **Solution** | Which LeanData capability addresses their original pain? (Routing, Matching, BookIt, RevOps automation) | One sentence: "[Capability] solves [their pain]" |
| **Value Drivers** | Quantify using relevant value drivers: speed-to-lead, routing accuracy, rep productivity, pipeline velocity | One metric: "[X]% improvement in [driver]" |
| **Proof** | Match to a customer evidence asset (see Step 5) | One proof point: "[Customer] achieved [result]" |

Include the SVF one-liner in every outreach email as the value sentence.

### Step 5: Generate Outreach Copy

**Dynamic proof points:** Before generating copy, pull relevant customer evidence:
```
userevidence_search_assets(
  query: "[loss_reason] OR [industry] OR [competitor_name]",
  limit: 5
)
```
Use the most relevant UserEvidence asset for proof points in the outreach. Match by:
1. Same industry as the target account
2. Same loss reason / use case
3. Same competitor displacement (if competitive loss)

**Fallback proof points** (use only if `userevidence_search_assets` returns no relevant results):
- Uber: 68% deal velocity improvement
- Meltwater: 75% faster MQL-to-SQL
- Zoom: 54% lead-to-opp conversion

For each Tier 1 and Tier 2 account, generate:

**Email (1 per account):**
- Subject line: specific to what's changed (NOT "checking in")
- Hook: Reference the change (new hire, signal, product update)
- Value: SVF one-liner + proof point from UserEvidence (or fallback)
- CTA: 15-minute conversation, not a demo

**Voicemail script (30 seconds max):**
- Name drop the original relationship
- One sentence on what's new
- Ask for a callback

**LinkedIn message (connection request note or InMail):**
- Personal, reference shared context
- Under 300 characters

### Step 6: Follow-Up Cadence

After initial outreach, follow this cadence:

**Tier 1 — Aggressive (high-signal accounts):**
| Day | Action |
|-----|--------|
| Day 1 | Email #1 (personalized, signal-based) |
| Day 2 | LinkedIn connection request + note |
| Day 4 | Phone call + voicemail |
| Day 7 | Email #2 (different angle — proof point or product update) |
| Day 10 | Phone call #2 (no voicemail if left one on Day 4) |
| Day 14 | Break-up email ("Last note from me — door's open") |

**Tier 2 — Measured (changed-world accounts):**
| Day | Action |
|-----|--------|
| Day 1 | Email #1 (personalized, change-based) |
| Day 5 | LinkedIn connection request + note |
| Day 10 | Phone call + voicemail |
| Day 14 | Email #2 (proof point or break-up) |

### Step 7: Output Format
```
## Win-Back Target List — Week of [DATE]

### Tier 1: Signal-Hot (Work This Week)
| # | Account | Original Opp | Amount | Lost Date | Loss Reason | Segment Strategy | Current 6sense Stage | Signal | Assigned To |
|---|---------|-------------|--------|-----------|-------------|-----------------|---------------------|--------|-------------|

[For each account:]
#### [Account Name]
**Loss reason segment:** [Competitor/No Decision/Budget/Product Gap] -> [Displacement/Re-Qualify/Value Justification/Gap Closed]
**Why now:** [specific signal or change]
**Original loss context:** [from Avoma notes]
**SVF value anchor:** [Solution] solves [pain]. [Customer] achieved [result].
**Key contacts:** [name, title — new vs. original]
**Proof point source:** [UserEvidence asset name] or [Fallback: Uber/Meltwater/Zoom]
**Follow-up cadence:** Tier 1 (Day 1/2/4/7/10/14)
**Email:**
Subject: [subject line]
[body]

**Voicemail:** [script]
**LinkedIn:** [message]

---

### Tier 2: Changed-World (Work Within 2 Weeks)
[Same format, with Tier 2 cadence: Day 1/5/10/14]

### Tier 3: Standard (Queued)
[List only, no outreach copy needed yet]
```

## Messaging Rules
1. NEVER say "just checking in," "circling back," or "touching base"
2. Lead with what's CHANGED — their world, our product, the market
3. Reference the prior relationship honestly ("We talked back in [month]...")
4. Use dynamic proof points from `userevidence_search_assets` matched to industry/loss reason. Fall back to: Uber (68% deal velocity), Meltwater (75% faster MQL-to-SQL), Zoom (54% lead-to-opp conversion) only if no relevant UserEvidence assets found.
5. If lost to a competitor, don't trash-talk. Lead with customer evidence of switching back. Use `graph_competitive_intel` for displacement data.
6. CTA is always lightweight — 15 minutes, not a full demo
7. Include SVF value anchor in every email body

## Integration with Existing Skills
- Use `graph_competitive_intel` for accounts lost to known competitors — pull win/loss patterns and displacement angles
- Use `graph_champion_movers` for tracking decision-maker changes at lost accounts
- Use `graph_churn_contagion` for detecting competitor customer churn that creates displacement opportunities
- Use `userevidence_search_assets` for dynamic proof points matched to industry and loss reason
- Use `/account-research-hub` for full briefs on Tier 1 accounts
- Feed converted win-backs into `/deal-review` once they reach Stage 1
