# Deal prep desk your team opens before pipeline review

> See every deal closing this quarter with what just changed at the account, then turn any of them into a short call brief in one click.

- Workflow type: app
- Services: Diffbot, HubSpot, Slack
- Categories: Sales
- Published: 2026-08-21

## What it does

- Lists every open deal with a close date this quarter, sorted by close date, with readable stage names and a filter so each rep sees only their own deals
- Shows the real company behind each deal beside it: legal name, headcount, revenue band, industry, parent company and investors
- Puts a strip of recent news signals on every account, so you can tell at a glance whether anything actually moved there since your last review
- Gives every deal a one-click prep button that writes a short call brief covering what changed, hooks worth opening with and any risk worth naming, files it against the deal in HubSpot, and shares it to Slack

## What you'll need

- A HubSpot login with access to deals, companies, owners and notes
- A paid Diffbot plan, since the company database and news research this app relies on are not included in the free trial
- Company records in HubSpot with the website domain filled in, since the domain is how each account gets matched to its company profile
- Deals with an owner and a close date set, which is what the board sorts and filters on
- A Slack workspace, if you want to share finished briefs to your deal channels

## Prompt

I want a deal prep desk that my sales team opens before every weekly pipeline review. It is a browsing surface with an on demand research action, not a scheduled job. A rep opens it, looks down their deals, sees whether anything moved at those accounts since the last review, and preps the ones they are about to be asked about. Nothing runs on a timer and nobody gets notified.

The main view is the deal board. Load open deals from HubSpot with Search Deals, filtered to deals whose close date falls inside the current quarter and whose stage is not closed won or closed lost, and sort them ascending by close date so the nearest closes sit at the top. Each row shows the deal name, amount, stage, close date, owner and the account it belongs to. Stage has to read as a real stage name rather than an internal id, so load the deal pipelines and their stages with HubSpot List Pipelines and map every stage id to its label, and handle the case where the org runs more than one deal pipeline by showing which pipeline a deal is in. Resolve owner ids to real people's names with HubSpot List Owners. Put a filter on owner that defaults to the person using the app so a rep sees just their own deals, remember that choice between visits, and give managers an All deals option for running the review itself. Also show a last prepped date on each row, so it is obvious which deals have never been prepped and which were prepped before the last review.

Every deal needs its account resolved, because the account domain is the key to all of the research. Get the company associated with each deal and pull its name and website domain with HubSpot Search Companies. The domain is what everything Diffbot keys on, so when a company record has no domain filled in, say that plainly on the row and skip the enrichment for it rather than guessing at a domain from the company name.

Beside each account, show firmographics resolved from that domain through Diffbot Knowledge Graph Enhance: legal name, headcount, revenue band, industry, parent company, and investments or funding history. This is the panel that tells a rep who they are actually selling to, which is often not what the CRM record says, especially when the account has been acquired. Cache the enrichment per domain so opening the board does not re-run every lookup on every visit, and when Enhance returns no confident match, show that honestly instead of displaying a half filled panel.

Next to the firmographics, show a compact strip of recent signal chips for that account, built from Diffbot Knowledge Graph DQL Search over its article index scoped to that organization and to a recent window, ninety days by default. Each chip is small: a short label for what the article is about, plus the publication and the date. Newest first, capped at a handful so the strip stays scannable, and clicking a chip opens the article. The entire job of this strip is the glance test. A rep running their eye down the board should be able to tell which accounts have had something happen since the last review and which have been quiet, without opening anything.

Each deal row has a Prep this deal button that kicks off a background agent for that deal. The agent runs a Diffbot Knowledge Graph DQL Search for recent articles about that organization, picks the three to five most relevant, and pulls the full text of each with Diffbot Extract Article rather than working from headlines and snippets. Then it writes a short call brief with three sections: what changed at the account, hooks worth opening the call with, and any risk worth naming out loud. Keep it genuinely short, since this gets read in the minutes before a review, and prefer specifics a rep can say in a sentence over general commentary. Show progress on the row while the agent works so it is clear which stage the research is at.

