Skip to content

Commit bdebe09

Browse files
committed
1st commit of custom analytics
1 parent a0251f8 commit bdebe09

3 files changed

Lines changed: 49 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"name":"PVA_Analytics_Export1","description":"","version":"1.0","culture":"en-US","modifiedTime":"2021-03-17T15:53:39.3636332+00:00","pbi:mashup":{"fastCombine":false,"allowNativeQueries":false,"queriesMetadata":{"botcomponent":{"queryId":"d1c02c27-4fc7-47e3-a623-155fb9c6152d","queryName":"botcomponent","loadEnabled":true},"bot":{"queryId":"8dc931c2-0ac3-4755-ae25-61caf7c91d10","queryName":"bot","loadEnabled":true},"conversationtranscript":{"queryId":"48645ace-1a69-4f7b-b342-b0beaddf201b","queryName":"conversationtranscript","loadEnabled":true}},"document":"section Section1;\r\nshared botcomponent = let\r\n Source = Cds.Entities(\"**Your server url here**\", null),\r\n #\"Navigation 1\" = Source{[Group = \"entities\"]}[Data],\r\n #\"Navigation 2\" = #\"Navigation 1\"{[EntitySetName = \"botcomponents\"]}[Data]\r\nin\r\n #\"Navigation 2\";\r\nshared bot = let\r\n Source = Cds.Entities(\"**Your server url here**\", null),\r\n #\"Navigation 1\" = Source{[Group = \"entities\"]}[Data],\r\n #\"Navigation 2\" = #\"Navigation 1\"{[EntitySetName = \"bots\"]}[Data]\r\nin\r\n #\"Navigation 2\";\r\nshared conversationtranscript = let\r\n Source = Cds.Entities(\"**Your server url here**\", null),\r\n #\"Navigation 1\" = Source{[Group = \"entities\"]}[Data],\r\n #\"Navigation 2\" = #\"Navigation 1\"{[EntitySetName = \"conversationtranscripts\"]}[Data]\r\nin\r\n #\"Navigation 2\";\r\n"},"annotations":[{"name":"pbi:QueryGroups","value":"[]"}],"entities":[{"$type":"LocalEntity","name":"botcomponent","description":"","pbi:refreshPolicy":{"$type":"FullRefreshPolicy","location":"botcomponent.csv"},"attributes":[{"name":"botcomponentid","dataType":"string"},{"name":"category","dataType":"string"},{"name":"componentidunique","dataType":"string"},{"name":"componentstate","dataType":"int64"},{"name":"componentstate_display","dataType":"string"},{"name":"componenttype","dataType":"int64"},{"name":"componenttype_display","dataType":"string"},{"name":"content","dataType":"string"},{"name":"createdby","dataType":"string"},{"name":"createdon","dataType":"dateTimeOffset"},{"name":"createdonbehalfby","dataType":"string"},{"name":"data","dataType":"string"},{"name":"description","dataType":"string"},{"name":"importsequencenumber","dataType":"int64"},{"name":"ismanaged","dataType":"boolean"},{"name":"language","dataType":"int64"},{"name":"language_display","dataType":"string"},{"name":"modifiedby","dataType":"string"},{"name":"modifiedon","dataType":"dateTimeOffset"},{"name":"modifiedonbehalfby","dataType":"string"},{"name":"name","dataType":"string"},{"name":"overriddencreatedon","dataType":"dateTimeOffset"},{"name":"overwritetime","dataType":"dateTimeOffset"},{"name":"ownerid","dataType":"string"},{"name":"owningbusinessunit","dataType":"string"},{"name":"owningteam","dataType":"string"},{"name":"owninguser","dataType":"string"},{"name":"parentbotcomponentid","dataType":"string"},{"name":"schemaname","dataType":"string"},{"name":"solutionid","dataType":"string"},{"name":"statecode","dataType":"int64"},{"name":"statecode_display","dataType":"string"},{"name":"statuscode","dataType":"int64"},{"name":"statuscode_display","dataType":"string"},{"name":"timezoneruleversionnumber","dataType":"int64"},{"name":"utcconversiontimezonecode","dataType":"int64"},{"name":"versionnumber","dataType":"int64"}],"partitions":[]},{"$type":"LocalEntity","name":"bot","description":"","pbi:refreshPolicy":{"$type":"FullRefreshPolicy","location":"bot.csv"},"attributes":[{"name":"accesscontrolpolicy","dataType":"int64"},{"name":"accesscontrolpolicy_display","dataType":"string"},{"name":"applicationmanifestinformation","dataType":"string"},{"name":"authenticationmode","dataType":"int64"},{"name":"authenticationmode_display","dataType":"string"},{"name":"authenticationtrigger","dataType":"int64"},{"name":"authenticationtrigger_display","dataType":"string"},{"name":"authorizedsecuritygroupids","dataType":"string"},{"name":"botid","dataType":"string"},{"name":"componentidunique","dataType":"string"},{"name":"componentstate","dataType":"int64"},{"name":"componentstate_display","dataType":"string"},{"name":"configuration","dataType":"string"},{"name":"createdby","dataType":"string"},{"name":"createdon","dataType":"dateTimeOffset"},{"name":"createdonbehalfby","dataType":"string"},{"name":"iconbase64","dataType":"string"},{"name":"importsequencenumber","dataType":"int64"},{"name":"ismanaged","dataType":"boolean"},{"name":"language","dataType":"int64"},{"name":"language_display","dataType":"string"},{"name":"modifiedby","dataType":"string"},{"name":"modifiedon","dataType":"dateTimeOffset"},{"name":"modifiedonbehalfby","dataType":"string"},{"name":"name","dataType":"string"},{"name":"overriddencreatedon","dataType":"dateTimeOffset"},{"name":"overwritetime","dataType":"dateTimeOffset"},{"name":"ownerid","dataType":"string"},{"name":"owningbusinessunit","dataType":"string"},{"name":"owningteam","dataType":"string"},{"name":"owninguser","dataType":"string"},{"name":"publishedby","dataType":"string"},{"name":"publishedon","dataType":"dateTimeOffset"},{"name":"schemaname","dataType":"string"},{"name":"solutionid","dataType":"string"},{"name":"statecode","dataType":"int64"},{"name":"statecode_display","dataType":"string"},{"name":"statuscode","dataType":"int64"},{"name":"statuscode_display","dataType":"string"},{"name":"timezoneruleversionnumber","dataType":"int64"},{"name":"utcconversiontimezonecode","dataType":"int64"},{"name":"versionnumber","dataType":"int64"}],"partitions":[]},{"$type":"LocalEntity","name":"conversationtranscript","description":"","pbi:refreshPolicy":{"$type":"FullRefreshPolicy","location":"conversationtranscript.csv"},"attributes":[{"name":"bot_conversationtranscriptid","dataType":"string"},{"name":"content","dataType":"string"},{"name":"conversationstarttime","dataType":"dateTimeOffset"},{"name":"conversationtranscriptid","dataType":"string"},{"name":"createdby","dataType":"string"},{"name":"createdon","dataType":"dateTimeOffset"},{"name":"createdonbehalfby","dataType":"string"},{"name":"importsequencenumber","dataType":"int64"},{"name":"metadata","dataType":"string"},{"name":"modifiedby","dataType":"string"},{"name":"modifiedon","dataType":"dateTimeOffset"},{"name":"modifiedonbehalfby","dataType":"string"},{"name":"name","dataType":"string"},{"name":"overriddencreatedon","dataType":"dateTimeOffset"},{"name":"ownerid","dataType":"string"},{"name":"owningbusinessunit","dataType":"string"},{"name":"owningteam","dataType":"string"},{"name":"owninguser","dataType":"string"},{"name":"schematype","dataType":"string"},{"name":"schemaversion","dataType":"string"},{"name":"statecode","dataType":"int64"},{"name":"statecode_display","dataType":"string"},{"name":"statuscode","dataType":"int64"},{"name":"statuscode_display","dataType":"string"},{"name":"timezoneruleversionnumber","dataType":"int64"},{"name":"utcconversiontimezonecode","dataType":"int64"},{"name":"versionnumber","dataType":"int64"}],"partitions":[]}]}

