The functionality of Botkit can be extended using middleware functions. These functions can plugin to the core bot running processes at several useful places and make changes to both a bot's configuration and the incoming or outgoing message. Anyone can add their own middleware to the Botkit documentation, for more information please read this.

Currently the following types of middleware are available for Botkit:

Natural language processing

Natural language processing allows for bots to understand conversational human inputs and interpt your users desires into actionable functions of your application. Once properly trained, these add-ons can dramtiacally improve the UX for your bot application.

Storage Modules

Storage middlewares can be used for storing attributes about a user or channel or team. Botkit supports most major storage methods.

Statistics, Metrics, and CRM

These plugins help you measure the success of your bots, across a variety of measurable methods.

Name Project Page Info
Microsoft Luis https://github.com/Stevenic/botkit-middleware-luis The Luis middleware with Botkit causes every message sent to your bot to be first sent through Luis.ai's NLP services for processing. This middleware has deep integration with Botkit Studio

Amazon Lex https://github.com/jonchurch/botkit-middleware-lex This middleware allows you to send user input to AWS Lex. This gives you access to intent mapping, data slots, NLP, and other capabilites of the Lex service. You can use this middleware to extend your bots capabilites, add an interaction that lives in Lex to an existing bot, or to run a Lex bot with Botkit as the connector.
Google Dialogflow https://github.com/jschnurr/botkit-middleware-dialogflow This middleware plugin for Botkit allows you to utilize Dialogflow (formerly Api.ai), a natural language classifier service directly into the Botkit corebot.

IBM Watson https://github.com/watson-developer-cloud/botkit-middleware This middleware plugin for Botkit allows developers to easily integrate a Watson Conversation workspace with multiple social channels like Slack, Facebook, and Twilio. Customers can have simultaneous, independent conversations with a single workspace through different channels.

Recast.ai https://github.com/ouadie-lahdioui/botkit-middleware-recastai You can use the Recast.AI API to analyse your text or your audio file, and extract useful informations from it, to personalize your IoT, classify your data or create bots.

Wit.ai https://github.com/howdyai/botkit-middleware-witai Wit.ai provides a service that uses machine learning to help developers handle natural language input. The Wit API receives input from the user, and translates it into one or more "intents" which map to known actions or choices. The power of Wit is that it can continually be trained to understand more and more responses without changing the underlying bot code!

Rasa https://github.com/howdyai/botkit-rasa This plugin provides Botkit developers a way to use the rasa NLU open source, self hosted natural language API.


Facebook https://github.com/pinkku/botkit-middleware-facebookuser This plugin allows you to collect Facebook Messenger user info to populate a Botkit message


Name Project Page Info
Mongo https://github.com/howdyai/botkit-storage-mongo A Mongo storage module for Botkit
Redis https://github.com/howdyai/botkit-storage-redis A redis storage module for Botkit
Datastore https://github.com/fabito/botkit-storage-datastore A Google Cloud Datastore storage module for Botkit
Firestore https://github.com/shishirsharma/botkit-storage-firestore A Firestore storage module for Botkit.
Firebase https://github.com/howdyai/botkit-storage-firebase A Firebase storage module for Botkit.
Postgres https://github.com/lixhq/botkit-storage-postgres Postgres storage module for Botkit
CouchDB https://github.com/mbarlock/botkit-storage-couchdb/ A Couchdb storage module for botkit
MySQL https://github.com/getforgex/botkit-storage-mysql/ A MySQL storage module for botkit

Name Project Page Info
Botimize https://github.com/botimize/botimize-botkit-middleware Optimize your bot for happier customers, scientifically.
Botkit Studio Metrics https://github.com/howdyai/botkit-studio-metrics This module enables the advanced analytics and extended metrics available in Botkit Studio.
Botmetrics https://github.com/botmetrics/botkit-middleware-botmetrics Botmetrics is an analytics and engagement platform for chatbots.
Chatbase https://github.com/asopinka/chatbase-botkit A middleware package for Botkit that easily logs your convos in Chatbase
Dashbot Facebook https://www.dashbot.io/sdk/slack/botkit Increase user engagement, acquisition, and monetization through actionable bots analytics.
Dashbot Slack https://www.dashbot.io/sdk/facebook/botkit Increase user engagement, acquisition, and monetization through actionable bots analytics.
Keen https://github.com/keen/keen-botkit This middleware allows you to to understand how many messages are going through your system, run cohorts to measure retention, set up funnels to measure task completion, and any key metric unique to your bot. More information about the Keen platform can be found on their website
Mixpanel https://github.com/shishirsharma/botkit-mixpanel This module enables the basic Mixpanel analytics. With this module installed and enabled, your Botkit application will automatically send a copy of any message your bot receives to Mixpanel's analytics API, as well as user profile information.

We would love to hear about it! Contact the Howdy team to be included in Botkit documentation, or submit a PR on this documentation!

Is something missing or out of date?

This file is managed on Github. click here to view the source, and send us a pull request with your improvements!