exa-bot-builder

Create chat-bots for various platforms and deploy with express or to AWS Lambda quickly

Usage no npm install needed!

<script type="module">
  import exaBotBuilder from 'https://cdn.skypack.dev/exa-bot-builder';
</script>

README

Exa Bot Builder

This is a port of Claudia Bot Builder that allows to use Express.

npm npm npm

Exa Bot Builder helps developers create and deploy chat-bots for various platforms in minutes to AWS Lambda or using Express. It simplifies the messaging workflows, automatically sets up the correct web hooks, and guides you through configuration steps, so that you can focus on important business problems and not have to worry about infrastructure code.

🚀 Getting Started 🛠 API Docs 🤖 Example projects 🤔 FAQ

Here's a simple example:

AWS Lambda

const botBuilder = require('exa-bot-builder');
const excuse = require('huh');

module.exports = botBuilder(function (message) {
  return 'Thanks for sending ' + message.text +
    'Your message is very important to us, but ' +
    excuse.get();
});

Express

const botBuilder = require('exa-bot-builder');
const excuse = require('huh');

module.exports = botBuilder(function (message) {
  return 'Thanks for sending ' + message.text +
    'Your message is very important to us, but ' +
    excuse.get();
}, { "aws": false, "express": true });

This code is enough to operate bots for all supported platforms. Exa Bot Builder automatically parses the incoming messages into a common format, so you can handle it easily. It also automatically packages the response into the correct message template for the requesting bot, so you do not have to worry about individual bot protocols.

Supported platforms

  • Facebook Messenger
  • Google Actions
  • Slack (channel slash commands and apps with slash commands)
  • Skype
  • Viber
  • Telegram
  • Twilio (messaging service)
  • Amazon Alexa
  • Line
  • Kik
  • GroupMe
  • Google Action

Creating bots

Check out the Getting Started guide for information on how to set up a simple bot in minutes and API Documentation for detailed information on the API.

Examples

See the Chat-Bots section of the Claudia.js example projects list

Frequently asked questions

  1. How to run it locally?

You can start it passing configuration options as defined on the following example:

  const botBuilder = require('exa-bot-builder');
  const excuse = require('huh');

  module.exports = botBuilder(function (message) {
    return 'Thanks for sending ' + message.text +
      'Your message is very important to us, but ' +
      excuse.get();
  }, { "aws": false, "express": true });

The above will start a new express on port 3000.

  1. How to test your bot?

    Your chat bot is just a Lambda function or web API, which means it is just a simple JavaScript function and you should be able to, at least in theory, run everything locally as simple automated tests.

    The most important thing is to design testable Lambda functions, this guide will help you to do that.

    Integration tests can be a bit more complex if you have some integrations with external or AWS services. Check this guide to see how to write integration tests and run automated tests locally.

  2. My Facebook messenger bot responds to my messages only. Why it's not responding to everyone?

    Facebook has a review process for chat bots. Make sure your bot is approved.

  3. Can I send Slack slash command delayed responses?

    Yes, here's the tutorial for that.

  4. What's new in v2?

    It's a new major version because of the dependencies - there are big improvements in the Claudia API Builder and Claudia, so Claudia Bot Builder v1.x is not compatible with them.
    V2.x also brings support for many new platforms.

  5. How to speed up the deployment

    You can use claudia update with --cache-api-config flag to cache the API Gateway config, for more info visit docs page for claudia update.

    Also, from version 2.7.0, you can disable platforms that you are not using, check the full explanation in the API docs.

Have a question that is not on this list? Feel free to ask it on Claudia chat on Gitter.

Please, do not use GitHub issues for asking questions or requesting assistance/support, use it only to report bugs.

Contributing

Contributions are greatly appreciated. See the Contributors' guide for information on running and testing code.

Cool things built with Claudia bot Builder

  • AWS Bot for Slack - A Slack bot to stop and start selected AWS EC2 instances and generally keep an eye on your AWS estate.
  • Comic Book Bot - A simple Viber chatbot for Marvel characters.
  • DotCom Bot - Search & buy domain names and check @usernames fast on Slack & Facebook Messenger!
  • Eksplorer - The Facebook chat bot that will help you discover amazing things in your neighborhood.
  • Fact Bot - The bot will query WikiData for anything you send it and print out the facts.
  • Food Recommendation Bot - Shows you open restaurants around you based on Google Places API.
  • JS Belgrade bot - Simple meetup group Telegram chatbot created during the meetup.
  • LaptopFriendly Bot - Viber bot for LaptopFriendly.co.
  • MrRoadboto - A low-bandwidth and easy to use Facebook chat bot that serves Colorado's Department of Transportation (CDOT) alerts for I70 road-closures affecting major ski resorts. You can read about the motivation here.
  • PingdomBot - A Slack bot to see the status of Pingdom website monitoring.
  • Pokemon Lookup bot - Simple pokemon lookup bot, source code.
  • QRCode Bot - Artistic QR code maker, source code.
  • Quote bot - A very simple bot that will respond with an inspirational quote from the Forismatic API.
  • Robbert - General chatbot.
  • slackslash-radar - A Claudiajs bot which retrieves a Wunderground radar animated gif and posts to Slack.
  • Space Explorer Bot - A simple Messenger chat bot that uses NASA's API to get the data and images about the Space.
  • Space Explorer Bot for Viber - Viber version of Space Explorer Bot.
  • Vacation tracker bot - A simple Slack bot to help you manage your team’s vacations, sick days and days off.
  • MDNBot - A Slack bot that helps developers search MDN directory without leaving Slack channel.
  • Ver.bot - Subscribe GitHub, npm, PyPI projects, and get new version releases notifications!

Building something cool with Exa Bot Builder? Let us know or send a PR to update this list!

Authors

License

MIT -- see LICENSE