bBot was built for deepbranching conversations, building context step by step. Even failure handling can be relative to the specific context.
Conversations can be isolated to a single user or open to a whole channel, even allowing interactions to be authorised for certain groups.
Our primary purpose is to drive interactions beyond the limits of cloud services, with unique and extensible utilities.
Perform authorisation, store conversation data on-premise, conduct user journeys with CRM integration. With bBot there's really no limits.
Our schemas define nodes of interaction that can route conversation dynamically, instead of treating all conversation pathways as one tree.
This allows enterprise teams to co-author unique journeys, each with its own version management, authentication and workflows.
We package a handful of adapters for popular platforms, but it's simple to add new adapters from the community, or build one yourself.
There's adapters for chat, data storage, natural language processing, webhooks and analytics.
You don't need to worry about porting logic between services as you scale or find new audiences. Write it once, then plug and play.
Artificial Intelligence, or Not
Use basic prompts or button responses, to route conversation. Or when that fails, employ trained NLpproviders to infer more complex intent.
We go with an Artificial Stupidity model first, for direct outcomes and snappy performance, where intelligence is sometimes overkill.
Every interaction can access past and present context, accumulating aconversation state. For brevity, we call it
It includes the user, their input, branch information and results from external processing, to fill message templates, send data to services, determine next steps or even whether the bot should reply at all.
Our users come from all over, so internationalisation was a core consideration.
Content can be defined separate to conversation flow, to allow drop-in scripts in multiple languages, while following a common logic.
That means its self documenting and can be compiled to meet a range of environments and module systems.
From strict typing, we also get code intel which is critical when modules can be extended outside the core package.
All critical components make use of asynchronous methods, so you can make external requests and build context while processing input.
Interactions can build on and tailor outcomes or route dialogue, without relying on hammy catch-all workarounds.
bBot is for building enterprise grade software, so it's unit tested to the hilt!
It also exposes a number of test helpers for engineers to apply to their own conversation structures and extensions.
By using simple exported node scripts to start the bot, it can be more easily attached to debug inspectors.
The code is semantic and logic is easy to follow with minimal dependencies and simple module inheritance.
bBot uses a minimal set of some of the most common Node.js packages, to provide mature and documented components for easier development.