Building User Engagement Dashboard

I would like to build a user engagement dashboard similar to

Any ideas for Number of Projects and Number of Users (that have been active)? Maybe even a way to say number of projects and users that have not been active.

I ended up building something for User Engagement… Maybe you want to put it on your demo site?

With this in advanced settings:

[jira.customfield_activities]
name = “Activity History”
data_type = “integer”
measure = true
multiple_dimensions = [“Assignee”,“Time”]
javascript_code = ‘’’
var activities = [];
//check history records for each issue
if (issue.changelog.histories && issue.changelog.histories.length > 0) {
for (i=0; i<issue.changelog.histories.length; i++) {
//get date and author of each history record
var activityDate = issue.changelog.histories[i].created;
var activityAuthor = issue.changelog.histories[i].author.accountId;
activities.push(activityAuthor + ‘,’ + activityDate.toString().substr(0,10) + ‘,1’);
}
}
//check comments for each issue
if (issue.fields.comment.comments && issue.fields.comment.comments.length>0) {
for (j=0; j<issue.fields.comment.comments.length; j++) {
//get date and author of each comment
var activityDate = issue.fields.comment.comments[j].created;
var activityAuthor = issue.fields.comment.comments[j].author.accountId;
activities.push(activityAuthor + ‘,’ + activityDate.toString().substr(0,10) + ‘,1’);
}
}
//get the array of changelogs and comments
issue.fields.customfield_activities = activities.join("\n");
‘’’

And then these for definitions:

{
“name”: “Active Users”,
“definition”: {“pages”:[{“cube_name”:“Issues”,“name”:“Project”,“selected_set”:["[Project.Category].[All Projects by category]"],“members”:[{“depth”:0,“name”:“All Projects by category”,“full_name”:"[Project.Category].[All Projects by category]",“drillable”:true,“type”:“all”,“expanded”:true,“drilled_into”:false,“caption”:“All Projects by category”}],“current_page_members”:["[Project.Category].[All Projects by category]"]}],“reports”:[{“width”:50,“clear”:“left”,“cube_report_name”:“Number of Active Users Monthly”,“cube_name”:“Issues”,“folder_name”:“Instance Level Statistics”},{“width”:50,“clear”:“right”,“cube_report_name”:“Number of Active Users Weekly”,“cube_name”:“Issues”,“folder_name”:“Instance Level Statistics”},{“width”:33.33,“clear”:“right”,“cube_report_name”:“Active Users by Project Category”,“cube_name”:“Issues”,“folder_name”:“Instance Level Statistics”},{“width”:66.66,“clear”:“left”,“cube_report_name”:“Active Users Graph per Project Category Last 6 months”,“cube_name”:“Issues”,“folder_name”:“Instance Level Statistics”}]},
“dashboard_reports”: [ {
“cube_name”: “Issues”,
“cube_reports”: [ {
“name”: “Number of Active Users Monthly”,
“folder_name”: “Instance Level Statistics”,
“result_view”: “line_chart”,
“definition”: {“columns”:{“dimensions”:[{“name”:“Measures”,“selected_set”:["[Measures].[Unique Active Users]"],“members”:null},{“name”:“Project”,“selected_set”:["[Project].[All Projects]"],“members”:null,“bookmarked_members”:null}]},“rows”:{“dimensions”:[{“name”:“Time”,“selected_set”:["[Time].[All Times]"],“selected_set_expression”:“DescendantsSet({{selected_set}}, [Time].[Month])”,“members”:null,“bookmarked_members”:null}],“filter_by”:{“conditions”:[{“expression”:"[Time].CurrentHierarchyMember",“operator”:“between”,“value”:“6 months ago and end of last month”,“value_type”:“date”}]},“nonempty_crossjoin”:true},“pages”:{“dimensions”:[{“name”:“Project”,“duplicate”:true,“selected_set”:["[Project].[All Projects]"],“members”:[{“depth”:0,“name”:“All Projects”,“full_name”:"[Project].[All Projects]",“drillable”:true,“type”:“all”}],“bookmarked_members”:null,“current_page_members”:["[Project].[All Projects]"]},{“name”:“Time”,“duplicate”:true,“selected_set”:["[Time].[Last 6 months]"],“members”:[{“depth”:0,“name”:“Last 6 months”,“full_name”:"[Time].[Last 6 months]",“calculated”:true,“drillable”:true,“dimension”:“Time”}],“bookmarked_members”:null,“current_page_members”:["[Time].[Last 6 months]"]}]},“options”:{“nonempty”:true},“view”:{“current”:“line_chart”,“maximized”:false,“line_chart”:{“area”:false,“swap_axes”:false,“data_labels”:false,“series_options”:{}},“table”:{}},“calculated_members”:null}
},{
“name”: “Number of Active Users Weekly”,
“folder_name”: “Instance Level Statistics”,
“result_view”: “line_chart”,
“definition”: {“columns”:{“dimensions”:[{“name”:“Measures”,“selected_set”:["[Measures].[Unique Active Users]"],“members”:null},{“name”:“Project”,“selected_set”:["[Project].[All Projects]"],“members”:null,“bookmarked_members”:null}]},“rows”:{“dimensions”:[{“name”:“Time”,“selected_set”:["[Time.Weekly].[Last 32 Weeks]"],“selected_set_expression”:“DescendantsSet({{selected_set}}, [Time.Weekly].[Week])”,“members”:null,“bookmarked_members”:null}],“nonempty_crossjoin”:true},“pages”:{“dimensions”:[{“name”:“Project”,“duplicate”:true,“selected_set”:["[Project].[All Projects]"],“members”:[{“depth”:0,“name”:“All Projects”,“full_name”:"[Project].[All Projects]",“drillable”:true,“type”:“all”}],“bookmarked_members”:null,“current_page_members”:["[Project].[All Projects]"]},{“name”:“Time”,“duplicate”:true,“selected_set”:["[Time.Weekly].[Last 32 Weeks]"],“members”:[{“depth”:0,“dimension”:“Time”,“name”:“Last 32 Weeks”,“formula”:“Aggregate(\n {[Time].[Week].CurrentDateMember.Lag(31):\n [Time].[Week].CurrentDateMember\n })”,“format_string”:"",“dimension_hierarchy”:“Weekly”,“full_name”:"[Time.Weekly].[Last 32 Weeks]",“drillable”:true,“annotations”:null,“calculated”:true}],“bookmarked_members”:null,“current_page_members”:["[Time.Weekly].[Last 32 Weeks]"]}]},“options”:{“nonempty”:true},“view”:{“current”:“line_chart”,“maximized”:false,“line_chart”:{“area”:false,“swap_axes”:false,“data_labels”:false,“series_options”:{}},“table”:{}},“calculated_members”:null}
},{
“name”: “Active Users by Project Category”,
“folder_name”: “Instance Level Statistics”,
“result_view”: “table”,
“definition”: {“columns”:{“dimensions”:[{“name”:“Measures”,“selected_set”:["[Measures].[Activity History]"],“members”:null},{“name”:“Time”,“selected_set”:["[Time.Weekly].[Last 32 Weeks]"],“members”:null,“bookmarked_members”:null}]},“rows”:{“dimensions”:[{“name”:“Project”,“selected_set”:["[Project.Category].[All Projects by category]"],“selected_set_expression”:“DescendantsSet({{selected_set}}, [Project.Category].[Category])”,“members”:null,“bookmarked_members”:null},{“name”:“Assignee”,“selected_set”:["[Assignee].[User].Members"],“members”:null,“bookmarked_members”:null}],“nonempty_crossjoin”:true},“pages”:{“dimensions”:[{“name”:“Time”,“duplicate”:true,“selected_set”:["[Time.Weekly].[Last 32 Weeks]"],“members”:[{“depth”:0,“name”:“Last 32 Weeks”,“full_name”:"[Time.Weekly].[Last 32 Weeks]",“dimension_hierarchy”:“Weekly”,“calculated”:true,“drillable”:true,“dimension”:“Time”}],“bookmarked_members”:null,“current_page_members”:["[Time.Weekly].[Last 32 Weeks]"]},{“name”:“Project”,“duplicate”:true,“selected_set”:["[Project.Category].[All Projects by category]"],“members”:[{“depth”:0,“name”:“All Projects by category”,“full_name”:"[Project.Category].[All Projects by category]",“drillable”:true,“type”:“all”,“expanded”:true,“drilled_into”:false}],“bookmarked_members”:null,“current_page_members”:["[Project.Category].[All Projects by category]"]}]},“options”:{“nonempty”:true},“view”:{“current”:“table”,“maximized”:false,“table”:{“freeze_header”:true}},“calculated_members”:null}
},{
“name”: “Active Users Graph per Project Category Last 6 months”,
“folder_name”: “Instance Level Statistics”,
“result_view”: “line_chart”,
“definition”: {“columns”:{“dimensions”:[{“name”:“Measures”,“selected_set”:["[Measures].[Activity History]"],“members”:null},{“name”:“Project”,“selected_set”:["[Project.Category].[All Projects by category]"],“selected_set_expression”:“DescendantsSet({{selected_set}}, [Project.Category].[Category])”,“members”:null,“bookmarked_members”:null}]},“rows”:{“dimensions”:[{“name”:“Time”,“selected_set”:["[Time].[Last 6 months]"],“selected_set_expression”:“DescendantsSet({{selected_set}}, [Time].[Month])”,“members”:null,“bookmarked_members”:null}],“filter_by”:{“conditions”:[{“expression”:"[Time].CurrentHierarchyMember",“operator”:“between”,“value”:“6 months ago and end of last month”,“value_type”:“date”}]},“nonempty_crossjoin”:true},“pages”:{“dimensions”:[{“name”:“Time”,“duplicate”:true,“selected_set”:["[Time].[Last 6 months]"],“members”:[{“depth”:0,“dimension”:“Time”,“name”:“Last 6 months”,“formula”:“Aggregate(\n [Time].[Month].DateMembersBetween(‘4 months ago’, ‘today’)\n)”,“format_string”:"",“full_name”:"[Time].[Last 6 months]",“drillable”:true,“annotations”:null,“calculated”:true,“id”:"[Time].[Last 6 months]"}],“bookmarked_members”:null,“current_page_members”:["[Time].[Last 6 months]"]},{“name”:“Project”,“duplicate”:true,“selected_set”:["[Project.Category].[All Projects by category]"],“members”:[{“depth”:0,“name”:“All Projects by category”,“full_name”:"[Project.Category].[All Projects by category]",“drillable”:true,“type”:“all”,“expanded”:true,“drilled_into”:false}],“bookmarked_members”:null,“current_page_members”:["[Project.Category].[All Projects by category]"]}]},“options”:{“nonempty”:true,“total”:“columns”},“view”:{“current”:“line_chart”,“maximized”:false,“line_chart”:{“area”:false,“swap_axes”:false,“data_labels”:false,“series_options”:{}},“table”:{“freeze_header”:true}},“calculated_members”:null}
} ],
“calculated_members”: [{“name”:“Last 6 months”,“dimension”:“Time”,“formula”:“Aggregate(\n {[Time].[Month].CurrentDateMember.Lag(5):\n [Time].[Month].CurrentDateMember\n })”,“format_string”:""},{“name”:“Unique Active Users”,“dimension”:“Measures”,“formula”:“NonZero(Count(\n Filter(Descendants(\n [Assignee].CurrentMember,[Assignee].[user]\n ),\n [Measures].[Activity History]\u003e0\n )\n))”,“format_string”:""},{“name”:“Last 32 Weeks”,“dimension”:“Time”,“formula”:“Aggregate(\n [Time.Weekly].[Week].DateMembersBetween(‘32 weeks ago’, ‘end of last week’)\n)”,“format_string”:"",“dimension_hierarchy”:“Weekly”}]
} ]
}

