Interactive Bot
Last updated
Last updated
Interactive Bots are a form of Chatbot where the conversational flow is driven by interactive Elements forms. Instead of listening for plain text as the only source of data, Interactive Bots can collect data or commands through structured forms.
Elements allow bots to send messages that contain interactive forms with pre-designed text fields, dropdown menus, person selectors, buttons and more. Additionally, Elements reuse Symphony Messaging UX component libraries, enabling developers to easily create interactive bot messages that look and feel like they belong in Symphony.
To learn more about Elements navigate here:
Elements Interactive FormsUsers can interact with chatbots in chatrooms and 1 to 1 chats. In order to initiate your Interactive Bot's workflow we recommend that users @mention the bot's username in order to get the bot's attention and signal to the bot to begin its intended function. That way, bots can be active members of chatrooms, but eliminate noise that is outside the scope of its intended workflow.
It is common for bots to contain multiple commands or sub workflows that it can action upon. It is best practice to list these commands in a help menu. Additionally, it is best practice for all commands to follow a "/" so that it's clear what text is meant to be processed as a command. The following illustrates these best practices:
A core aspect of all Interactive Bots is the ability to 'listen' to different types of commands and events and reply to them accordingly. The mechanism that enables Symphony Bots to listen to events in chatrooms, MIMs, and IMs is the Datafeed.
The Datafeed is a real-time message and event stream that can be created using the REST API. The datafeed provides a secure stream of messages and events from all conversations that a bot is in.
In order to 'listen' and respond to user events, bots create a single datafeed and subsequently have access to all chatroom activity including non-chat based events such as users being added/removed from chatrooms, external connection requests, and chatrooms, MIMs, IMs being created..
To learn more about the Datafeed continue here:
DatafeedWhen an end-user submits an Elements form, the bot is able to access the contents of that form through the Datafeed. The Elements form lifecycle is illustrated below:
First an Interactive Bot sends a messageML message containing an Elements form:
The messageML is sent by your Bot and rendered as a form:
After the user fills out their information and clicks the 'Submit' button, the following payload is captured by the Datafeed and delivered to the bot:
The next step of your Interactive Bot workflow is to introduce your bot's custom business logic. Now that you have access to the bot's events, messages, and elements payloads through the Datafeed, the next step is to create dedicated event listeners. Inside these listeners is where you parse messages and datafeed payloads, fetch data from external sources, manage conversation state, and make requests to Symphony Messaging REST APIs in order to reply to users directly or performs administrative functions such as creating chatrooms.
You can learn more about parsing events and introducing custom business logic here.
Continue on to our Building an Interactive Bot guide in order to learn more about our development tools and appropriate development pathway for building your first interactive Bot:
Build an Interactive Bot