All names are fictional and any similarities to any person, living or dead, are purely coincidental, profile pictures are from Unsplash.
You can read the original version here
Looks like some offices will be staying remote until the end of the summer, or even permanently. That means that for some, Slack will become the center of all business processes and communications.
We at Skyeng started building a remote team long before COVID-19 happened and probably ran into most of the issues of communicating remotely with colleagues and realized that we could solve most of them with bots, so we did!
Have you ever accidentally hit “Reply All” on a company announcement sent to you and hundreds of your coworkers? If you did, that was probably a very fun and unforgettable experience :)
In Slack there’s a better version of this sin - post something irrelevant to most people in #general. Bonus points for tagging @channel.
And here you are, sitting peacefully, working away and hear a notification chime... “Surely, that’s something important” — you think, because you fine-tuned your notifications so that you get them only when someone DMs or mentions you. And then you see a completely irrelevant notification, get mad and put an angry emoji under the message.
We made a list of people that we trust to make relevant announcements, and for others we applied these moderation rules:
- If you attempt to post in #general, our bot deletes the post instantly, so that people don’t get a notification
- Our bot reminds what is the purpose of #general
- If the author still thinks that their message is relevant, they can click a button and the message will be sent to a private channel for moderation
- After that, a moderator from the internal communications team will review the message and either approve it or explain where is the best place for the message to be posted
Cool, we’re done with #general! But there are still lots of channels with similar names. We, for example, have dozens of channels for each project with a prefix (usually the name of the project or the Jira project key) and a suffix (usually the name of the subteam)
Here’s an example - you found a bug in the mobile app and want to report it, so you hit Cmd+K and type in #mobile. Here’s what you see:
More channels! (P.S. We now have a bot that automatically archives channels if they’re left dormant for more than 90 days)
Trust us - if you have a lot of similarly named channels, people will get lost and ask questions in wrong places.
Before, we put a guide where to ask which question in the pinned message. Nobody reads it. Even the people who put stuff in the pinned message. And again, we solved this problem with a bot!
- You add it to a channel
- When someone joins a channel, the bot sends an ephemeral (“Only you can see this message”) message with all the relevant information
- It only helps sometimes, but sometimes is better than never… I guess :)
We actually have a whole army of bots dedicated to solving this mess. Everything began with teachers - they, as contractors doing work for Skyeng, are granted limited access to our Slack so that they can talk directly with our support team. They even have a very detailed and always up-to-date wiki. It even has a special page where we explain how to handle “emergencies”, for example, when the video call cuts out.
When an emergency happens, teachers panic. When teachers panic, they forget stuff and ask questions in their support channels.
We thought of a simple solution: integrate our wiki with Slack. When someone asks a question in a support channel, our bot takes the text, deletes “hellos” and “pleases” and puts it into the wiki search. After that, it just sends the top 5 articles and 90% of the time one of them answers the question
At Skyeng, we have a channel where our infrastructure team can help you out with all of your IT questions. Most of the questions can be answered right then and there, but some require some work. And let’s be honest — unless you move that ticket to Jira, you will forget about it in about two hours.
Now we have a bot that automatically creates a ticket for every single message in support channels, then the support team can use reactions or the Jira UI to move tickets to other statuses or close them. Also, we automatically match the sender to their Jira profile and mark them as a reporter on the ticket, so that they can track it in Jira
Every development team leader at Skyeng has an arsenal of bots that save them time (and money for the company). Here are some of them:
- Burndown delivers daily sprint burndown charts to motivate developers
- Arseny gathers data from Jira, reminds about pending code reviews and deploys and reminds people to log their time
- Jake saves team leaders an hour a day by simplifying the process of selecting tasks for the next sprint. It automatically gathers all tickets with a specific status and sends a poll to the team channel. Then, team members vote on tickets they would like to discuss and Jake generates a plan for the team meeting so that the time is not wasted
Oh, and our email support team uses a bot that brings emails into Slack, so that our agents can easily consult with their leaders on specific cases and forward all relevant information to the designated teams.
This bot can wake up our CTO
Stuff happens. Servers go down. Even at night. For emergencies and major outages we have a designated channel. We also use OpsGenie to automatically alert our DevOps team about any outages by paging calling them on their mobile phone.
- If the on-call engineer doesn’t acknowledge the message within 30 seconds, our bot calls them via OpsGenie and tells them that everything is bad and asks them to press 1 if they acknowledged the alert.
- If the on-call engineer doesn’t pick up or picks up and doesn’t press 1, the alert is immediately escalated to their team leader
- If the team leader doesn’t pick up, rinse and repeat until you reach the CTO
When all communication in the company is text-based, you start to understand why you had to take that English class. Slackbot has a built-in function when it watches for keywords in messages and replies to them with a custom text message. With one Typeform and two hours we turned Slackbot into a Grammarnazi, but after a month people started asking us to disable it. It was fun while it lasted :)
P.S. And this is far from over. We have dozens of bots doing different things in our Slack. For example, we recently built one that turns links from annoying screenshot services into simple attachments