The finished brief lands in that deal's detail panel inside the app, and past briefs stay there newest first with the date each was written, so the deal builds up a prep history rather than only ever showing the latest state. The same brief also gets filed against the deal in HubSpot with Create Note, associated to the deal record, formatted so it reads properly inside HubSpot. That second copy matters: the research has to survive outside this app, so that anyone opening the deal in the CRM sees the same context and it is not lost if the rep who ran it leaves.

Bake in a suppression rule so every prep reads as a delta rather than a repeat. Keep a per account index of every article the app has already shown in a previous brief, keyed on the article url or entity id, and exclude anything in that index from the next prep run for that account. Only articles the team has not already been briefed on are allowed into a new brief. When a prep run turns up nothing the account has not already been briefed on, say that directly, something like nothing new since the date of the last brief, instead of padding the brief by restating old news. Add each newly used article to the index when a brief is written.

Bake in a sourcing rule too. Every claim in a brief and every signal chip shows the source publication and the publication date beside it, because a rep is going to repeat these facts on a live call and needs to be able to sanity check anything before quoting it. Never let a brief assert something the extracted articles do not actually support, and never show a claim without its publication and date attached.

Put a Share to Slack action on any brief. The rep picks the deal channel, and the app sends a short version of the brief there with Slack Send a Message, including the account name, the headline of what changed, and the source links. Remember the channel chosen per deal so sharing the next brief for the same deal does not mean picking it again.

Two Diffbot details worth knowing while building this. The Knowledge Graph lives at kg.diffbot.com/kg/v3, using the dql path for search and the enhance path for enrichment, and it authenticates with a single token passed as a token query parameter rather than a Bearer header. Extract responses can come back with HTTP 200 while still carrying an error or errorCode inside the JSON body when the target page failed to fetch, so inspect the response body rather than trusting the status code, and drop an article from a brief when its extraction actually failed instead of writing around an empty body.

Handle the unglamorous states properly, since this gets opened under time pressure right before a meeting. A deal with no associated company, a company with no domain, a domain that matches no company in the knowledge graph, an account with no recent coverage at all, an article that will not extract, a quarter with no open deals for the selected owner. In every case say what happened in plain language on the row and keep the rest of the board working.

## How to customize

- Change the date window from the current quarter to the next 30, 60 or 90 days
- Adjust what each brief covers, for example adding competitive mentions or a suggested next step alongside the default sections
- Set how far back the news signals look and how many articles each prep run reads in full
- Choose whether briefs get shared to a shared deal channel or sent straight to the rep who ran them

## FAQ

### Will this work on a free HubSpot plan?

The CRM side works on every plan including the free one. It reads deals, companies and owners and writes notes, all of which are available on free HubSpot. The company research is the part that needs a paid Diffbot plan.

### Do I need a paid Diffbot plan?

Yes. The company profiles and the news index behind the signal chips and the briefs are paid Diffbot features, so a free trial account will not be able to load firmographics or run a prep.

### Will the same news keep showing up in every brief?

No, and this is deliberate. The app remembers every article it has already shown you for an account and leaves those out of the next prep, so each brief reads as what changed since last time rather than a repeat. If genuinely nothing new has happened, it tells you that instead of padding the brief.

### Can reps see each other's deals?

By default each rep sees only the deals they own, and the app remembers that choice between visits. Anyone who needs the full picture, usually a manager running the review, can switch the filter to all deals.

### How do I know the brief is accurate before I quote it on a call?

Every claim carries the publication it came from and the date it was published, so you can click through and check anything that looks surprising. The brief only says what the articles actually support.

### What happens if an account has no website on record, or nothing has been written about it?

The app says so plainly on the row and keeps everything else usable. You still get the deal, the stage, the close date and whatever the CRM knows, rather than a broken panel or an invented brief.

Use this prompt in General Input: https://www.generalinput.com/prompts/deal-prep-desk-your-team-opens-before-pipeline-review