Building Salesforce reports can sometimes be very challenging. You start building a report and you realize you cannot access the objects you want, or use the appropriate lookups, or apply the relevant filter criteria. Apsona Multi-step Reporting (MSR) addresses some of these problems. This reporting app lets you build reports spanning any number of objects, native or custom. It lets you traverse dependencies in either direction (parent-to-child or child-to-parent), and can handle multiple dependencies between the same pairs of objects. For example, you can create a report spanning the Campaign (parent) – Opportunity (child) – Opportunity Contact Role and back up the chain to Contact (parent). Another plus with Apsona MSR is the ability to run reports without having to create report types.
A few key concepts to bear in mind:
- Reports are built in steps.
- Each step retrieves data from one object.
- Each step carries its own filter conditions, independent of the other steps, and these conditions can be cross-object.
- Steps are linked to previous steps via lookup fields or picklist values.
We will use an example to illustrate these ideas. Frequently, non-profit organizations need to identify their top donors and learn their interests, so that the organization can target the right people in future campaigns. In that context, they often need to identify donors who donated in multiple campaigns, or those who have donated to two or more specific campaigns.
As a simplified example, suppose we are conducting a dinner gala, to which we would like to invite our top donors from the Kids Literacy and the School supplies Campaigns. So we want a list of those donors who have contributed in both the campaigns. Intuition suggests that we can produce this report by first creating two lists of donors, one for each campaign, and then identifying the common ones. And this is precisely how you would build a multi-step report for this purpose. The Opportunity Contact Role (OCR) object is the basis of this report, since an entry in that object tells us the existence of a donation by a donor. The Donation object has a lookup to Campaign, and therefore accessible from the OCR object. So here are the three steps of the multi-step report.
- Find the donors for Kids Literacy. From the OCR object, get the Donor/Contact look up field. From the Donor object, get the donor’s Full Name. In the filter terms, select the Campaign field from the Opportunity object and select Kids Literacy as the value. Save the step.
- Find the donors for School Supplies. Clone Step 1 and just change the filter term value of the Campaign to School supplies. Save the step.
- Find the donors in both campaigns. From the Contact object, select the Contact ID field (required for linking to the previous steps), Full name and any other Contact fields you require for the report. Click the linkages tab. You will now see that you have two linkage options, one from each step. Notice that this is where we use the lookup field values retrieved by the previous two steps. You will need to select both the linkages, to enforce the condition that you want contacts from both campaigns. Save and run the report, and you have your desired results.
Notice that this report retrieves data twice from the same object (Opportunity Contact Role), with different filter criteria. This capability is needed frequently in real-world situations. In addition, Multi-step Report data can be visualized in charts, groups, and pivoted matrices.
We would like to thank Idealist Consulting for the opportunity to contribute this article to their blog.
Blog Category: Solutions