developer productivity

Making employees feel appreciated with the UMatter bot

In the middle of January 2020, I got a notification about the upcoming Mattermost hackathon that was being hosted on the HackerEarth platform. I checked out the hackathon page but I forgot about it the next day when I went to work.

One morning, I was surfing the internet sipping my coffee and landed on a website that discussed why employee churn rate is high in organizations. After going through the analysis, I was surprised to read that the main reason employees quit their jobs was because their efforts weren’t recognized. 

After some thinking about possible solutions to this issue, I remembered the Mattermost hackathon. While it was mainly focused on building chatbots to help DevOps teams, I realized solving this problem by enabling users to provide instant appreciation to colleagues was something that would help employees feel rewarded and confident about themselves—which, in turn, could reduce the churn rate across the organization. Engineers have emotions, too. 

To solve this problem, I created a bot called UMatter.

What is UMatter?

UMatter is a bot that allows people to appreciate and reward colleagues in Mattermost channels right when and where great work is happening.

Why UMatter?

A common reason employees leave organizations is because they are not being recognized. This bot helps ensure workers are appreciated and rewarded within an organization. 

Before getting to work, I searched to see whether a similar plugin or bot solved the same problem on Mattermost, and couldn’t find anything. If I missed it, please let me know.

What are the main features of UMatter?

There are several features of UMatter, which we’ll briefly explore.

1. Giving appreciation

UMatter makes it easier to give appreciation in the form of points in Mattermost channels right where great work is happening.

Users have a defined maximum number of points that can be given during each appreciation, and they also have a fixed number of points they can give out every day. What’s more, users can’t give appreciation to colleagues via direct messages; the gestures need to be made in public channels.

Finally, users can’t appreciate themselves, and they can’t give negative points.

2. Creating company value

Every company has its own set of values, and each encourages every employee to follow them. But oftentimes, it’s difficult to recognize the people who follow these values. 

With UMatter, you can create an emoji that depicts a company value and react to posts with that emoji to show appreciation.

3. Top performers

Knowing which users are top performers in a channel will always help colleagues recognize and reward the hardest-working individuals.

Users can only find top-performing peers in private or public channels. Those who secure the first, second, and third positions will earn medals.

4. Introspection

A user can analyze their own performance and see how their colleagues appreciate their work by assessing the points given to them. They can then reflect on those numbers to determine whether they need to do something differently.

5. Channel statistics

Channel moderators can analyze how motivated users are in each channel by analyzing the channel’s interaction with UMatter.

Where can I find UMatter?

UMatter is completely open source. Check out the source code and documentation.

How do I get started with UMatter?

It’s very easy to get started with UMatter. Head over to the repository and follow the installation instructions.

How is UMatter integrated with Mattermost?

UMatter makes use of slash commands and APIs to communicate with Mattermost servers. It’s a standalone bot that maintains its own database.

How do you calculate the top performers in the channel?

In the slash command for finding the top peers in the channel, users have to define a date range to help the bot understand the timeline you’re measuring. Top performers are determined based on the number of appreciation points they receive during the timeline. 

How scalable is UMatter?

UMatter can be deployed manually on a virtual machine or a Kubernetes cluster. It’s Dockerized, and a docker-compose file binding the REST service with the database can be found in the repository. Deployment on a Kubernetes cluster is achieved by changing the appropriate configuration variables.

How can I contribute to UMatter?

It’s easy: Go to GitHub, clone the repository, develop the new feature or fix a bug, and raise a PR.

How can I contact the author?

Send me a mail at [email protected]. I look forward to hearing from you!


Abhilash K R. is a data platform software engineer at RAKUTEN INDIA who’s focused on building large-scale systems. During his free time, Abhilash takes part in hackathons, attends meetups, and participates in CSR activities on behalf of his company.