Howdy there! You and I have talked before about how we build Slack bots at SparkPost, but I didn’t say much about how we use them. We use bots at SparkPost to do all sorts of things. We’ve learned a lot and I thought now would be a good time to share some of that with you. I love bots, you love bots, so let’s turn the lights down, light a few candles and have a nice glass of your favorite beverage over some bot talk.
How We’re Using Slack Bots to Maximize Productivity
Like I said, we use Slack bots for a lot of things. We run our standups with bots, we use them to get links to our docs, to post sample data from our endpoints, and to encourage each other. We do internal reporting and monitoring from bots. We track the status of our deploys along with any new PRs and issues on our Github repos all from Slack.
Why do we use bots for all these things? I mean, there are other tools that do almost each one of the things we use bots for. Well, that’s the thing: there’s at least one tool for each of those things. Our Slack bots consolidate everything into one place and one interface.
There are some advantages to using Slack as that central platform for us at SparkPost. First, since we’re a distributed team, Slack has become lingua franca – it’s our primary communication tool – so everyone is comfortable with it. Slack access doesn’t require any special VPN connections (though you should set up two-factor auth for safety). It’s accessible on mobile devices so we can make API calls from just about anywhere. We make our Slack bots easy to use for non-technical people so they don’t have to use developer tools like cURL or Postman.
Basically, since we’re already in Slack on a regular basis, it’s easier and faster to simply perform as many of our everyday tasks from there as possible. Not only does it mean fewer steps to complete something, but we also don’t have to leave the interface where we’re already spending a lot of time. Just repeat this over and over with me:
NEVER LEAVE SLACK. NEVER LEAVE SLACK. NEVERLEAVESLACK. NEVERLEAVESLACK. It’s probably fine.
Botify All the Things!
So how do you choose what to add to your bot? Be on the lookout for things that are inconvenient or painful. Start with the things you do a lot. For example, in our community Slack team we found we spent a lot of time tracking down links to our docs: we’d open a browser, go to the docs page, search for the right resource, copy the link, go back to Slack… It was just awkward. And in that time the conversation would often have moved on. Now we have a single command that will give us a link to the resource our users need when they need it.
Do you have something that only you can do because you’re the only one technical enough? Bam! Slack bot! Or do you want to empower your team to do things on their own? Botify it! Want to let new users know what’s up when they join your Slack team? Bot time! You get the picture. It’s open-ended, the only limits are your creativity and a few pesky natural laws.
How to Succeed at Bots Without Really Trying
Ok, you have this awesome idea for this bot that is going to save you time and frustration and probably the world. You set up a repo and a sweet continuous deployment pipeline for easy deployments. You’ve got 100% test coverage, the build is green. But nobody is using it. Nobody? Seriously? Yep, nobody.
Remember, bots are an interface, just like a web page. And just like any web site they can be hard to use or unintuitive or just plain off-putting. Bots have the extra challenge of being a pure text interface to your code and code is rigid and brittle. But human language is fluid and nuanced and weird. So when you build your bot be creative, funny, and offbeat. Find that unique voice inside of you and channel it into your bot. That helps offset your bot’s rigidity (and even make it endearing!).
Making your bot enjoyable goes a long way to getting users to engage with them. We’ve also found a lot of success by including help text for every command. The skellington library we use for our bots makes help text a first-class citizen and makes it easy to add help messages. The easier and more fun you make the bot to use, the more people will use it!
If you use Slack or some other chat program, bots are a great way to empower your team and make rote tasks easier. Make your bots useful, interesting, and entertaining (in that order) and before you know it your bots will take over the world! Ok, not the world but at least the hearts of your users.
We’d love to hear how you’re using bots! Either post a comment below, or come find us in our Community Slack channel.