# Forecast reality check: flag Commit and Best Case deals with no recent activity

Source: https://mcpforgtm.com/recipes/forecast-reality-check (StackMCP, independent directory of official MCP servers)

## Goal

Sales leaders and RevOps who want to know which Commit and Best Case deals have gone quiet before the forecast call, without editing anyone's records. Salesforce can be swapped for HubSpot, Attio or Pipedrive, and Gong for Outreach or Fireflies.

## Connected tools

- Salesforce: https://api.salesforce.com/platform/mcp/v1/platform/sobject-all (setup: https://mcpforgtm.com/tools/salesforce)
- Gong: https://mcp.gong.io/mcp (setup: https://mcpforgtm.com/tools/gong)
- Slack: https://mcp.slack.com/mcp (setup: https://mcpforgtm.com/tools/slack)

## Guardrails

- Read only in Salesforce. Don't edit, reassign or recategorize any opportunity.
- Use the forecast category field I name, and only open opportunities in Commit or Best Case.
- Count calls, emails and meetings from the last 21 days, from Salesforce and Gong.
- Show me the Slack draft and send it only after I approve it.
- Send the deal list as a direct message to the leader, not to a public channel.

## Steps

1. Look at the Opportunity schema in Salesforce and tell me which field holds the forecast category and which fields show the last activity. Then use SOQL to find open opportunities closing by {period_end} where {forecast_category_field} is Commit or Best Case. Show me name, account, owner, amount, close date, stage and category. Don't change any records.
2. Query the tasks and events from the last 21 days linked to each of those opportunities or their accounts, including logged calls, emails and meetings. Show me a table with the last activity date, type and subject for each opportunity, and flag every one with none.
3. For each flagged opportunity, use Gong ask_deal once to ask when the last call or email with the buyer happened. Move any deal where Gong shows contact in the last 21 days to a separate list. Say when Gong can't find the deal.
4. Draft one Slack direct message to {leader} with the flagged deals grouped by forecast category: account, amount, close date, owner, days since last touch, and one question to ask on the forecast call. Add the totals at risk. Show me the draft.
5. Look up {leader} in Slack by email, and send the message only after I approve it. Don't change anything in Salesforce.

## Expected output

Slack message to the leader, drafted for your approval. Example (all names fictional):

```
To: @dana (Dana Okafor, fictional)

Forecast reality check for Thursday. 5 of 23 Commit and Best Case deals have no meeting, email or call in 21 days.

Commit (2 deals, $118K)
- Fernhill Software (fictional), $72K, closes Oct 31, owner Alex Rivera. Last touch: email, 26 days ago. Ask: is the signer still engaged?
- Larkspur Freightworks (fictional), $46K, closes Nov 14, owner Sam Whitlock. Last touch: meeting, 34 days ago. Ask: what is the next scheduled step?

Best Case (3 deals, $91K)
- Mossgate Labs (fictional), $40K, closes Nov 28, owner Priya Raman. No activity found in Salesforce or Gong.
- Quarry Lane Analytics (fictional), $33K, closes Dec 5, owner Alex Rivera. Last touch: call, 23 days ago.
- Brightwater Dental Group (fictional), $18K, closes Dec 12, owner Sam Whitlock. Last touch: email, 29 days ago.

Not flagged: 2 deals with no Salesforce activity, but Gong shows a call in the last 21 days.
Gong couldn't match 1 deal (Mossgate Labs).
No Salesforce records were changed.

---
Reply 'send' to post this to Dana, or tell me what to change.
```

## Watch for

- Deals flagged that did have activity: Activity is often logged on the account or a contact, not the opportunity. Check tasks and events on the account too, and let Gong move deals with a recent call or email off the list.
- Automated emails counted as real contact: Sequence or marketing emails logged as tasks can make a dead deal look active. Show the subject and type of each last activity, and ignore anything the buyer didn't reply to or attend.
- The wrong forecast field: Some orgs have both a rep category and a manager override. Ask which field your forecast call uses, then check the deal count against your forecast view once.
- Gong silence read as no contact: Gong excludes private calls, and it can't always match the deal. List deals Gong couldn't match separately instead of treating them as quiet.
