// GuidesIntegration
How to build an “opportunities needing my attention” dashboard in Salesforce (2026)
Short answer
Build it as one Lightning dashboard with eight components, one question each: no logged activity past your line (7, 14 or 21 days by sales cycle), close date in the past, Next Step blank, close date pushed twice or more, longer in the current stage than 1.5× your won-deal median, an amount change in the last 30 days, a stage moved backward this week, and flagged deals per rep. Two formula fields and field history tracking on Close Date and Amount are the only setup, and a dashboard filter on Opportunity Owner gives the per-rep view. Salesforce can email a report on a schedule and post to Slack from a scheduled flow; it cannot see activity that never reached Salesforce, and a scheduled report or flow does not point out a rep’s pattern across deals on its own.
What goes on an “opportunities needing my attention” dashboard?
Eight components, seven of them saved reports and the eighth a roll-up of those reports by owner, each answering one Monday-morning question, each with its blind spot named. Salesforce’s own version of the idea is the “Clean Your Room” dashboard, which Salesforce Labs ships free on the AppExchange as “one leaderboard that your reps will NOT want to be listed on”, showing “deals that have been ‘pushed’ multiple times, deals without recent activity and deals missing key data”. This recipe builds the manager’s version by hand. Adam Gilberd, then at Salesforce, quoted by Galvin Technologies, put the questions this way: do I have deals forecast for this month “where I actually haven’t talked to the client in a month”, or that “have slipped a month five separate times”?
| Component | What it shows | What it cannot tell you |
|---|---|---|
| 1. Stale deals | Open deals with no logged activity past your line. | Anything not logged as a closed task or an event; Einstein Activity Capture email does not move Last Activity. |
| 2. Past close date | Open deals whose close date went by. | Whether the deal is dead or only the date is; a date pushed yesterday moves to list 4. |
| 3. No next step | Open deals with Next Step blank. | Whether a step written in June still means anything; pair it with Last Modified. |
| 4. Pushed twice or more | Close date pushed two or more times this quarter. | Why. Push Count counts a close date pushed “past a calendar month only” and ignores moves inside the same month (Salesforce Help); field history counts every edit, pull-ins included. |
| 5. Stuck in stage | Longer in the current stage than 1.5× the won-deal median. | Whether a slow stage is normal for that deal size; set the line per stage. |
| 6. Amount changed | Amount changed in the last 30 days, old and new values. | Whether a cut is scoping or slipping; only the rep’s reason tells you. |
| 7. Stage moved backward | Moved to an earlier stage this week. | The filter does not know your stage order; you read the From Stage and To Stage pairs. |
| 8. Flagged deals per rep | How many of the deals above each rep owns. | Whether the rep or the territory is the cause; a count is a prompt for a question. |
How do I find opportunities with no activity for 14 days?
With a number formula field, Days Since Last Activity, and one filter on it. Salesforce’s knowledge article gives the formula, TODAY() - LastActivityDate, return type Number, under Setup, Object Manager, Opportunity, Fields & Relationships, New, Formula. Build an Opportunities report with Opportunity Status equals Open, the standard filter that “includes all stage names under the ‘Open’ stage type” (Salesforce Help), and Days Since Last Activity greater than 14. A bucket column on the same field (0 to 7, 8 to 14, 15 to 21, 22 plus) lets one report serve reps with different cycles (Salesforce Help). The line is a rule of thumb, adjusted to your data: 7 days for a sales cycle under 30 days, 14 for 30 to 90, 21 for over 90.
Deals with no activity at all have a blank Last Activity and fall out of a greater-than filter. Catch them with a cross filter, Opportunities without Activities, the case Trailhead calls “Stale Opportunities” (Trailhead): Filters tab, Add Cross Filter, without, Activities, then Add Secondary Object Filter for a date range (Salesforce Help). Cross filters, like buckets, are listed for Enterprise, Performance, Unlimited and Developer editions (Salesforce Help).
Watch out
Check what “Last Activity” counts before you trust the list
Salesforce defines Last Activity as “the latest Due Date of the Closed Tasks on a record” or “the latest Start Date of Events on a record”, and states that “activities captured through Einstein Activity Capture are not tracked in Last Activity” (Salesforce Help). An open task does not count until it is closed, a future-dated activity can turn the days formula negative (Salesforce Help), and an email that never reached Salesforce counts for nothing.
What are the exact filters for the other components?
Standard fields, standard report types, one more formula field. In Salesforce’s relative date reference, TODAY “starts at 12:00:00 AM on the current day and continues for 24 hours” and LAST N DAYS includes today.
| Component | Report type | Filters and columns | Line (rule of thumb) |
|---|---|---|---|
| Past close date | Opportunities | Opportunity Status equals Open; Close Date less than TODAY, the construction Salesforce’s own past-due recipe uses with 14 DAYS AGO (Salesforce Help). Columns Owner, Close Date, Amount, Stage, Next Step. | Any. |
| No next step | Opportunities | Opportunity Status equals Open; Next Step equals, with the value left blank, which is how Salesforce filters for empty fields (Salesforce Help). Next Step is the standard field for the “description of the next task to close the opportunity”, up to 255 characters (Salesforce Help). Sort by Amount; add Last Modified. | Above your median deal size first. |
| Pushed twice or more | Opportunities (Push Count), or Opportunity Field History | Route A: try Push Count greater or equal 2 as a filter; Salesforce describes it as an opportunity field that is on by default and hidden from list views until you add it, so check that your Opportunities report type offers it. Push Count is “the number of times an opportunity’s close date was pushed out by a calendar month” (Salesforce Help). Route B, with field history tracking on Close Date: Opportunity Field History report, Field/Event equals Close Date, Edit Date equals THIS QUARTER, grouped by Opportunity Name; two or more rows in a group is your list (Salesforce Help). Old and New Value are text filters (Salesforce Help); read the pairs to separate pushes from pull-ins. | 2 pushes in a quarter. |
| Stuck in stage | Opportunities, with a Days in Stage formula field | Formula NOW() - BLANKVALUE(LastStageChangeDate, CreatedDate), Number, 0 decimals (Salesforce Help). Opportunity Status equals Open; Days in Stage greater than your line for that stage; group by Stage. Get the typical days per stage from an Opportunity History report with Stage Duration summarized; Salesforce offers Sum and Average, not a median, so use the average as a first cut or export the column and take the median in a sheet (Salesforce Help). | Over 1.5× the median days for deals you won in that stage. |
| Amount changed | Opportunity Field History, or Opportunity History | Field/Event equals Amount, Edit Date equals LAST 30 DAYS; columns Old Value, New Value, Edited By. Without tracking, Stage History still adds a row whenever someone changes the “Amount, Probability, Stage, or Close Date fields on an opportunity” (Salesforce Help); group the Opportunity History report by Opportunity Name and compare its Amount column (Salesforce Help). | Any change above your median deal size. |
| Stage moved backward | Opportunity History | Try Last Modified equals LAST 7 DAYS as the date filter and check that the Last Modified column carries the dates of the stage changes, not of the opportunity; columns From Stage, To Stage, Amount; group by Opportunity Owner. | Any. |
| Flagged deals per rep | The reports above | Group each source report by Opportunity Owner; show record count per owner as a bar chart, or as a Lightning table grouped by owner (“up to 200 records and 10 columns”, Salesforce Help). | Compare with the rep’s own open-deal count. |
How do I build the dashboard in Lightning? (about 90 minutes)
One admin session, seven reports, one dashboard. The report type decides everything downstream; as Trailhead puts it, “when you choose a report type, you select the records and fields you’re able to see in your report”, and the three types used here are standard (Salesforce Help).
- Admin prep (15 minutes, an admin). Add the two formula fields on Opportunity and turn on field history tracking for Close Date and Amount; the Opportunity Field History report type requires it: “you must enable and set up field history tracking and select fields” (Salesforce Help). Run the Opportunity Field History report once tracking is on and note the oldest Edit Date; expect route B to need a quarter of entries before it is useful.
- Build the seven source reports (40 minutes). Reports tab, New Report, choose the report type, Start Report, add columns, group by Opportunity Owner, add the filters from the tables, Save into one folder, Run (Salesforce Help). Name each report by its question, “No activity 14+ days”.
- Assemble the dashboard (20 minutes). Dashboards tab, New Dashboard, + Widget, pick the source report, Lightning tables for the deal lists and a bar chart by owner for the roll-up, Add, Save, Done (Salesforce Help; Trailhead). A dashboard holds up to 25 widgets, at most 20 of them charts and tables (Salesforce Help).
- Add the per-rep filter (5 minutes). + Filter, field Opportunity Owner, a display name, Add Filter Value per rep, Add (Salesforce Help). Five filters per dashboard, fifty values each (Salesforce Help).
- Decide who sees what (5 minutes). Under Properties, set View Dashboard As: as you, everyone sees your view; as “The dashboard viewer”, each rep sees their own deals. Salesforce warns that viewers “could see more or less data than they normally see elsewhere in Salesforce” (Salesforce Help), so keep the audience narrow.
- Test with one rep (5 minutes). Filter to a rep you know is behind. An empty component means a filter problem; a stale list full of deals you discussed yesterday means a logging problem.
How do I get per-rep views without building a dashboard per rep?
| Mechanism | Who it serves | Setup | Limit |
|---|---|---|---|
| Dashboard filter on Opportunity Owner | You, before each 1:1 and in the pipeline review | + Filter, field Opportunity Owner, one value per rep | Five filters per dashboard, 50 values each; uses no dynamic-dashboard allowance |
| Dynamic dashboard | Reps, each seeing only their own deals | Properties, View Dashboard As, The dashboard viewer | Three per org in Developer, five in Enterprise, ten in Unlimited and Performance (Salesforce Help) |
Help articles still use those edition names while the pricing page sells Core, Advanced and Max, so check your contract.
- Show reps their own lists 1, 2 and 3. Hygiene they can fix today, in their own view.
- Keep list 8 to yourself, and list 6 until you have asked about each amount change.
- Keep per-rep lists private by default; share a team-wide board only if the reps have agreed to it. The Salesforce Labs version is built as a leaderboard on purpose; Trailhead adds that “ultimately, it becomes part of the culture and this dashboard may no longer be necessary”.
Can Salesforce alert me from this dashboard, or do I have to open it?
A report subscription can send on a schedule; it does not notice a pattern on its own. Subscribe to any source report, set the schedule, and add up to five conditions, such as record count greater than 0; the email goes out only “if all conditions are met” (Salesforce Help). Most orgs allow 7 report and 7 dashboard subscriptions per user, 15 and 15 in Unlimited (Salesforce Help). For Slack, a schedule-triggered flow over the same filter “can run once, daily, or weekly” (Trailhead) and posts one message per record; the Slack alerts guide has that build.
How diffi helps
diffi adds the noticing for this recipe, working from the same Salesforce history the dashboard reads. It connects read-only (polled every 5 minutes, plus Change Data Capture streaming) and does not write to your CRM. Fixed rules turn each change into a plain fact: stage advanced or regressed, amount changed, close date pushed or slipped a quarter, a task done late, a meeting rescheduled or canceled, and, from Salesforce, a deal with no change for 21 days. Those facts roll up into deal-risk and pipeline-risk signals with the evidence behind each one, and into a ranking of which reps need attention, so the pattern across the lists shows up per rep; ask what changed this week and the answer links to its sources. The next-step check, the thresholds and the dashboard itself stay yours. Once you confirm, diffi can message the rep on Slack or set a reminder. Book a demo to see what it flags on your own Salesforce.
See it on your own teamHow do I use it every week? (20 minutes on Monday)
Monday, 20 minutes
- Component 8 first: who owns the most flagged deals, and is it the same rep as last week? (3 minutes)
- Components 4 and 2: each pushed or past-due deal above your median size gets a one-line question in that rep’s 1:1 notes. (5 minutes)
- Component 1, bucket 22 plus or your line: pick the three largest, check the calendar and ask the rep to check their inbox, then call it stale or clear it. (5 minutes)
- Component 5: each stuck deal moves forward, moves back or closes lost in the review. (4 minutes)
- Component 3: send the rep the blank-next-step list; filling it is the rep’s job. (1 minute)
- Components 6 and 7: read the pairs and ask in the review rather than in Slack. (2 minutes)
- Friday, 2 minutes: re-run 4 and 6. A push or a cut made after Monday is the Friday call.
Tip
After a month, prune
Delete any component nobody acted on in four weeks; tighten any line that flags more than a fifth of the pipeline.
Frequently asked questions
How do I create a report of opportunities with no activity in Salesforce?
Use the Opportunities report type with Opportunity Status equals Open and a filter on a Days Since Last Activity formula field, TODAY() - LastActivityDate, greater than your line (Salesforce Help). Add a cross filter, Opportunities without Activities, for deals that were never touched. Last Activity counts the due dates of closed tasks and the start dates of events, and activity captured through Einstein Activity Capture is not tracked in it (Salesforce Help).
Does Salesforce have a “days since last activity” field?
Not as a standard field. Last Activity is a standard date, and Salesforce’s knowledge article gives the number formula TODAY() - LastActivityDate for a custom field (Salesforce Help). Pipeline Inspection, if you have it, shows a Recent Activity metric, “the number of days since the most recent activity on the opportunity” (Salesforce Help).
How do I see how long an opportunity has been in its current stage?
Add a number formula field, NOW() - BLANKVALUE(LastStageChangeDate, CreatedDate), as Salesforce’s knowledge article describes (Salesforce Help). For past stages, the Opportunity History report type has a Stage Duration column, with one catch: when a deal returns to a stage, reports show only the first stint (Salesforce Help). Pipeline Inspection shows Days In Stage, “the number of days the opportunity has spent in this stage since the last change to the Stage field” (Salesforce Help).
How do I find opportunities whose close date was pushed in Salesforce?
Three routes. Push Count, “the number of times an opportunity’s close date was pushed out by a calendar month” (Salesforce Help), “is on by default in Pipeline Inspection and opportunities” (Salesforce Help); try a filter of 2 or more in an Opportunities report if the field is offered there. The Opportunity Field History report, once tracking is on for Close Date, lists every edit with old and new values (Salesforce Help). And the Opportunities with Historical Trending report can compare “Close Date — Historical” with “Close Date — Today” using Show Changes on the column, in Enterprise, Performance, Unlimited and Developer editions (Salesforce Help).
Can each rep see only their own deals on the manager dashboard?
Yes, with a dynamic dashboard: set View Dashboard As to “The dashboard viewer” so it runs as the logged-in user (Trailhead). Orgs get three in Developer, five in Enterprise and ten in Unlimited and Performance editions (Salesforce Help). For your own 1:1 prep, a dashboard filter on Opportunity Owner does the same job without using one up.
Is Pipeline Inspection free, and do I need Revenue Intelligence for this dashboard?
The Sales Cloud pricing page lists Pipeline Inspection with Core ($195), Advanced ($395) and Max ($550 per user per month, billed annually, as listed in September 2026). Revenue Intelligence is a separate product from $220 per user per month (as listed in September 2026), included in Max (Salesforce); the Pipeline Inspection setup notes say its add-on license is required for the flow chart feature (Salesforce Help). Nothing in this recipe needs it; the only component that needs Pipeline Inspection is route A for pushes, and route B covers it.
Can Salesforce email me when a deal goes stale?
Yes. Subscribe to the stale-deals report, set the schedule, and add a condition such as record count greater than 0, so the email arrives only when the list is not empty (Salesforce Help). Most orgs allow 7 report subscriptions per user (Salesforce Help). For a Slack message per deal, use a schedule-triggered flow instead.