Print this page

Alternatives to Frequently Run Reports, Dashboards and List Views

Knowledge Article Number 000205553
Description

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.
Resolution

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.


Alternate Ways to Send Data Change Notifications

In some scenarios you might not need the notifications visible within Salesforce, but instead sent directly to users or to an external system. Instead of running a report and pushing the report results to email or an external system, consider sending notifications directly, either via Apex triggers and callouts, or using a Workflow that uses email notifications.

Invoking Callouts Using Apex and Apex Web Services and Callouts have more information on using Apex callouts.

Examples of Workflow Rules provides some examples that use email notifications.

One approach discussed in Alert! Salesforce Event Notification Designs for Force.com Apps uses a Workflow with email notifications.


Other Approaches

Depending on your business and technical requirements, you might need to use a mix of approaches, or use third-party solutions as alternatives to running reports & dashboards.

Alert! Salesforce Event Notification Designs for Force.com Apps goes in-depth on several different ways to do event notification.

Real-time push notifications from Force.com to Heroku using WebSockets talks about a way to do real-time notifications using WebSockets.




promote demote