Alternatives to Frequently Run Reports, Dashboards and List Views
|Knowledge Article Number||000205553|
Salesforce reports and dashboards are convenient, easy to setup, versatile, and powerful. It’s common to use reports and dashboards as a way to view a frequent, regular snapshot of a particular data set. However, excessively frequent execution of reports and dashboards can incur a lot of processing work, and impact overall organization performance.
For example, a user might want frequent, regular updates of a report, and might be using a browser plugin to auto-refresh the report page continuously. While this might seem like it is achieving the desired results for that user, this sort of frequent report execution can make your organization slower for all users.Salesforce provides many features besides reports and dashboards that provide different ways to view or get notified of recurring data changes. Depending on your use cases, there might be a much more efficient, direct way to handle your data changes instead of using a report. This article offers some alternatives that will save your resources and let you scale your organization with ease.
Alternate Ways to View Data Change Notifications
One possible option is to create a custom Visualforce page that represents the data view you want, and then update this custom page using the Streaming API. The Streaming API is made specifically for data change notifications, uses very low overhead, and does not incur excessive API calls. By switching to using the Streaming API, you are also minimizing the risk of filling up your asynchronous queue because the Streaming API uses a different method of asynchronous notifications (long-polling using CometD).
Streaming Realtime Data into Visualforce Pages provides an in-depth example of creating a dynamic Visualforce page that gets updated via the Streaming API.
The Streaming API Developer’s Guide Quickstart also has an example of a custom Visualforce page that uses Streaming API notifications.
One approach discussed in Alert! Salesforce Event Notification Designs for Force.com Apps uses a Visualforce page with Streaming API notifications, and goes into depth on user and security permissions you might need to configure.
Another example is presented in Responsive Visualforce Using Streaming API and Asynchronous Apex. This example uses Visualforce, Batch Apex, and the Streaming API to produce a report-like page that provides yearly summary information.
Keep in mind the Streaming API has its own set of limits, just like other Salesforce APIs. These limits are detailed here, however you can request increased limits by contacting Salesforce support.