At Keen IO, we are huge fans of Slack, a badass chat platform for internal team communications. Our whole company uses it every day as a single, centralized hub where we can discuss stuff, deploy code, and monitor our analytics service.
Slack is great in all sorts of ways: Easy on the eyes, nice search functionality, handy away notifications, and it works great on mobile. But my favorite part of Slack is how we can tie it to so many other services — some of which are just so freaking useful, we had to share them with you:
Working Together
1. Screenhero
2. Google Hangouts
Tracking Progress
3. Keen IO & Pushpop
4. Hubot
5. Jenkins
6. Google Docs
Handling “Opportunities”
7. PagerDuty
8. Runscope Radar
9. Datadog
10. Sentry
Sales
11. Clearbit
12. Zapier
BONUS: How We Use Channels
Working Together
There are a number of Slack integrations that make it super easy to round up a bunch of peeps and get them in front of each other, whether it’s for a video call, to review code together, whatever.
Screenhero
We like Screenhero for doing code reviews, walkthroughs, and ride-alongs when someone is working on an Ops problem. This integration means we can fire up a session from Slack with a quick:
/hero USERNAME
Google Hangouts
We also use Google Hangouts in Slack to quickly spin-up video Hangouts within a channel, just as simply as saying:
/hangout
Running that will display a message to everyone in the channel with a link to join a new Hangout. Huzzah!
Sometimes weird things happen in our Hangouts.
Tracking Progress
Here at Keen, we’ve got all sorts of teams working on all sorts of stuff — it’s not always easy to keep up with who’s doing what, or hand out kudos when someone finishes something awesome. Or, it wasn’t that easy, until we started using these Slack integrations:
Keen IO & Pushpop for Slack
Pushpop for Slack lets us push analytics data and key reports to Slack, so we can get notified of important results in real-time. Such as getting 52 pageviews. Damn.
Hubot
Keen runs a Hubot (which we’ve imaginatively named “robot”) in Slack that handles deployments of all of our services. This is great, because everyone can see that it’s happening, rather than initiating deployments from some other place. This helps keep people jacked-in to what’s happening in, say, staging, at any given moment!
Sometimes we even remember how to type the command correctly the second time!
The Hubot also provides some comic relief:
Jenkins
As you can see above, Jenkins is squawking as well, informing us about the state of tests that are initiated when we push to our Github repositories. We also tie Github repositories to team-specific channels, so teams can see when pull requests are open or closed!
Google Docs
Also, integration with Google Docs means that, when we’re working on blog posts or other content creation, we can easily paste a link and get more than a blind URL!
Handling “Opportunities”
When opportunities arise, we need a way to keep on top of things. People joining in to help need to quickly get context to get up to speed. To that end, a number of our monitoring bits are connected to Slack as well.
PagerDuty
PagerDuty lets us know when an incident occurs. PagerDuty also handles notifying our on-call engineers, of course, but it’s nice for the rest of us to see this happening, so we can pitch in.
Runscope Radar
Other, less urgent things feed us information as well. While PagerDuty is a fairly coarse integration, we tie directly to some of our external monitoring services as well. When our Runscope Radar tests fail or resume passing, we know!
Datadog
Datadog is also dutifully informing us of things that might be weird in our infrastructure. Even more helpfully, we can send interesting snapshots as we’re browsing our Datadog dashboards and see items of interest, like Kevin did here:
Sentry
Sentry lets us know when errors occur, so we can look at the resulting tickets and make things better!
Sales
Clearbit
Pushpop + Clearbit enabled us to dramatically improved our sales workflow and easily pull up information about new users via a simple slack command. By typing /company slack.com
you’d pull up a result like this:
Zapier
Zapier has a great Salesforce integration that allowed us to instantly setup channels for #leads #opportunities and #mqls. Needless to say, we use them daily! As you might have guessed, we include analytics data like a lead’s referrer, form submission details, and we even set up some alerting so that particular reps are paged when a lead from their industry comes in.
BONUS: How We Use Channels
One thing we especially love about Slack is how it allows you to create rooms, or channels, that team members can join or be invited to, making it easy to divvy up your team as necessary.
I haunt these channels. But there are 22 more. WHAT WONDERS AWAIT!?!
The simplest rule we have for using Slack at Keen is aimed at helping people know what is important for them to read. To that end, we’ve dictated that the #general channel only be used for important, company-wide announcements, like reminders about holidays, all-hands meetings, and the like. To give us an outlet for gifs, puns, and other ridiculousness, we’ve got a #random channel that you need not worry about the backlog in. Unless you just want to laugh a lot. Then you should go read that!
Landspeeders and Tusken Raider firearms. A normal day in #random.
Outside of this rule, other channels are generally by team or by interest. There’s a #platform and an #experience channel to facilitate those specific teams’ discussions. There’s also a #devops and an #incidents channel for contextual, cross-team chats. There’s a #keenfc for soccer talk and a #terrarium channel for discussing improvements to our in-house, Vagrant-driven development environment. We even conduct high-level company business like team approvals in #budget and changes to company policy in #operating_system. Channels make the world go round.
Keeping Things Taut
(Get it? Not Slack?)
Slack integrations are great, but you should keep an eye on each of the integrations you’ve chosen and make sure they bring value, not clutter. Too many integrations can easily cause people to ignore a channel entirely. A good example is our GitHub integration, which only chatters when a pull request is open or closed, and only to the relevant team’s channel. Keeping up with every commit would have way too much noise!
Hopefully, these tips and ideas can help your company keep communication tight, making it easier for everyone, remote and local, to do even better at what they do best. What Slack integrations have you found helpful? Feel free to leave a comment or ping us on Slack if you have questions about Slack and Slack integrations, or ideas for what we should integrate next.