Great teamwork is important to us. We wanted to build something to make that process not just more efficient, but enjoyable, by identifying trends in communication before they become problems, and rewarding positive behaviour.
It can sometime be hard to gauge tone in a online conversation, and it is also hard for moderators to step in to calm the conversation, often becoming the brunt of the butt-hurt in a channel. Delegating this to a bot allows the participants to be less emotional to moderation and to get on with it.
What it does
Brushtail is a Slack bot designed to track messages made in a channel, monitor sentiment, and intelligently remind users to relax.
How we built it
We use Slack's events API to feed into a DynamoDB table via a Lambda, and then use the event stream from the table to trigger a query in a natural language processor to analyse the sentiment of messages. The DynamoDB record is then updated, and onModify event stream triggers follow on actions, including reacting to the current message, as well as updating statistics in a aggregate table, which in turn triggers a Lambda onModify to moderate the channel if the overall tone of the channel gets unpleasant.
What's next for Brushtail
We want to refine Brushtail's moderation based on some "real world" experience in our work Slack team, and also some teams used by social groups, to determine the best time for the bot to "step in", and when to keep out of it.
The natural language processor provides richer analysis of sentence structure, so we want to expose this further via bot commands to allow people to find out more about how their tone can be interpreted by others.
Finally we want to expand the bot's moderation role to be more active and be able to softban overly abusive participants after warnings.