Do you think that you have very useful functionality? Maybe you think that all your end-user uses it? Or perhaps you plan to spend addental hours on the improvements of something that you think everyone needs?
Stop guessing just ask your users… or at least check in telemetry if they think the same as you.
One of the available telemetry signals, not only for VARs but also for ISVs, is that you can see what pages have been opened by users.
It can give you insights into how users use your Business Central app.
- From the technical perspective, you can know what devices, languages users have.
- It can tell your marketing department if the customers are using the functionality and if not do some complain to promote.
- And from a product owner’s perspective, it allows focusing on the most important things for end-users.
How to get the data?
I would like to show what is possible in the telemetry related to the pages that end users open.
The Kusto query for that is very simple. If you want to get all page views just type pageViews (instead of traces).
Please be aware that you cannot do it for the onPrem installation – this is available only for Cloud environments.
As a result, you will see all pages that the users opened. If you are ISV and you put the telemetry key in your app.json file, then you will see only the pages that are in your solution. It means you will not see the standard Business Central pages as well as page extensions.
If you will expand the CustomDimensions you will be able to see things related to Business Central objects such as Object Id, Page name, Environment, Company or Business Central client, and a few more.
Since it is hard to see all in one table, below you can find a more tailored query that contains the most important columns for page views. It can be used as a base for PowerBI reports that you can see in this article.
| where timestamp >= ago(90d)
tenantId = customDimensions.aadTenantId,
objectId = customDimensions.alObjectId,
objectName = customDimensions.alObjectName,
objectType = customDimensions.alObjectType,
appName = customDimensions.appName,
appVersion = customDimensions.appVersion,
BCClientType = customDimensions.clientType,
companyName = customDimensions.companyName,
designerLevel = customDimensions.designerLevel,
deviceLocale = customDimensions.deviceLocale,
deviceScreenResolution = customDimensions.deviceScreenResolution,
environmentName = customDimensions.environmentName,
environmentType = customDimensions.environmentType,
expandedFastTabs = customDimensions.expandedFastTabs,
factboxExpanded = customDimensions.factboxExpanded,
pageDataSourceType = customDimensions.pageDataSourceType,
pageIsModal = customDimensions.pageIsModal,
pageMode = customDimensions.pageMode
What you can do with this data?
To show you some data on screens I asked few people to do some operations on four of my pages. I would like at this moment to thank them for helping me with that.
Where the users are located and what is the language?
Let start with knowing where your end users are. If you have a solution that can be download from AppSource in many countries this can be important for you. You can see where most customers use your app and if you should focus on testing it with specific localizations.
You can get such data as a country, region, or even city. Have in mind that the last two are not always available. For example, for US users I could see all data. However, for Germany or Poland, I was only able to see the country name without state or city.
The fact is that you are not required to give the customers the translation of your extension. But that does not mean we should not care about it.
From the telemetry, you can see which device languages are used by end-users. Of course, it may be that they use Business Central in a different language, but you can see at least their preferences. From the below example I would be able to prioritize to which language I would do translation first.
What devices are used?
Coming from NAV World I must admit that I focus on development mostly for Windows client (ok browser now) but am I sure that is how my app is used? I can see from the data that the pages were opened on different types of devices. It allows me to focus during testing on the correct device. Also, it can allow us to specify if the features are used on the Table or the Phone.
Have in mind two things with this report: the web client is called desktop and there are two fields related to client type. You should use one in the customDimensions since the client_Type gives always value browser no matter if you use desktop, tablet, or phone.
So, if we already know what device is used can we know a little more about it? Of course. Business Central now looks different if you use a different screen resolution. That can be for you (or testers) helpful information – allows to prepare screenshots and check how pages look like in similar resolution.
For example: check cards not only with two columns on the page but three or check what fields users see on the list if the screen resolution is not high.
It is possible to see also the client operating system and device. That can help troubleshoot some issues. For example, if on iPhone something works and on Android not.
You can check which browsers your end-users use. Testing can focus for example on Chrome if this is mostly a common browser and even if something will not work on the other 100% correctly it does not mean that users will face it.
What do we know about Business Central pages?
In the telemetry, you can check which exact pages have been open and what their type is. But not only that. One of the dimensions is what is the page mode. Does the user open it to create, edit or just view data? This allows you to have insights into what pages are used.
You can combine that data also with information on which of the FastTabs were expanded. From the below screen you can see that for viewing My Customers most FastTabs are expended but if someone edits the card mostly only two tabs have been shown (the others were collapsed).
Additionally, we can see if the FactBoxes are expanded or not.
We cannot see how long the user was on the page, but we can see the “number of milliseconds it took the application to handle the page view“. We can find it in the duration field.
What do we know about the user?
Remember that all user names are not available due to the GDPR. So instead of the user name, you will see some strange values in user_id.
What you can see is the tenant id, company name, and environment name. That allows you to identify the customer where your app is installed. Note that at this moment the environment type is not shown correctly – all shows Prod even if the telemetry comes from Sandbox.