See which deals went dark before you commit the forecast

By General Input

Open one board before every forecast call to see how long each deal has been silent, who has actually joined the calls, and where the risk really sits.

Integrations

  • Gong
  • HubSpot
  • Slack

Type

App

Categories

  • Sales
  • Operations

Build me a deal review board that I open before every forecast call and pipeline review. The whole point is the join: one row per open deal showing what the CRM says about it, sitting next to what actually happened on the calls. This is a surface a manager opens on a cadence and works through in a meeting, not an alerting workflow, so nothing here runs on a schedule and nothing sends a notification on its own.

Deal data. Use HubSpot Search Deals to pull the open deals in the pipeline the board is pointed at, with amount, stage, close date, owner and associations. Use List Pipelines so stages render as their real names rather than internal stage ids. Resolve each deal's associated company with Get Company, since I need the company name and domain for call matching, and its associated contacts with Batch Read Contacts, since I need their email addresses. Use List Owners to turn the deal owner id into a rep's name.

Call data. Use Gong List Calls Extensive to build the call history behind the board, requesting the content selectors that expose call parties, duration, topics and trackers. Fetch this in batches that cover all the deals visible on the board at once, over a rolling window such as the last 180 days, then match calls to deals in the app. Do not issue one request per row.

Matching rules. Match a call to a deal when a call participant's email matches one of the deal's associated contact emails, or when a participant's email domain matches the associated company domain. Where Gong already carries CRM context on the call, prefer that association over the email match. When a buyer joins from a personal address such as gmail.com, keep the call if another participant on that same call already matched the account, and mark the row as an inferred match so I know the link is softer. Dropping those calls would understate coverage on exactly the deals I most need to inspect.

Columns computed from the join. Beyond amount, stage, close date and owner, every row carries the four things the CRM cannot tell me: the date of the last customer call, days dark, total calls on the deal, and the number of distinct customer side participants who have ever joined a call. Days dark is measured from the last call that actually had a customer side participant on it, never from CRM last activity, which is polluted by automated email. Internal calls about the deal must not reset the clock. Customer side means participants who are not internal Gong users and whose email domain is not one of our own. Count distinct participants by deduplicating on email across the deal's entire call history, not per call.

Risk flags. Two flags matter most and should be visible on the row itself. First, a deal with a close date inside the current month and no customer call in the last 14 days, which is a deal being forecast on paper but not in conversation. Second, single threading, meaning a deal above a six figure amount threshold where only one distinct customer side participant has ever appeared on a call. Both thresholds, the 14 days and the deal size, are settings stored in the app and editable from it, and changing them re-evaluates every row.

Working the board. The main view is a table, with a kanban grouping by stage as an alternative if it renders cleanly. I filter by rep, by stage, and by close month, and I sort by days dark or by amount at risk, so I can open the review on the biggest exposed deals or on the quietest ones depending on the meeting.

The deal drawer. Clicking a deal opens a drawer with its full call history in reverse date order. Each call shows the participants split into our side and the customer side, the duration, and the topics or trackers that came up on that call. Any call expands to read its transcript, fetched on demand with Gong Get Call Transcripts rather than up front, so opening the board never pulls transcripts for the whole pipeline.

Embedded agent. Every deal has a Prep this deal review button that kicks off a background agent for that one deal. The agent reads the recent calls on the deal, pulling transcripts with Gong Get Call Transcripts, and writes a review brief covering five things: what changed since the last review, the risks and objections the buyer raised, who the economic buyer appears to be based on who has actually shown up and what they said, the open questions nobody has answered yet, and the committed next steps with dates where they were stated out loud. When a previous brief already exists on that deal, the agent reads it first so that what changed since last review is a real delta rather than a fresh summary.

Where the brief lands. The finished brief saves on the deal inside the app, not just in the session, so the whole review team sees the same brief and it is still sitting there at the next review with the date it was generated. Two buttons act on a finished brief. One posts it to a Slack channel ahead of the meeting with Slack Send a Message, including the deal name, amount, close date, owner, the risk flags and the brief itself. The other writes the agreed next step back onto the deal record with HubSpot Update Deal, showing me the exact value before it saves.

Rate limits to respect. Gong allows 3 requests per second and 10,000 per day per company, so batch call fetches across all visible deals rather than firing one request per row, cache what has already been fetched within the session, and fetch transcripts only when a call is expanded or an agent run needs them. A manager loading a 60 deal forecast view should not be able to exhaust the day's budget in one page load.

Framing and copy. Write the on screen copy for a sales manager running a forecast meeting, not for an analyst reading a report. The board exists to answer two questions the CRM keeps getting wrong: when did we last actually speak to this buyer, and how many people on their side have ever been in the room. A deal with no matched calls should read as no recorded calls found, never as proof that nobody spoke to the customer. If I run Salesforce instead of HubSpot, the same board works against opportunities using Get Many Opportunities and Get Opportunity in place of the HubSpot deal reads.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredTurn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe reveals