{
“name”: “Instance Statistics”,
“definition”: {“pages”:[{“cube_name”:“Issues”,“name”:“Project”,“selected_set”:["[Project.Category].[All Projects by category]"],“members”:[{“depth”:0,“name”:“All Projects by category”,“full_name”:"[Project.Category].[All Projects by category]",“drillable”:true,“type”:“all”,“caption”:“All Projects by category”,“expanded”:true,“drilled_into”:false}],“current_page_members”:["[Project.Category].[All Projects by category]"]}],“reports”:[{“width”:75,“clear”:“left”,“cube_report_name”:“Issues Created by Project Category over the last 4 months”,“cube_name”:“Issues”,“folder_name”:“Instance Level Statistics”},{“width”:25,“clear”:“right”,“cube_report_name”:“Top 10 Projects”,“cube_name”:“Issues”,“folder_name”:“Instance Level Statistics”},{“width”:25,“clear”:“right”,“page_break”:true,“cube_report_name”:“Top 10 Projects with Issues in the last month”,“cube_name”:“Issues”,“folder_name”:“Instance Level Statistics”},{“width”:75,“clear”:“left”,“cube_report_name”:“Number of Projects in the Last 4 months”,“cube_name”:“Issues”,“folder_name”:“Instance Level Statistics”}]},
“dashboard_reports”: [ {
“cube_name”: “Issues”,
“cube_reports”: [ {
“name”: “Issues Created by Project Category over the last 4 months”,
“folder_name”: “Instance Level Statistics”,
“result_view”: “line_chart”,
“definition”: {“columns”:{“dimensions”:[{“name”:“Measures”,“selected_set”:["[Measures].[Issues created]"],“members”:null},{“name”:“Project”,“selected_set”:["[Project.Category].[All Projects by category]"],“selected_set_expression”:“DescendantsSet({{selected_set}}, [Project.Category].[Category])”,“members”:null,“bookmarked_members”:null}]},“rows”:{“dimensions”:[{“name”:“Time”,“selected_set”:["[Time.Weekly].[Week].Members"],“members”:null,“bookmarked_members”:null}],“filter_by”:{“conditions”:[{“expression”:"[Time].CurrentHierarchyMember",“operator”:“between”,“value”:“4 months ago and today”,“value_type”:“date”}]},“nonempty_crossjoin”:true},“pages”:{“dimensions”:[{“name”:“Project”,“duplicate”:true,“selected_set”:["[Project.Category].[All Projects by category]"],“members”:[{“depth”:0,“name”:“All Projects by category”,“full_name”:"[Project.Category].[All Projects by category]",“drillable”:true,“type”:“all”,“expanded”:true,“drilled_into”:false}],“bookmarked_members”:null,“current_page_members”:["[Project.Category].[All Projects by category]"]}]},“options”:{“total”:“columns”},“view”:{“current”:“line_chart”,“maximized”:false,“line_chart”:{“area”:false,“swap_axes”:false,“data_labels”:false,“series_options”:{}},“table”:{}},“calculated_members”:null}
},{
“name”: “Top 10 Projects”,
“folder_name”: “Instance Level Statistics”,
“result_view”: “table”,
“definition”: {“columns”:{“dimensions”:[{“name”:“Measures”,“selected_set”:["[Measures].[Total Issues Created]"],“members”:null}]},“rows”:{“dimensions”:[{“name”:“Time”,“selected_set”:["[Time].[Month].Members"],“members”:null,“bookmarked_members”:null},{“name”:“Issue”,“selected_set”:["[Issue].[Project].Members"],“members”:null,“bookmarked_members”:null}],“extreme_by”:{“expression”:["[Measures].[Total Issues Created]"],“extreme”:“top_count”,“limit”:10},“filter_by”:{“conditions”:[{“expression”:"[Time.Weekly].CurrentHierarchyMember",“operator”:“between”,“value”:“1 months ago and today”,“value_type”:“date”},{“expression”:["[Measures].[Total Issues Created]"],“operator”:"\u003c\u003e",“value”:“0”}]},“nonempty_crossjoin”:true},“pages”:{“dimensions”:[{“name”:“Project”,“selected_set”:["[Project.Category].[All Projects by category]"],“members”:[{“depth”:1,“name”:"(no category)",“full_name”:"[Project.Category].[(no category)]",“drillable”:true},{“depth”:1,“name”:“Engineering”,“full_name”:"[Project.Category].[Engineering]",“drillable”:true,“expanded”:false,“drilled_into”:false},{“depth”:1,“name”:“Operations”,“full_name”:"[Project.Category].[Operations]",“drillable”:true}],“bookmarked_members”:null,“current_page_members”:["[Project.Category].[(no category)]","[Project.Category].[Engineering]","[Project.Category].[Operations]"]}]},“options”:{},“view”:{“current”:“table”,“maximized”:false,“table”:{}},“calculated_members”:null}
},{
“name”: “Top 10 Projects with Issues in the last month”,
“folder_name”: “Instance Level Statistics”,
“result_view”: “table”,
“definition”: {“columns”:{“dimensions”:[{“name”:“Measures”,“selected_set”:["[Measures].[Issues created]"],“members”:null}]},“rows”:{“dimensions”:[{“name”:“Time”,“selected_set”:["[Time].[Month].Members"],“members”:null,“bookmarked_members”:null},{“name”:“Issue”,“selected_set”:["[Issue].[Project].Members"],“members”:null,“bookmarked_members”:null}],“extreme_by”:{“expression”:["[Measures].[Issues created]"],“extreme”:“top_count”,“limit”:10},“filter_by”:{“conditions”:[{“expression”:"[Time.Weekly].CurrentHierarchyMember",“operator”:“between”,“value”:“1 months ago and today”,“value_type”:“date”},{“expression”:["[Measures].[Total Issues Created]"],“operator”:"\u003c\u003e",“value”:“0”}]},“nonempty_crossjoin”:true},“pages”:{“dimensions”:[{“name”:“Project”,“selected_set”:["[Project.Category].[All Projects by category]"],“members”:[{“depth”:1,“name”:"(no category)",“full_name”:"[Project.Category].[(no category)]",“drillable”:true},{“depth”:1,“name”:“Engineering”,“full_name”:"[Project.Category].[Engineering]",“drillable”:true,“expanded”:false,“drilled_into”:false},{“depth”:1,“name”:“Operations”,“full_name”:"[Project.Category].[Operations]",“drillable”:true}],“bookmarked_members”:null,“current_page_members”:["[Project.Category].[(no category)]","[Project.Category].[Engineering]","[Project.Category].[Operations]"]}]},“options”:{},“view”:{“current”:“table”,“maximized”:false,“table”:{}},“calculated_members”:null}
},{
“name”: “Number of Projects in the Last 4 months”,
“folder_name”: “Instance Level Statistics”,
“result_view”: “line_chart”,
“definition”: {“columns”:{“dimensions”:[{“name”:“Measures”,“selected_set”:["[Measures].[Number of Projects with Issues]"],“members”:null},{“name”:“Project”,“selected_set”:["[Project.Category].[All Projects by category]"],“selected_set_expression”:“DescendantsSet({{selected_set}}, [Project.Category].[Category])”,“members”:null,“bookmarked_members”:null}]},“rows”:{“dimensions”:[{“name”:“Time”,“selected_set”:["[Time.Weekly].[Week].Members"],“members”:null,“bookmarked_members”:null}],“filter_by”:{“conditions”:[{“expression”:"[Time].CurrentHierarchyMember",“operator”:“between”,“value”:“4 months ago and today”,“value_type”:“date”},{“expression”:["[Measures].[Number of Projects with Issues]","[Project.Category].[Operations]"],“operator”:"\u003c\u003e",“value”:“0”},{“expression”:["[Measures].[Number of Projects with Issues]","[Project.Category].[Engineering]"],“operator”:"\u003c\u003e",“value”:“0”},{“expression”:["[Measures].[Number of Projects with Issues]","[Project.Category].[(no category)]"],“operator”:"\u003c\u003e",“value”:“0”}]},“nonempty_crossjoin”:true},“pages”:{“dimensions”:[{“name”:“Project”,“duplicate”:true,“selected_set”:["[Project.Category].[All Projects by category]"],“members”:[{“depth”:0,“name”:“All Projects by category”,“full_name”:"[Project.Category].[All Projects by category]",“drillable”:true,“type”:“all”}],“bookmarked_members”:null,“current_page_members”:["[Project.Category].[All Projects by category]"]}]},“options”:{“nonempty”:true,“total”:“columns”},“view”:{“current”:“line_chart”,“maximized”:false,“line_chart”:{“area”:false,“swap_axes”:false,“data_labels”:false,“series_options”:{}},“table”:{}},“calculated_members”:null}
} ],
“calculated_members”: [{“name”:“Total Issues Created”,“dimension”:“Measures”,“formula”:“CASE WHEN [Priority].CurrentMember IS [Priority].DefaultMember\nTHEN\n CoalesceEmpty(Sum(\n { [Time].CurrentHierarchyMember.Parent.Level.Members.Item(0):\n [Time].CurrentHierarchyMember.Parent.PrevMember },\n [Measures].[Issues created]\n ),0) +\n CoalesceEmpty(Sum(\n PeriodsToDate([Time].CurrentHierarchyMember.Parent.Level),\n [Measures].[Issues created]\n ),0)\nEND”,“format_string”:"#,##0"},{“name”:“Number of Projects with Issues”,“dimension”:“Measures”,“formula”:“Count(\n Filter(\n Descendants([Project].CurrentMember, \n [Project].[Project]),\n [Measures].[Total Issues Created] \u003e 10\n )\n)”,“format_string”:""}]
} ]
}

2 Likes

Related Community post on user activity history: