Middleware for using Recast.ai with Botkit-powered bots
Switch branches/tags
Nothing to show
Clone or download
Latest commit 18a0677 Oct 17, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
src add missing semi-colons Jan 4, 2018
.npmignore ignore the test folder Feb 3, 2017
README.md fix simple typo Oct 18, 2018
index.js Seting up the project Feb 3, 2017
package.json 1.0.6 May 14, 2018


Use Recast.ai to chat with your Botkit-powered Bot !

This middleware plugin for Botkit allows you to seamlessly integrate Recast.ai natural language intent APIs into your Botkit bot.

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.


Set up your Recast.AI account

  • Log into your Recast.AI account and create a new bot.

Get your token

  • In your profile, click your bot.
  • In the tab-menu, click on the little screw.
  • Here is the request access token you will need to configure your bot.

Set up your Botkit based project

  • Add botkit-middleware-recastai as a dependency to your Botkit bot :

npm install --save botkit-middleware-recastai

  • Enable the middleware :
const RecastaiMiddleware = require('botkit-middleware-recastai')({
        request_token: '322e96b09ef75ad32bfc8b6f22b857ef',
        confidence: 0.4


controller.hears(['news'],'message_received', RecastaiMiddleware.hears,function(bot, message) {

 // ...

What it does

Using this middleware with Botkit causes every message sent to your bot to be first sent through recast API for processing. The response from recast is then returned in the incoming messages as seen below :

"intents": [
    "slug": "weather",
    "confidence": 0.95
"act": "wh-query",
"sentiment": "neutral",
"entities": {
  "location": [
      "formatted": "London, UK",
      "lng": -0.1277583,
      "lat": 51.5073509,
      "type": "locality",
      "place": "ChIJdd4hrwug2EcRmSrV3Vo6llI",
      "raw": "London",
      "confidence": 0.99
  "datetime": [
      "formatted": "Thursday, 06 October 2016 at 09:00:00 AM",
      "iso": "2016-10-06T09:00:00Z",
      "accuracy": "day",
      "chronology": "future",
      "raw": "next Thursday",
      "confidence": 0.95

Using the recast hears middleware tells Botkit to look for Recast intents information, and match using this information instead of the built in pattern matching function.

Have fun coding your bot :)


This project is licensed under the terms of the MIT license. Full license text is available in LICENSE.md.