Join our workspace and try it out (currently working on the distribution)

Insight to backend logic


A productive work space consists of a positive atmosphere--even when objective statements and criticisms are shared, they can be done constructively. Aggressive conversations are also not tolerable. We wanted to improve the atmosphere of the Slack workspace by doing something when negative sentiment is detected.

What it does

It uses AWS Comprehend to analyze the conversation in each channel. When the sentiment value remain Negative, the bot sends cat gifs to the user that made the negative statement in order to remind the user to stay positive and potentially disrupt the flow of negative energy.

How we built it

Slack hook per message → AWS API Gateway → AWS Lambda → AWS Comprehend → AWS Dynamo DB for saving historical sentiment scores → detect negativity in the lambda → slack query giphy cat → slack bot send cat gif to user

Challenges we ran into

  • Learning how to build a Slack Application
  • Learning AWS Serverless & IAM & DynamoDB & Comprehend
  • Determining the batch message size for each sentiment analysis
  • Determining the policy for sentiment value aggregation

Accomplishments that we're proud of

It works in our workspace, and it is currently being reviewed for the Slack bot market

What we learned

AWS Serverless & IAM & DynamoDB & Comprehend Slack API

What's next for PositiveKitty

  • Bot response can be better tailored with conversation context, such as treating depressive conversations differently from office harassment
  • Adapt more messaging habits
  • Build extensions for other platforms and user groups (that has different messaging habits)
  • Disincentivize users from behaving negatively to get cat pictures

Built With

Share this project: