Your Guide to Bot-Building Frameworks
Choosing a bot-building framework for your next chatbot? This guide dives deep into the features, advantages, and shortcomings of the most popular frameworks.
March 21, 2019
If you’re developing a chatbot, you need to choose a bot-building framework. A bot framework is like a workshop full of tools you can use to define your bot’s behavior, give it a personality, teach it what to say, and help it generate valuable responses to user inquiries. It’s where your bot comes into its own.
Of course, not all frameworks are the same. You need to choose the one that makes the most sense for your objectives, and the best way to make an informed choice is to have a solid understanding of different frameworks. In this guide, we cover the nuts and bolts of the most popular bot-building frameworks:
- Amazon Lex
- Gupshup Bot Platform
- IBM Watson Assistant
- Microsoft Bot Framework
- Rasa Stack
Choosing a chatbot framework
There are several benchmarks and features to consider when choosing a chatbot framework. As your bot’s user base grows, you might consider switching to another framework or using multiple frameworks for different iterations of the same bot. Using your chosen framework’s platform integration tools, you might also deploy your bot across more than one platform. Although it’s great to try out different bot-building tools and to launch your bot in multiple places, there’s one thing that’s easy to overlook—consistency.
Giving your bot a consistent home is important because it gives users a go-to destination where they can always find your bot, regardless of what changes you might make on the backend. A good way to make sure your bot stays put is to host it on its own domain. A .BOT domain, in particular, can help you showcase your bot no matter which framework you’re using today or in the future.
Now let’s explore several major frameworks, paying close attention to the unique capabilities, advantages, and real-world use cases of each one.
|Primary Uses||Pricing||Languages/SDKs||Bot Examples|
|Amazon Lex|| Free to start|
Monthly fee per requests processed, currently: $0.004 per voice request; $0.00075 per text request
|Botkit||Free||Node.js, Botkit SDK|
|Botpress||Node.js, Botpress SDK|
|Dialogflow|| Free for Standard Edition|
Rates of $0.002 to $0.065 per consumption unit in Enterprise Edition
|Node.js, Python, Java, Go, Ruby, C#, PHP|
|Gupshup Bot Platform|| Free for 100,000 API calls|
$1 for every 1,000 additional API calls Custom pricing for large volumes
|Java SDK, Node.js SDK|
|IBM Watson Assistant||Five Tiers: Free tier, $0.0025 per message tier, and three custom pricing tiers||Java, Node.js, Python, Ruby, .NET, Android SDK, OpenWhisk SDK, Salesforce SDK, Unity SDK|
|Microsoft Bot Framework||Node.js, C#, .NET|
|Pandorabots||Java, Node.js, Python, Ruby, PHP, Go|
|Rasa Stack||HTTP API, Python|
|Wit.ai||Free||Node.js, Python, Ruby, HTTP API|
Amazon Lex is a versatile chatbot framework that lets you deploy bots across numerous popular platforms. Using Amazon Lex, you can build your chatbot, test it, and launch it on Facebook Messenger, Slack, Kik, or Twilio SMS—directly from the console. Amazon Lex also integrates seamlessly with business applications, like Salesforce, Zendesk, and Marketo, so you can easily enhance users’ experience with those apps by adding a conversational element.
Amazon Lex lets you create bots that communicate via text or voice, so you can build “out loud” conversations into any number of software applications. Of course, you can also use Amazon Lex to build a completely unique stand-alone bot that you deploy on your website or mobile application. There aren’t many limits with Amazon Lex.
Amazon Lex bot examples
Liberty Mutual is just one of several large companies to leverage the natural language understanding (NLU) capabilities of Amazon Lex to improve how employees access information. Instead of sifting through documentation, Liberty Mutual employees can ask the chatbot to retrieve information for them. As a result, users spend less time looking up information and more time focused on customers.
Besides versatility, another advantage is how easy (and inexpensive) it is to start using Amazon Lex. You can begin building your bot for free, but Amazon charges you for each user request. Currently, prices are $0.004 per voice request and $0.00075 per text request, so the price increases as more users engage with your bots.
Recently acquired by Microsoft, Botkit is an open source bot-building framework. It’s also powered by an enthusiastic developer community.
Initially launched in 2015 so that developers could build bots for Slack, Botkit now connects seamlessly with other platforms, like Facebook Messenger and Cisco Spark.
Although you can technically integrate any available natural language processing (NLP) service into bots built with Botkit, Microsoft LUIS might be of particular interest. Thanks to Botkit’s relationship with Microsoft, this proprietary component of Microsoft Azure Cognitive Services is actually available to users of the Botkit paid version via a seamless integration.
Botkit bot examples
Botkit is widely applicable across many verticals. The Harvard Business Review used it to build the HBR Bot, which delivers advice from HBR articles to Slack users at the interval of their choosing.
Another developer used Botkit to build a Slack bot that handles all core HR tasks for a small business, including onboarding, connecting people around the office, issuing reminders, and broadcasting announcements.
In 2019, Botkit CMS replaced Botkit Studio as the paid version of this framework. It’s not yet clear how the pricing model (if any) will look for enterprise Botkit users, because XOXCO, the company behind Botkit, seems to still be navigating the Microsoft acquisition.
The graphical interface may be the greatest appeal of Botpress. It’s been called the “WordPress of chatbot frameworks” for a reason—and it’s not just because of the name. Botpress lets non-developers build sophisticated chatbots with built-in NLU capabilities via an intuitive interface.
Botpress is an open source framework that’s also (and this may come as a surprise) on premises.
You download Botpress, build your bot locally, and deploy it anywhere using built-in channel connector tools or by using a public API for your platform of choice. Bot analytics show you how users are interacting with your bot, and built-in NLU tools help your bot interpret intent and give users the experience they’re looking for.
All in all, Botpress is a versatile bot-building framework that lives on your computer, not in the cloud. That doesn’t necessarily mean it’s more effective than other frameworks, but it does make it unique. And, since Botpress is open source, there’s an active community of developers behind the scenes who are continually making improvements.
Botpress bot examples
One Botpress-built chatbot is the Andy CarnegieBot, which serves as a digital guide to Carnegie Museums of Pittsburgh.
This Facebook Messenger bot helps users collect digital stamps as they explore different areas of the museum. The developers built the templates in Botpress and deployed directly to Facebook Messenger, likely using one of the framework’s instant deployment tools.
It’s free to download Botpress and start building, but you need to upgrade to a Pro plan when you’re ready to build lots of bots, brand them as your own, and launch them all over the web. The Pro plan costs $49.95 per month, and it includes white labeling (the free bots aren’t as brandable) and multiple administrators.
Dialogflow is Google’s bot-building framework. When you use Dialogflow, you’re getting Google’s machine learning algorithms. That’s one of the major draws.
In addition to immediate integration with popular platforms like Facebook Messenger, Slack, and Viber (and Google Assistant, naturally), Dialogflow also has client libraries for Node.js, Python, Java, and several other languages.
For those new to chatbot development, the Dialogflow documentation includes a video series on three fundamental chatbot concepts:
- Intents. Understanding what users are saying
- Entities. Extracting information from users’ statements
- Dialog control. Building contextual conversations with branching dialog
Building a bot with Dialogflow or the other frameworks depends on your understanding of how each of these ideas manifests within the framework– they’re universal chatbot locutions.
Dialogflow bot examples
Ticketmaster is using Dialogflow to build bots that help users find the right tickets for the right events at the right places—even when users only offer basic directives, like “Radiohead in Atlanta.”
The bot just gets it. It immediately responds with the number of upcoming shows and the different pricing tiers for tickets.
Dialogflow comes in two flavors: a free standard edition and a pay-as-you-go enterprise edition. The enterprise edition has various price points, depending on what your bot does. For example, a bot that communicates with users via phone might cost $0.065 per minute of call time, and a text-only bot may run you just $0.004 per request.
Gupshup Bot Platform
The Gupshup Bot Platform is a collection of several bot-building tools. One is an integrated developer environment, the IDE Bot Builder, but Gupshup also offers graphical tools for non-coders who want to create their own chatbots.
Compared to some frameworks, integration with other Gupshup tools may be the Bot Platform’s biggest advantage. In addition to the IDE Bot Builder, Gupshup offers a Flowbot builder for the “not a developer but still tech-literate” users and a Template builder that requires minimal technical experience. How do these other tools help bot developers? By allowing disparate business units to collaborate on bots.
Say, for example, someone builds a bot using the Flowbot tool and shares it with a developer. The developer can quickly switch to Developer Mode and start using the IDE Bot Builder to iterate. Similarly, non-coders can use the Template tool to create a simple prototype for developers to later improve upon.
Another unique feature of Gupshup is WhatsApp for Business integration. Although WhatsApp only provides limited support for chatbots, Gupshup offers a scripting tool that helps you get your bot onto the platform. Of course, you still have to apply to see whether WhatsApp will allow your business to use it.
Gupshup IDE bot examples
When Tata Sky, India’s largest direct-to-home satellite TV provider, needed a better way to track and respond to customer service inquiries, the company decided to build a bot for the platform that most customers used to contact them—Facebook. Using Gupshup’s bot-building tools, Tata Sky built a bot that could provide resolutions to simple problems, help customers check account balances, and recharge their accounts.
So you can leverage Gupshup to build a customer service bot for Facebook Messenger. But what about a bot for mobile apps?
FitCircle used the Gupshup Bot Framework to create a messaging add-on for an existing Android fitness app. Users interact with the bot to state their fitness goals and to provide information about their health status. In addition, the bot sends users motivational messages about health and provides fitness scores to help users maintain their exercise plans.
Gupshup is free for your first 100,000 API calls. After that, you pay $1 for every additional 1,000 API calls. This model makes it pretty easy for anybody to try out the framework with minimal financial risk. For large companies with heavy usage, Gupshup offers custom pricing.
IBM Watson Assistant
When considering IBM Watson Assistant, it’s easy to compare it to other chatbot frameworks offered by big companies, such as Amazon Lex. After all, IBM and Amazon both offer bot-building frameworks that connect to a variety of enterprise AI services. But Watson Assistant does have differences.
The framework might be easier for non-developers to use. In fact, IBM mentions in the product literature that you don’t need to know how to code to build a bot. A visual dialog editor simplifies the process. Watson Assistant comes with SDKs for Python, Ruby, and other languages popular among web application developers.
Although many frameworks attempt their seamless integration with various platforms, Watson Assistant doesn’t. You can still use it where you want to—in fact, you can actually deploy your Watson Assistant chatbot anywhere. Even though IBM isn’t using “seamless integrations” or “one-click deployment” as selling points, deploying your bot on a given channel, like Slack, is still pretty straightforward.
IBM Watson Assistant bot examples
Creval Sistemi e Servizi, an Italian bank, understands just how useful Watson can be. After using Watson to build Alfredo, a chatbot that processes requests to the bank’s service desk, customer-facing employees placed 80 percent fewer calls to back-of-office staff. Alfredo helped them retrieve the information they needed, faster.
Other companies have had similar success with Watson. Woodside, an oil and gas company, trained a Watson-based cognitive system to understand 600,000+ pages of documentation. In the past, employees spent 80 percent of their time researching problems and 20 percent of their time applying fixes. Since Watson, they’ve reversed those percentages.
Enterprise productivity bots make up a hefty chunk of Watson Assistant use cases, but many developers use it to build simpler bots for customer service or appointment booking.
Lite and Standard packages come at different price points. The first is free, and the second is $0.0025 per message. Both packages come with industry-specific, prebuilt content to help you get started, and both have analytics dashboards (7-day analytics with Lite, 30-day analytics with Standard).
There are other packages available, but pricing depends on how you use the bot.
Microsoft Bot Framework
If you select the Microsoft Bot Framework to build your chatbot, you’ll probably choose the company’s Azure Bot Service to host it. Although you’re not required to host your bot on Microsoft Azure, there are good reasons to do so.
For one thing, the Azure Bot Service built-in tools make it easy to develop your bot quickly and to deploy it wherever you’d like. Skype, Cortana, Facebook Messenger, Kik, and Twilio are just some of the platforms where your bot can live. As with Amazon Lex, you can use Azure Bot Service’s tools to develop a bot for your own website or app.
Microsoft Azure gives you access to Cognitive Services, which include NLU features for sentiment analysis and contextual language understanding. NLU capabilities actually derive from the Microsoft machine learning service known as LUIS, which stands for Language Understanding Intelligent Service. LUIS interprets user intentions across a variety of scenarios to build what Microsoft dubs a “nuanced language model.”
You can also make your bot “see” things. Cognitive Services include visual intelligence, so you can create a bot that applies algorithms to images to extract valuable information for users.
Microsoft Framework bot examples
The Englander Institute for Precision Medicine at Weill Cornell Medicine is just one institution that’s putting Microsoft Bot Framework, Azure, and LUIS to work. Developers there built a chatbot that responds to text and voice requests from clinicians. Users can converse with the chatbot to access data that assists in medical decisions—and, ultimately, in medical outcomes.
Other use cases include customer service and transactions, but enterprise productivity is where you can really take advantage of everything this framework has to offer. Consider André, a chatbot developed on Microsoft Bot Framework that helps field engineers perform inspections of electrical grids. Relaying their questions to André means that inspectors don’t have to free up their hands to reference information. As a result, they finish the job faster.
In terms of cost to build a bot on Microsoft Bot Framework, there are two tiers—Free and S1. The Free tier gives you unlimited messages on standard channels (think Microsoft services, like Skype, or services with publicly available APIs, such as Slack) and 10,000 messages per month on premium channels (e.g., your own mobile app or website). The S1 tier still gives you unlimited messages on standard channels, but, on premium channels, you pay $0.50 per 1,000 messages.
Additional charges may apply when you utilize different aspects of the Azure Bot Service. For example, a bot that runs as an Azure Web App is subject to its own pricing model.
Compared to big companies’ bot-building frameworks, the Pandorabots framework takes a different approach to chatbot development.
This framework doesn’t boast the machine learning capabilities of Amazon Lex or the code-free experience of IBM Watson Assistant. But Pandorabots is actually kind of proud of that. Here’s how the Pandorabots creators see their framework:
Machine learning based systems and APIs...are black boxes. In theory, the user can provide sample inputs, and the correct response, and the system can then identify inputs that are similar to the sample inputs and learn that these map to the same response. In reality, these systems are not effective without a large amount of training data, and it is not possible to debug the system when it returns the wrong answer.
The explainer continues:
These ML-based systems have another problem: performance. Above approximately ~500 defined intents, the systems begin to slow way down. By contrast, the response time for bots hosted on Pandorabots is always around ~300 milliseconds, even for bots that have ~300,000 intents defined.
Pandorabots’ claim is that a bot built with a framework that draws every response from large amounts of data and/or learned behaviors provides slower performance. By contrast, the Pandorabots framework merely states (or prints) the outputs you’ve programmed into it, making it faster.
Does that mean it’s impossible to build a sophisticated, AI-powered bot with Pandorabots? Nope. In spite of the framework’s lack of a machine learning system, its robust collection of AIML libraries helps you build a conversational bot quickly. In addition, the Pandorabots API gives you access to the framework’s NLP engine and allows your bot to talk to other applications.
Pandorabots bot examples
By reengineering an old vending machine to respond to user inputs from a Facebook Messenger chatbot, developers at Coca-Cola used the Pandorabots API for device control. Users tell the bot what beverage they’d like. Then they walk over to the vending machine to retrieve it. The transaction is seamless—and you don’t have to hit a Coke machine button or smooth out a wrinkled dollar bill.
Yamato, a Japanese delivery service, used Pandorabots to build a bot that reduces the time and money needed for customer support. Users activate the bot on LINE, the popular messaging app, where they can track packages and change delivery dates without calling a number and waiting for somebody to pick up.
The Pandorabots framework is free for anyone to use.
Rasa Stack offers versatile bot-building tools. It’s the open source chatbot framework created by Rasa, a company that’s 100 percent focused on conversational AI.
Rasa Stack is a versatile bot-building framework. In addition to open source libraries, it includes NLU features and customizable machine learning models. If your bot already lives on Dialogflow or IBM Watson, you can even migrate it directly to Rasa Stack. Rasa Stack documentation shows you how.
Rasa’s framework is highly scalable, so it could be a good option if you expect growth as opposed to static user numbers. Yellow Pages Canada experienced this firsthand when its first chatbot struggled to handle all of the requests it was receiving. Rasa’s tools dealt with them without any problems.
Rasa Stack bot examples
If you know somebody who’s never heard of a contextual chatbot assistant, just point them to Tia. Built with Rasa Stack, Tia makes it easy for women to ask questions about their health and to receive clinician-sanctioned responses from real-world user interactions.
Rasa Stack is free to use in any project. Rasa Platform is a paid tier that includes Rasa Stack plus training, QA, and a customer success program.
If you’re building a Facebook Messenger chatbot, you’ll be smart to consider Wit.ai. Facebook owns Wit.ai, and you can use it to build literally any bot you want for commercial or non-commercial purposes—without ever receiving a bill. And, since Wit.ai is loaded with Facebook’s own NLP technologies, Wit.ai makes it easy to build and launch a conversational bot to your Facebook audience.
Wit.ai isn’t only for Facebook Messenger bots. You can integrate it with any platform that has a public API or use it to build a chatbot for your website or mobile application.
Thanks to the built-in NLP features, you can create a text or voice-controlled bot and launch it on any domain, mobile or IoT device. For instance, the wit.ai home page emphasizes the platform’s ability to connect with a smart device, like your thermostat, and to adjust the temperature when you mention that you’re feeling cold.
Another plus is that there are official clients for Python, Ruby, and Node.js, so you don’t have to be a C# or .NET aficionado to build a sophisticated bot and to integrate it with your mobile app. Wit’s “recipes” also show you how to use these clients to integrate with your website, app, or Facebook Messenger.
When it comes to human languages, Wit.ai has you covered. Build a bot that communicates in everything from English or Icelandic to Southern Ndebele or Telugu. In fact, Wit.ai supports over 75 different languages.
Wit.ai bot examples
One developer, Amara Graham, built a wedding planner bot in just two days using Wit. And, in another example, though they lament how “painstakingly long” it took to train Wit.ai to handle all of the languages they needed it to process, these developers used the Wit.ai framework to create Meno BOT, a voice-activated assistant that helps clinicians update medical records and access information.
Wit.ai is free for both personal and commercial use.
Build, deploy, test, repeat
With so many free or almost-free options for building a chatbot, the main cost for any bot-building framework is time. Start with a framework that supports your objectives and your platform of choice. Then deploy the chatbot to users and test the bot’s performance.
If you’re less than impressed by the machine learning engine or need smoother integration with a particular messaging app, you can always try another framework. As you now know, there are several to choose from, and they’re getting more sophisticated all the time.