Following on from my post - Modern Command Lines - talking about slash commands and Red Panda (a new CPD platform I work on), this post covers our work on bots.
Along with slash commands, we have introduced a native helper bot and hooks for external services, in our case Learning Locker, to provide a bot for users.
There are two things you do with these bots:
- Ask a question and get a reply.
- Issue a command and the bot goes off and does it.
Towards the end of last year, I spent a fair bit of time reading up on bots, command lines and conversational interfaces. The service that really piqued my interest was Slack; they have done a great job providing ways to integrate with the service from full blown apps through webhooks to slash commands and bots. They also brought the command line and text commands to a new audience who may not have used this approach before.
Given recent hype there will be people who are rightly wary; if the approach doesn’t gain traction outside of more technically minded users and products, then it will remain an option for power users only.
However, I think conversational interfaces stand a chance of wider adoption. Once you start using the command line it becomes natural, you just chat. Messaging apps are everywhere so the interface is familiar. No need to hunt around a UI trying to find what you need: just chat and get stuff done.
A key advantage from the product side is being able to provide users with a consistent interface when conversing with external applications. I like the idea that services can disseminate their information through a simple, well defined, familiar interface instead of trying to hook into the menu and navigation structure of any given application. And for users, they don’t need to care, they just chat.
RedPanda and Pepper
Our initial experiment centers around a helper bot, Pepper, who is available to help users with a few tasks. These can be triggered via slash commands or through written messages:
- When is my next task due?
- Get me the popular #php resources this week?
- @llbot Show me my latest test scores? (One for the Learning Locker bot)
- What were my check in stats last week?
- When is @bbetts next available to give a tutorial?
- How do I change my notification settings?
We are also introducing a mechanism that generates shortcuts for the commands users regularly run so they don’t need to keep asking. This helps build up a level of personalisation and automation based on a user’s popular actions.
For example, if you login and always run the same command to access the latest learning resources, you could be prompted:
Pepper: I’ve notice you regularly access your latest resource, would you like me to do this for you upon login?
Replying ‘yes’ sets up a shortcut command that would automatically go and fetch the latest resources for the user when they login.
In the case of Learning Locker (LL), a user might like a weekly summary of their learning data. So, they would invite the LL Bot into the conversation and ask it to sort this out.
- User: "@llbot Can you send me a weekly summary of my learning data every Friday?"
- LLBot: "Done".
The bot has picked this up and is off to work building, curating and setting up the summary for delivery each week, on Friday.
These are trivial examples but hopefully illustrate the point if you’re not familiar with this concept.
I should point out that this is optional and not required to use RedPanda. For now it is aimed at those users who like to experiment.
Learning Locker, data and intelligent bots
The integration with Learning Locker is an exciting angle providing the opportunity to explore a new learning landscape powered by learning data, assisted by intelligent bots. I think this could open up new, innovative, application opportunities.
Using Learning Locker’s powerful event driven "if this, then that" functionality and having a customizable bot that helps users make use of their learning data in a friendly, simple, chat like interface, could be pretty neat. The bot might do things like help identify areas needing improvement, suggest resources and construct learning paths all underpinned by data.
A Personal Assistant
At the moment the focus is on building this functionality into RedPanda, however, working on this project has got me thinking about abstracting it out into a standalone, open, service. Something simple that lets people create and customise their own helper bot — an assistant — to aid in daily work, learning and training.
But, first things first, let’s see how it goes with RedPanda. At this stage we’re just experimenting and there is so much to learn. Will it work out as well as I imagine in my head? I’m not sure but it's going to be fun trying.