CustomAnalytics/PVA_Dashboard.pbit

619 KB
Binary file not shown.

CustomAnalytics/readme.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Custom analytics solution for Power Virtual Agents
2+
This solution allows customers to create a Power BI dashboard for their Power Virtual Agents chatbots
3+
4+
## Solution components
5+
- Microsoft Dataverse
6+
- Microsoft Power BI DataFlows
7+
- Microsoft Power BI Desktop
8+
- (Optional) Azure Data Lake Storage v2
9+
10+
## Solution files
11+
- PVA_Analytics_Export.json - this is the template for a PowerBI DataFlow
12+
- PVA_Dashboard.pbit - Power BI template file
13+
14+
## Installation
15+
16+
# Installation requirements
17+
- One or more Power Virtual Agents bots
18+
- A Power BI account
19+
20+
# Installation steps
21+
1. Edit the DataFlow template
22+
1. FInd the server url associated with your Dataverse environment (it will look like https://yourservice.crm.dynamics.com)
23+
2. Open the file 'PVA Analytics_Export.json' in a text editor
24+
3. Perform a find and replace on the file - swapping the placeholder "**Your server url here**" with your Datverse URL
25+
2. Create the DataFlow from the template
26+
1. Log in to Power BI at http://powerbi.com
27+
2. Select the Workspace you wish to deploy the DataFlow to - or create a new one if you wish (the template defaults to 'PVA_Analytics')
28+
3. Select New - DataFlow
29+
4. Select Import Model
30+
5. Select the edited file 'PVA Analytics_Export.json'. Your DataFlow job should now be ready - test refreshing the data.
31+
3. Create your PowerBI report
32+
1. Open the file PVA_Dashboard.pbit
33+
2. Enter the parameters you are prompted for. These are:
34+
1. The name of the Powe rBI workspace
35+
2. The name of the DataFlow you created
36+
3. The report should pull through the data and render it
37+
4. You can now save the report to share through the Power BI portal
38+
39+
# TBD Connecting Azure Data Lake Storage for data archival
40+
TBD
41+
42+
## Using the report
43+
The report is based on what is shared through the Power Virtual Agents portal, but with some important differences:
44+
45+
- The report includes all bots in your environment
46+
- The report includes a date filter - and can support a range of dates greater than the 30 days supported natively in Dataverse
47+
- The report includes all trace data emitted with the bot, allowing users to build reports on data import to them
48+
- The report can be shared with users and business decision makers without access to Power Virtual Agents

0 commit comments

Comments
 (0)