Exception reports for salesforce

Sales managers often want to know:

  • what leads have had no activities
  • what leads don’t appear in campaigns
  • what accounts have had no opportunities associated with them

All of these are examples of useful, immediately actionable information. For example, when you identify leads without associated activities, the leads are probably languishing, so you want to act on them soon. Clearly this is very useful to have as a search feature, but unfortunately it’s not widely available in salesforce, although many people have requested it in more than one context.

In the reporting context, these are examples of what is called exception filtering, where we wish to find those data records of type A (e.g., a Lead) for which there are no corresponding records of a related type B (e.g., a Task). Usually there is a one-to-many relationship from type A to type B, e.g., one Lead has many Task records.

The main difficulty with providing such filtering within salesforce seems to be the limitations of SOQL, salesforce’s query language. SOQL offers many features similar to full SQL, but falls short in some ways. Recent versions of SOQL (such as Winter ’11) have improved it quite a bit, but it still does not have full-blown support for SQL-style subqueries and aggregations.

If you want to have exception filtering and reporting, there are some excellent third-party alternatives available, such as Crystal Reports, Birst or GoodData. Each of these is very powerful and flexible in its own right, and can provide exception filtering and lots of other information as well. They all operate by extracting your salesforce data into a separate database that supports full SQL. The availability of full SQL means that you can create very detailed filters and reports with them.

On the other hand, there are drawbacks with these alternatives. Their downloading of the data to a separate server means that your data now lives in two places. Apart from security concerns, you now have to synchronize your data between those two places. So the reports you run will not be on real-time data, but rather on stale data. Staleness is not necessarily a concern in all cases, e.g., if you’re reporting on historical or trending-related data. But if you want that quick report of languishing leads, you probably can’t get it without waiting for a while. These solutions are also on the expensive side for the smaller businesses and non-profit organizations. And they are typically not available for Group Edition users.

Apsona for Salesforce offers another alternative. It delivers exception reports and filters right within your salesforce instance, without needing to download your data anywhere. This means its reports reflect the exact real-time state of your data. It is also priced very inexpensively, is quick and easy to install and use, and is available for most salesforce editions, including Group Edition. Apsona for Salesforce is able to deliver these features by leveraging some of the newer features in SOQL, along with some interesting programming techniques.

Watch this video to get an idea of what it takes to create an exception report using Apsona for Salesforce. Sign up for it, try it out and let us know what you think. We look forward to hearing from you!