Karmabot

This is the first in a series of posts about Slack integrations I’ve been creating.

Back in 2013, before Slack took over the chat space, betaworks had betachat. betachat was an office-wide Gmail chatroom using PartyChat, and it was sort of the unofficial betaworks office chat room. In 2013, betachat was comprised of a hodgepodge of betaworkers past and present, and if you kept your email tab open your ears would be bombarded by the most horrible pings throughout the day.

PartyChat rooms came with PlusPlusBot, which allowed you to award or take points from users. The bot detected text matching “username++” or “username--” which would, respectively, award or take points from “username”. PlusPlusBot drove a lot of the culture of the original betachat but was known by other name: karmabot. In an interface without upvotes, downvotes, and likes, karmabot was the only way to express satisfaction or disproval without adding anything to the conversation.

One Chat to Rule Them All

Over time, betachat saw increasingly less usage to the point where it has become completely unused. In those dark ages of chat technology, where we all used different platforms and relied on email for office-wide communications, there was no karma to be gained or lost. betaworks was utterly devoid of karma.

In late 2014, the entire office made the shift over to Slack as betaworks’ first official company chat room (or at least the first successful one), and the default Slack channel was aptly-named “betachat”. However, betachat v2 was also missing the karma that drove so much of the culture of betaworks’ original PartyChat.

Return of the Karma

I took it upon myself to restore the culture lost within betachat, and built a karmabot integration for Slack using the hubot framework. The integration was heavily modeled after the original betachat karmabot, including the original replies karmabot sent:

Lessons Learned

Company culture is fragile and, often times, it’s up to the employees of the company to protect and preserve it as the company evolves. Recognizing the lack of karmabot in betachat was a small moment of introspection in which I realized that if I didn’t take the initiative to create a karmabot integration for our Slack, that piece of betaworks culture would likely slip away forever, and that would’ve fucked up the culture.

Interested?

karmabot is a bit difficult to set up now, but if you’re interested I’m working on a way to make it easy for anyone to set karmabot up for Slack. Sign up here if you’d like early access!