/smooch-bot

Build your own chat bot on top of smooch.io

Primary LanguageJavaScriptMIT LicenseMIT

Smooch BotBuild Status

http://blog.smooch.io/how-to-build-your-own-smooch-bot/

A simple generic chat bot with persisted conversation state and user properties. You can also run your bot on top of smooch.io.

This framework is designed with the intent of giving you full control over how you want your bot to behave, and extensibliity allowing you to easily connect it to a variety of APIs and communication channels (Smooch or otherwise). This comes at the cost of features. Unlike many popular bot tools and services that are available today, smooch-bot assumes very little and therefore offers a reduced set of tools for you to use to build common bot scenarios. This framework gives you an asynchronous conversation state and user property persistence model to build off of, but the rest is up to you.

This framework is also not to be confused with https://github.com/gozman/smoochbot, which is a Smooch connector for BotKit (howdyai/botkit).

A bot consists of three core components:

  1. Bot: The heart of your bot. Your Bot implements a say() method. The bot also needs to be provided with a store implementation for saving conversation state and user properties, as well as a lock implementation for synchronizing tasks.

  2. Script: The chat script. This defines what your bot will say and how it should respond to user input.

  3. StateMachine: This is the engine that uses the Bot to guide a session from one Script step to the next.

SmoochApiBot and SmoochApiStore allow you to run your chat bot on top of smooch.io. That means you can run your bot over SMS, Web, iOS, Android, you name it! You can also hook your conversations up to back end channels such as Slack and HipChat so that a human jump in the conversation whenever you like.

To see this bot in action, check out the examples here: https://github.com/smooch/smooch-bot-example