What are Linked Reports?
The linked reports feature is a way to link a parent leaderboard report to a child leaderboard report through a link in the parent report. This is done through adding an additional top-level JSON object within Advanced Configuration so that one or more measures in a report can be turned into a link to another report. Clicking the link will pull up that report quick-filtered based on the row clicked from the first report. For example, a summary report dimensioned by person could show the number of attempts taken for a test. When clicking on that number in the report, you can link out to the specific information for that test as shown below.
- User Types
- Any user with access to the report builder (Global Admins, Area Admins, and some Users) can edit a Leaderboard report to include linked reports. All users can see linked reports.
- Pricing
- Available on paid plans (Analyst, CLO, and Enterprise).
- Expertise
- Anybody can view this feature. Expert users can configure this feature.
Creating a Child Report
Use the report builder to create a Leaderboard report. You will want this report to show the drilled down information from the parent report. There is no action needed to make this a child report, but you will need the report ID for this child report. The report ID can be found in the URL of the report: https://watershedlrs.com/app/index.html#/leaderboard/[Report_ID]
Adding a Linked Report to a Parent Leaderboard Report
Once parent and child leaderboard reports exist, you can add a linked report to the parent report in the Advanced Configuration section of report builder. A reportLinks object should be added to the top level of the report configuration.
Each measure that should link to a child report should have the link URL specified along with how the child report should be filtered in the drill down. The url field will follow the format of "#/leaderboard/######" where ###### is the child report id.
The filter is how we define what the child report should be filtered to. The filter can be based on the dimension, measure, or report filters in the parent report.
Filtering the Child Report by Dimension
The most prevalent use case for linked reports is filtering the child report by the dimension of the parent report.
If a parent report is dimensioned by person, the linked report can be filtered to the specific person with the following syntax:
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"filter": {
"personIds": [
"$dimension"
]
}
}
}
A shorthand syntax can also be used here using dimensionAsFilter. The following syntax behaves identically to the above syntax:
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"dimensionAsFilter": "person"
}
}
Any dimension of the parent report can be used to filter the child report with a similar set up to above. If a parent report is dimensioned by activity (object.id), the syntax would be the same as above except for "activity" instead of "person":
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"dimensionAsFilter": "activity"
}
}
Filtering the Child Report by Measure
In addition to filtering the child report by dimension, it can also be filtered by configuration in the measure.
For example, if a measure is configured to return a person, the linked report can be filtered to that specific person with the following syntax:
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"filter": {
"personIds": [
"$measure"
]
}
}
}
A shorthand syntax (analogous to dimensions) can also be used here using measureAsFilter. The following syntax behaves identically to the above syntax:
"reportLinks":{
"m0": {
"url": "#/leaderboard/######",
"measureAsFilter": "person"
}
}
Filtering the Child Report by Date Filters
Date filters from the report filter or measure can also be used in linked report filters.
If the parent report has a date filter that we want to apply to the child report, we can apply this in the filter. This will be applied by looking at the report filter object with attribute dateFilter ($reportFilter.dateFilter). An example of pulling the date filter from the parent report is as follows:
"reportLinks": {
"m0": {
"url": "#/leaderboard/######",
"filter": {
"dateFilter": {
"dateType": "custom",
"customDateFrom": "$reportFilter.dateFilter.customDateFrom",
"customDateTo": "$reportFilter.dateFilter.customDateTo",
"fieldName": "timestamp"
}
}
}
}
The date filter can also be pulled from a date filter on the measure. For that, you will want to use $measureFilter.dateFilter for the dateFilter as shown:
"reportLinks": {
"m0": {
"url": "#/leaderboard/######",
"filter": {
"dateFilter": "$measureFilter.dateFilter"
}
}
}
Filtering a Dashboard instead of a Report
The Linked Report Feature was originally created to filter down a parent report to a detailed child report. However, functionality was added to also allow quick filtering to work on a whole dashboard. The filters will work in the same way as mentioned above except that the link will have a dashboard with corresponding dashboard ID instead of a report. Here is an example of the syntax using the group dimension as a filter where ###### is the dashboard ID:
"reportLinks": {
"m0": {
"url": "https://watershedlrs.eu/app/index.html#/dashboard/######",
"dimensionAsFilter": "group"
}
},