Power Virtual Agent licensing- Capacity Planning

Power Virtual Agent

As mentioned in earlier post, data consumption of the PVA also plays important role in the licensing of the PVA.

We also need to consider the data storage requirements for the PVA implementations. How to calculate the data consumed by PVA so that we can arrive at the needed storage. With usual configuration, PVA has special storage requirements for all the conversations of the chatbot and any attachments uploaded during the conversation.

Lets look at the tables which store conversation transcripts, All the conversations in the PVA bot are stored in Conversationtranscript table. Hence to forecast the data storage we need to understand size of each conversation and expected conversations. Again it depends in the complexity of the conversations,

We can refer any existing implementation and check size of ConversationTranscript table and count of conversation (which is ideally the number of records in this table 😀. If its our first implementation we have to assume some number and then validate it during the operations.

Generally we have forecast the sizing and license cost for one year, we should multiply above size per conversation with number of conversations expected per year (# of conversations *12* # of conversations per month) . Once we get this number, we can calculate the forecasted size of data verse needed for this implementation.

In addition to Conversation transcripts, let us also check the requirements in case we are expecting user to upload attachments or in case any plugin trace logs , audit logs are required to be to tracked. We have to consider that data consumption as well while calculating the data verse size.

Based on all above calculations we have to arrive at forecasted size and purchase the licenses accordingly.

While calculating the size, also consider the data retention policy as per the requirement. By default there is one bulk deletion job which runs everyday and deletes the conversation transcripts older than a month. This optimizes the storage requirements. If the bot is for internal users and data is not needed , we can keep this job on with the change in the filter setting. However in case the bot is for the customers and there might be policies related to customer data retention for audit purposes, we have to disable this bulk deletion job. In this case we need to consider the storage requirements on higher side. To optimize the costs, we can even think of the usage of data lake to store this history data. Solution can be implemented to archive the history conversations to economical storages rather than using data verse storage

Power Virtual Agent licensing- Part 2

Power Virtual Agent

We discussed about sessions and licenses based on sessions in previous post. There are few more items we need to check for costing. We can buy the power virtual agent subscriptions as Standalone Power Virtual Agent subscription or Power virtual Agent with Microsoft Teams plan subscription. in case the organization wants to implement the chatbot only in Teams channel and they are already using the Microsoft Teams, then second option is suitable for them. Lets compare both these options on different parameters

Deploy bot to the Channels: If we are going for standalone options we can deploy it any channel supported by PVA , where as with Teams , we can deploy the PVA only to Teams channel

Power Automate Connectors : We can use standard connector only with Teams option and if we want to use premium connectors, we must have the standalone subscription

Security : With Teams secure access is enabled by default, however can not generate the secrets for secured access. With standalone subscription, secrets can be generated and turning the secured access on or off as per requirement can also be done

Extending the chatbot with bot framework as well as escalation to live agent features are not available with Extending the PVA with bot framework skills is not possible with Teams subscription

Based on above parameters we should select which plan is appropriate for our requirements. For more details refer to Microsoft documentation

Lets also check about the limits of Teams app and PVA web app

  1. We can have only 50 bots per team , however there is no such limit of web app
  2. In Teams app, only 250 topics are allowed per bot in data verse for Teams environment , otherwise 1000 topics per bot are allowed per bot in data verse environment. Data verse for teams environment can be upgraded to allow 1000 topics per bot.
  3. For any environment, the number of trigger phrases per topic are 200
  4. Skills can be 100 skills per bot for both Teams and web app, however skills are available only of standalone plan, so Teams app should be on standalone plan to use the skills.

We also need to consider the data storage requirements for the PVA implementations. How to calculate the data consumed by PVA so that we can arrive at the needed storage. With usual configuration, PVA has special storage requirements for all the conversations of the chatbot and any attachments uploaded during the conversation.

Lets look at the tables which store conversation transcripts,