Skip to main content

#Reports6 discussing

GOAL: Show Week over week report of what deals changed in the pipeline excluding closed won or closed lost deals 

 

Built a custom object (Pipeline Growth Snapshot) that takes a weekly snapshot of open opportunities to support week-over-week pipeline trend reporting. It works well for open deals, but we've found that once an opportunity closes (Won or Lost), it only gets captured one more time, the week it closes, and then never again. 

 

This creates a reporting problem: our week-over-week reports compare this week's number to last week's. Once a deal's snapshots stop, the next comparison is a real number vs. nothing, which displays as a large drop, even for deals that closed Won. There's no way from the report side to tell a real loss apart from a win that simply aged out of the snapshot window. 

 

Questions for anyone who's solved this: 

 

  • Is there a standard pattern for extending snapshot capture for closed opportunities (e.g., for 30-60 days post-close) specifically to support trend reporting, without keeping every closed deal in the snapshot indefinitely?
  • Has anyone used native Historical Trend Reporting instead of a custom snapshot object for this, and does it have the same limitation?
  • Any recommended way to flag, on the report itself, whether a dollar change came from a win versus a loss, without needing a live cross-object Stage lookup (our report type doesn't expose the Opportunity's live Stage field, only the snapshot's own captured Stage)?

Appreciate any patterns or gotchas others have run into with this. 

 

#Reports & Dashboards  #Reporting  #Reports

6 answers
  1. Aug 17, 2:31 PM

    Hi C B - you've diagnosed it exactly: the snapshot filters to open-only, so closed deals fall out and a WoW comparison can't tell a win from a loss from an aged-out row. Here's the pattern for all three questions. 

     

    Q1 - extend capture for recently-closed deals: change the snapshot source criteria from 'open only' to 'open OR closed in the last N days'. If you snapshot with a scheduled Flow, filter the Get Records to IsClosed = false OR CloseDate >= TODAY() minus 60. If you use a native Reporting Snapshot, set the source report filter to 'Closed = false OR Close Date = LAST N DAYS:60' (filter logic 1 OR 2). Recently-closed deals then keep getting captured through the trend window and naturally age out once their close date passes 60 days - so you get WoW continuity without hoarding every closed deal forever. 

     

    Q3 (the important one) - flag win vs loss from the snapshot alone, no live lookup: capture the disposition ON each snapshot row at capture time. Add IsClosed and IsWon checkboxes to your Pipeline Growth Snapshot object and populate them when you write the row - or a small formula field 'Disposition' = Open / Won / Lost derived from the captured Stage. Because it's stored on the snapshot, the report reads it directly - no cross-object lookup to the live Opportunity Stage needed. Then bucket/group the WoW change by that captured disposition, so a deal that drops out because it was Won is categorized as a win, and only a genuine Closed Lost shows as a real pipeline decrease. 

     

    Q2 - native Historical Trend Reporting: it does not have the drop-out problem (it retains a deal's history for the retention window whether or not it closed), so it's worth a look. The trade-offs: it's limited to a rolling retention window (default ~3 months, configurable), tracks only up to ~5 fields, and the 'Opportunities with Historical Trending' report type/format is fairly rigid (matrix, a handful of snapshot dates). Great for 'what did this deal look like X weeks ago', but for bespoke WoW logic plus longer retention the custom object is more flexible - once you fix the source filter from Q1. So use HTR if 3 months and its report format is enough; otherwise keep your object and just widen the capture criteria and store the disposition. 

     

    Net: widen the source filter to include recently-closed deals, and stamp IsWon/IsClosed (or a Won/Lost/Open formula) onto every snapshot row - that combination kills the phantom drop and lets the report separate wins from losses with no live lookup. Hope that helps!

0/9000

I have been tasked to created the following report. 

We track donations (NPSP) on the Account object. I need a report to show every Account that donated between $1000 - $5000 in a calendar year at least once in the past 3 years (we have roll-ups for the past 5 years on the Account records). That part is very easy. 

 

Here is what I cannot figure out. They want me to exclude any Donor who gave over $5000 in any one (or more) years in the same time period. So if a Account gave $2500 this year (which includes them), $500 the previous year, and $6400 the year before that - they would be excluded due to the last figure. Not sure the filtering to get that done. Appreciate any help.  

 

#Reports  #Reporting

2 answers
  1. Vuk Stajic (MVRK Inc.) Forum Ambassador
    Aug 25, 9:05 PM

    Sorry, what do you mean by "We track donations (NPSP) on the Account object."? 

     

    You are not using Opportunities to track donations? 

     

    I think this specific reporting will require some work in excel! 

     

    BUT if you mean you have a rollup that says total donations for 2024, 2025 and 2026 then you might be able to use those filters. 

     

    BUT it will be a VERY long and complicated filter! 

     

    I would create a report of all accounts and the 3 columns for the 3 years. Export it. And use excel to filter to just the ones that have no years over 5k and at least one year over 1k. 

     

    In Salesforce maybe it would be like this: 

     

    2024 < 5001 AND 2025 < 5001 AND 2026 < 5001

    AND(

    2024 > 1000

    OR 2025 > 1000

    OR 2026 >1000)

     

    If that makes sense :) it is not written in proper formula syntax, just logical syntex.

0/9000

Hi everyone! 

I recently triggered a process builder that sends an email (created with classic email templates) to the preferred email on the contact but the request's status is what triggers the process builder. Anyways, I was wonder if there was a way to see more email statistics? I can see that it triggered when I go to the activities/tasks on the request record. But I want to see more information such as deliverability. Any idea if I can do that? 

 

#Email #Mass Email #Trailhead #Salesforce #Statistics #Email Activities #Reports #Salesforce Admin

2 answers
  1. Ajaypreet Singh Saini (Grantbook) Forum Ambassador
    May 13, 2023, 12:43 AM

    Hey Jenna,

    Have you enabled Email Tracking in Salesforce?

     

    If not, check out this article on how to do that:

    https://www.salesforceben.com/how-do-i-track-email-opens-clicks-in-salesforce/

0/9000

I'm trying to create a report that shows Opportunities based on Amount and Close Date, and also based on Payment Amount and Payment Date. Unfortunately, you can't use "OR" logic between fields on different records. I discovered Joined Reports, and I thought that might be the answer to my problem. Unfortunately, it turns out the blocks in Joined Reports can only be displayed horizontally, not vertically, which means my users will have to scroll to the right to see the second block, which I don't think it going to work for us. 

 

Joined Reports should include the option of viewing blocks stacked vertically, rather than side-by-side. 

 

#IdeaExchange  #Reports

0/9000

🗞 [Product & Service: Monthly Buzz] February 2026 🗞🗞 [Product & Service: Monthly Buzz] February 2026 🗞NEW CONTENT EVERY MONTH! Be sure to read the best of our content in your inbox 🚀 Community Highlights This month we saw amazing engagement acrossNEW CONTENT EVERY MONTH! Be sure to read the best of our content in your inbox 

 

🚀 Community Highlights 

This month we saw amazing engagement across the community:

  • 1023 questions answered by community experts
  • 20% Accepted Answers by community members

A big thank you to everyone who continues to support and help others in the community! 

 

📢 Product Updates

 Here are a few updates you should know about: 

1) Salesforce Maps Spring ’26 is now available in sandboxes. Read more here >> https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000mlNcR0AU

2) Deprecation of APIs and Usage Charts for Object Store v2 and Anypoint MQ as of July 31, 2026. Read more here >> https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000mlWEk0AM

3) Salesforce disabling the creation of new connected apps in Spring 26. Read more here >> https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000mkYYK0A2

 

🏆 Member Spotlight

This month we’re recognizing @Keiji Otsubo for consistently helping members and sharing valuable insights in the #Agentforce topic.  

  

💡 Community-Generated Content Highlights

We published two Knowledge Articles under the topic #Reports & Dashboards with the help of our Forum Ambassadors, @Ajaypreet Singh Saini and @Sushil Kumar. Thank you for your valuable contributions.  

 

The topics included:  

1) Calculate the percentage of Subtotals in a Salesforce Report. Read more >> https://help.salesforce.com/s/articleView?id=005306446&type=1

2) Build a Dashboard with fixed Filters. Read more >> https://help.salesforce.com/s/articleView?id=005306445&type=1

 

❤️ Thank You

Thank you for to everyone for being part of our growing community. Your participation and engagement make this space valuable for everyone. 

 

#Product & Service News

The client has the following report structure - one example as shown below,

 

Number of Reports received Q1/Q2/Q3/Q4 - 10/20/30/40

 

Can I create similar kind of report in Tableau. I tried creating a calculated field but its showing the result value of 10/20/30/40.

 

Is there any way to show the numbers as such??

4 answers
  1. Mar 13, 2017, 4:34 PM

    Assuming the number of reports for each quarter is a measure names in the format No_Q<x>_Reports, you can try to create a calculated field (let's call it #Reports) like this:

     

    str([No_Q1_Reports]) + "/ " + str([No_Q2_Reports) + "/" + str([No_Q3_Reports]) + "/" + str([No_Q4_Reports]

     

    Once created, drag this calculated field into the Measures area, and then drop it in the Rows section. It should now display as AGG(#Reports). You can then place an appropriate label in front of this, like "Number of Reports received Q1/Q2/Q3/Q4 - ".

     

    Hope this helps!

0/9000

 

Admin Beginner > Reports and Dashboards for Lightning Experience > Filter Your Report (Hands-on Challenge), Please assist me in resolving my issues.

Admin Beginner > Reports and Dashboards for Lightning Experience > Filter Your Report (Hands-on Challenge), Please assist me in resolving my issues. 

 

#Trailhead Challenges  #Reports & Dashboards  #Reports

3 comments
  1. Jan 30, 2025, 2:09 PM

    Hi @Sahil Mankotia I am a member of Trailhead Help, We see that you have successfully completed the badge Reports & Dashboards for Lightning Experience. Please post the solution or mark any one of them above which helped you to resolve your query as "Best Answer" to close this thread, and also it might help the fellow Trailblazer's who are facing the similar issue. Thank You!  

0/9000

I included the field Next Activity Date on an Opportunity Report. There are 15 opps on the report, but 2 of Next Activity Dates are not populating correctly, they are not showing up. Any clue why that would happen? It works for some opps on the report, but not all. 

 

#Reports

11 answers
0/9000