azurebotframeworkazure-bot-servicebot-framework-composer

which bot solution I should use, Botframework or Composer tool or Power Virtual Agent? Is Power virtual agent costly?


I already use bot framework using c# and hosted in azure. Our bot is integrated with LUIS and use a SharePoint list to answer FAQs. We want to upgrade our bot and we see now many new bot solutions like power virtual agent and composer. Is it worth to switch to any of the new solution? If yes, which one is better and what is the fees.


Solution

  • TL;DR if you are happy with your current solution, there isn't any reason to switch. Estimated costs:

    This is largely a matter of preference, but I can provide my personal insight. This post appears to be a little out of date, but gives a good high level overview of the three options. I personally don't have experience with Bot Framework Composer.

    First, a general opinion on switching. If you have this working already on Bot Framework and are happy with it, I see little reason to switch. Bot Framework is going to be your cheapest option. There are obviously a lot of variables to cost, but I'd say if you are using free tier for everything except your app service plan, you could probably run a Bot Framework bot for < $60/month for 10,000 messages. Compare that to Power Virtual Agents which costs $1,000/month per 2,000 sessions (if each session was 5 messages, these would be equivalent prices; you can adjust by your expected conversation length). If Bot Framework Composer is just a front end for a traditional Bot Framework bot, I would expect the pricing to be the same around $60/month.

    Here are my thoughts on each of the platforms.

    Bot Framework (Azure Bot Service) gives you total control over the features of your bot. It's 100% code which will turn some people off, but it's ideal for organizations with existing developer competencies or people who prefer not to fight with sometimes finicky builder UIs. In my experience, it is MUCH easier to build integrations this way, especially to Enterprise systems that may be using SOAP. If you can code it, this bot should be able to execute it. The biggest con is that some functionality that is out of the box in other options (notably transcript/session management and reporting) has only token support via modules and poor documentation. There is also no visual builder for your dialogs, though I actually find that sometimes those visuals can be more of a hinderance. For me, the flexibility outweighed the drawbacks and this is what my organization has selected as our Enterprise platform.

    Power Virtual Agents is part of the Power Platform and goes completely the other way. It is completely no-code. There are a number of out of the box connectors (integrations), and you can build your own using custom connectors and flows. However, that's harder than it sounds. I have found this a very poor option if you need to create your own custom APIs. Our organization has determined that this would be the best option if you want to allow citizen developers to create their own bots without help from a developer or IT team. It excels at Q&A and simple dialogs, but beyond that I've found it to be frustrating to work with.

    Bot Framework Composer seems to be a middle ground between the two. I don't have any personal experience with it. It seems there is still some coding required, but it does have a visual builder for dialogs and it appears to have some other nice out of the box features. I'm not sure if it's any easier to create integrations in this platform. I would see the niche here being an accelerator to coded Bot Framework bots, and also good for lesser technical people who would appreciate being able to visualize their process flows. It could also be a better tool if your customers are heavily involved in the development process, allowing them to see process flows as they are developed instead of just by testing them with conversation.

    If any of the MSFT guys have any additions or corrections to my analysis, let me know and I'll edit them into my response.