# Closed-lost deal revival: rank last year's lost deals by what changed since

Source: https://mcpforgtm.com/recipes/closed-lost-revival (StackMCP, independent directory of official MCP servers)

## Goal

AEs and SDRs who want a short, ranked list of deals lost 6 to 12 months ago that are worth another try, with the original loss reason and the new trigger side by side. Salesforce can be swapped for HubSpot, Attio or Pipedrive, and PredictLeads for UserGems.

## Connected tools

- Salesforce: https://api.salesforce.com/platform/mcp/v1/platform/sobject-all (setup: https://mcpforgtm.com/tools/salesforce)
- PredictLeads: see vendor docs (setup: https://mcpforgtm.com/tools/predictleads)
- G2: https://mcp.g2.com/mcp (setup: https://mcpforgtm.com/tools/g2)

## Guardrails

- Read only. Don't create, update or delete any Salesforce record, and don't create G2 research boards.
- Drop deals whose loss reason makes revival pointless before looking up any signals.
- Only count a trigger dated after the opportunity's close date.
- Skip any account with an open opportunity or recent activity by another rep, and name that rep.
- Match companies by website domain, not by name, and show the domain in the table.
- Don't use PredictLeads discovery lookups like Similar Companies.

## Steps

1. In Salesforce, check the Opportunity schema and tell me which field holds the loss reason. Then find my closed-lost opportunities with a close date between {start_date} and {end_date}: account, account website, amount, close date, loss reason and primary contact. Show me the distinct loss reasons and how many deals have each. Don't change any records.
2. Drop the deals with these loss reasons: {dead_reasons}. For each remaining account, check Salesforce for any open opportunity or activity in the last {days} days, and list the owner. Mark those accounts as skipped.
3. For the accounts that are left, look up PredictLeads financing and news by the account's website domain. Keep only events dated after that deal's close date. Flag any funding, and any news about a new executive in {buyer_roles}.
4. Check G2 buyer intent for my product and category over the last {intent_days} days, and match the accounts by domain. Then give me one ranked table: account, close date, original loss reason, new trigger with its date, and one line on why the trigger answers the loss reason. Put skipped accounts at the bottom with the reason.

## Expected output

Ranked revival list, 12 lost deals checked. Example (all names fictional):

```
Closed-lost opportunities, close date 6 to 12 months ago: 12. Dropped before checking signals: 2 (loss reason 'Company closed' and 'Acquired, product retired').

| Rank | Account | Lost | Original loss reason | New since the loss | Owner check |
|---|---|---|---|---|---|
| 1 | Quarry Lane Analytics (fictional) | Feb 2026 | No budget this year | Series C announced Aug 2026 (PredictLeads financing). G2 intent on our category in the last 30 days | No open opportunity. Last activity 7 months ago |
| 2 | Larkspur Freightworks (fictional) | Dec 2025 | Champion left mid-deal | News: new VP Revenue Operations hired Jul 2026 | No open opportunity |
| 3 | Mossgate Labs (fictional) | Nov 2025 | Chose a competitor | G2 intent: viewed our product and a competitor's page this month | No open opportunity |
| – | Fernhill Software (fictional) | Jan 2026 | No budget | Funding round dated Dec 2025, before the loss | Not new. Skipped |
| – | Tidewell Robotics (fictional) | Mar 2026 | Timing | G2 intent this month | Open opportunity owned by Priya Raman. Skipped |

No new trigger found for 5 accounts. They stay off the list.

Why Quarry Lane is first: the deal died on budget, and new funding is the most direct answer to that. Sam Whitlock was the contact on the lost deal.

Nothing was written to Salesforce. This is a read-only list.
```

## Watch for

- A trigger that predates the loss: A funding round or new hire from before the close date was already true when they said no. Compare every trigger date with the opportunity's close date, and drop any trigger that isn't later.
- The account is already being worked: Someone else may have an open opportunity or recent activity on the account. Query Salesforce for open opportunities and recent activities on each account, list the owner, and skip the account instead of reaching out.
- A loss reason that makes revival pointless: Some deals can't come back: the company closed, was acquired and folded, or asked not to be contacted. Show the full list of loss reasons first, agree which ones to drop, and drop those deals before any signal lookup.
- Signals matched to the wrong company: Similar names cause bad matches (two companies called 'Larkspur', or a parent and its subsidiary). Look up PredictLeads and G2 by the website domain from the Salesforce account, not the name, and show the domain next to each trigger.
