Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
89 lines (70 sloc) 3.19 KB


Build Status npm version npm


We believe the beginning of a successful bot has little to do with engineering and everything to do with the skill of the product owner in acquiring users and keeping them faster than their competition.

That's why we've open sourced our Facebook Messenger node.js code base so you can get all the latest features from API.AI, Facebook Messenger and Analytics like Dashbot and BotMetrics. While setting yourself up for success with a robust and extensible code base when you've tested your assumptions and are ready for an engineer to build domain specific features.


  • npm install botstack
  • set API keys in env_tmpl


Create index.js file with this content:

const BotStack = require('botstack');

class ExampleBot extends BotStack {};

const bot = new ExampleBot('example-bot');

Before the start of the bot, we need to set a few environment variables:


If you don't want to set environment variables explicitly, you can use the dotenv library.


  1. Create .env file in the root folder of your project Example:
  1. Create JS file:
class ExampleBot extends BotStack {};

const bot = new ExampleBot('example-bot');
  1. Run
node index.js

Other examples you can find in the examples folder of this repository.


  • Emjoi Support
  • Configurable 'Greeting, Get Started Button & Action Menu'
  • Simple User Onboarding Design
  • Facebook Referral Support- Track different links placed in different channels to see which is most effective
  • Messenger Handover Prototcol- enables two or more Facebook apps to participate in a conversation by passing control of the conversation between them
  • NLP - Inuitive and easy use Natural Langage Programming
  • Easily setup FB structured messages (Image, Quick Replys, Card, Custom Payload)
  • Analytics and Insights
  • Subscription and Broadcast capabilities with


  • BotStackjs - clean modular re-usable libraries
  • Node.js - Scalable fast code
  • API.AI - Best in class Natural Language Processing
  • Redis [Optional] - In-memory cache storage for thing like user sessions
  • Docker - Management and simplified deployment of services


  • Better Promise Support with Bluebird and request-promise
  • Good Test Coverage
  • Structured logging with Winston - specify additional metadata (like session id, user id, module name, etc)
  • Track Stack Traces with Sentry


  • Facebook Webviews
  • Rabbit MQ Support

How to get involved?

It's still early days and everything we are learning on customers messenger bots we are trying to incorporate here. If you are using this source code and make enhancements please feed the changes back in. If you are more a product person message me or add your ideas under the issues.

You can’t perform that action at this time.